Merge branch 'master' of https://github.com/yrrapt/caravel_amsat_txrx_ic
diff --git a/gds/caravel.gds.gz b/gds/caravel.gds.gz
index 40c51a6..b77c465 100644
--- a/gds/caravel.gds.gz
+++ b/gds/caravel.gds.gz
Binary files differ
diff --git a/gds/caravel.mag b/gds/caravel.mag
index fba17c2..fdb8eec 100644
--- a/gds/caravel.mag
+++ b/gds/caravel.mag
@@ -1,7 +1,7 @@
magic
tech sky130A
magscale 1 2
-timestamp 1607460486
+timestamp 1607895242
<< checkpaint >>
rect -1260 -1260 718860 1038860
<< metal1 >>
@@ -81614,187 +81614,187 @@
rect 400342 222659 400384 222895
rect 380288 222617 400384 222659
use user_id_programming user_id_value ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 656625 0 1 80926
box 0 0 7109 7077
use storage storage ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 52031 0 1 61392
box 0 0 88934 189234
use mgmt_core soc ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 204550 0 1 53700
box 0 0 430000 170000
use sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped rstb_level ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 154753 0 1 51403
box 0 1 5124 5084
use simple_por por ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 654176 0 1 104197
box 25 11 11344 8338
use mgmt_protect mgmt_buffers ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 288100 0 1 239747
box 0 0 169594 13025
use gpio_control_block gpio_control_bidir\[1\] ../mag
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 166200
box 0 0 33934 18344
use gpio_control_block gpio_control_bidir\[0\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 121000
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[37\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 202600
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[36\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 245800
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[3\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 256400
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[2\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 211200
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[35\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 289000
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[34\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 332200
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[33\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 375400
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[5\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 346400
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[4\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 301400
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[7\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 479800
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[6\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 391600
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[32\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 418600
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[31\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 546200
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[30\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 589400
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[29\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 632600
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[9\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 568800
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[8\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 523800
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[10\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 614000
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[28\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 675800
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[27\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 719000
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[26\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 762200
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[13\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 749200
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[12\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 704200
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[11\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 659000
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[25\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 805400
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[24\]
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 8567 0 1 889800
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[23\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 97200 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[22\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 148600 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[21\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 200000 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[20\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 251400 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[19\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 303000 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[18\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 353400 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[17\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 420800 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[16\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 497800 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[15\]
-timestamp 1607460486
+timestamp 1607895242
transform 0 1 549200 -1 0 1029747
box 0 0 33934 18344
use gpio_control_block gpio_control_in\[14\]
-timestamp 1607460486
+timestamp 1607895242
transform -1 0 708537 0 1 927600
box 0 0 33934 18344
use chip_io padframe ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 0 0 1 0
box 0 0 717600 1037600
use user_project_wrapper mprj ../mag
-timestamp 1607460486
+timestamp 1607895242
transform 1 0 65277 0 1 276402
box -8436 -7366 592360 711302
<< properties >>
diff --git a/gds/caravel.old.gds.gz b/gds/caravel.old.gds.gz
new file mode 100644
index 0000000..8869e6f
--- /dev/null
+++ b/gds/caravel.old.gds.gz
Binary files differ
diff --git a/gds/user_project_wrapper.gds.gz b/gds/user_project_wrapper.gds.gz
index 345cab7..df88577 100644
--- a/gds/user_project_wrapper.gds.gz
+++ b/gds/user_project_wrapper.gds.gz
Binary files differ
diff --git a/utils/run_lvs_pex.sh b/utils/run_lvs_pex.sh
index 1221114..e730290 100755
--- a/utils/run_lvs_pex.sh
+++ b/utils/run_lvs_pex.sh
@@ -56,6 +56,15 @@
# include the digital cell definitions
sed -i '$s,.end,.include '"$HOME"'\/repositories\/skywater\/sky130A\/libs.ref\/sky130_fd_sc_hd\/spice\/sky130_fd_sc_hd.spice\n.end,g' "$1.spice"
+# want to replace with global RF subcircuit include
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/rf_nfet_01v8_lvt\/sky130_fd_pr__rf_nfet_01v8_lvt_aF02W3p00L0p15.spice\n.end,g' "$1.spice"
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/rf_nfet_01v8_lvt\/sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15.spice\n.end,g' "$1.spice"
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/rf_nfet_01v8_lvt\/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15.spice\n.end,g' "$1.spice"
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/rf_nfet_01v8_lvt\/sky130_fd_pr__rf_nfet_01v8_lvt_cM02W1p65L0p15.spice\n.end,g' "$1.spice"
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/rf_pfet_01v8_lvt\/sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p35.spice\n.end,g' "$1.spice"
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/rf_pfet_01v8\/sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p25.spice\n.end,g' "$1.spice"
+sed -i '$s,.end,.include '"$HOME"'\/skywater\/skywater-pdk\/libraries\/sky130_fd_pr\/latest\/cells\/res_xhigh_po\/sky130_fd_pr__res_xhigh_po_2p85.model.spice\n.end,g' "$1.spice"
+
# now compare the xschem schematic netlist and the magic extracted netlist
netgen -batch lvs "drc_cell_lvs.spice "$1"" ""$1".spice "$1"" ~/skywater/pdk/skywater130/sky130A/libs.tech/netgen/sky130A_setup.tcl lvs_report.out -json
diff --git a/verilog/gl/user_project_wrapper.v b/verilog/gl/user_project_wrapper.v
index cd0c146..1f993d7 100644
--- a/verilog/gl/user_project_wrapper.v
+++ b/verilog/gl/user_project_wrapper.v
@@ -1,7 +1,39 @@
module user_project_wrapper(
+ inout vssd1,
+ inout vccd1,
inout vssd2,
inout vccd2,
+ in la_data_in[0],
+ in la_data_in[1],
+ in la_data_in[2],
+ in la_data_in[3],
+ in la_data_in[4],
+ in la_data_in[5],
+ in la_data_in[6],
+ in la_data_in[7],
+ in la_data_in[8],
+ in la_data_in[9],
+ in la_data_in[10],
+ in la_data_in[11],
+ in la_data_in[12],
+ in la_data_in[13],
+ in la_data_in[14],
+ in la_data_in[15],
+ in la_data_in[16],
+ in la_data_in[17],
+ in la_data_in[18],
+ in la_data_in[19],
+ in la_data_in[20],
+ in la_data_in[21],
+ in la_data_in[22],
+ in la_data_in[23],
+ in la_data_in[24],
+ in la_data_in[25],
+ in la_data_in[26],
+ in la_data_in[27],
+ in la_data_in[28],
+ in la_data_in[29],
in la_data_in[95],
in la_data_in[94],
in la_data_in[93],
@@ -41,7 +73,19 @@
inout analog_io[18],
inout analog_io[19],
inout analog_io[20],
- inout analog_io[21]
+ inout analog_io[21],
+ inout analog_io[24],
+ inout analog_io[25],
+ inout analog_io[26],
+ inout analog_io[27],
+ inout analog_io[28],
+ inout analog_io[29],
+ inout analog_io[30]
);
+
+ fake fake ();
+
+
+
endmodule
diff --git a/xschem/divider_cml/divider_cml.sch b/xschem/divider_cml/divider_cml.sch
new file mode 100644
index 0000000..3891e56
--- /dev/null
+++ b/xschem/divider_cml/divider_cml.sch
@@ -0,0 +1,201 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 240 -270 240 -240 {lab=#net1}
+N 330 -270 390 -210 {lab=#net1}
+N 330 -210 390 -270 {lab=#net2}
+N 240 -270 330 -270 {lab=#net1}
+N 280 -210 330 -210 {lab=#net2}
+N 480 -270 480 -240 {lab=#net2}
+N 390 -270 480 -270 {lab=#net2}
+N 390 -210 440 -210 {lab=#net1}
+N 220 -210 240 -210 {lab=GND}
+N 220 -210 220 -70 {lab=GND}
+N 240 -180 240 -160 {lab=source_pcross}
+N 480 -180 480 -160 {lab=source_pcross}
+N 480 -210 500 -210 {lab=GND}
+N 500 -210 500 -70 {lab=GND}
+N 240 -160 480 -160 {lab=source_pcross}
+N 100 -180 100 -130 {lab=source_ntoggle}
+N 620 -180 620 -130 {lab=source_ntoggle}
+N 480 -130 620 -130 {lab=source_ntoggle}
+N 480 -130 480 -100 {lab=source_ntoggle}
+N 240 -160 240 -100 {lab=source_pcross}
+N 220 -70 240 -70 {lab=GND}
+N 220 -70 220 -10 {lab=GND}
+N 240 -40 240 -10 {lab=GND}
+N 220 -10 240 -10 {lab=GND}
+N 500 -70 500 -10 {lab=GND}
+N 480 -40 480 -10 {lab=GND}
+N 480 -70 500 -70 {lab=GND}
+N 600 -210 620 -210 {lab=GND}
+N 600 -210 600 -10 {lab=GND}
+N 500 -10 600 -10 {lab=GND}
+N 480 -10 500 -10 {lab=GND}
+N 240 -10 480 -10 {lab=GND}
+N 100 -210 120 -210 {lab=GND}
+N 120 -210 120 -10 {lab=GND}
+N 120 -10 220 -10 {lab=GND}
+N 100 -290 100 -240 {lab=#net1}
+N 100 -290 240 -290 {lab=#net1}
+N 240 -290 240 -270 {lab=#net1}
+N 480 -290 480 -270 {lab=#net2}
+N 480 -290 620 -290 {lab=#net2}
+N 620 -290 620 -240 {lab=#net2}
+N 100 -130 480 -130 {lab=source_ntoggle}
+N 240 -550 240 -290 {lab=#net1}
+N 480 -550 480 -290 {lab=#net2}
+N 240 -650 240 -610 {lab=VDD}
+N 240 -650 480 -650 {lab=VDD}
+N 480 -650 480 -610 {lab=VDD}
+N 1040 -270 1040 -240 {lab=OUTn}
+N 1130 -270 1190 -210 {lab=OUTn}
+N 1130 -210 1190 -270 {lab=OUTp}
+N 1040 -270 1130 -270 {lab=OUTn}
+N 1080 -210 1130 -210 {lab=OUTp}
+N 1280 -270 1280 -240 {lab=OUTp}
+N 1190 -270 1280 -270 {lab=OUTp}
+N 1190 -210 1240 -210 {lab=OUTn}
+N 1020 -210 1040 -210 {lab=GND}
+N 1020 -210 1020 -70 {lab=GND}
+N 1040 -180 1040 -160 {lab=source_ncross}
+N 1280 -180 1280 -160 {lab=source_ncross}
+N 1280 -210 1300 -210 {lab=GND}
+N 1300 -210 1300 -70 {lab=GND}
+N 1040 -160 1280 -160 {lab=source_ncross}
+N 900 -180 900 -130 {lab=source_ptoggle}
+N 1420 -180 1420 -130 {lab=source_ptoggle}
+N 1280 -130 1420 -130 {lab=source_ptoggle}
+N 1280 -130 1280 -100 {lab=source_ptoggle}
+N 1040 -160 1040 -100 {lab=source_ncross}
+N 1020 -70 1040 -70 {lab=GND}
+N 1020 -70 1020 -10 {lab=GND}
+N 1040 -40 1040 -10 {lab=GND}
+N 1020 -10 1040 -10 {lab=GND}
+N 1300 -70 1300 -10 {lab=GND}
+N 1280 -40 1280 -10 {lab=GND}
+N 1280 -70 1300 -70 {lab=GND}
+N 1400 -210 1420 -210 {lab=GND}
+N 1400 -210 1400 -10 {lab=GND}
+N 1300 -10 1400 -10 {lab=GND}
+N 1280 -10 1300 -10 {lab=GND}
+N 1040 -10 1280 -10 {lab=GND}
+N 900 -210 920 -210 {lab=GND}
+N 920 -210 920 -10 {lab=GND}
+N 920 -10 1020 -10 {lab=GND}
+N 900 -290 900 -240 {lab=OUTn}
+N 900 -290 1040 -290 {lab=OUTn}
+N 1040 -290 1040 -270 {lab=OUTn}
+N 1280 -290 1280 -270 {lab=OUTp}
+N 1280 -290 1420 -290 {lab=OUTp}
+N 1420 -290 1420 -240 {lab=OUTp}
+N 900 -130 1280 -130 {lab=source_ptoggle}
+N 1040 -550 1040 -290 {lab=OUTn}
+N 1280 -550 1280 -290 {lab=OUTp}
+N 1040 -650 1040 -610 {lab=VDD}
+N 1040 -650 1280 -650 {lab=VDD}
+N 1280 -650 1280 -610 {lab=VDD}
+N 700 -210 820 -330 {lab=OUTn}
+N 700 -330 820 -210 {lab=#net1}
+N 820 -210 860 -210 {lab=#net1}
+N 660 -210 700 -210 {lab=OUTn}
+N 820 -330 1040 -330 {lab=OUTn}
+N 240 -330 700 -330 {lab=#net1}
+N 20 -210 60 -210 {lab=OUTp}
+N 20 -350 20 -210 {lab=OUTp}
+N 20 -370 20 -350 {lab=OUTp}
+N 20 -370 1280 -370 {lab=OUTp}
+N 1460 -210 1500 -210 {lab=#net2}
+N 1500 -410 1500 -210 {lab=#net2}
+N 600 -10 920 -10 {lab=GND}
+N 480 -650 1040 -650 {lab=VDD}
+N 400 -70 440 -70 {lab=INn}
+N 280 -70 320 -70 {lab=INp}
+N 1200 -70 1240 -70 {lab=INp}
+N 1080 -70 1120 -70 {lab=INn}
+N 20 -10 120 -10 {lab=GND}
+N 20 -650 240 -650 {lab=VDD}
+N 1040 -470 1500 -470 {lab=OUTn}
+N 1280 -510 1500 -510 {lab=OUTp}
+N 480 -410 1500 -410 {lab=#net2}
+N 170 -580 210 -580 {lab=gnd}
+N 510 -580 550 -580 {lab=gnd}
+N 970 -580 1020 -580 {lab=gnd}
+N 1300 -580 1350 -580 {lab=gnd}
+N 210 -580 220 -580 { lab=gnd}
+N 500 -580 510 -580 { lab=gnd}
+C {ipin.sym} 20 -70 0 0 {name=p1 lab=INn}
+C {opin.sym} 1500 -510 0 0 {name=p5 lab=OUTp
+}
+C {iopin.sym} 20 -650 0 1 {name=p7 lab=VDD}
+C {iopin.sym} 20 -10 0 1 {name=p8 lab=GND
+}
+C {opin.sym} 1500 -470 0 0 {name=p10 lab=OUTn
+}
+C {ipin.sym} 20 -110 0 0 {name=p11 lab=INp}
+C {lab_wire.sym} 280 -70 0 1 {name=l1 sig_type=std_logic lab=INp}
+C {lab_wire.sym} 1200 -70 0 1 {name=l2 sig_type=std_logic lab=INp}
+C {lab_wire.sym} 400 -70 0 1 {name=l3 sig_type=std_logic lab=INn}
+C {lab_wire.sym} 1080 -70 0 1 {name=l4 sig_type=std_logic lab=INn}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 80 -210 0 0 {name=XMdiffp model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 460 -210 0 0 {name=XMdiffp1 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15 m=1
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 460 -70 0 0 {name=XMdiffp2 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 880 -210 0 0 {name=XMdiffp3 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 1260 -210 0 0 {name=XMdiffp4 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 1260 -70 0 0 {name=XMdiffp5 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 260 -210 0 1 {name=XMdiffp6 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15
+
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 260 -70 0 1 {name=XMdiffp7 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 640 -210 0 1 {name=XMdiffp8 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 1060 -210 0 1 {name=XMdiffp9 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 1060 -70 0 1 {name=XMdiffp10 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 1440 -210 0 1 {name=XMdiffp11 model=sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15
+
+}
+C {lab_wire.sym} 170 -580 0 1 {name=l5 sig_type=std_logic lab=gnd}
+C {lab_wire.sym} 500 -580 0 1 {name=l6 sig_type=std_logic lab=gnd}
+C {lab_wire.sym} 970 -580 0 1 {name=l7 sig_type=std_logic lab=gnd}
+C {lab_wire.sym} 1300 -580 0 1 {name=l8 sig_type=std_logic lab=gnd}
+C {lab_wire.sym} 310 -160 0 1 {name=l9 sig_type=std_logic lab=source_pcross}
+C {lab_wire.sym} 1110 -160 0 1 {name=l10 sig_type=std_logic lab=source_ncross}
+C {lab_wire.sym} 1110 -130 0 1 {name=l11 sig_type=std_logic lab=source_ptoggle}
+C {lab_wire.sym} 310 -130 0 1 {name=l12 sig_type=std_logic lab=source_ntoggle}
+C {sky130_fd_pr/res_xhigh_po.sym} 240 -580 0 0 {name=R1
+W=2.85
+L=5
+model=res_xhigh_po
+spiceprefix=X
+mult=1}
+C {sky130_fd_pr/res_xhigh_po.sym} 480 -580 0 1 {name=R2
+W=2.85
+L=5
+model=res_xhigh_po
+spiceprefix=X
+mult=1}
+C {sky130_fd_pr/res_xhigh_po.sym} 1040 -580 0 0 {name=R3
+W=2.85
+L=5
+model=res_xhigh_po
+spiceprefix=X
+mult=1}
+C {sky130_fd_pr/res_xhigh_po.sym} 1280 -580 0 1 {name=R4
+W=2.85
+L=5
+model=res_xhigh_po
+spiceprefix=X
+mult=1}
diff --git a/xschem/divider_cml/divider_cml.sym b/xschem/divider_cml/divider_cml.sym
new file mode 100644
index 0000000..733bae2
--- /dev/null
+++ b/xschem/divider_cml/divider_cml.sym
@@ -0,0 +1,36 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"
+}
+V {}
+S {}
+E {}
+L 3 -16 0 -5 0 {}
+L 3 -11 -3 -10 -3 {}
+L 3 -11 3 -10 3 {}
+L 4 -80 -40 -80 40 {}
+L 4 80 -40 80 40 {}
+L 4 80 -10 100 -10 {}
+L 4 80 10 100 10 {}
+L 4 -100 -10 -80 -10 {}
+L 4 -100 10 -80 10 {}
+L 4 -80 -40 80 -40 {}
+L 4 -80 40 80 40 {}
+L 7 0 -60 0 -40 {}
+L 7 0 40 0 60 {}
+B 5 -2.5 -62.5 2.5 -57.5 {name=VDD dir=inout }
+B 5 97.5 -12.5 102.5 -7.5 {name=OUTp dir=out }
+B 5 97.5 7.5 102.5 12.5 {name=OUTn dir=out }
+B 5 -102.5 -12.5 -97.5 -7.5 {name=INp dir=in }
+B 5 -102.5 7.5 -97.5 12.5 {name=INn dir=in }
+B 5 -2.5 57.5 2.5 62.5 {name=GND dir=inout }
+T {@symname} 32.5 64 0 0 0.3 0.3 {}
+T {@name} 35 48 0 0 0.2 0.2 {}
+T {VDD} 12 -35 0 1 0.2 0.2 {}
+T {OUTp} 75 -14 0 1 0.2 0.2 {}
+T {OUTn} 75 6 0 1 0.2 0.2 {}
+T {INp} -75 -14 0 0 0.2 0.2 {}
+T {INn} -75 6 0 0 0.2 0.2 {}
+T {GND} -12 35 2 1 0.2 0.2 {}
+T {2} 0 -12 0 0 0.4 0.4 {}
diff --git a/xschem/divider_cml/test/divider_cml_test.sch b/xschem/divider_cml/test/divider_cml_test.sch
new file mode 100644
index 0000000..a191dba
--- /dev/null
+++ b/xschem/divider_cml/test/divider_cml_test.sch
@@ -0,0 +1,81 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 520 -160 620 -160 {lab=in_n}
+N 520 -180 620 -180 {lab=in_p}
+N 720 -340 720 -230 {lab=vdd}
+N -0 -340 720 -340 {lab=vdd}
+N -0 -340 0 -250 {lab=vdd}
+N 0 -190 0 -0 {lab=0}
+N 460 0 720 0 {lab=0}
+N 720 -110 720 0 {lab=0}
+N 1030 -320 1030 -230 {lab=vdd_tb}
+N 100 -320 100 -250 {lab=vdd_tb}
+N 460 -320 1030 -320 {lab=vdd_tb}
+N 460 -320 460 -210 {lab=vdd_tb}
+N 100 -190 100 0 {lab=0}
+N 460 -130 460 0 {lab=0}
+N 1030 -110 1030 0 {lab=0}
+N 720 0 1030 0 {lab=0}
+N 280 -160 280 -100 {lab=src_n}
+N 280 -160 390 -160 {lab=src_n}
+N 140 -180 140 -100 {lab=src_p}
+N 140 -180 390 -180 {lab=src_p}
+N 140 -40 140 0 {lab=0}
+N 280 -40 280 -0 {lab=0}
+N 820 -180 930 -180 {lab=out_p}
+N 820 -160 930 -160 {lab=out_n}
+N 1340 -320 1340 -230 {lab=vdd_tb}
+N 1340 -110 1340 0 {lab=0}
+N 1030 -320 1340 -320 {lab=vdd_tb}
+N 1130 -180 1240 -180 {lab=out2_p}
+N 1130 -160 1240 -160 {lab=out2_n}
+N 1030 -0 1340 -0 {lab=0}
+N 0 -0 100 0 {lab=0}
+N 280 -0 460 0 {lab=0}
+N 100 -320 460 -320 {lab=vdd_tb}
+N 100 0 140 0 {lab=0}
+N 140 0 280 -0 {lab=0}
+C {code.sym} 890 -490 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+.param temp=125
+.temp 125
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_cM02W1p65L0p15.spice
+.lib sky130_fd_pr/models/sky130.lib.spice ss
+
+.tran 0.01n 10n uic
+.param vdd=1.8
+.param rise_fall_time=10e-12
+.param frequency=10e9
+
+.options savecurrents
+"}
+C {vsource.sym} 0 -220 0 0 {name=Vdd value=vdd}
+C {lab_wire.sym} 0 0 0 1 {name=l5 sig_type=std_logic lab=0}
+C {divider_cml/divider_cml.sym} 720 -170 0 0 {name=x1}
+C {rf_bufferdiff/rf_bufferdiff.sym} 460 -170 0 0 {name=x2}
+C {divider_cml/divider_cml.sym} 1030 -170 0 0 {name=x3}
+C {vsource.sym} 100 -220 0 0 {name=Vdd_tb value=vdd}
+C {vsource.sym} 140 -70 0 0 {name=Vin_p value="pulse(0 \{vdd\} 0 rise_fall_time rise_fall_time \{0.5/frequency\} \{1.0/frequency\} 0)"}
+C {vsource.sym} 280 -70 0 0 {name=Vin_n value="pulse(\{vdd\} 0 0 rise_fall_time rise_fall_time \{0.5/frequency\} \{1.0/frequency\} 0)"}
+C {lab_wire.sym} 0 -340 0 1 {name=l1 sig_type=std_logic lab=vdd}
+C {lab_wire.sym} 100 -320 0 1 {name=l2 sig_type=std_logic lab=vdd_tb}
+C {lab_wire.sym} 520 -180 0 1 {name=l3 sig_type=std_logic lab=in_p}
+C {lab_wire.sym} 520 -160 0 1 {name=l4 sig_type=std_logic lab=in_n}
+C {lab_wire.sym} 820 -180 0 1 {name=l6 sig_type=std_logic lab=out_p}
+C {lab_wire.sym} 820 -160 0 1 {name=l7 sig_type=std_logic lab=out_n}
+C {lab_wire.sym} 280 -180 0 1 {name=l8 sig_type=std_logic lab=src_p}
+C {lab_wire.sym} 280 -160 0 1 {name=l9 sig_type=std_logic lab=src_n}
+C {lab_wire.sym} 820 -180 0 1 {name=l10 sig_type=std_logic lab=out_p}
+C {lab_wire.sym} 820 -160 0 1 {name=l11 sig_type=std_logic lab=out_n}
+C {lab_wire.sym} 820 -180 0 1 {name=l12 sig_type=std_logic lab=out_p}
+C {lab_wire.sym} 820 -160 0 1 {name=l13 sig_type=std_logic lab=out_n}
+C {lab_wire.sym} 1130 -180 0 1 {name=l14 sig_type=std_logic lab=out2_p}
+C {lab_wire.sym} 1130 -160 0 1 {name=l15 sig_type=std_logic lab=out2_n}
+C {divider_cml/divider_cml.sym} 1340 -170 0 0 {name=x4}
+C {lab_wire.sym} 1440 -180 0 1 {name=l22 sig_type=std_logic lab=out4_p}
+C {lab_wire.sym} 1440 -160 0 1 {name=l23 sig_type=std_logic lab=out4_n}
diff --git a/xschem/divider_ff/divider_ff.sch b/xschem/divider_ff/divider_ff.sch
new file mode 100644
index 0000000..13ccb23
--- /dev/null
+++ b/xschem/divider_ff/divider_ff.sch
@@ -0,0 +1,282 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 0 0 240 0 {lab=GND}
+N 240 -220 240 -190 {lab=#net1}
+N 140 -280 200 -280 {lab=INn}
+N 140 -160 200 -160 {lab=INp}
+N 100 -60 200 -60 {lab=OUTp}
+N 100 -220 100 -60 {lab=OUTp}
+N 100 -380 200 -380 {lab=OUTp}
+N 240 -350 240 -310 {lab=#net2}
+N 240 -130 240 -90 {lab=#net3}
+N 240 -160 260 -160 {lab=GND}
+N 260 -60 260 0 {lab=GND}
+N 240 0 260 0 {lab=GND}
+N 240 -30 240 0 {lab=GND}
+N 240 -60 260 -60 {lab=GND}
+N 240 -440 240 -410 {lab=VDD}
+N 240 -440 260 -440 {lab=VDD}
+N 260 -380 260 -280 {lab=VDD}
+N 240 -280 260 -280 {lab=VDD}
+N 240 -380 260 -380 {lab=VDD}
+N 380 -60 440 -60 {lab=#net1}
+N 380 -220 380 -60 {lab=#net1}
+N 380 -380 440 -380 {lab=#net1}
+N 480 -350 480 -220 {lab=#net4}
+N 480 -220 480 -90 {lab=#net4}
+N 500 -60 500 0 {lab=GND}
+N 480 0 500 0 {lab=GND}
+N 480 -30 480 0 {lab=GND}
+N 480 -60 500 -60 {lab=GND}
+N 480 -440 480 -410 {lab=VDD}
+N 480 -440 500 -440 {lab=VDD}
+N 480 -380 500 -380 {lab=VDD}
+N 260 -160 260 -60 {lab=GND}
+N 260 -440 260 -380 {lab=VDD}
+N 500 -440 500 -380 {lab=VDD}
+N 240 -220 380 -220 {lab=#net1}
+N 760 -220 760 -190 {lab=#net5}
+N 660 -280 720 -280 {lab=INp}
+N 660 -160 720 -160 {lab=INn}
+N 620 -60 720 -60 {lab=#net4}
+N 620 -220 620 -60 {lab=#net4}
+N 620 -380 720 -380 {lab=#net4}
+N 760 -350 760 -310 {lab=#net6}
+N 760 -130 760 -90 {lab=#net7}
+N 760 -160 780 -160 {lab=GND}
+N 780 -60 780 0 {lab=GND}
+N 760 0 780 0 {lab=GND}
+N 760 -30 760 0 {lab=GND}
+N 760 -60 780 -60 {lab=GND}
+N 760 -440 760 -410 {lab=VDD}
+N 760 -440 780 -440 {lab=VDD}
+N 780 -380 780 -280 {lab=VDD}
+N 760 -280 780 -280 {lab=VDD}
+N 760 -380 780 -380 {lab=VDD}
+N 780 -160 780 -60 {lab=GND}
+N 780 -440 780 -380 {lab=VDD}
+N 760 -220 900 -220 {lab=#net5}
+N 480 -220 620 -220 {lab=#net4}
+N 1140 -180 1320 -180 {lab=OUTn}
+N 1240 -260 1320 -260 {lab=OUTp}
+N 260 -440 480 -440 {lab=VDD}
+N 500 -440 760 -440 {lab=VDD}
+N 780 -440 1000 -440 {lab=VDD}
+N 260 0 480 0 {lab=GND}
+N 500 0 760 0 {lab=GND}
+N 780 0 1000 0 {lab=GND}
+N 1240 -220 1440 -220 {lab=OUTp}
+N 1440 -480 1440 -220 {lab=OUTp}
+N 40 -480 1440 -480 {lab=OUTp}
+N 40 -480 40 -220 {lab=OUTp}
+N 40 -220 100 -220 {lab=OUTp}
+N 0 -440 240 -440 {lab=VDD}
+N 900 -60 960 -60 {lab=#net5}
+N 900 -220 900 -60 {lab=#net5}
+N 900 -380 960 -380 {lab=#net5}
+N 1000 -350 1000 -220 {lab=OUTn}
+N 1000 -220 1000 -90 {lab=OUTn}
+N 1020 -60 1020 0 {lab=GND}
+N 1000 0 1020 0 {lab=GND}
+N 1000 -30 1000 0 {lab=GND}
+N 1000 -60 1020 -60 {lab=GND}
+N 1000 -440 1000 -410 {lab=VDD}
+N 1000 -440 1020 -440 {lab=VDD}
+N 1000 -380 1020 -380 {lab=VDD}
+N 1020 -440 1020 -380 {lab=VDD}
+N 1140 -60 1200 -60 {lab=OUTn}
+N 1140 -180 1140 -60 {lab=OUTn}
+N 1140 -380 1200 -380 {lab=OUTn}
+N 1240 -350 1240 -260 {lab=OUTp}
+N 1240 -220 1240 -90 {lab=OUTp}
+N 1260 -60 1260 0 {lab=GND}
+N 1240 0 1260 0 {lab=GND}
+N 1240 -30 1240 0 {lab=GND}
+N 1240 -60 1260 -60 {lab=GND}
+N 1240 -440 1240 -410 {lab=VDD}
+N 1240 -440 1260 -440 {lab=VDD}
+N 1240 -380 1260 -380 {lab=VDD}
+N 1260 -440 1260 -380 {lab=VDD}
+N 1000 -220 1140 -220 {lab=OUTn}
+N 1020 -440 1240 -440 {lab=VDD}
+N 1020 0 1240 0 {lab=GND}
+N 240 -250 240 -220 {lab=#net1}
+N 100 -380 100 -220 {lab=OUTp}
+N 380 -380 380 -220 {lab=#net1}
+N 760 -250 760 -220 {lab=#net5}
+N 620 -380 620 -220 {lab=#net4}
+N 900 -380 900 -220 {lab=#net5}
+N 1140 -380 1140 -220 {lab=OUTn}
+N 1140 -220 1140 -180 {lab=OUTn}
+N 1240 -260 1240 -220 {lab=OUTp}
+C {ipin.sym} 0 -200 0 0 {name=p1 lab=INn}
+C {opin.sym} 1320 -260 0 0 {name=p5 lab=OUTp
+}
+C {iopin.sym} 0 -440 0 1 {name=p7 lab=VDD}
+C {iopin.sym} 0 0 0 1 {name=p8 lab=GND
+}
+C {opin.sym} 1320 -180 0 0 {name=p10 lab=OUTn
+}
+C {ipin.sym} 0 -240 0 0 {name=p11 lab=INp}
+C {lab_wire.sym} 140 -280 0 1 {name=l1 sig_type=std_logic lab=INn}
+C {lab_wire.sym} 140 -160 0 1 {name=l2 sig_type=std_logic lab=INp}
+C {lab_wire.sym} 660 -280 0 1 {name=l3 sig_type=std_logic lab=INp}
+C {lab_wire.sym} 660 -160 0 1 {name=l4 sig_type=std_logic lab=INn}
+C {sky130_fd_pr/pfet_01v8.sym} 220 -380 0 0 {name=Mpasspba
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 220 -280 0 0 {name=Mpasspca
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 460 -380 0 0 {name=Mpasspba1Minvap
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 740 -380 0 0 {name=Mpasspba3
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 740 -280 0 0 {name=Mpasspca2
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 980 -380 0 0 {name=Minvap5
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 1220 -380 0 0 {name=Minvap1
+L=0.15
+W=1.5
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=2
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 220 -160 0 0 {name=Mpassnca
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 220 -60 0 0 {name=Mpassnba
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 460 -60 0 0 {name=Minvan
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 740 -160 0 0 {name=Mpassnca1
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 740 -60 0 0 {name=Mpassnba4
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 980 -60 0 0 {name=Minvan6
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 1220 -60 0 0 {name=Minvan2
+L=0.15
+W=1
+ad="'W * 0.29'" pd="'W + 2 * 0.29'"
+as="'W * 0.29'" ps="'W + 2 * 0.29'"
+nrd=0 nrs=0
+sa=0 sb=0 sd=0
+nf=1 mult=1
+model=nfet_01v8
+spiceprefix=X
+}
diff --git a/xschem/divider_ff/divider_ff.sym b/xschem/divider_ff/divider_ff.sym
new file mode 100644
index 0000000..733bae2
--- /dev/null
+++ b/xschem/divider_ff/divider_ff.sym
@@ -0,0 +1,36 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"
+}
+V {}
+S {}
+E {}
+L 3 -16 0 -5 0 {}
+L 3 -11 -3 -10 -3 {}
+L 3 -11 3 -10 3 {}
+L 4 -80 -40 -80 40 {}
+L 4 80 -40 80 40 {}
+L 4 80 -10 100 -10 {}
+L 4 80 10 100 10 {}
+L 4 -100 -10 -80 -10 {}
+L 4 -100 10 -80 10 {}
+L 4 -80 -40 80 -40 {}
+L 4 -80 40 80 40 {}
+L 7 0 -60 0 -40 {}
+L 7 0 40 0 60 {}
+B 5 -2.5 -62.5 2.5 -57.5 {name=VDD dir=inout }
+B 5 97.5 -12.5 102.5 -7.5 {name=OUTp dir=out }
+B 5 97.5 7.5 102.5 12.5 {name=OUTn dir=out }
+B 5 -102.5 -12.5 -97.5 -7.5 {name=INp dir=in }
+B 5 -102.5 7.5 -97.5 12.5 {name=INn dir=in }
+B 5 -2.5 57.5 2.5 62.5 {name=GND dir=inout }
+T {@symname} 32.5 64 0 0 0.3 0.3 {}
+T {@name} 35 48 0 0 0.2 0.2 {}
+T {VDD} 12 -35 0 1 0.2 0.2 {}
+T {OUTp} 75 -14 0 1 0.2 0.2 {}
+T {OUTn} 75 6 0 1 0.2 0.2 {}
+T {INp} -75 -14 0 0 0.2 0.2 {}
+T {INn} -75 6 0 0 0.2 0.2 {}
+T {GND} -12 35 2 1 0.2 0.2 {}
+T {2} 0 -12 0 0 0.4 0.4 {}
diff --git a/xschem/divider_ff/test/divider_ff_test.sch b/xschem/divider_ff/test/divider_ff_test.sch
new file mode 100644
index 0000000..a6240ee
--- /dev/null
+++ b/xschem/divider_ff/test/divider_ff_test.sch
@@ -0,0 +1,112 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 480 -60 540 -60 {lab=in_p}
+N 480 -220 480 -60 {lab=in_p}
+N 480 -380 540 -380 {lab=in_p}
+N 580 -350 580 -220 {lab=in_n}
+N 580 -220 580 -90 {lab=in_n}
+N 600 -60 600 0 {lab=0}
+N 580 0 600 0 {lab=0}
+N 580 -30 580 0 {lab=0}
+N 580 -60 600 -60 {lab=0}
+N 580 -440 580 -410 {lab=#net1}
+N 580 -440 600 -440 {lab=#net1}
+N 580 -380 600 -380 {lab=#net1}
+N 600 -440 600 -380 {lab=#net1}
+N 340 -220 480 -220 {lab=in_p}
+N 360 -440 580 -440 {lab=#net1}
+N 360 0 580 0 {lab=0}
+N 480 -240 850 -240 {lab=in_p}
+N 580 -220 850 -220 {lab=in_n}
+N 950 -400 950 -290 {lab=#net2}
+N 600 -440 950 -440 {lab=#net1}
+N 950 -170 950 0 {lab=0}
+N 600 0 950 0 {lab=0}
+N 240 -60 300 -60 {lab=in_vs}
+N 240 -220 240 -60 {lab=in_vs}
+N 240 -380 300 -380 {lab=in_vs}
+N 340 -350 340 -220 {lab=in_p}
+N 340 -220 340 -90 {lab=in_p}
+N 360 -60 360 0 {lab=0}
+N 340 0 360 0 {lab=0}
+N 340 -30 340 0 {lab=0}
+N 340 -60 360 -60 {lab=0}
+N 340 -440 340 -410 {lab=#net1}
+N 340 -440 360 -440 {lab=#net1}
+N 340 -380 360 -380 {lab=#net1}
+N 360 -440 360 -380 {lab=#net1}
+N 1420 -60 1480 -60 {lab=out_p}
+N 1420 -240 1420 -60 {lab=out_p}
+N 1420 -380 1480 -380 {lab=out_p}
+N 1520 -350 1520 -90 {lab=#net3}
+N 1540 -60 1540 0 {lab=0}
+N 1520 0 1540 0 {lab=0}
+N 1520 -30 1520 0 {lab=0}
+N 1520 -60 1540 -60 {lab=0}
+N 1520 -440 1520 -410 {lab=#net1}
+N 1520 -440 1540 -440 {lab=#net1}
+N 1520 -380 1540 -380 {lab=#net1}
+N 1540 -440 1540 -380 {lab=#net1}
+N 1300 -440 1520 -440 {lab=#net1}
+N 1300 0 1520 0 {lab=0}
+N 1180 -60 1240 -60 {lab=out_n}
+N 1180 -220 1180 -60 {lab=out_n}
+N 1180 -380 1240 -380 {lab=out_n}
+N 1280 -350 1280 -90 {lab=#net4}
+N 1300 -60 1300 0 {lab=0}
+N 1280 0 1300 0 {lab=0}
+N 1280 -30 1280 0 {lab=0}
+N 1280 -60 1300 -60 {lab=0}
+N 1280 -440 1280 -410 {lab=#net1}
+N 1280 -440 1300 -440 {lab=#net1}
+N 1280 -380 1300 -380 {lab=#net1}
+N 1300 -440 1300 -380 {lab=#net1}
+N 950 -440 1280 -440 {lab=#net1}
+N 950 0 1280 0 {lab=0}
+N 1050 -220 1180 -220 {lab=out_n}
+N 1050 -240 1420 -240 {lab=out_p}
+N 480 -240 480 -220 {lab=in_p}
+N 480 -380 480 -240 {lab=in_p}
+N 1420 -380 1420 -240 {lab=out_p}
+N 1180 -380 1180 -220 {lab=out_n}
+N 130 -90 130 0 {lab=0}
+N 130 0 340 0 {lab=0}
+N 130 -220 130 -150 {lab=in_vs}
+N 130 -220 240 -220 {lab=in_vs}
+N -0 -440 -0 -260 { lab=#net1}
+N -0 -440 340 -440 { lab=#net1}
+N -0 -200 -0 0 { lab=0}
+N -0 0 130 -0 { lab=0}
+N 790 -400 790 -360 { lab=#net2}
+N 790 -400 950 -400 { lab=#net2}
+N 240 -380 240 -220 {lab=in_vs}
+N 790 -300 790 0 { lab=0}
+C {pmos4.sym} 560 -380 0 0 {name=XMinvap1 model=sky130_fd_pr__pfet_01v8 w=3 l=0.15 m=1}
+C {nmos4.sym} 560 -60 0 0 {name=XMinvan2 model=sky130_fd_pr__nfet_01v8 w=1 l=0.15 m=1}
+C {vsource.sym} 130 -120 0 0 {name=Vin value="pulse(0 vdd 0 \{0.001/frequency\} \{0.001/frequency\} \{0.5/frequency\} \{1.0/frequency\} 0)"}
+C {pmos4.sym} 320 -380 0 0 {name=XMinvap2 model=sky130_fd_pr__pfet_01v8 w=3 l=0.15 m=1}
+C {nmos4.sym} 320 -60 0 0 {name=XMinvan3 model=sky130_fd_pr__nfet_01v8 w=1 l=0.15 m=1}
+C {pmos4.sym} 1260 -380 0 0 {name=XMinvap3 model=sky130_fd_pr__pfet_01v8 w=3 l=0.15 m=1}
+C {pmos4.sym} 1500 -380 0 0 {name=XMinvap6 model=sky130_fd_pr__pfet_01v8 w=3 l=0.15 m=1}
+C {nmos4.sym} 1500 -60 0 0 {name=XMinvan7 model=sky130_fd_pr__nfet_01v8 w=1 l=0.15 m=1}
+C {pmos4.sym} 1260 -380 0 0 {name=XMinvap8 model=sky130_fd_pr__pfet_01v8 w=3 l=0.15 m=1}
+C {nmos4.sym} 1260 -60 0 0 {name=XMinvan9 model=sky130_fd_pr__nfet_01v8 w=1 l=0.15 m=1}
+C {lab_wire.sym} 130 -220 0 1 {name=l1 sig_type=std_logic lab=in_vs}
+C {divider_ff/divider_ff.sym} 950 -230 0 0 {name=x1}
+C {vsource.sym} 0 -230 0 0 {name=Vddtb value=vdd}
+C {lab_wire.sym} 0 0 0 1 {name=l2 sig_type=std_logic lab=0}
+C {lab_wire.sym} 670 -240 0 1 {name=l3 sig_type=std_logic lab=in_p}
+C {lab_wire.sym} 670 -220 0 1 {name=l4 sig_type=std_logic lab=in_n}
+C {lab_wire.sym} 1100 -240 0 1 {name=l5 sig_type=std_logic lab=out_p}
+C {lab_wire.sym} 1100 -220 0 1 {name=l6 sig_type=std_logic lab=out_n}
+C {code_shown.sym} 0 -570 0 0 {name=SPICE only_toplevel=false value=".lib /usr/local/share/sky130_fd_pr/models/sky130.lib.spice ss
+.temp 125
+.tran 0.01n 10n
+.param vdd=1.8
+.param frequency=2e9
+.save all"}
+C {vsource.sym} 790 -330 0 0 {name=Vdd value=vdd}
diff --git a/xschem/fractional_n_divider/config.tcl b/xschem/fractional_n_divider/config.tcl
new file mode 100644
index 0000000..cd7567e
--- /dev/null
+++ b/xschem/fractional_n_divider/config.tcl
@@ -0,0 +1,25 @@
+# User config
+set ::env(DESIGN_NAME) fractional_n_divider
+
+# Change if needed
+set ::env(VERILOG_FILES) [glob $::env(DESIGN_DIR)/src/*.v]
+
+set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
+
+# Fill this
+set ::env(CLOCK_PERIOD) "10"
+set ::env(CLOCK_PORT) "input_frequency"
+# set ::env(CLOCK_NET) $::env(CLOCK_PORT)
+
+set ::env(CELL_PAD) 4
+set ::env(SYNTH_MAX_FANOUT) 5
+set ::env(FP_CORE_UTIL) 49
+set ::env(PL_TARGET_DENSITY) [ expr ($::env(FP_CORE_UTIL)+5) / 100.0 ]
+
+
+set filename $::env(DESIGN_DIR)/$::env(PDK)_$::env(STD_CELL_LIBRARY)_config.tcl
+if { [file exists $filename] == 1} {
+ source $filename
+}
+
+
diff --git a/xschem/fractional_n_divider/doc/mash111.svg b/xschem/fractional_n_divider/doc/mash111.svg
new file mode 100644
index 0000000..21d6237
--- /dev/null
+++ b/xschem/fractional_n_divider/doc/mash111.svg
@@ -0,0 +1,939 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100.64648mm"
+ height="66.633179mm"
+ viewBox="0 0 100.64648 66.633179"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+ sodipodi:docname="mash111.svg">
+ <defs
+ id="defs2">
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker3781"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path3779"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker3613"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3611"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2549"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2547"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2154"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2152"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1896"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1894"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1276"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1274"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutM"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1009"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM">
+ <path
+ inkscape:connector-curvature="0"
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-3" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2154-1"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path2152-4"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1896-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1894-9" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-4"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1633-2"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1276-2"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1274-6" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutM-4"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1009-1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2549-1"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path2547-7"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1276-2-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1274-6-5" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutM-4-4"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1009-1-9"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.959798"
+ inkscape:cx="193.94913"
+ inkscape:cy="163.72649"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="2560"
+ inkscape:window-height="1052"
+ inkscape:window-x="1366"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ fit-margin-top="1"
+ fit-margin-left="1"
+ fit-margin-bottom="1"
+ fit-margin-right="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid815"
+ originx="-48.73605"
+ originy="-144.25625" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-48.736046,-86.110574)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 56.885416,122.375 v 5.29167 l 6.614583,3.96875 -6.614583,3.96875 v 5.29166 l 17.197916,-6.61458 10e-7,-5.29167 z"
+ id="path817"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838"
+ width="7.9375"
+ height="7.9374948"
+ x="63.5"
+ y="143.54167" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="65.142899"
+ y="149.36787"
+ id="text842"><tspan
+ sodipodi:role="line"
+ id="tspan840"
+ x="65.142899"
+ y="149.36787"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="68.095955"
+ y="147.22972"
+ id="text842-4"><tspan
+ sodipodi:role="line"
+ id="tspan840-9"
+ x="68.095955"
+ y="147.22972"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM);paint-order:normal"
+ d="M 63.499999,147.51042 H 52.916666 V 138.25 H 55.5625"
+ id="path862"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1276)"
+ d="m 74.083332,131.63542 h 3.96875 v 15.875 h -5.291665"
+ id="path1266"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="57.683598"
+ y="126.2355"
+ id="text842-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-3"
+ x="57.683598"
+ y="126.2355"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="57.447365"
+ y="138.90715"
+ id="text842-9-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0"
+ x="57.447365"
+ y="138.90715"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="67.936203"
+ y="132.53825"
+ id="text842-9-6-5"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-0"
+ x="67.936203"
+ y="132.53825"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A+B</tspan></text>
+ <circle
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path1382"
+ cx="66.145836"
+ cy="110.46876"
+ r="3.96875" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 63.499999,110.46875 h 5.291667"
+ id="path1384"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 66.145833,107.82292 v 5.29166"
+ id="path1384-2"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635)"
+ d="M 66.145833,125.81458 V 115.76042"
+ id="path1625"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916676;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9"
+ width="7.9375"
+ height="7.9374948"
+ x="70.114586"
+ y="94.59375" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="71.757484"
+ y="100.41994"
+ id="text842-43"><tspan
+ sodipodi:role="line"
+ id="tspan840-5"
+ x="71.757484"
+ y="100.41994"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="74.710541"
+ y="98.281799"
+ id="text842-4-1"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7"
+ x="74.710541"
+ y="98.281799"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1896)"
+ d="m 70.114583,98.5625 h -3.968751 v 6.61458"
+ id="path1886"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2154)"
+ d="M 82.020832,110.46875 V 98.5625 H 79.375"
+ id="path2144"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250)"
+ d="M 82.020832,110.46875 H 71.4375"
+ id="path2240"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336"
+ cx="82.020836"
+ cy="110.46875"
+ r="0.26458332" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.52916676;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 89.958335,122.375 v 5.29167 l 6.61458,3.96875 -6.61458,3.96875 v 5.29166 l 17.197905,-6.61458 v -5.29167 z"
+ id="path817-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916676;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-8"
+ width="7.9375"
+ height="7.9374948"
+ x="96.572914"
+ y="143.54167" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="98.215813"
+ y="149.36787"
+ id="text842-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-92"
+ x="98.215813"
+ y="149.36787"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="101.16886"
+ y="147.22972"
+ id="text842-4-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-8"
+ x="101.16886"
+ y="147.22972"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM-4);paint-order:normal"
+ d="M 96.572915,147.51042 H 85.989585 V 138.25 h 2.64583"
+ id="path862-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1276-2)"
+ d="m 107.15624,131.63542 h 3.96875 v 15.875 h -5.29166"
+ id="path1266-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="90.756516"
+ y="126.23549"
+ id="text842-9-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-3"
+ x="90.756516"
+ y="126.23549"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="90.520271"
+ y="138.90715"
+ id="text842-9-6-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-3"
+ x="90.520271"
+ y="138.90715"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="101.00911"
+ y="132.53825"
+ id="text842-9-6-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-0-3"
+ x="101.00911"
+ y="132.53825"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A+B</tspan></text>
+ <circle
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916676;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path1382-8"
+ cx="99.218765"
+ cy="110.46875"
+ r="3.96875" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 96.572915,110.46875 h 5.291665"
+ id="path1384-0"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 99.218745,107.82292 v 5.29166"
+ id="path1384-2-4"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-4)"
+ d="M 99.218745,125.81458 V 115.76042"
+ id="path1625-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-6"
+ width="7.9375"
+ height="7.9374948"
+ x="103.18752"
+ y="94.593735" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="104.83039"
+ y="100.41993"
+ id="text842-43-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-9"
+ x="104.83039"
+ y="100.41993"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="107.78345"
+ y="98.281792"
+ id="text842-4-1-0"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-6"
+ x="107.78345"
+ y="98.281792"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1896-6)"
+ d="m 103.18749,98.5625 h -3.968745 v 6.61458"
+ id="path1886-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2154-1)"
+ d="M 115.09374,110.46875 V 98.5625 h -2.64583"
+ id="path2144-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250-4)"
+ d="M 115.09374,110.46875 H 104.51041"
+ id="path2240-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-0"
+ cx="115.09377"
+ cy="110.46873"
+ r="0.26458332" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2549)"
+ d="m 78.052082,131.63542 v -6.61459 h 10.583335"
+ id="path2539"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-3"
+ cx="78.052086"
+ cy="131.63542"
+ r="0.26458332" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 95.25,110.46875 H 82.020832"
+ id="path2698"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="66.648727"
+ y="125.17243"
+ id="text842-9-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37"
+ x="66.648727"
+ y="125.17243"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="68.555138"
+ y="125.74648"
+ id="text842-9-3-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-2"
+ x="68.555138"
+ y="125.74648"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.41111112px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">OUT</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="99.745262"
+ y="125.04015"
+ id="text842-9-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5"
+ x="99.745262"
+ y="125.04015"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="101.65167"
+ y="125.6142"
+ id="text842-9-3-3-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-2-6"
+ x="101.65167"
+ y="125.6142"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.41111112px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">OUT</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.52916682;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 123.03125,122.375 v 5.29167 l 6.61458,3.96875 -6.61458,3.96875 v 5.29166 l 17.19791,-6.61458 v -5.29167 z"
+ id="path817-2-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-8-5"
+ width="7.9375"
+ height="7.9374948"
+ x="129.64584"
+ y="143.54167" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="131.28876"
+ y="149.36789"
+ id="text842-8-7"><tspan
+ sodipodi:role="line"
+ id="tspan840-92-4"
+ x="131.28876"
+ y="149.36789"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="134.24179"
+ y="147.22974"
+ id="text842-4-8-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-8-9"
+ x="134.24179"
+ y="147.22974"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM-4-4);paint-order:normal"
+ d="M 129.64583,147.51042 H 119.0625 V 138.25 h 2.64583"
+ id="path862-8-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1276-2-1)"
+ d="m 140.22916,131.63542 h 3.96875 v 15.875 h -5.29166"
+ id="path1266-6-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="123.82944"
+ y="126.23549"
+ id="text842-9-8-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-3-3"
+ x="123.82944"
+ y="126.23549"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="123.59319"
+ y="138.90715"
+ id="text842-9-6-8-5"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-3-7"
+ x="123.59319"
+ y="138.90715"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="134.08205"
+ y="132.53825"
+ id="text842-9-6-5-3-0"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-0-3-8"
+ x="134.08205"
+ y="132.53825"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A+B</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2549-1)"
+ d="m 111.12499,131.63542 v -6.61459 h 10.58334"
+ id="path2539-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="132.81819"
+ y="125.04016"
+ id="text842-9-3-6-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5-7"
+ x="132.81819"
+ y="125.04016"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="134.72461"
+ y="125.6142"
+ id="text842-9-3-3-2-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-2-6-2"
+ x="134.72461"
+ y="125.6142"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.41111112px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">OUT</tspan></text>
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-3-5"
+ cx="111.12499"
+ cy="131.63542"
+ r="0.26458332" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 132.29167,126.07917 V 110.46875 H 115.09374"
+ id="path3240"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3613)"
+ d="M 51.59375,125.02083 H 55.5625"
+ id="path3603"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3781)"
+ d="m 62.177083,110.46875 -9.26042,0 V 87.979169 l 92.604167,-2e-6"
+ id="path3771"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="49.504536"
+ y="126.09445"
+ id="text842-9-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-9"
+ x="49.504536"
+ y="126.09445"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="146.85704"
+ y="88.698441"
+ id="text842-9-3-4-0"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-9-2"
+ x="146.85704"
+ y="88.698441"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">α</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 128.32291,111.79167 1.32291,-2.64583"
+ id="path4023"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="130.17233"
+ y="109.16515"
+ id="text842-9-3-6-0"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5-1"
+ x="130.17233"
+ y="109.16515"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 89.958329,111.79167 1.32291,-2.64583"
+ id="path4023-9"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="91.807762"
+ y="109.16515"
+ id="text842-9-3-6-0-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5-1-2"
+ x="91.807762"
+ y="109.16515"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">2</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 56.885413,111.79167 1.32291,-2.64583"
+ id="path4023-9-1"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="58.73484"
+ y="109.16515"
+ id="text842-9-3-6-0-6-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5-1-2-0"
+ x="58.73484"
+ y="109.16515"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 67.468746,105.44167 h 1.322917"
+ id="path958"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 100.54166,105.44167 h 1.32292"
+ id="path958-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/xschem/fractional_n_divider/doc/mash111_pipelined.svg b/xschem/fractional_n_divider/doc/mash111_pipelined.svg
new file mode 100644
index 0000000..c03b767
--- /dev/null
+++ b/xschem/fractional_n_divider/doc/mash111_pipelined.svg
@@ -0,0 +1,1609 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="178.90163mm"
+ height="82.927132mm"
+ viewBox="0 0 178.90162 82.927132"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+ sodipodi:docname="mash111_pipelined.svg">
+ <defs
+ id="defs2">
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker3781"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path3779"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker3613"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3611"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2549"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2547"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutM"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1009"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM">
+ <path
+ inkscape:connector-curvature="0"
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-3" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutM-4"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1009-1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2549-1"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path2547-7"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker3613-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3611-6"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2549-7"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2547-4"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-9"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633-6"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-7"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633-7"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-7-6"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633-7-4"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker3613-5-9-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3611-6-7-7"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-9-0"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633-6-9"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2549-7-7"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2547-4-9"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutM-4-9"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1009-1-3"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-2"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2154-19"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2152-6"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1896-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1894-8"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-34"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-9-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-34-0"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-6-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-2-3"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker2154-19-5"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path2152-6-6"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1896-4-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1894-8-9"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker3613-5-9-3-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3611-6-7-7-0"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker2250-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2248-6"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker3613-5-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3611-6-3"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-7-4"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633-7-43"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1635-7-4-6"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path1633-7-43-0"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.4)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="314.88284"
+ inkscape:cy="122.97093"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1366"
+ inkscape:window-height="710"
+ inkscape:window-x="0"
+ inkscape:window-y="30"
+ inkscape:window-maximized="1"
+ fit-margin-top="1"
+ fit-margin-left="1"
+ fit-margin-bottom="1"
+ fit-margin-right="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid815"
+ originx="-45.759485"
+ originy="-137.81805" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-45.75948,-76.254841)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 56.885413,135.60419 v 5.29167 l 6.614583,3.96875 -6.614583,3.96875 v 5.29166 l 17.197916,-6.61458 10e-7,-5.29167 z"
+ id="path817"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM);paint-order:normal"
+ d="M 63.499993,156.77085 H 52.91666 l 3e-6,-5.29166 h 2.645834"
+ id="path862"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="57.683594"
+ y="139.46469"
+ id="text842-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-3"
+ x="57.683594"
+ y="139.46469"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="57.447361"
+ y="152.13635"
+ id="text842-9-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0"
+ x="57.447361"
+ y="152.13635"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="67.936203"
+ y="145.76746"
+ id="text842-9-6-5"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-0"
+ x="67.936203"
+ y="145.76746"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A+B</tspan></text>
+ <circle
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path1382"
+ cx="66.145828"
+ cy="101.20834"
+ r="3.96875" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 63.499995,101.20833 h 5.291667"
+ id="path1384"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 66.145829,98.562506 v 5.291654"
+ id="path1384-2"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635)"
+ d="m 66.14583,139.04377 -4e-6,-6.08541"
+ id="path1625"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250)"
+ d="M 76.729163,101.20833 H 71.437496"
+ id="path2240"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.52916676;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 121.70832,135.6042 v 5.29167 l 6.61458,3.96875 -6.61458,3.96875 v 5.29166 l 17.1979,-6.61458 v -5.29167 z"
+ id="path817-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM-4);paint-order:normal"
+ d="m 128.3229,156.77086 h -10.58333 v -5.29166 h 2.64583"
+ id="path862-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="122.50651"
+ y="139.46469"
+ id="text842-9-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-3"
+ x="122.50651"
+ y="139.46469"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="122.27027"
+ y="152.13635"
+ id="text842-9-6-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-3"
+ x="122.27027"
+ y="152.13635"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="132.75911"
+ y="145.76746"
+ id="text842-9-6-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-0-3"
+ x="132.75911"
+ y="145.76746"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A+B</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2549)"
+ d="m 78.052079,144.86461 v -6.61459 l 2.645831,1e-5"
+ id="path2539"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="66.648727"
+ y="138.40163"
+ id="text842-9-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37"
+ x="66.648727"
+ y="138.40163"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="68.555138"
+ y="138.97568"
+ id="text842-9-3-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-2"
+ x="68.555138"
+ y="138.97568"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.41111112px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">OUT</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="131.49524"
+ y="138.26936"
+ id="text842-9-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5"
+ x="131.49524"
+ y="138.26936"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="133.40164"
+ y="138.8434"
+ id="text842-9-3-3-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-2-6"
+ x="133.40164"
+ y="138.8434"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.41111112px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">OUT</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3613)"
+ d="m 48.94791,138.25002 h 6.614587"
+ id="path3603"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3781)"
+ d="m 56.885418,101.20832 h -9.26042 V 78.718749 l 164.041662,1e-5"
+ id="path3771"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="46.527969"
+ y="139.32365"
+ id="text842-9-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-9"
+ x="46.527969"
+ y="139.32365"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="213.61009"
+ y="80.24794"
+ id="text842-9-3-4-0"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-9-2"
+ x="213.61009"
+ y="80.24794"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">α</tspan></text>
+ <g
+ transform="translate(18.520826,-9.2603935)"
+ id="g4421-7">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3613-5)"
+ d="m 89.95832,138.25003 h 30.42709"
+ id="path3603-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2549-7)"
+ d="m 142.87499,144.86462 v -6.61459 l 2.64583,1e-5"
+ id="path2539-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <g
+ transform="translate(83.343729,-9.2603935)"
+ id="g4421-7-7">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3-4"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1-8"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1-5"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9-8"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0-2"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-3-6"
+ width="7.9375"
+ height="7.9374948"
+ x="62.177074"
+ y="123.69794" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="63.819973"
+ y="129.52415"
+ id="text842-1-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-1-4"
+ x="63.819973"
+ y="129.52415"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="66.773033"
+ y="127.38599"
+ id="text842-4-9-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-0-28"
+ x="66.773033"
+ y="127.38599"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path24833"
+ d="m 157.42708,95.916691 h 1.32291"
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path24833-2"
+ d="m 92.604161,95.916691 h 1.32291"
+ style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916676;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-3-6-7"
+ width="7.9375"
+ height="7.9374948"
+ x="62.177074"
+ y="110.46877" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="63.819977"
+ y="116.29497"
+ id="text842-1-6-4"><tspan
+ sodipodi:role="line"
+ id="tspan840-1-4-2"
+ x="63.819977"
+ y="116.29497"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="66.773033"
+ y="114.15683"
+ id="text842-4-9-6-5"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-0-28-2"
+ x="66.773033"
+ y="114.15683"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-7</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-9)"
+ d="m 130.96874,139.04377 -1e-5,-6.0854"
+ id="path1625-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <g
+ transform="translate(63.499985,-19.843723)"
+ id="g4421-7-0-7">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3-6-0"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1-6-1"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1-4-0"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9-6-1"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0-28-3"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-7)"
+ d="M 66.145829,110.46875 V 106.5"
+ id="path1625-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-7-6)"
+ d="m 130.96873,110.46876 v -3.96875"
+ id="path1625-2-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <g
+ transform="translate(128.32293,-19.843723)"
+ id="g4421-7-0-7-9">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3-6-0-9"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1-6-1-4"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1-4-0-5"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9-6-1-1"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0-28-3-0"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 195.79166,123.69794 v -22.4896 l -48.94793,10e-6"
+ id="path9275"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-6-9"
+ width="7.9375"
+ height="7.9374948"
+ x="50.270832"
+ y="97.239586" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="51.913715"
+ y="103.06577"
+ id="text842-43-8-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-9-7"
+ x="51.913715"
+ y="103.06577"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="54.866764"
+ y="100.92764"
+ id="text842-4-1-0-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-6-7"
+ x="54.866764"
+ y="100.92764"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 74.083327,144.8646 h 3.96875"
+ id="path14905"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 92.60416,138.25002 v 18.52083 l -30.427083,1e-5"
+ id="path15111"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-3-5-0"
+ cx="92.604141"
+ cy="138.25005"
+ r="0.26458332" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 138.90624,144.86461 h 3.96875"
+ id="path14905-9"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-3-5-0-8"
+ cx="157.42705"
+ cy="138.25005"
+ r="0.26458332" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 157.42707,138.25003 v 18.52083 l -30.42708,1e-5"
+ id="path15111-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3613-5-9-3)"
+ d="m 62.177081,101.20833 h -2.64583"
+ id="path3603-7-8-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.52916682;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 186.53125,135.6042 v 5.29167 l 6.61458,3.96875 -6.61458,3.96875 v 5.29166 l 17.1979,-6.61458 v -5.29167 z"
+ id="path817-2-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM-4-9);paint-order:normal"
+ d="M 193.14583,156.77086 H 182.5625 v -5.29166 h 2.64583"
+ id="path862-8-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="187.32942"
+ y="139.46469"
+ id="text842-9-8-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-3-7"
+ x="187.32942"
+ y="139.46469"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="187.09319"
+ y="152.13635"
+ id="text842-9-6-8-1"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-3-2"
+ x="187.09319"
+ y="152.13635"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="197.58203"
+ y="145.76746"
+ id="text842-9-6-5-3-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-0-0-3-0"
+ x="197.58203"
+ y="145.76746"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">A+B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="196.31816"
+ y="138.26936"
+ id="text842-9-3-6-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-5-1"
+ x="196.31816"
+ y="138.26936"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="198.22458"
+ y="138.8434"
+ id="text842-9-3-3-2-7"><tspan
+ sodipodi:role="line"
+ id="tspan840-3-37-2-6-5"
+ x="198.22458"
+ y="138.8434"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.41111112px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">OUT</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2549-7-7)"
+ d="m 207.69792,144.86462 v -6.61459 l 2.64583,1e-5"
+ id="path2539-4-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <g
+ transform="translate(148.16665,-9.2604005)"
+ id="g4421-7-7-7">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3-4-4"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1-8-1"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1-5-7"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9-8-1"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0-2-1"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-9-0)"
+ d="m 195.79167,139.04377 -1e-5,-6.0854"
+ id="path1625-0-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 203.72917,144.86461 h 3.96875"
+ id="path14905-9-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 222.25,138.25003 v 18.52083 l -30.42708,1e-5"
+ id="path15111-4-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <rect
+ style="opacity:1;fill:none;stroke:#4d4d4d;stroke-width:0.17638889;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.35277778, 0.35277778;stroke-dashoffset:0;paint-order:normal"
+ id="rect18510"
+ width="42.333332"
+ height="35.718746"
+ x="51.593742"
+ y="122.37502" />
+ <rect
+ style="opacity:1;fill:none;stroke:#4d4d4d;stroke-width:0.17638889;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.35277778, 0.35277778;stroke-dashoffset:0;paint-order:normal"
+ id="rect18510-8"
+ width="42.333332"
+ height="35.718746"
+ x="116.41665"
+ y="122.37503" />
+ <rect
+ style="opacity:1;fill:none;stroke:#4d4d4d;stroke-width:0.17638889;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.35277778, 0.35277778;stroke-dashoffset:0;paint-order:normal"
+ id="rect18510-5"
+ width="42.333332"
+ height="35.718746"
+ x="181.23958"
+ y="122.37503" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 219.60416,138.25003 H 222.25"
+ id="path18923"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916676;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path1382-0"
+ cx="95.249992"
+ cy="101.20836"
+ r="3.96875" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 92.604152,101.20834 h 5.291667"
+ id="path1384-8"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 95.249986,98.562522 v 5.291648"
+ id="path1384-2-1"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-0"
+ width="7.9375"
+ height="7.9374948"
+ x="99.218742"
+ y="85.333344" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="100.86164"
+ y="91.159531"
+ id="text842-43-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-2"
+ x="100.86164"
+ y="91.159531"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="103.8147"
+ y="89.021393"
+ id="text842-4-1-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-7"
+ x="103.8147"
+ y="89.021393"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1896-4)"
+ d="m 99.218736,89.302097 h -3.968751 v 6.614575"
+ id="path1886-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2154-19)"
+ d="M 111.12498,101.20834 V 89.302097 h -2.64583"
+ id="path2144-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250-6)"
+ d="m 116.41665,101.20834 h -15.875"
+ id="path2240-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-6"
+ cx="111.12501"
+ cy="101.20836"
+ r="0.26458332" />
+ <rect
+ style="opacity:1;fill:none;stroke:#4d4d4d;stroke-width:0.17638889;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.35277778, 0.35277778;stroke-dashoffset:0;paint-order:normal"
+ id="rect18510-0-8"
+ width="63.500004"
+ height="23.8125"
+ x="48.947903"
+ y="84.010429" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-0-0"
+ width="7.9375"
+ height="7.9374948"
+ x="76.729156"
+ y="97.239594" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="78.372055"
+ y="103.06578"
+ id="text842-43-2-4"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-2-11"
+ x="78.372055"
+ y="103.06578"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="81.325104"
+ y="100.92764"
+ id="text842-4-1-9-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-7-5"
+ x="81.325104"
+ y="100.92764"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250-9)"
+ d="M 91.28124,101.20834 H 85.98957"
+ id="path2240-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916676;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path1382-3"
+ cx="130.96873"
+ cy="101.20835"
+ r="3.96875" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 128.32291,101.20834 h 5.29166"
+ id="path1384-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 130.96874,98.562512 v 5.291658"
+ id="path1384-2-6"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250-7)"
+ d="m 141.55207,101.20834 h -5.29166"
+ id="path2240-15"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-6-9-0"
+ width="7.9375"
+ height="7.9374948"
+ x="115.09374"
+ y="97.239594" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="116.73664"
+ y="103.06578"
+ id="text842-43-8-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-9-7-5"
+ x="116.73664"
+ y="103.06578"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="119.68967"
+ y="100.92765"
+ id="text842-4-1-0-8-0"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-6-7-8"
+ x="119.68967"
+ y="100.92765"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3613-5-9-3-9)"
+ d="m 126.99999,101.20834 h -2.64583"
+ id="path3603-7-8-1-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path1382-0-2"
+ cx="160.07289"
+ cy="101.20837"
+ r="3.96875" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 157.42706,101.20835 h 5.29167"
+ id="path1384-8-2"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 160.0729,98.562528 v 5.291652"
+ id="path1384-2-1-6"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-0-9"
+ width="7.9375"
+ height="7.9374948"
+ x="164.04164"
+ y="85.333351" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="165.68454"
+ y="91.159538"
+ id="text842-43-2-1"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-2-0"
+ x="165.68454"
+ y="91.159538"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="168.6376"
+ y="89.0214"
+ id="text842-4-1-9-4"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-7-2"
+ x="168.6376"
+ y="89.0214"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1896-4-5)"
+ d="m 164.04165,89.302103 h -3.96875 v 6.614575"
+ id="path1886-5-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2154-19-5)"
+ d="M 175.94789,101.20835 V 89.302103 h -2.64583"
+ id="path2144-6-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250-6-8)"
+ d="m 181.23956,101.20835 h -15.875"
+ id="path2240-4-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#000000;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;paint-order:normal"
+ id="path2336-6-3"
+ cx="175.94791"
+ cy="101.20837"
+ r="0.26458332" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-9-0-0-2"
+ width="7.9375"
+ height="7.9374948"
+ x="141.55206"
+ y="97.239601" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="143.19496"
+ y="103.06579"
+ id="text842-43-2-4-8"><tspan
+ sodipodi:role="line"
+ id="tspan840-5-2-11-0"
+ x="143.19496"
+ y="103.06579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="146.14801"
+ y="100.92765"
+ id="text842-4-1-9-3-3"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-7-7-5-7"
+ x="146.14801"
+ y="100.92765"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2250-9-5)"
+ d="m 156.10415,101.20835 h -5.29167"
+ id="path2240-1-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3613-5-0)"
+ d="m 154.78124,138.25003 h 30.42709"
+ id="path3603-7-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:none;stroke:#4d4d4d;stroke-width:0.17638889;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.35277778, 0.35277778;stroke-dashoffset:0;paint-order:normal"
+ id="rect18510-0-8-9"
+ width="63.500004"
+ height="23.8125"
+ x="113.77082"
+ y="84.010429" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-7-4)"
+ d="m 66.145826,123.69794 v -3.96875"
+ id="path1625-2-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.52916682;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect838-3-6-7-8"
+ width="7.9375"
+ height="7.9374948"
+ x="126.99999"
+ y="110.46877" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="128.6429"
+ y="116.29497"
+ id="text842-1-6-4-9"><tspan
+ sodipodi:role="line"
+ id="tspan840-1-4-2-2"
+ x="128.6429"
+ y="116.29497"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">z</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ x="131.59596"
+ y="114.15683"
+ id="text842-4-9-6-5-2"><tspan
+ sodipodi:role="line"
+ id="tspan840-9-0-28-2-3"
+ x="131.59596"
+ y="114.15683"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">-3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635-7-4-6)"
+ d="m 130.96875,123.69794 v -3.96875"
+ id="path1625-2-8-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <g
+ transform="translate(35.718745,-9.2603978)"
+ id="g4421-7-3">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3-67"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1-5"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1-3"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9-5"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0-6"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <g
+ transform="translate(100.54166,-9.2603978)"
+ id="g4421-7-3-2">
+ <rect
+ y="143.54167"
+ x="63.5"
+ height="7.9374948"
+ width="7.9375"
+ id="rect838-3-67-9"
+ style="opacity:1;fill:#ffffff;stroke:#000000;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <text
+ id="text842-1-5-1"
+ y="149.36787"
+ x="65.142899"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="149.36787"
+ x="65.142899"
+ id="tspan840-1-3-2"
+ sodipodi:role="line">z</tspan></text>
+ <text
+ id="text842-4-9-5-7"
+ y="147.22972"
+ x="68.095955"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+ y="147.22972"
+ x="68.095955"
+ id="tspan840-9-0-6-0"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/xschem/fractional_n_divider/fractional_n_divider.sym b/xschem/fractional_n_divider/fractional_n_divider.sym
new file mode 100644
index 0000000..fe78b34
--- /dev/null
+++ b/xschem/fractional_n_divider/fractional_n_divider.sym
@@ -0,0 +1,40 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"
+verilog_primitive=true
+}
+V {}
+S {}
+E {}
+L 4 -130 -40 130 -40 {}
+L 4 -130 40 130 40 {}
+L 4 -130 -40 -130 40 {}
+L 4 130 -40 130 40 {}
+L 4 -150 -30 -130 -30 {}
+L 4 130 -10 150 -10 {}
+L 4 -150 -10 -130 -10 {}
+L 4 -150 10 -130 10 {}
+L 4 130 10 150 10 {}
+L 4 -150 30 -130 30 {}
+L 4 0 -60 0 -40 {}
+L 4 0 40 0 60 {}
+B 5 -152.5 -32.5 -147.5 -27.5 {name=rst dir=in }
+B 5 147.5 -12.5 152.5 -7.5 {name=output_frequency dir=out }
+B 5 -152.5 -12.5 -147.5 -7.5 {name=input_frequency dir=in }
+B 5 -152.5 7.5 -147.5 12.5 {name=data_in[25:0] dir=in }
+B 5 147.5 7.5 152.5 12.5 {name=dither_output dir=out }
+B 5 -152.5 27.5 -147.5 32.5 {name=dither_select[1:0] dir=in }
+B 5 -2.5 -62.5 2.5 -57.5 {name=VPWR dir=in }
+B 5 -2.5 57.5 2.5 62.5 {name=VGND dir=in }
+T {@symname} 32 44 0 0 0.3 0.3 {}
+T {@name} 35 68 0 0 0.2 0.2 {}
+T {rst} -125 -34 0 0 0.2 0.2 {}
+T {output_frequency} 125 -14 0 1 0.2 0.2 {}
+T {input_frequency} -125 -14 0 0 0.2 0.2 {}
+T {data_in[25:0]} -125 6 0 0 0.2 0.2 {}
+T {dither_select[1:0]} -125 26 0 0 0.2 0.2 {}
+T {dither_output} 125 6 0 1 0.2 0.2 {}
+T {VPWR} 14 -25 2 0 0.2 0.2 {}
+T {VGND} -14 25 0 0 0.2 0.2 {}
diff --git a/xschem/fractional_n_divider/pin_order.cfg b/xschem/fractional_n_divider/pin_order.cfg
new file mode 100644
index 0000000..7bc9d3d
--- /dev/null
+++ b/xschem/fractional_n_divider/pin_order.cfg
@@ -0,0 +1,13 @@
+#N
+
+#S
+
+#E
+rst
+divide_value.*
+dither_select.*
+
+#W
+dither_output
+input_frequency
+output_frequency
diff --git a/xschem/fractional_n_divider/spr.sh b/xschem/fractional_n_divider/spr.sh
new file mode 100755
index 0000000..bbea987
--- /dev/null
+++ b/xschem/fractional_n_divider/spr.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+cd ../../../openlane/openlane
+./run.sh /caravel_amsat_txrx_ic/xschem/fractional_n_divider
diff --git a/xschem/fractional_n_divider/src/fractional_n_divider.v b/xschem/fractional_n_divider/src/fractional_n_divider.v
new file mode 100644
index 0000000..20990de
--- /dev/null
+++ b/xschem/fractional_n_divider/src/fractional_n_divider.v
@@ -0,0 +1,145 @@
+// Copyright 2020 Thomas Parry
+//
+// SOME LICENSE
+//
+// Fractional N Divider
+// A fractional N divider using MASH modulation.
+//
+// The 'data_in' value divided by the modulus will be created
+// in a quantisesd number stream with high passed noise shaping
+// characteristic.
+//
+
+module fractional_n_divider
+ # (
+ parameter WIDTH_INTEGER = 10,
+ parameter WIDTH_MODULUS = 16,
+ parameter ORDER = 3,
+ parameter DATA_WIDTH = WIDTH_INTEGER+WIDTH_MODULUS
+ ) (
+ input rst,
+
+ // input and output frequencies
+ input input_frequency,
+ output output_frequency,
+
+ // a manual interface for data
+ input [DATA_WIDTH-1:0] divide_value,
+ input [1:0] dither_select,
+
+ // test outputs
+ output dither_output
+ );
+
+ // internal signals
+ wire [WIDTH_INTEGER-1:0] integer_value;
+ wire [WIDTH_MODULUS-1:0] fractional_value;
+ wire signed [ORDER-1:0] mash_output;
+ wire [WIDTH_INTEGER-1:0] count_target;
+ reg [WIDTH_INTEGER-1:0] count;
+ reg output_state;
+ reg dither;
+ reg dither_en_lfsr;
+ reg dither_in_lfsr;
+ reg dither_en_trng;
+ wire dither_out_lfsr;
+ wire dither_out_trng;
+
+
+ // split the divider values
+ assign integer_value = divide_value[DATA_WIDTH-1:WIDTH_MODULUS];
+ assign fractional_value = divide_value[WIDTH_MODULUS-1:0] + dither;
+
+ // instantiate the MASH modulator
+ mash_mod # (
+ .WIDTH_MODULUS(WIDTH_MODULUS),
+ .ORDER(ORDER)
+ ) mash_mod_inst (
+ .clk(output_frequency),
+ .rst(rst),
+ .data_in(fractional_value),
+ .data_out(mash_output)
+ );
+
+ // combine the integer and fractional components
+ assign count_target = $unsigned($signed(integer_value) + {{(WIDTH_INTEGER-ORDER){mash_output[ORDER-1]}}, mash_output});
+
+ // count until the target is met and then output a pulse
+ always @(posedge rst, posedge input_frequency) begin
+ if (rst) begin
+ count = 0;
+ output_state = 0;
+ end
+ else begin
+ if (count == count_target) begin
+ count = 0;
+ output_state = 1;
+ end
+ else begin
+ count = count + 1;
+ output_state = 0;
+ end
+ end
+ end
+ assign output_frequency = output_state;
+
+ // LFSR based dither
+ lfsr_fib lfsr_fib_inst (
+ .i_clk(output_frequency),
+ .i_reset(rst),
+ .i_ce(dither_en_lfsr),
+ .i_in(dither_in_lfsr),
+ .o_bit(dither_out_lfsr)
+ );
+
+ // TRNG based dither
+ trng trng_inst (
+ .clk(output_frequency),
+ .rst(rst),
+ .stop(!dither_en_trng),
+ .random(dither_out_trng)
+ );
+
+ // select the dither source
+ always @(posedge output_frequency) begin
+ case(dither_select)
+ 2'b00 :begin
+ dither <= 0;
+ dither_en_lfsr <= 0;
+ dither_in_lfsr <= 0;
+ dither_en_trng <= 0;
+ end
+
+ 2'b01 : begin
+ dither <= dither_out_trng;
+ dither_en_lfsr <= 0;
+ dither_in_lfsr <= 0;
+ dither_en_trng <= 1;
+ end
+
+ 2'b10 : begin
+ dither <= dither_out_lfsr;
+ dither_en_lfsr <= 1;
+ dither_in_lfsr <= 0;
+ dither_en_trng <= 0;
+ end
+
+ 2'b11 : begin
+ dither <= dither_out_lfsr;
+ dither_en_lfsr <= 1;
+ dither_in_lfsr <= 1;
+ dither_en_trng <= 0;
+ end
+
+ default : begin
+ dither <= 0;
+ dither_en_lfsr <= 0;
+ dither_in_lfsr <= 0;
+ dither_en_trng <= 0;
+ end
+ endcase
+ end
+
+ assign dither_output = dither;
+
+endmodule
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/src/lfsr_fib.v b/xschem/fractional_n_divider/src/lfsr_fib.v
new file mode 100644
index 0000000..445a423
--- /dev/null
+++ b/xschem/fractional_n_divider/src/lfsr_fib.v
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Filename: lfsr_fib.v
+//
+// Project: DSP Filtering Example Project
+//
+// Purpose:
+//
+// Creator: Dan Gisselquist, Ph.D.
+// Gisselquist Technology, LLC
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) 2017-2020, Gisselquist Technology, LLC
+//
+// This file is part of the DSP filtering set of designs.
+//
+// The DSP filtering designs are free RTL designs: you can redistribute them
+// and/or modify any of them under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation, either version 3 of
+// the License, or (at your option) any later version.
+//
+// The DSP filtering designs are distributed in the hope that they will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
+// General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with these designs. (It's in the $(ROOT)/doc directory. Run make
+// with no target there if the PDF file isn't present.) If not, see
+// <http://www.gnu.org/licenses/> for a copy.
+//
+// License: LGPL, v3, as defined and found on www.gnu.org,
+// http://www.gnu.org/licenses/lgpl.html
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+//
+`default_nettype none
+//
+module lfsr_fib(i_clk, i_reset, i_ce, i_in, o_bit);
+ parameter LN=8; // LFSR Register length/polynomial deg
+ parameter [(LN-1):0] TAPS = 8'h2d,
+ INITIAL_FILL = { { (LN-1){1'b0}}, 1'b1 };
+ //
+ input wire i_clk, i_reset, i_ce, i_in;
+ output wire o_bit;
+
+ reg [(LN-1):0] sreg;
+
+ initial sreg = INITIAL_FILL;
+ always @(posedge i_clk)
+ if (i_reset)
+ begin
+ sreg <= INITIAL_FILL;
+ end else if (i_ce)
+ begin
+ sreg[(LN-2):0] <= sreg[(LN-1):1];
+ sreg[(LN-1)] <= (^(sreg & TAPS)) ^ i_in;
+ end
+
+ assign o_bit = sreg[0];
+
+endmodule
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/src/mash_mod.v b/xschem/fractional_n_divider/src/mash_mod.v
new file mode 100644
index 0000000..012e7d0
--- /dev/null
+++ b/xschem/fractional_n_divider/src/mash_mod.v
@@ -0,0 +1,110 @@
+// Copyright 2020 Thomas Parry
+//
+// SOME LICENSE
+//
+// MASH Modulator
+// A MASH (Multi-Stage Noise Shaping) delta sigma modulator.
+//
+// The 'data_in' value divided by the modulus will be created
+// in a quantisesd number stream with high passed noise shaping
+// characteristic.
+//
+
+module mash_mod
+ # (
+ parameter WIDTH_MODULUS = 16,
+ parameter ORDER = 3
+ ) (
+ input clk,
+ input rst,
+ input [WIDTH_MODULUS-1:0] data_in,
+ output [ORDER-1:0] data_out
+ );
+
+ // internal registers
+ reg [WIDTH_MODULUS-1:0] accumulator_output[ORDER-1:0];
+ reg [WIDTH_MODULUS-1:0] accumulator_delay[ORDER-1:0];
+ reg [4*(ORDER-1)-1:0] accumulator_carry[ORDER-1:0];
+ reg signed [ORDER-1:0] sum_output[ORDER-2:0];
+ reg signed [ORDER-1:0] sum_minus[ORDER-2:0];
+ reg signed [ORDER-1:0] sum_delay[ORDER-2:0];
+
+
+ genvar i;
+ generate
+ for (i = 0; i < ORDER; i = i + 1) begin
+
+ // form the accumulators
+ if (i == 0) begin
+ always @(posedge rst, posedge clk) begin
+ if (rst) begin
+ accumulator_carry[i][0] <= 0;
+ accumulator_output[i] <= 0;
+ accumulator_delay[i] <= 0;
+ end
+ else begin
+ {accumulator_carry[i][0], accumulator_output[i]} <= data_in + accumulator_output[i];
+ accumulator_delay[i] <= accumulator_output[i];
+ end
+ end
+ end
+ else begin
+ always @(posedge rst, posedge clk) begin
+ if (rst) begin
+ accumulator_carry[i][0] <= 0;
+ accumulator_output[i] <= 0;
+ accumulator_delay[i] <= 0;
+ end
+ else begin
+ {accumulator_carry[i][0], accumulator_output[i]} <= accumulator_delay[i-1] + accumulator_output[i];
+ accumulator_delay[i] <= accumulator_output[i];
+ end
+ end
+ end
+
+ // pipeline the carrys
+ always @(posedge rst, posedge clk) begin
+ if (rst) begin
+ accumulator_carry[i][4*(ORDER-1)-1:1] <= 0;
+ end
+ else begin
+ accumulator_carry[i][4*(ORDER-1)-1:1] <= accumulator_carry[i][4*(ORDER-1)-2:0];
+ end
+ end
+
+ // form the summers
+ if (i < ORDER-2) begin
+ always @(posedge rst, posedge clk) begin
+ if (rst) begin
+ sum_delay[i] <= 0;
+ sum_minus[i] <= 0;
+ sum_output[i] <= 0;
+ end
+ else begin
+ sum_delay[i] <= sum_output[i+1];
+ sum_minus[i] <= sum_output[i+1] - sum_delay[i];
+ sum_output[i] <= sum_minus[i] + {2'b00, accumulator_carry[i][4*(ORDER-1-i)-1]};
+ end
+ end
+ end
+ else if (i == ORDER-2) begin
+ always @(posedge rst, posedge clk) begin
+ if (rst) begin
+ sum_delay[i] <= 0;
+ sum_minus[i] <= 0;
+ sum_output[i] <= 0;
+ end
+ else begin
+ sum_delay[i] <= {2'b00, accumulator_carry[ORDER-1][0]};
+ sum_minus[i] <= {2'b00, accumulator_carry[ORDER-1][0]} - sum_delay[i];
+ sum_output[i] <= sum_minus[i] + {2'b00, accumulator_carry[i][4*(ORDER-1-i)-1]};
+ end
+ end
+ end
+ end
+ endgenerate
+
+ // pass the output
+ assign data_out = sum_output[0];
+
+endmodule
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/src/trng.v b/xschem/fractional_n_divider/src/trng.v
new file mode 100644
index 0000000..770a46d
--- /dev/null
+++ b/xschem/fractional_n_divider/src/trng.v
@@ -0,0 +1,67 @@
+//
+// Written by StanOverflow
+// https://stackoverflow.com/questions/14497877/how-to-implement-a-pseudo-hardware-random-number-generator
+//
+// TRNG
+// A true random number generator.
+//
+// A Galois Ring Oscillators(GARO) which is similar to an LFSR but
+// completely asynchronous and will oscillate chaotically.
+// The output bit will be sampled randomly.
+//
+
+
+module trng (
+ input clk,
+ input rst,
+ input stop,
+ output random
+ );
+
+ (* keep *) wire [31:1] stage;
+ reg meta1, meta2;
+
+ assign random = meta2;
+
+ always@(posedge clk or posedge rst)
+ if (rst) begin
+ meta1 <= 1'b0;
+ meta2 <= 1'b0;
+ end else begin
+ meta1 <= stage[1];
+ meta2 <= meta1;
+ end
+
+ assign stage[1] = ~&{stage[2] ^ stage[1],stop};
+ assign stage[2] = !stage[3];
+ assign stage[3] = !stage[4] ^ stage[1];
+ assign stage[4] = !stage[5] ^ stage[1];
+ assign stage[5] = !stage[6] ^ stage[1];
+ assign stage[6] = !stage[7] ^ stage[1];
+ assign stage[7] = !stage[8];
+ assign stage[8] = !stage[9] ^ stage[1];
+ assign stage[9] = !stage[10] ^ stage[1];
+ assign stage[10] = !stage[11];
+ assign stage[11] = !stage[12];
+ assign stage[12] = !stage[13] ^ stage[1];
+ assign stage[13] = !stage[14];
+ assign stage[14] = !stage[15] ^ stage[1];
+ assign stage[15] = !stage[16] ^ stage[1];
+ assign stage[16] = !stage[17] ^ stage[1];
+ assign stage[17] = !stage[18];
+ assign stage[18] = !stage[19];
+ assign stage[19] = !stage[20] ^ stage[1];
+ assign stage[20] = !stage[21] ^ stage[1];
+ assign stage[21] = !stage[22];
+ assign stage[22] = !stage[23];
+ assign stage[23] = !stage[24];
+ assign stage[24] = !stage[25];
+ assign stage[25] = !stage[26];
+ assign stage[26] = !stage[27] ^ stage[1];
+ assign stage[27] = !stage[28];
+ assign stage[28] = !stage[29];
+ assign stage[29] = !stage[30];
+ assign stage[30] = !stage[31];
+ assign stage[31] = !stage[1];
+
+endmodule
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/tests/.gitignore b/xschem/fractional_n_divider/tests/.gitignore
new file mode 100644
index 0000000..4feb603
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/.gitignore
@@ -0,0 +1,9 @@
+__pycache__/
+sim_build/
+coverage/
+*.dat
+coverage*.yml
+coverage*.xml
+*.vcd
+results.xml
+*.pyc
diff --git a/xschem/fractional_n_divider/tests/fractional_n_divider/Makefile b/xschem/fractional_n_divider/tests/fractional_n_divider/Makefile
new file mode 100644
index 0000000..a7ff03a
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/fractional_n_divider/Makefile
@@ -0,0 +1,27 @@
+TOPLEVEL_LANG ?= verilog
+
+PWD=$(shell pwd)
+
+# add the models to path
+export PYTHONPATH := $(PWD)/../../models:$(PYTHONPATH)
+
+ifeq ($(TOPLEVEL_LANG),verilog)
+ VERILOG_SOURCES = $(PWD)/../../src/fractional_n_divider.v
+ VERILOG_SOURCES += $(PWD)/../../src/mash_mod.v
+ VERILOG_SOURCES += $(PWD)/../../src/lfsr_fib.v
+ VERILOG_SOURCES += $(PWD)/../../src/trng.v
+else
+ $(error "A valid value (verilog) was not provided for TOPLEVEL_LANG=$(TOPLEVEL_LANG)")
+endif
+
+EXTRA_ARGS := --trace --trace-structs --coverage
+SIM := verilator
+
+TOPLEVEL := fractional_n_divider
+MODULE := test_fractional_n_divider
+
+include $(shell cocotb-config --makefiles)/Makefile.sim
+
+# ( \
+# . $(PWD)/../../../../env/venv/bin/activate \
+# )
diff --git a/xschem/fractional_n_divider/tests/fractional_n_divider/dump.vcd.gz b/xschem/fractional_n_divider/tests/fractional_n_divider/dump.vcd.gz
new file mode 100644
index 0000000..a36fe94
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/fractional_n_divider/dump.vcd.gz
Binary files differ
diff --git a/xschem/fractional_n_divider/tests/fractional_n_divider/test_fractional_n_divider.py b/xschem/fractional_n_divider/tests/fractional_n_divider/test_fractional_n_divider.py
new file mode 100644
index 0000000..34c4738
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/fractional_n_divider/test_fractional_n_divider.py
@@ -0,0 +1,74 @@
+import cocotb
+from cocotb.triggers import Timer, RisingEdge, ClockCycles
+from cocotb.clock import Clock
+import cocotb_coverage
+import random
+import fractional_n_divider_model
+from test_fractional_n_divider_coverage import *
+
+
+# hardware constants
+WIDTH_INTEGER = 10
+WIDTH_MODULUS = 16
+ORDER = 3
+
+
+# test constants
+NUMBER_TESTS = 64
+NUMBER_SAMPLES = 2**16
+
+
+@cocotb.test()
+async def coverage(dut):
+ """
+ Test the output against the model with random input values
+ """
+
+ # create the model
+ model = fractional_n_divider_model.fractional_n_divider_model(integer_width=WIDTH_INTEGER, modulus_width=WIDTH_MODULUS, order=ORDER)
+
+ # create an object that views the DUT state
+ status = FractionalNStatus(dut)
+
+ # start clock
+ clock = Clock(dut.input_frequency, 2)
+ cocotb.fork(clock.start())
+
+ # loop through the tests
+ for test in range(NUMBER_TESTS):
+
+ # reset the DUT
+ dut.rst = 1
+ dut.divide_value = 0
+ await ClockCycles(dut.input_frequency, 8)
+ dut.rst = 0
+ model.reset()
+
+ # create some random data
+ divide_value = random.random() * (2**WIDTH_INTEGER - 0.5*2**ORDER - 1)
+ divide_value_fp = int(divide_value * 2**WIDTH_MODULUS)
+ dut._log.info("Test number %d, input value = %f" % (test+1, divide_value))
+
+ # change the divide value
+ model.set_divide_value(divide_value)
+
+ # update the divider value into the DUT
+ status.update()
+ output_data = await new_divider_value(dut, status, divide_value_fp)
+ await RisingEdge(dut.input_frequency)
+
+ # loop through some clock cycles calculating samples
+ for sample in range(NUMBER_SAMPLES):
+
+ # check the output matches the model
+ model_data = model.update()
+ output_data = int(dut.output_frequency)
+ assert(output_data == model_data), 'Model = %x, Simulation = %x' % (model_data, output_data)
+
+ await RisingEdge(dut.input_frequency)
+
+
+ # print and export coverage report
+ coverage_db.report_coverage(dut._log.info, bins=True)
+ coverage_db.export_to_xml(filename="coverage_fractional_n_divider.xml")
+ coverage_db.export_to_yaml(filename="coverage_fractional_n_divider.yml")
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/tests/fractional_n_divider/test_fractional_n_divider_coverage.py b/xschem/fractional_n_divider/tests/fractional_n_divider/test_fractional_n_divider_coverage.py
new file mode 100644
index 0000000..55ffb9d
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/fractional_n_divider/test_fractional_n_divider_coverage.py
@@ -0,0 +1,39 @@
+import cocotb
+from cocotb.triggers import RisingEdge, ReadOnly
+from cocotb_coverage.coverage import *
+
+# auxiliary relation function to define bins matching within a range
+range_relation = lambda val_, bin_ : bin_[0] <= val_ <= bin_[1]
+
+class FractionalNStatus():
+ """
+ Object representing modulator status
+ """
+ def __init__(self, dut):
+ self.dut = dut
+
+ # @cocotb.coroutine
+ def update(self):
+ self.divide_value = int(self.dut.divide_value)
+
+
+#functional coverage - check that the DUT is getting suitably interacted with
+FractionalNCoverage = coverage_section (
+ CoverPoint(
+ name = "top.divide_value",
+ xf = lambda dut, status, divide_value : status.divide_value,
+ rel = range_relation,
+ bins = [(0,int(2**10*1/3)-1), (int(2**10*1/3),int(2**10*2/3)-1), (int(2**10*2/3),int(2**10-1))],
+ bins_labels = ["low", "med", "high"]
+ )
+)
+
+
+# procedure of processing data
+# coverage sampled here - at each function call
+@FractionalNCoverage
+async def new_divider_value(dut, status, divide_value):
+
+ # provide new data and read old
+ dut.divide_value <= divide_value
+ await RisingEdge(dut.input_frequency)
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/tests/fractional_n_divider_tb.sch b/xschem/fractional_n_divider/tests/fractional_n_divider_tb.sch
new file mode 100644
index 0000000..4bd9615
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/fractional_n_divider_tb.sch
@@ -0,0 +1,225 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N -2340 -90 -2340 60 {lab=input_frequency}
+N -2340 -90 -150 -90 {lab=input_frequency}
+N -2250 -70 -150 -70 {lab=data_in[25:0]}
+N -580 -60 -580 170 {lab=data_in[1]}
+N -510 -60 -510 170 {lab=data_in[0]}
+N -440 -40 -440 170 {lab=dither_select[1]}
+N -370 -40 -370 170 {lab=dither_select[0]}
+N 470 -90 470 90 {lab=output_frequency}
+N 150 -90 470 -90 {lab=output_frequency}
+N -2340 120 -2340 280 {lab=0}
+N 360 280 470 280 {lab=0}
+N 470 150 470 280 {lab=0}
+N -580 230 -580 280 {lab=0}
+N -510 230 -510 280 {lab=0}
+N -440 230 -440 280 {lab=0}
+N -370 230 -370 280 {lab=0}
+N 150 -70 360 -70 {lab=dither_output}
+N 360 -70 360 90 {lab=dither_output}
+N 360 150 360 280 {lab=0}
+N -430 -50 -150 -50 {lab=dither_select[1:0]}
+N -720 -60 -720 170 {lab=data_in[3]}
+N -650 -60 -650 170 {lab=data_in[2]}
+N -720 230 -720 280 {lab=0}
+N -650 230 -650 280 {lab=0}
+N -860 -60 -860 170 {lab=data_in[5]}
+N -790 -60 -790 170 {lab=data_in[4]}
+N -860 230 -860 280 {lab=0}
+N -790 230 -790 280 {lab=0}
+N -1000 -60 -1000 170 {lab=data_in[7]}
+N -930 -60 -930 170 {lab=data_in[6]}
+N -1000 230 -1000 280 {lab=0}
+N -930 230 -930 280 {lab=0}
+N -1140 -60 -1140 170 {lab=data_in[9]}
+N -1070 -60 -1070 170 {lab=data_in[8]}
+N -1140 230 -1140 280 {lab=0}
+N -1070 230 -1070 280 {lab=0}
+N -1280 -60 -1280 170 {lab=data_in[11]}
+N -1210 -60 -1210 170 {lab=data_in[10]}
+N -1280 230 -1280 280 {lab=0}
+N -1210 230 -1210 280 {lab=0}
+N -1420 -60 -1420 170 {lab=data_in[13]}
+N -1350 -60 -1350 170 {lab=data_in[12]}
+N -1420 230 -1420 280 {lab=0}
+N -1350 230 -1350 280 {lab=0}
+N -1560 -60 -1560 170 {lab=data_in[15]}
+N -1490 -60 -1490 170 {lab=data_in[14]}
+N -1560 230 -1560 280 {lab=0}
+N -1490 230 -1490 280 {lab=0}
+N -1700 -60 -1700 170 {lab=data_in[17]}
+N -1630 -60 -1630 170 {lab=data_in[16]}
+N -1700 230 -1700 280 {lab=0}
+N -1630 230 -1630 280 {lab=0}
+N -1840 -60 -1840 170 {lab=data_in[19]}
+N -1770 -60 -1770 170 {lab=data_in[18]}
+N -1840 230 -1840 280 {lab=0}
+N -1770 230 -1770 280 {lab=0}
+N -1980 -60 -1980 170 {lab=data_in[21]}
+N -1910 -60 -1910 170 {lab=data_in[20]}
+N -1980 230 -1980 280 {lab=0}
+N -1910 230 -1910 280 {lab=0}
+N -2120 -60 -2120 170 {lab=data_in[23]}
+N -2050 -60 -2050 170 {lab=data_in[22]}
+N -2120 230 -2120 280 {lab=0}
+N -2050 230 -2050 280 {lab=0}
+N -2260 -60 -2260 170 {lab=data_in[25]}
+N -2190 -60 -2190 170 {lab=data_in[24]}
+N -2260 230 -2260 280 {lab=0}
+N -2190 230 -2190 280 {lab=0}
+N -650 280 -580 280 {lab=0}
+N -580 280 -510 280 {lab=0}
+N -510 280 -440 280 {lab=0}
+N -440 280 -370 280 {lab=0}
+N -370 280 360 280 {lab=0}
+N -790 280 -720 280 {lab=0}
+N -720 280 -650 280 {lab=0}
+N -930 280 -860 280 {lab=0}
+N -860 280 -790 280 {lab=0}
+N -1070 280 -1000 280 {lab=0}
+N -1000 280 -930 280 {lab=0}
+N -1210 280 -1140 280 {lab=0}
+N -1140 280 -1070 280 {lab=0}
+N -1350 280 -1280 280 {lab=0}
+N -1280 280 -1210 280 {lab=0}
+N -1490 280 -1420 280 {lab=0}
+N -1420 280 -1350 280 {lab=0}
+N -1630 280 -1560 280 {lab=0}
+N -1560 280 -1490 280 {lab=0}
+N -1770 280 -1700 280 {lab=0}
+N -1700 280 -1630 280 {lab=0}
+N -1910 280 -1840 280 {lab=0}
+N -1840 280 -1770 280 {lab=0}
+N -2050 280 -1980 280 {lab=0}
+N -1980 280 -1910 280 {lab=0}
+N -2190 280 -2120 280 {lab=0}
+N -2120 280 -2050 280 {lab=0}
+N -2340 280 -2260 280 {lab=0}
+N -2260 280 -2190 280 {lab=0}
+N -190 -110 -150 -110 {lab=0}
+N -190 -110 -190 280 {lab=0}
+C {fractional_n_divider/fractional_n_divider.sym} 0 -80 0 0 {name=x1}
+C {vsource.sym} -2340 90 0 0 {name=V1 value=3}
+C {bus_connect_nolab.sym} -580 -60 0 0 {name=r1}
+C {lab_wire.sym} -430 -70 0 1 {name=l1 sig_type=std_logic lab=data_in[25:0]}
+C {vsource.sym} -370 200 0 0 {name=V2 value=dither_select_0}
+C {vsource.sym} -440 200 0 0 {name=V3 value=1.8}
+C {vsource.sym} -510 200 0 0 {name=V4 value=1.8}
+C {vsource.sym} -580 200 0 0 {name=V5 value=1.8}
+C {lab_wire.sym} -580 150 3 1 {name=l2 sig_type=std_logic lab=data_in[1]}
+C {bus_connect_nolab.sym} -510 -60 0 0 {name=r2}
+C {lab_wire.sym} -510 150 3 1 {name=l3 sig_type=std_logic lab=data_in[0]}
+C {bus_connect_nolab.sym} -440 -40 0 0 {name=r3}
+C {lab_wire.sym} -440 150 3 1 {name=l4 sig_type=std_logic lab=dither_select[1]}
+C {bus_connect_nolab.sym} -370 -40 0 0 {name=r4}
+C {lab_wire.sym} -370 150 3 1 {name=l5 sig_type=std_logic lab=dither_select[0]}
+C {bus_connect_nolab.sym} -370 -40 0 0 {name=r5}
+C {res.sym} 470 120 0 0 {name=R1
+value=1k
+footprint=1206
+device=resistor
+m=1}
+C {lab_wire.sym} 150 -90 0 1 {name=l6 sig_type=std_logic lab=output_frequency}
+C {lab_wire.sym} -430 -90 0 1 {name=l7 sig_type=std_logic lab=input_frequency}
+C {gnd.sym} -2340 280 0 0 {name=l8 lab=0}
+C {code.sym} 350 -310 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+*.option PARHIER=LOCAL RUNLVL=6 post MODMONTE=1 warn maxwarns=400
+*.option ITL4=20000 ITL5=0
+* .option sampling_method = SRS
+* .option method=gear
+
+* simple transistor model
+.MODEL cmosn NMOS LEVEL=1 VT0=0.7 KP=110U GAMMA=0.4 LAMBDA=0.04 PHI=0.7
+.MODEL cmosp PMOS LEVEL=1 VT0=-0.7 KP=50U GAMMA=0.57 LAMBDA=0.05 PHI=0.8
+
+* load design and library
+.include /home/tom/repositories/amsat_txrx_ic/design/fractional_n_divider/yosys/prim_cells_cmos.mod
+
+.temp 30
+.tran 1e-9 1e-6 uic
+"}
+C {res.sym} 360 120 0 0 {name=R2
+value=1k
+footprint=1206
+device=resistor
+m=1}
+C {lab_wire.sym} -430 -50 0 1 {name=l9 sig_type=std_logic lab=dither_select[1:0]}
+C {lab_wire.sym} 150 -70 0 1 {name=l10 sig_type=std_logic lab=dither_output}
+C {bus_connect_nolab.sym} -720 -60 0 0 {name=r6}
+C {vsource.sym} -650 200 0 0 {name=V6 value=1.8}
+C {vsource.sym} -720 200 0 0 {name=V7 value=1.8}
+C {lab_wire.sym} -720 150 3 1 {name=l12 sig_type=std_logic lab=data_in[3]}
+C {bus_connect_nolab.sym} -650 -60 0 0 {name=r7}
+C {lab_wire.sym} -650 150 3 1 {name=l13 sig_type=std_logic lab=data_in[2]}
+C {bus_connect_nolab.sym} -860 -60 0 0 {name=r8}
+C {vsource.sym} -790 200 0 0 {name=V8 value=1.8}
+C {vsource.sym} -860 200 0 0 {name=V9 value=1.8}
+C {lab_wire.sym} -860 150 3 1 {name=l15 sig_type=std_logic lab=data_in[5]}
+C {bus_connect_nolab.sym} -790 -60 0 0 {name=r9}
+C {lab_wire.sym} -790 150 3 1 {name=l16 sig_type=std_logic lab=data_in[4]}
+C {bus_connect_nolab.sym} -1000 -60 0 0 {name=r10}
+C {vsource.sym} -930 200 0 0 {name=V10 value=1.8}
+C {vsource.sym} -1000 200 0 0 {name=V11 value=1.8}
+C {lab_wire.sym} -1000 150 3 1 {name=l18 sig_type=std_logic lab=data_in[7]}
+C {bus_connect_nolab.sym} -930 -60 0 0 {name=r11}
+C {lab_wire.sym} -930 150 3 1 {name=l19 sig_type=std_logic lab=data_in[6]}
+C {bus_connect_nolab.sym} -1140 -60 0 0 {name=r12}
+C {vsource.sym} -1070 200 0 0 {name=V12 value=1.8}
+C {vsource.sym} -1140 200 0 0 {name=V13 value=1.8}
+C {lab_wire.sym} -1140 150 3 1 {name=l11 sig_type=std_logic lab=data_in[9]}
+C {bus_connect_nolab.sym} -1070 -60 0 0 {name=r13}
+C {lab_wire.sym} -1070 150 3 1 {name=l14 sig_type=std_logic lab=data_in[8]}
+C {bus_connect_nolab.sym} -1280 -60 0 0 {name=r14}
+C {vsource.sym} -1210 200 0 0 {name=V14 value=1.8}
+C {vsource.sym} -1280 200 0 0 {name=V15 value=1.8}
+C {lab_wire.sym} -1280 150 3 1 {name=l17 sig_type=std_logic lab=data_in[11]}
+C {bus_connect_nolab.sym} -1210 -60 0 0 {name=r15}
+C {lab_wire.sym} -1210 150 3 1 {name=l20 sig_type=std_logic lab=data_in[10]}
+C {bus_connect_nolab.sym} -1420 -60 0 0 {name=r16}
+C {vsource.sym} -1350 200 0 0 {name=V16 value=1.8}
+C {vsource.sym} -1420 200 0 0 {name=V17 value=1.8}
+C {lab_wire.sym} -1420 150 3 1 {name=l21 sig_type=std_logic lab=data_in[13]}
+C {bus_connect_nolab.sym} -1350 -60 0 0 {name=r17}
+C {lab_wire.sym} -1350 150 3 1 {name=l22 sig_type=std_logic lab=data_in[12]}
+C {bus_connect_nolab.sym} -1560 -60 0 0 {name=r18}
+C {vsource.sym} -1490 200 0 0 {name=V18 value=1.8}
+C {vsource.sym} -1560 200 0 0 {name=V19 value=1.8}
+C {lab_wire.sym} -1560 150 3 1 {name=l23 sig_type=std_logic lab=data_in[15]}
+C {bus_connect_nolab.sym} -1490 -60 0 0 {name=r19}
+C {lab_wire.sym} -1490 150 3 1 {name=l24 sig_type=std_logic lab=data_in[14]}
+C {bus_connect_nolab.sym} -1700 -60 0 0 {name=r20}
+C {vsource.sym} -1630 200 0 0 {name=V20 value=1.8}
+C {vsource.sym} -1700 200 0 0 {name=V21 value=1.8}
+C {lab_wire.sym} -1700 150 3 1 {name=l25 sig_type=std_logic lab=data_in[17]}
+C {bus_connect_nolab.sym} -1630 -60 0 0 {name=r21}
+C {lab_wire.sym} -1630 150 3 1 {name=l26 sig_type=std_logic lab=data_in[16]}
+C {bus_connect_nolab.sym} -1840 -60 0 0 {name=r22}
+C {vsource.sym} -1770 200 0 0 {name=V22 value=1.8}
+C {vsource.sym} -1840 200 0 0 {name=V23 value=1.8}
+C {lab_wire.sym} -1840 150 3 1 {name=l27 sig_type=std_logic lab=data_in[19]}
+C {bus_connect_nolab.sym} -1770 -60 0 0 {name=r23}
+C {lab_wire.sym} -1770 150 3 1 {name=l28 sig_type=std_logic lab=data_in[18]}
+C {bus_connect_nolab.sym} -1980 -60 0 0 {name=r24}
+C {vsource.sym} -1910 200 0 0 {name=V24 value=1.8}
+C {vsource.sym} -1980 200 0 0 {name=V25 value=1.8}
+C {lab_wire.sym} -1980 150 3 1 {name=l29 sig_type=std_logic lab=data_in[21]}
+C {bus_connect_nolab.sym} -1910 -60 0 0 {name=r25}
+C {lab_wire.sym} -1910 150 3 1 {name=l30 sig_type=std_logic lab=data_in[20]}
+C {bus_connect_nolab.sym} -2120 -60 0 0 {name=r26}
+C {vsource.sym} -2050 200 0 0 {name=V26 value=1.8}
+C {vsource.sym} -2120 200 0 0 {name=V27 value=1.8}
+C {lab_wire.sym} -2120 150 3 1 {name=l31 sig_type=std_logic lab=data_in[23]}
+C {bus_connect_nolab.sym} -2050 -60 0 0 {name=r27}
+C {lab_wire.sym} -2050 150 3 1 {name=l32 sig_type=std_logic lab=data_in[22]}
+C {bus_connect_nolab.sym} -2260 -60 0 0 {name=r28}
+C {vsource.sym} -2190 200 0 0 {name=V28 value=1.8}
+C {vsource.sym} -2260 200 0 0 {name=V29 value=1.8}
+C {lab_wire.sym} -2260 150 3 1 {name=l33 sig_type=std_logic lab=data_in[25]}
+C {bus_connect_nolab.sym} -2190 -60 0 0 {name=r29}
+C {lab_wire.sym} -2190 150 3 1 {name=l34 sig_type=std_logic lab=data_in[24]}
diff --git a/xschem/fractional_n_divider/tests/lfsr_fib/Makefile b/xschem/fractional_n_divider/tests/lfsr_fib/Makefile
new file mode 100644
index 0000000..2607c24
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/lfsr_fib/Makefile
@@ -0,0 +1,21 @@
+TOPLEVEL_LANG ?= verilog
+
+PWD=$(shell pwd)
+
+# add the models to path
+export PYTHONPATH := $(PWD)/../../models:$(PYTHONPATH)
+
+ifeq ($(TOPLEVEL_LANG),verilog)
+ VERILOG_SOURCES = $(PWD)/../../lfsr_fib.v
+else
+ $(error "A valid value (verilog) was not provided for TOPLEVEL_LANG=$(TOPLEVEL_LANG)")
+endif
+
+EXTRA_ARGS := --trace --trace-structs --coverage
+SIM := verilator
+
+TOPLEVEL := lfsr_fib
+MODULE := test_lfsr_fib
+
+
+include $(shell cocotb-config --makefiles)/Makefile.sim
diff --git a/xschem/fractional_n_divider/tests/lfsr_fib/test_lfsr_fib.py b/xschem/fractional_n_divider/tests/lfsr_fib/test_lfsr_fib.py
new file mode 100644
index 0000000..9f7e6e6
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/lfsr_fib/test_lfsr_fib.py
@@ -0,0 +1,61 @@
+import cocotb
+from cocotb.triggers import Timer, RisingEdge, ClockCycles
+from cocotb.clock import Clock
+import cocotb_coverage
+import random
+import lfsr_fib_model
+from test_lfsr_fib_coverage import *
+
+
+
+# test constants
+NUMBER_TESTS = 4096
+
+
+@cocotb.test()
+async def coverage(dut):
+ """
+ Test the output against the model with random input values
+ """
+
+ # create the model
+ model = lfsr_fib_model.lfsr_fib_model()
+
+ # create an object that views the DUT state
+ status = LFSRFibStatus(dut)
+
+ # start clock
+ clock = Clock(dut.i_clk, 2)
+ cocotb.fork(clock.start())
+
+ # reset the DUT
+ dut.i_reset = 1
+ dut.i_in = 0
+ dut.i_ce = 0
+ await ClockCycles(dut.i_clk, 8)
+ dut.i_reset = 0
+ model.reset()
+ await ClockCycles(dut.i_clk, 1)
+
+ # loop through the tests
+ for test in range(NUMBER_TESTS):
+
+ # create some random data
+ input_data = { "in" : random.randint(0,1),
+ "ce" : random.randint(0,1)}
+
+ dut._log.info("Test number %d, input value = %d, clock enable = %d" % (test+1, input_data["in"], input_data["ce"]))
+
+ # update the data in the DUT
+ status.update()
+ output_data = await process_data(dut, status, input_data)
+
+ # check the output matches the model
+ model_data = model.update(input_data)
+ assert(output_data == model_data), 'Model = %x, Simulation = %x' % (model_data, output_data)
+
+
+ # print and export coverage report
+ coverage_db.report_coverage(dut._log.info, bins=True)
+ coverage_db.export_to_xml(filename="coverage_lfsr_fib.xml")
+ coverage_db.export_to_yaml(filename="coverage_lfsr_fib.yml")
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/tests/lfsr_fib/test_lfsr_fib_coverage.py b/xschem/fractional_n_divider/tests/lfsr_fib/test_lfsr_fib_coverage.py
new file mode 100644
index 0000000..96ba06e
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/lfsr_fib/test_lfsr_fib_coverage.py
@@ -0,0 +1,57 @@
+import cocotb
+from cocotb.triggers import RisingEdge, ReadOnly
+from cocotb_coverage.coverage import *
+
+# auxiliary relation function to define bins matching within a range
+range_relation = lambda val_, bin_ : bin_[0] <= val_ <= bin_[1]
+
+class LFSRFibStatus():
+ """
+ Object representing modulator status
+ """
+ def __init__(self, dut):
+ self.dut = dut
+
+ # @cocotb.coroutine
+ def update(self):
+ self.i_in = int(self.dut.i_in.value)
+ self.i_ce = int(self.dut.i_ce.value)
+ self.o_bit = int(self.dut.o_bit)
+
+
+#functional coverage - check if all FIFO states have been reached
+#and check if read or write operation performed in every FIFO state
+LFSRFibCoverage = coverage_section (
+ CoverPoint(
+ name = "top.i_in",
+ xf = lambda dut, status, input_data : status.i_in,
+ bins = [0, 1],
+ bins_labels = ["low", "high"]
+ ),
+ CoverPoint(
+ name = "top.i_ce",
+ xf = lambda dut, status, input_data : status.i_ce,
+ bins = [0, 1],
+ bins_labels = ["low", "high"]
+ ),
+ CoverPoint(
+ name = "top.o_bit",
+ xf = lambda dut, status, input_data : status.o_bit,
+ bins = [0, 1],
+ bins_labels = ["low", "high"]
+ )
+)
+
+
+# procedure of processing data
+# coverage sampled here - at each function call
+@LFSRFibCoverage
+async def process_data(dut, status, input_data):
+
+ # provide new data and read old
+ dut.i_in <= input_data["in"]
+ dut.i_ce <= input_data["ce"]
+ await RisingEdge(dut.i_clk)
+ output_data = int(dut.o_bit)
+
+ return output_data
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/tests/mash_mod/Makefile b/xschem/fractional_n_divider/tests/mash_mod/Makefile
new file mode 100644
index 0000000..3ef6cf3
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/mash_mod/Makefile
@@ -0,0 +1,21 @@
+TOPLEVEL_LANG ?= verilog
+
+PWD=$(shell pwd)
+
+# add the models to path
+export PYTHONPATH := $(PWD)/../../models:$(PYTHONPATH)
+
+ifeq ($(TOPLEVEL_LANG),verilog)
+ VERILOG_SOURCES = $(PWD)/../../mash_mod.v
+else
+ $(error "A valid value (verilog) was not provided for TOPLEVEL_LANG=$(TOPLEVEL_LANG)")
+endif
+
+EXTRA_ARGS := --trace --trace-structs --coverage
+SIM := verilator
+
+TOPLEVEL := mash_mod
+MODULE := test_mash_mod
+
+
+include $(shell cocotb-config --makefiles)/Makefile.sim
diff --git a/xschem/fractional_n_divider/tests/mash_mod/test_mash_mod.py b/xschem/fractional_n_divider/tests/mash_mod/test_mash_mod.py
new file mode 100644
index 0000000..fcbc6d2
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/mash_mod/test_mash_mod.py
@@ -0,0 +1,73 @@
+import cocotb
+from cocotb.triggers import Timer, RisingEdge, ClockCycles
+from cocotb.clock import Clock
+import cocotb_coverage
+import random
+import mash_mod_model
+from test_mash_mod_coverage import *
+
+
+# hardware constants
+WIDTH_MODULUS = 16
+ORDER = 3
+
+
+# test constants
+NUMBER_TESTS = 256
+NUMBER_SAMPLES = 1024
+DELAY = 4*(ORDER-1)+1
+
+
+
+@cocotb.test()
+async def coverage(dut):
+ """
+ Test the output against the model with random input values
+ """
+
+ # create the model
+ model = mash_mod_model.mash_mod_model(modulus_width=WIDTH_MODULUS, order=ORDER)
+
+ # create an object that views the DUT state
+ status = MASHModStatus(dut)
+
+ # start clock
+ clock = Clock(dut.clk, 2)
+ cocotb.fork(clock.start())
+
+ # loop through the tests
+ for test in range(NUMBER_TESTS):
+
+ # create some random data
+ input_data = random.randint(0,2**WIDTH_MODULUS-1)
+ input_data_frac = input_data / 2**WIDTH_MODULUS
+ dut._log.info("Test number %d, input value = %f" % (test+1, input_data_frac))
+
+ # reset the DUT
+ dut.rst = 1
+ dut.data_in = 0
+ await ClockCycles(dut.clk, 8)
+ dut.rst = 0
+ model.reset()
+
+ # update the data in the DUT
+ status.update()
+ output_data = await process_data(dut, status, input_data)
+
+
+ # loop through some clock cycles calculating samples
+ for sample in range(NUMBER_SAMPLES):
+
+ # update the data in the DUT
+ status.update()
+ output_data = await process_data(dut, status, input_data)
+
+ # check the output matches the model
+ model_data = model.update(input_data_frac)
+ assert(output_data == model_data), 'Model = %x, Simulation = %x' % (int(model_data), output_data)
+
+
+ # print and export coverage report
+ coverage_db.report_coverage(dut._log.info, bins=True)
+ coverage_db.export_to_xml(filename="coverage_mash_mod.xml")
+ coverage_db.export_to_yaml(filename="coverage_mash_mod.yml")
\ No newline at end of file
diff --git a/xschem/fractional_n_divider/tests/mash_mod/test_mash_mod_coverage.py b/xschem/fractional_n_divider/tests/mash_mod/test_mash_mod_coverage.py
new file mode 100644
index 0000000..a8be862
--- /dev/null
+++ b/xschem/fractional_n_divider/tests/mash_mod/test_mash_mod_coverage.py
@@ -0,0 +1,55 @@
+import cocotb
+from cocotb.triggers import RisingEdge, ReadOnly
+from cocotb_coverage.coverage import *
+
+# auxiliary relation function to define bins matching within a range
+range_relation = lambda val_, bin_ : bin_[0] <= val_ <= bin_[1]
+
+class MASHModStatus():
+ """
+ Object representing modulator status
+ """
+ def __init__(self, dut):
+ self.dut = dut
+
+ # @cocotb.coroutine
+ def update(self):
+ self.data_in = int(self.dut.data_in.value)
+ self.data_out = int(self.dut.data_out)
+
+
+#functional coverage - check if all FIFO states have been reached
+#and check if read or write operation performed in every FIFO state
+MASHModCoverage = coverage_section (
+ CoverPoint(
+ name = "top.data_in",
+ xf = lambda dut, status, input_data : status.data_in,
+ rel = range_relation,
+ bins = [(0,int(2**16*1/3)-1), (int(2**16*1/3),int(2**16*2/3)-1), (int(2**16*2/3),int(2**16-1))],
+ bins_labels = ["low", "med", "high"]
+ ),
+ CoverPoint(
+ name = "top.data_out",
+ xf = lambda dut, status, input_data : status.data_out,
+ rel = range_relation,
+ bins = [(0,int(2**3*1/3)-1), (int(2**3*1/3),int(2**3*2/3)-1), (int(2**3*2/3),int(2**3-1))],
+ bins_labels = ["low", "med", "high"]
+ )
+)
+
+
+# procedure of processing data
+# coverage sampled here - at each function call
+@MASHModCoverage
+async def process_data(dut, status, input_data):
+
+ # provide new data and read old
+ dut.data_in <= input_data
+ await RisingEdge(dut.clk)
+ output_data = int(dut.data_out)
+
+ # convert to signed
+ if output_data > 2**2:
+ output_data -= 2**3
+
+ return output_data
\ No newline at end of file
diff --git a/xschem/pll_collection/pll_collection.sch b/xschem/pll_collection/pll_collection.sch
new file mode 100644
index 0000000..6b69bb0
--- /dev/null
+++ b/xschem/pll_collection/pll_collection.sch
@@ -0,0 +1,120 @@
+v { version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 640 -210 700 -210 { lab=#net1}
+N 640 -190 700 -190 { lab=#net2}
+N 900 -210 960 -210 { lab=#net3}
+N 900 -190 960 -190 { lab=#net4}
+N 1160 -210 1220 -210 { lab=#net5}
+N 1160 -190 1220 -190 { lab=#net6}
+N 1420 -210 1480 -210 { lab=#net7}
+N 1420 -190 1480 -190 { lab=#net8}
+N 1680 -210 1740 -210 { lab=#net9}
+N 1680 -190 1740 -190 { lab=#net10}
+N 1840 -550 1840 -260 { lab=vdd}
+N 1580 -550 1840 -550 { lab=vdd}
+N 210 -100 210 0 { lab=vss}
+N 1580 0 1840 0 { lab=vss}
+N 1840 -140 1840 0 { lab=vss}
+N 210 -430 210 -350 { lab=#net11}
+N 210 -550 210 -490 { lab=vdd}
+N 540 -550 540 -430 { lab=vdd}
+N 540 -320 540 -260 { lab=#net12}
+N 540 -320 800 -320 { lab=#net12}
+N 800 -320 800 -260 { lab=#net12}
+N 540 -400 560 -400 { lab=vdd}
+N 560 -550 560 -400 { lab=vdd}
+N 210 -460 230 -460 { lab=vdd}
+N 230 -550 230 -460 { lab=vdd}
+N 100 -400 500 -400 { lab=en_n}
+N 100 -460 100 -400 { lab=en_n}
+N 100 -460 170 -460 { lab=en_n}
+N 1060 -550 1060 -260 { lab=vdd}
+N 1320 -550 1320 -260 { lab=vdd}
+N 1580 -550 1580 -260 { lab=vdd}
+N 1580 -140 1580 0 { lab=vss}
+N 1320 -140 1320 0 { lab=vss}
+N 1060 -140 1060 0 { lab=vss}
+N 800 -140 800 0 { lab=vss}
+N 540 -140 540 0 { lab=vss}
+N 0 -550 210 -550 { lab=vdd}
+N 0 0 210 0 { lab=vss}
+N 0 -220 80 -220 { lab=ctl}
+N 1940 -210 2100 -210 { lab=#net13}
+N 0 -460 100 -460 { lab=en_n}
+N 2080 -190 2100 -190 { lab=#net14}
+N 2080 -190 2080 -140 { lab=#net14}
+N 2080 -140 2300 -140 { lab=#net14}
+N 2300 -190 2300 -140 { lab=#net14}
+N 2280 -190 2300 -190 { lab=#net14}
+N 2280 -210 2360 -210 { lab=#net15}
+N 2340 -190 2360 -190 { lab=#net16}
+N 2340 -190 2340 -140 { lab=#net16}
+N 2340 -140 2560 -140 { lab=#net16}
+N 2560 -190 2560 -140 { lab=#net16}
+N 2540 -190 2560 -190 { lab=#net16}
+N 2540 -210 2620 -210 { lab=#net17}
+N 2700 -210 2780 -210 { lab=out}
+N 230 -550 540 -550 { lab=vdd}
+N 540 -370 540 -320 { lab=#net12}
+N 540 -550 560 -550 { lab=vdd}
+N 210 -550 230 -550 { lab=vdd}
+N 560 -550 1060 -550 { lab=vdd}
+N 1060 -550 1320 -550 { lab=vdd}
+N 1320 -550 1580 -550 { lab=vdd}
+N 1320 0 1580 0 { lab=vss}
+N 1060 0 1320 0 { lab=vss}
+N 800 0 1060 0 { lab=vss}
+N 540 0 800 0 { lab=vss}
+N 210 0 540 0 { lab=vss}
+N 340 -210 440 -210 { lab=#net18}
+N 340 -190 430 -190 { lab=#net19}
+N 430 -190 440 -190 { lab=#net19}
+C {vco_2-4GHz/vco_2-4GHz.sym} 210 -220 0 0 {name=xvco}
+C {divider_cml/divider_cml.sym} 540 -200 0 0 {name=x1}
+C {divider_cml/divider_cml.sym} 800 -200 0 0 {name=x2}
+C {divider_ff/divider_ff.sym} 1060 -200 0 0 {name=x3}
+C {divider_ff/divider_ff.sym} 1320 -200 0 0 {name=x4}
+C {divider_ff/divider_ff.sym} 1580 -200 0 0 {name=x5}
+C {divider_ff/divider_ff.sym} 1840 -200 0 0 {name=x6}
+C {sky130_fd_pr/pfet_01v8_lvt.sym} 190 -460 0 0 {name=M1
+L=0.35
+W=7
+ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
+as="'W * 0.29'" ps="'2 * (W + 0.29)'"
+nrd="'0.29 / W'" nrs="'0.29 / W'"
+sa=0 sb=0 sd=0
+nf=1 mult=128
+model=pfet_01v8_lvt
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8_lvt.sym} 520 -400 0 0 {name=M2
+L=0.35
+W=7
+ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
+as="'W * 0.29'" ps="'2 * (W + 0.29)'"
+nrd="'0.29 / W'" nrs="'0.29 / W'"
+sa=0 sb=0 sd=0
+nf=1 mult=128
+model=pfet_01v8_lvt
+spiceprefix=X
+}
+C {iopin.sym} 0 -550 0 1 {name=p1 lab=vdd}
+C {iopin.sym} 0 0 0 1 {name=p2 lab=vss}
+C {ipin.sym} 0 -220 0 0 {name=p3 lab=ctl}
+C {opin.sym} 2780 -210 0 0 {name=p4 lab=out}
+C {ipin.sym} 0 -460 0 0 {name=p6 lab=en_n}
+C {sky130_stdcells/dfxbp_1.sym} 2190 -200 0 0 {name=x7 VGND=vss VNB=vss VPB=vdd VPWR=vdd prefix=sky130_fd_sc_hd__ }
+C {sky130_stdcells/dfxbp_1.sym} 2450 -200 0 0 {name=x8 VGND=vss VNB=vss VPB=vdd VPWR=vdd prefix=sky130_fd_sc_hd__ }
+C {sky130_stdcells/bufinv_16.sym} 2660 -210 0 0 {name=x9 VGND=vss VNB=vss VPB=vdd VPWR=vdd prefix=sky130_fd_sc_hd__ }
+C {lab_pin.sym} 340 -310 0 1 {name=l2 sig_type=std_logic lab=ph1_p}
+C {lab_pin.sym} 340 -290 0 1 {name=l3 sig_type=std_logic lab=ph1_n}
+C {lab_pin.sym} 340 -160 0 1 {name=l6 sig_type=std_logic lab=ph4_p}
+C {lab_pin.sym} 340 -140 0 1 {name=l7 sig_type=std_logic lab=ph4_n}
+C {lab_pin.sym} 1940 -190 0 1 {name=l8 sig_type=std_logic lab=ff_nc}
+C {sky130_stdcells/tapvpwrvgnd_1.sym} 2040 -450 0 0 {name=x10[2:1] VGND=vss VPWR=vdd prefix=sky130_fd_sc_hd__ }
+C {lab_pin.sym} 340 -260 0 1 {name=l1 sig_type=std_logic lab=ph2_p}
+C {lab_pin.sym} 340 -240 0 1 {name=l4 sig_type=std_logic lab=ph2_n}
diff --git a/xschem/pll_collection/pll_collection.sym b/xschem/pll_collection/pll_collection.sym
new file mode 100644
index 0000000..85b3d95
--- /dev/null
+++ b/xschem/pll_collection/pll_collection.sym
@@ -0,0 +1,30 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"
+}
+V {}
+S {}
+E {}
+L 4 -130 -40 130 -40 {}
+L 4 -130 40 130 40 {}
+L 4 -130 -40 -130 40 {}
+L 4 130 -40 130 40 {}
+L 4 -150 -10 -130 -10 {}
+L 4 -150 10 -130 10 {}
+L 4 130 -10 150 -10 {}
+L 7 0 -60 0 -40 {}
+L 7 0 40 0 60 {}
+B 5 -2.5 -62.5 2.5 -57.5 {name=vdd dir=inout name=p1 }
+B 5 -152.5 -12.5 -147.5 -7.5 {name=en_n dir=in name=p6 }
+B 5 -152.5 7.5 -147.5 12.5 {name=ctl dir=in name=p3 }
+B 5 147.5 -12.5 152.5 -7.5 {name=out dir=out name=p4 }
+B 5 -2.5 57.5 2.5 62.5 {name=vss dir=inout name=p2 }
+T {@symname} 29 54 0 0 0.3 0.3 {}
+T {@name} 45 78 0 0 0.2 0.2 {}
+T {vdd} 16 -35 0 1 0.2 0.2 {}
+T {en_n} -125 -14 0 0 0.2 0.2 {}
+T {ctl} -125 6 0 0 0.2 0.2 {}
+T {out} 125 -14 0 1 0.2 0.2 {}
+T {vss} -6 35 2 1 0.2 0.2 {}
diff --git a/xschem/pll_collection/test/pll_collection_tb.sch b/xschem/pll_collection/test/pll_collection_tb.sch
new file mode 100644
index 0000000..f33bef0
--- /dev/null
+++ b/xschem/pll_collection/test/pll_collection_tb.sch
@@ -0,0 +1,86 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 0 -90 -0 -0 { lab=GND}
+N -0 -0 380 0 { lab=GND}
+N 400 -110 400 -0 { lab=GND}
+N 380 -0 400 -0 { lab=GND}
+N 400 -280 400 -230 { lab=#net1}
+N -0 -280 400 -280 { lab=#net1}
+N -0 -280 -0 -150 { lab=#net1}
+N 100 -60 100 -0 { lab=GND}
+N 180 -60 180 -0 { lab=GND}
+N 180 -160 180 -120 { lab=ctl}
+N 180 -160 250 -160 { lab=ctl}
+N 100 -180 250 -180 { lab=en_n}
+N 100 -180 100 -120 { lab=en_n}
+N 400 0 740 0 { lab=GND}
+N 740 -30 740 0 { lab=GND}
+N 740 -40 740 -30 { lab=GND}
+N 550 -180 740 -180 { lab=outp}
+N 740 -180 740 -100 { lab=outp}
+C {pll_collection/pll_collection.sym} 400 -170 0 0 {name=x1}
+C {vsource.sym} 0 -120 0 0 {name=Vvdd value=1.8}
+C {vsource.sym} 100 -90 0 0 {name=V2 value=0.0}
+C {vsource.sym} 180 -90 0 0 {name=V3 value=0.2}
+C {capa.sym} 740 -70 0 0 {name=C2
+m=1
+value=1p
+footprint=1206
+device="ceramic capacitor"}
+C {lab_wire.sym} 550 -180 0 1 {name=l1 sig_type=std_logic lab=outp}
+C {gnd.sym} 0 0 0 0 {name=l3 lab=GND}
+C {code.sym} 630 -390 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+.param temp=27
+.temp 27
+
+*.save v(ip) v(in) v(vctl) i(vdd)
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM04W5p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15.spice
+
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W3p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p50.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM02W3p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p35.spice
+
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p25.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p25.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aF04W2p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aF04W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p25.spice
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF06W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF04W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF02W0p84L0p15.spice
+
+
+.lib sky130_fd_pr/models/sky130.lib.spice tt
+*.include sky130_fd_pr/models/corners/tt.spice
+
+
+.tran 0.01n 1000n uic
+.param vdd=1.8
+.param vctl=0.2
+"}
+C {lab_wire.sym} 100 -180 0 1 {name=l4 sig_type=std_logic lab=en_n}
+C {lab_wire.sym} 180 -160 0 1 {name=l5 sig_type=std_logic lab=ctl}
+C {code.sym} 460 -390 0 0 {name=STDCELL_MODELS
+only_toplevel=true
+place=end
+format=tcleval(@value\\)
+value="[sky130_models]"
+}
diff --git a/xschem/pll_collection/test/sky130_fd_pr b/xschem/pll_collection/test/sky130_fd_pr
new file mode 120000
index 0000000..e705079
--- /dev/null
+++ b/xschem/pll_collection/test/sky130_fd_pr
@@ -0,0 +1 @@
+/home/tom/skywater/skywater-pdk/libraries/sky130_fd_pr/latest
\ No newline at end of file
diff --git a/xschem/rf_bufferdiff/rf_bufferdiff.sch b/xschem/rf_bufferdiff/rf_bufferdiff.sch
new file mode 100644
index 0000000..d760603
--- /dev/null
+++ b/xschem/rf_bufferdiff/rf_bufferdiff.sch
@@ -0,0 +1,50 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 70 -30 70 0 {lab=vss}
+N 70 0 220 0 {lab=vss}
+N 220 -30 220 0 {lab=vss}
+N 70 -60 220 -60 {lab=vss}
+N 70 -140 70 -90 {lab=out_p}
+N 220 -270 220 -200 {lab=vdd}
+N 0 -270 220 -270 {lab=vdd}
+N 70 -270 70 -200 {lab=vdd}
+N 0 -120 70 -120 {lab=out_p}
+N 220 -140 220 -90 {lab=out_n}
+N 220 -120 290 -120 {lab=out_n}
+N 0 -170 40 -170 {lab=vss}
+N 240 -170 280 -170 {lab=vss}
+N 0 0 70 0 {lab=vss}
+N 150 -60 150 0 {lab=vss}
+N 20 -60 30 -60 { lab=in_p}
+N 260 -60 290 -60 { lab=in_n}
+N 0 -60 20 -60 { lab=in_p}
+N 40 -170 50 -170 { lab=vss}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 50 -60 0 0 {name=XMdiffp model=sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15
+
+}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 240 -60 0 1 {name=XMdiffn model=sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15
+}
+C {iopin.sym} 0 -270 0 1 {name=p1 lab=vdd}
+C {iopin.sym} 0 0 0 1 {name=p2 lab=vss}
+C {ipin.sym} 0 -60 0 0 {name=p3 lab=in_p}
+C {ipin.sym} 290 -60 0 1 {name=p4 lab=in_n}
+C {opin.sym} 0 -120 0 1 {name=p5 lab=out_p}
+C {opin.sym} 290 -120 0 0 {name=p6 lab=out_n}
+C {lab_wire.sym} 0 -170 0 1 {name=l1 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 240 -170 0 1 {name=l2 sig_type=std_logic lab=vss}
+C {sky130_fd_pr/res_xhigh_po.sym} 70 -170 0 0 {name=Rp
+W=2.85
+L=5.00
+model=res_xhigh_po
+spiceprefix=X
+mult=1}
+C {sky130_fd_pr/res_xhigh_po.sym} 220 -170 0 1 {name=Rn
+W=2.85
+L=5.00
+model=res_xhigh_po
+spiceprefix=X
+mult=1}
diff --git a/xschem/rf_bufferdiff/rf_bufferdiff.sym b/xschem/rf_bufferdiff/rf_bufferdiff.sym
new file mode 100644
index 0000000..0232662
--- /dev/null
+++ b/xschem/rf_bufferdiff/rf_bufferdiff.sym
@@ -0,0 +1,31 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"
+}
+V {}
+S {}
+E {}
+L 4 -50 -40 -50 40 {}
+L 4 18 -10 60 -10 {}
+L 4 18 10 60 10 {}
+L 4 -70 -10 -50 -10 {}
+L 4 -70 10 -50 10 {}
+L 4 -50 -40 40 0 {}
+L 4 -50 40 40 0 {}
+L 7 0 -40 0 -18 {}
+L 7 0 18 0 40 {}
+B 5 -2.5 -42.5 2.5 -37.5 {name=vdd dir=inout }
+B 5 57.5 -12.5 62.5 -7.5 {name=out_n dir=out }
+B 5 57.5 7.5 62.5 12.5 {name=out_p dir=out }
+B 5 -72.5 -12.5 -67.5 -7.5 {name=in_p dir=in }
+B 5 -72.5 7.5 -67.5 12.5 {name=in_n dir=in }
+B 5 -2.5 37.5 2.5 42.5 {name=vss dir=inout }
+T {@symname} 13.5 34 0 0 0.3 0.3 {}
+T {@name} 15 58 0 0 0.2 0.2 {}
+T {vdd} -4 -45 0 1 0.2 0.2 {}
+T {out_n} 45 -24 0 1 0.2 0.2 {}
+T {out_p} 45 16 0 1 0.2 0.2 {}
+T {in_p} -45 -14 0 0 0.2 0.2 {}
+T {in_n} -45 6 0 0 0.2 0.2 {}
+T {vss} -26 45 2 1 0.2 0.2 {}
diff --git a/xschem/rf_bufferdiff/test/rf_bufferdiff_tb.sch b/xschem/rf_bufferdiff/test/rf_bufferdiff_tb.sch
new file mode 100644
index 0000000..e792ddc
--- /dev/null
+++ b/xschem/rf_bufferdiff/test/rf_bufferdiff_tb.sch
@@ -0,0 +1,63 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N -90 10 -90 90 {lab=in_n}
+N -90 10 -10 10 {lab=in_n}
+N -150 -10 -150 90 {lab=in_p}
+N -150 -10 -10 -10 {lab=in_p}
+N -260 30 -10 30 {lab=#net1}
+N -300 -30 -300 0 {lab=#net1}
+N -300 -30 -230 -30 {lab=#net1}
+N -230 -30 -230 30 {lab=#net1}
+N -300 60 -300 180 {lab=0}
+N -300 180 60 180 {lab=0}
+N 60 40 60 180 {lab=0}
+N -90 150 -90 180 {lab=0}
+N -150 150 -150 180 {lab=0}
+N -320 30 -300 30 {lab=0}
+N -320 30 -320 180 {lab=0}
+N -320 180 -300 180 {lab=0}
+N -300 -80 -300 -30 {lab=#net1}
+N -440 -10 -440 180 {lab=0}
+N -440 180 -320 180 {lab=0}
+N -440 -190 -440 -70 {lab=#net2}
+N -440 -190 60 -190 {lab=#net2}
+N 60 -190 60 -40 {lab=#net2}
+N -300 -190 -300 -140 {lab=#net2}
+N 60 -190 460 -190 {lab=#net2}
+N 460 -190 460 -80 {lab=#net2}
+N 360 -190 360 20 {lab=#net2}
+N 460 -20 460 180 {lab=0}
+N 60 180 460 180 {lab=0}
+N 360 80 360 180 {lab=0}
+N 360 50 380 50 {lab=0}
+N 380 50 380 180 {lab=0}
+N 460 -50 480 -50 {lab=0}
+N 480 -50 480 180 {lab=0}
+N 460 180 480 180 {lab=0}
+N 120 -10 280 -10 {lab=out_n}
+N 280 -50 280 -10 {lab=out_n}
+N 280 -50 420 -50 {lab=out_n}
+N 120 10 280 10 {lab=out_p}
+N 280 10 280 50 {lab=out_p}
+N 280 50 320 50 {lab=out_p}
+C {rf_bufferdiff/rf_bufferdiff.sym} 60 0 0 0 {name=x1}
+C {nmos4.sym} -280 30 0 1 {name=XM1 model=sky130_fd_pr__nfet_01v8 w=1 l=0.5 m=1}
+C {vsource.sym} -90 120 0 0 {name=Vin_n value="pulse(1.8 0 0 41.67p 41.67p 166.68p 416.7p 0)"}
+C {vsource.sym} -150 120 0 0 {name=Vin_p value="pulse(0 1.8 0 41.67p 41.67p 166.68p 416.7p 0)"}
+C {isource.sym} -300 -110 0 0 {name=I0 value=1u}
+C {vsource.sym} -440 -40 0 0 {name=V1 value=1.8}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 340 50 0 0 {name=XM2 model=sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p15 m=1}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 440 -50 0 0 {name=XM3 model=sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p15 m=1}
+C {lab_wire.sym} -440 180 0 1 {name=l1 sig_type=std_logic lab=0}
+C {lab_wire.sym} -90 -10 0 1 {name=l2 sig_type=std_logic lab=in_p}
+C {lab_wire.sym} -90 10 0 1 {name=l3 sig_type=std_logic lab=in_n}
+C {lab_wire.sym} 120 -10 0 1 {name=l4 sig_type=std_logic lab=out_n}
+C {lab_wire.sym} 120 10 0 1 {name=l5 sig_type=std_logic lab=out_p}
+C {code_shown.sym} -440 240 0 0 {name=CONTROL value="
+.param temp=27
+.lib sky130_fd_pr/models/sky130.lib.spice tt
+.tran 0.001n 10n uic
+"}
diff --git a/xschem/vco_2-4GHz/doc/.ipynb_checkpoints/Transfer Function-checkpoint.ipynb b/xschem/vco_2-4GHz/doc/.ipynb_checkpoints/Transfer Function-checkpoint.ipynb
new file mode 100644
index 0000000..7d0618a
--- /dev/null
+++ b/xschem/vco_2-4GHz/doc/.ipynb_checkpoints/Transfer Function-checkpoint.ipynb
@@ -0,0 +1,138 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 2.4 GHz VCO Transfer Function\n",
+ "Plot the transfer function of the VCO over different corners and temperatures"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext autoreload\n",
+ "%autoreload 2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "from IPython.display import display, Markdown\n",
+ "import SpiceInterface\n",
+ "import h5py"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Read in the results file"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[5.88235294e+09 5.88235294e+09 5.88235294e+09 5.26315789e+09\n",
+ " 5.26315789e+09 5.00000000e+09 5.00000000e+09 4.98449179e+09\n",
+ " 4.57174073e+09 5.25427244e+09 4.31128989e+09 4.04942136e+09\n",
+ " 4.11495216e+09 3.57142857e+09 2.92397661e+09 2.90729831e+09\n",
+ " 2.30414747e+09 1.85185185e+09 1.61290323e+09 1.44927536e+09\n",
+ " 1.31578947e+09 1.19047619e+09 1.09890110e+09 1.05263158e+09\n",
+ " 1.03092784e+09 1.02040816e+09 1.03092784e+09 1.02040816e+09\n",
+ " 1.02040816e+09 1.03092784e+09 1.02040816e+09 1.02040816e+09]\n"
+ ]
+ }
+ ],
+ "source": [
+ "filename = '../tests/vco_2-4GHz_corners.hdf5'\n",
+ "with h5py.File(filename, 'r') as file:\n",
+ "\n",
+ " # grab the data keys\n",
+ " group_list = list(file.keys())\n",
+ " \n",
+ " # get the indexing data\n",
+ " indexing = {}\n",
+ " for key in list(file['indexing']):\n",
+ " indexing[key] = list(file['indexing'][key])\n",
+ " \n",
+ " \n",
+ " \n",
+ " # get the simulation data\n",
+ " data = list(file['data']) \n",
+ " print(data[0][0][0])\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Plot the transfer function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'vdd' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m<ipython-input-14-32a5b334c682>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mvctl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvdd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvctl_num\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mNameError\u001b[0m: name 'vdd' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "vctl = np.linspace(0, 1.8, 32)\n",
+ "\n",
+ "for i in range(len(data)):\n",
+ " for j in range(len(data[0])):\n",
+ " for k in range(len(data[0][0])):\n",
+ " \n",
+ " plt.plot(vctl, data[i][j][k], 'b', alpha=0.5)\n",
+ "\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/xschem/vco_2-4GHz/doc/Transfer Function.ipynb b/xschem/vco_2-4GHz/doc/Transfer Function.ipynb
new file mode 100644
index 0000000..0da7e1f
--- /dev/null
+++ b/xschem/vco_2-4GHz/doc/Transfer Function.ipynb
@@ -0,0 +1,149 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 2.4 GHz VCO Transfer Function\n",
+ "Plot the transfer function of the VCO over different corners and temperatures"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext autoreload\n",
+ "%autoreload 2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "from IPython.display import display, Markdown\n",
+ "import SpiceInterface\n",
+ "import h5py"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Read in the results file"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[5.88235294e+09 5.88235294e+09 5.88235294e+09 5.26315789e+09\n",
+ " 5.26315789e+09 5.00000000e+09 5.00000000e+09 4.54545455e+09\n",
+ " 4.34782609e+09 4.16666667e+09 3.84615385e+09 3.57142857e+09\n",
+ " 3.33333333e+09 2.94117647e+09 2.63157895e+09 2.32558140e+09\n",
+ " 2.08333333e+09 1.85185185e+09 1.61290323e+09 1.44927536e+09\n",
+ " 1.31578947e+09 1.19047619e+09 1.09890110e+09 1.05263158e+09\n",
+ " 1.03092784e+09 1.02040816e+09 1.03092784e+09 1.02040816e+09\n",
+ " 1.02040816e+09 1.03092784e+09 1.02040816e+09 1.02040816e+09]\n"
+ ]
+ }
+ ],
+ "source": [
+ "filename = '../tests/vco_2-4GHz_corners.hdf5'\n",
+ "with h5py.File(filename, 'r') as file:\n",
+ "\n",
+ " # grab the data keys\n",
+ " group_list = list(file.keys())\n",
+ " \n",
+ " # get the indexing data\n",
+ " indexing = {}\n",
+ " for key in list(file['indexing']):\n",
+ " indexing[key] = list(file['indexing'][key])\n",
+ " \n",
+ " \n",
+ " \n",
+ " # get the simulation data\n",
+ " data = list(file['data']) \n",
+ " print(data[0][0][0])\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Plot the transfer function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "vctl = np.linspace(0, 1.8, 32)\n",
+ "\n",
+ "for i in range(len(data)):\n",
+ " for j in range(len(data[0])):\n",
+ " for k in range(len(data[0][0])):\n",
+ " \n",
+ " plt.plot(vctl, [_/1e9 for _ in data[i][j][k]], 'b', alpha=0.4)\n",
+ "\n",
+ "plt.ylabel('Frequency (GHz)')\n",
+ "plt.xlabel('Control Voltage (V)')\n",
+ "plt.title('VCO Transfer Function')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/xschem/vco_2-4GHz/tests/.ipynb_checkpoints/Corner Transfer Function-checkpoint.ipynb b/xschem/vco_2-4GHz/tests/.ipynb_checkpoints/Corner Transfer Function-checkpoint.ipynb
new file mode 100644
index 0000000..7fec515
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/.ipynb_checkpoints/Corner Transfer Function-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/xschem/vco_2-4GHz/tests/Corner Transfer Function.ipynb b/xschem/vco_2-4GHz/tests/Corner Transfer Function.ipynb
new file mode 100644
index 0000000..888c372
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/Corner Transfer Function.ipynb
@@ -0,0 +1,32 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/xschem/vco_2-4GHz/tests/b3v32check.log b/xschem/vco_2-4GHz/tests/b3v32check.log
new file mode 100644
index 0000000..569f6a3
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/b3v32check.log
@@ -0,0 +1,4 @@
+BSIM3 Model (Supports: v3.2, v3.2.2, v3.2.3, v3.2.4)
+Parameter Checking.
+Model = xvco.x1.xmprimpos:nemod.3
+W = 3e-05, L = 1.8e-07, M = 1
diff --git a/xschem/vco_2-4GHz/tests/bsim4v5.out b/xschem/vco_2-4GHz/tests/bsim4v5.out
new file mode 100644
index 0000000..fd29aae
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/bsim4v5.out
@@ -0,0 +1,5 @@
+BSIM4v5: Berkeley Short Channel IGFET Model-4
+Developed by Xuemei (Jane) Xi, Mohan Dunga, Prof. Ali Niknejad and Prof. Chenming Hu in 2003.
+
+++++++++++ BSIM4v5 PARAMETER CHECKING BELOW ++++++++++
+Model = xvco.x1.xxmprimpos.xsky130_fd_pr__rf_nfet_01v8_bm04w5p00l0p15:sky130_fd_pr__rf_nfet_01v8_bm04__model.6
diff --git a/xschem/vco_2-4GHz/tests/plot_transfer.py b/xschem/vco_2-4GHz/tests/plot_transfer.py
new file mode 100644
index 0000000..2829915
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/plot_transfer.py
@@ -0,0 +1,91 @@
+import matplotlib.pyplot as plt
+from pathlib import Path
+import numpy as np
+import os
+import re
+import h5py
+import subprocess
+from spyci import spyci
+
+import SpiceInterface
+
+
+
+# read the generated netlist.
+netlist_path = os.environ.get('HOME') + '/.xschem/simulations/vco_2-4GHz_tb.spice'
+
+# create the object
+spice_interface_obj = SpiceInterface.SpiceInterface(netlist_path=netlist_path)
+
+# only save the Ip node to avoid using lots of memory
+# spice_interface_obj.simulation['netlist'] = re.sub(r'\*\*\*\* end user architecture code', r'.save v(ip)\n**** end user architecture code', spice_interface_obj.simulation['netlist'])
+
+
+
+# define the sweeps
+vctl_num = 32
+vdd = [1.8]
+
+corners = ['tt', 'sf', 'ff', 'ss', 'fs', 'll', 'hh', 'hl', 'lh']
+temp = [-40, 27, 125]
+
+# corners = ['tt']
+# temp = [25]
+
+
+vctl = np.linspace(0, vdd, vctl_num)
+freq = []
+
+
+
+hdf_file = h5py.File('vco_2-4GHz_corners.hdf5', 'w')
+
+# prepopulate the data
+values = np.zeros((len(vdd), len(corners), len(temp), vctl_num))
+
+for vdd_i, current_vdd in enumerate(vdd):
+ for corner_i, current_corner in enumerate(corners):
+
+ # set corner
+ spice_interface_obj.set_corner(current_corner)
+
+ for temp_i, current_temp in enumerate(temp):
+
+ # set temperature
+ spice_interface_obj.set_temp(current_temp)
+
+ for vctl_i, current_vctl in enumerate(vctl):
+
+ # set the parameters for this simulation run
+ parameters = [['vctl', current_vctl], ['vdd', current_vdd]]
+ spice_interface_obj.set_parameters(parameters)
+
+ try:
+
+ # run the simulation
+ spice_interface_obj.run_simulation()
+
+ # add the calculated frequency to the array
+ values[vdd_i][corner_i][temp_i][vctl_i] = spice_interface_obj.measure_frequency(node='ip', measure_after_factor=0.5)
+
+ print('Frequency = %0.3f MHz' % (values[vdd_i][corner_i][temp_i][vctl_i]/1e6))
+
+ except:
+
+ # enter a None data for failed simulation step
+ values[vdd_i][corner_i][temp_i][vctl_i] = None
+
+# save the data to file
+hdf_file.create_dataset('data', data=values)
+
+# save the indexing information
+indexing_group = hdf_file.create_group('indexing')
+indexing = [['vdd', vdd], ['corner', corners], ['temp', temp], ['vctl', vctl]]
+
+# save each of the index information
+for index in indexing:
+ if type(index[1][0]) == str:
+ ascii_list = [_.encode("ascii", "ignore") for _ in index[1]]
+ indexing_group.create_dataset(index[0], (len(ascii_list),1),'S10', ascii_list)
+ else:
+ indexing_group.create_dataset(index[0], data=index[1])
\ No newline at end of file
diff --git a/xschem/vco_2-4GHz/tests/plot_transfer_pyspice.py b/xschem/vco_2-4GHz/tests/plot_transfer_pyspice.py
new file mode 100644
index 0000000..eebb3d3
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/plot_transfer_pyspice.py
@@ -0,0 +1,133 @@
+import matplotlib.pyplot as plt
+from pathlib import Path
+import numpy as np
+import os
+import re
+import h5py
+
+import PySpice.Logging.Logging as Logging
+logger = Logging.setup_logging()
+
+from PySpice.Spice.NgSpice.Shared import NgSpiceShared
+from PySpice.Probe.Plot import plot
+from PySpice.Unit import *
+
+
+
+
+# read the generated netlist.
+netlist_path = os.environ.get('HOME') + '/.xschem/simulations/vco_2-4GHz_tb.spice'
+with open(netlist_path) as f:
+ netlist = f.read()
+
+# only saver the Ip node to avoid using lots of memory
+# netlist += '.save v(ip)'
+
+
+
+number_points = 32
+vdd = [1.8]
+
+
+corners = ['tt', 'sf', 'ff', 'ss', 'fs', 'll', 'hh', 'hl', 'lh']
+temp = [-40, 27, 125]
+
+# corners = ['ff', 'ss']
+# temp = [-40, 125]
+
+
+vctl = np.linspace(0, vdd, number_points)
+freq = []
+
+
+def set_parameters(netlist, vctl, corner, temp, vdd):
+
+ print("NEW PARAMETER SET: vctl = %f, corner = %s, temp = %f, vdd = %f" % (vctl, corner, temp, vdd))
+
+ # VCO control voltage
+ sub_string = ".param vctl=%f" % vctl
+ netlist = re.sub(r'\.param vctl=.*', sub_string, netlist)
+
+ # corner
+ sub_string = ".lib sky130_fd_pr/models/sky130.lib.spice %s" % corner
+ netlist = re.sub(r'\.lib sky130_fd_pr/models/sky130.lib.spice .*', sub_string, netlist)
+
+ # temperature
+ sub_string = ".param temp=%f" % temp
+ netlist = re.sub(r'\.param temp=.*', sub_string, netlist)
+ sub_string = ".temp %f" % temp
+ netlist = re.sub(r'\.temp .*', sub_string, netlist)
+
+ # supply voltage
+ sub_string = ".param vdd=%f" % vdd
+ netlist = re.sub(r'\.param vdd=.*', sub_string, netlist)
+
+ return netlist
+
+
+hdf_file = h5py.File('vco_2-4GHz_corners.hdf5', 'w')
+
+# prepopulate the data
+values = np.zeros((len(vdd), len(corners), len(temp), number_points))
+
+for vdd_i, current_vdd in enumerate(vdd):
+ for corner_i, current_corner in enumerate(corners):
+ for temp_i, current_temp in enumerate(temp):
+ for vctl_i, current_vctl in enumerate(vctl):
+
+ # set the parameters for this simulation run
+ netlist = set_parameters(netlist, current_vctl, current_corner, current_temp, current_vdd)
+
+ # run the simulation
+ try:
+ ngspice = NgSpiceShared.new_instance()
+ ngspice.load_circuit(netlist)
+ ngspice.run()
+
+ # get the results
+ plot = ngspice.plot(simulation=None, plot_name=ngspice.last_plot)
+ analysis = plot.to_analysis()
+
+ # trim to steady state
+ analysis_time = analysis._time[int(len(analysis._nodes['ip'])*0.5):]
+ analysis_data = analysis._nodes['ip'][int(len(analysis._nodes['ip'])*0.5):]
+
+ # find first rising edge
+ for i in range(2,len(analysis_data)):
+ if (float(analysis_data[i]) > 0.9) and (float(analysis_data[i-1]) > 0.9) and (float(analysis_data[i-2]) < 0.9):
+ first_index = i
+ first_time = analysis_time[i]
+ break
+
+ # find second rising edge
+ for i in range(first_index+3, len(analysis_data)):
+ if (float(analysis_data[i]) > 0.9) and (float(analysis_data[i-1]) > 0.9) and (float(analysis_data[i-2]) < 0.9):
+ second_index = i
+ second_time = analysis_time[i]
+ break
+
+ # find third rising edge
+ for i in range(second_index+3, len(analysis_data)):
+ if (float(analysis_data[i]) > 0.9) and (float(analysis_data[i-1]) > 0.9) and (float(analysis_data[i-2]) < 0.9):
+ third_index = i
+ third_time = analysis_time[i]
+ break
+
+ # add the calculated frequency to the array
+ values[vdd_i][corner_i][temp_i][vctl_i] = 1.0/(third_time-second_time)
+ ngspice.destroy()
+
+ except:
+
+ # enter a None data for failed simulation step
+ values[vdd_i][corner_i][temp_i][vctl_i] = None
+
+
+# save the data to file
+hdf_file.create_dataset('data', data=values)
+
+# save the indexing information
+indexing_group = hdf_file.create_group('indexing')
+indexing = [['vdd', vdd], ['corner', corners], ['temp', temp], ['vctl', vctl]]
+for index in indexing:
+ indexing_group.create_dataset(index[0], data=index[1])
\ No newline at end of file
diff --git a/xschem/vco_2-4GHz/tests/sky130_fd_pr b/xschem/vco_2-4GHz/tests/sky130_fd_pr
new file mode 120000
index 0000000..68eb173
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/sky130_fd_pr
@@ -0,0 +1 @@
+../../../../skywater/sky130_fd_pr
\ No newline at end of file
diff --git a/xschem/vco_2-4GHz/tests/spiceinterface_temp.out b/xschem/vco_2-4GHz/tests/spiceinterface_temp.out
new file mode 100644
index 0000000..46b4868
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/spiceinterface_temp.out
@@ -0,0 +1,116 @@
+codemodel: no such command available in ngspice
+codemodel: no such command available in ngspice
+codemodel: no such command available in ngspice
+codemodel: no such command available in ngspice
+codemodel: no such command available in ngspice
+codemodel: no such command available in ngspice
+
+Circuit: **.subckt vco_2-4ghz_tb
+
+Scale set
+Doing analysis at TEMP = 125.000000 and TNOM = 27.000000
+
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: Source conductance reset to 1.0e3 mho.
+Warning: include: has no value, DC 0 assumed
+Warning: i.xvco.i0: no DC value, transient time 0 value used
+No. of Data Columns : 5
+
+Initial Transient Solution
+--------------------------
+
+Node Voltage
+---- -------
+vctl 0
+net1 0
+xvco.net1 0
+xvco.net8 0
+xvco.net2 0
+xvco.net7 0
+xvco.x1.net2 0
+xvco.x1.net1 0
+xvco.net3 0
+xvco.net4 0
+xvco.x2.net2 0
+xvco.x2.net1 0
+xvco.net5 0
+xvco.net6 0
+xvco.x3.net2 0
+xvco.x3.net1 0
+xvco.x4.net2 0
+xvco.x4.net1 0
+ip 0
+in 0
+xvco.x5.xrn.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+xvco.x5.xrp.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+qp 0
+qn 0
+xvco.x6.xrn.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+xvco.x6.xrp.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+ncp 0
+ncn 0
+xvco.x7.xrn.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+xvco.x7.xrp.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+fbp 0
+fbn 0
+xvco.x8.xrn.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+xvco.x8.xrp.xsky130_fd_pr__res_xhigh_po_2p85.ra 0
+sky130_fd_pr__esd_nfet_05v0_nvt.pm3 0
+ 0
+vdd#branch 0
+v1#branch 0
+
+
+No. of Data Rows : 1026
+
+Total analysis time (seconds) = 1.71965
+
+Total CPU time (seconds) = 51.261
+
+Total DRAM available = 7908.293 MB.
+DRAM currently available = 153.211 MB.
+Total ngspice program size = 243.086 MB.
+Resident set size = 223.559 MB.
+Shared ngspice pages = 6.891 MB.
+Text (code) pages = 5.105 MB.
+Stack = 0 bytes.
+Library pages = 217.039 MB.
+
diff --git a/xschem/vco_2-4GHz/tests/spiceinterface_temp.raw b/xschem/vco_2-4GHz/tests/spiceinterface_temp.raw
new file mode 100644
index 0000000..db480ba
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/spiceinterface_temp.raw
@@ -0,0 +1,5143 @@
+Title: **.subckt vco_2-4ghz_tb
+Date: Sun Oct 4 03:13:25 2020
+Plotname: Transient Analysis
+Flags: real
+No. Variables: 5
+No. Points: 1026
+Variables:
+ 0 time time
+ 1 v(ip) voltage
+ 2 v(in) voltage
+ 3 v(vctl) voltage
+ 4 i(vdd) current
+Values:
+0 0.000000000000000e+00
+ 0.000000000000000e+00
+ 0.000000000000000e+00
+ 0.000000000000000e+00
+ 0.000000000000000e+00
+1 1.000000000000000e-13
+ 5.584778341732823e-02
+ 5.584778341732826e-02
+ 1.800000000000000e+00
+ -6.451056818629723e-01
+2 1.057671010611960e-13
+ 5.884416864335116e-02
+ 5.884416864335120e-02
+ 1.800000000000000e+00
+ -2.605134718933804e-01
+3 1.173013031835881e-13
+ 6.446821341785063e-02
+ 6.446821341785068e-02
+ 1.800000000000000e+00
+ -2.465820749374185e-01
+4 1.403697074283722e-13
+ 7.388857491146857e-02
+ 7.388857491146855e-02
+ 1.800000000000000e+00
+ -2.124530929253619e-01
+5 1.865065159179404e-13
+ 8.782874388990564e-02
+ 8.782874388990543e-02
+ 1.800000000000000e+00
+ -1.623169384310600e-01
+6 2.787801328970768e-13
+ 1.063823933001555e-01
+ 1.063823933001552e-01
+ 1.800000000000000e+00
+ -1.009686008290037e-01
+7 4.633273668553496e-13
+ 1.329742262909329e-01
+ 1.329742262909323e-01
+ 1.800000000000000e+00
+ -5.902972848061155e-02
+8 8.262155630200710e-13
+ 1.766594443967695e-01
+ 1.766594443967684e-01
+ 1.800000000000000e+00
+ -3.888834967401125e-02
+9 1.505769605101951e-12
+ 2.464451157385203e-01
+ 2.464451157385192e-01
+ 1.800000000000000e+00
+ -2.932818544446008e-02
+10 2.864877689265712e-12
+ 3.677666539116059e-01
+ 3.677666539116047e-01
+ 1.800000000000000e+00
+ -2.172523358760791e-02
+11 4.094483999179020e-12
+ 4.681414198912776e-01
+ 4.681414198912766e-01
+ 1.800000000000000e+00
+ -1.603922918228803e-02
+12 6.553696619005637e-12
+ 6.525344052532037e-01
+ 6.525344052532028e-01
+ 1.800000000000000e+00
+ -6.902597535707562e-03
+13 9.999999999999999e-12
+ 8.730019008733907e-01
+ 8.730019008733899e-01
+ 1.800000000000000e+00
+ -5.810818746850069e-03
+14 1.036053834580368e-11
+ 8.932100184569198e-01
+ 8.932100184569189e-01
+ 1.800000000000000e+00
+ -4.926860975357070e-03
+15 1.108161503741103e-11
+ 9.327888961207250e-01
+ 9.327888961207240e-01
+ 1.800000000000000e+00
+ -4.661135957876450e-03
+16 1.252376842062574e-11
+ 1.007017334635486e+00
+ 1.007017334635485e+00
+ 1.800000000000000e+00
+ -4.433643085670656e-03
+17 1.540807518705516e-11
+ 1.137569917815776e+00
+ 1.137569917815775e+00
+ 1.800000000000000e+00
+ -4.019420362225548e-03
+18 2.117668871991399e-11
+ 1.338375549270802e+00
+ 1.338375549270801e+00
+ 1.800000000000000e+00
+ -3.634473046744243e-03
+19 3.117668871991399e-11
+ 1.542843206302183e+00
+ 1.542843206302184e+00
+ 1.800000000000000e+00
+ -3.312065496515267e-03
+20 4.117668871991398e-11
+ 1.625721242548734e+00
+ 1.625721242548737e+00
+ 1.800000000000000e+00
+ -3.318004704400327e-03
+21 5.117668871991398e-11
+ 1.649992498282766e+00
+ 1.649992498282772e+00
+ 1.800000000000000e+00
+ -3.323113319858280e-03
+22 6.117668871991398e-11
+ 1.653662530769758e+00
+ 1.653662530769763e+00
+ 1.800000000000000e+00
+ -3.384956546671526e-03
+23 7.117668871991398e-11
+ 1.652024318572552e+00
+ 1.652024318572555e+00
+ 1.800000000000000e+00
+ -3.373476203950413e-03
+24 8.117668871991399e-11
+ 1.649879998422803e+00
+ 1.649879998422805e+00
+ 1.800000000000000e+00
+ -3.413848334065914e-03
+25 9.117668871991399e-11
+ 1.648236511608842e+00
+ 1.648236511608844e+00
+ 1.800000000000000e+00
+ -3.391029985749361e-03
+26 1.011766887199140e-10
+ 1.647202367069704e+00
+ 1.647202367069704e+00
+ 1.800000000000000e+00
+ -3.422371838930267e-03
+27 1.111766887199140e-10
+ 1.646566490223847e+00
+ 1.646566490223846e+00
+ 1.800000000000000e+00
+ -3.396843053175545e-03
+28 1.211766887199140e-10
+ 1.646216945191087e+00
+ 1.646216945191087e+00
+ 1.800000000000000e+00
+ -3.424399781880003e-03
+29 1.311766887199140e-10
+ 1.646007743942169e+00
+ 1.646007743942169e+00
+ 1.800000000000000e+00
+ -3.399021682409598e-03
+30 1.411766887199140e-10
+ 1.645904149464842e+00
+ 1.645904149464844e+00
+ 1.800000000000000e+00
+ -3.424518355710320e-03
+31 1.511766887199140e-10
+ 1.645837311013686e+00
+ 1.645837311013693e+00
+ 1.800000000000000e+00
+ -3.400101784494815e-03
+32 1.611766887199140e-10
+ 1.645810287121931e+00
+ 1.645810287121946e+00
+ 1.800000000000000e+00
+ -3.424112231134112e-03
+33 1.711766887199139e-10
+ 1.645787553681785e+00
+ 1.645787553681807e+00
+ 1.800000000000000e+00
+ -3.400835061135993e-03
+34 1.811766887199139e-10
+ 1.645782694601946e+00
+ 1.645782694601974e+00
+ 1.800000000000000e+00
+ -3.423585390376990e-03
+35 1.911766887199139e-10
+ 1.645773476312995e+00
+ 1.645773476313021e+00
+ 1.800000000000000e+00
+ -3.401440055315912e-03
+36 2.011766887199139e-10
+ 1.645774555465724e+00
+ 1.645774555465741e+00
+ 1.800000000000000e+00
+ -3.423052716408174e-03
+37 2.111766887199139e-10
+ 1.645769668702163e+00
+ 1.645769668702163e+00
+ 1.800000000000000e+00
+ -3.401980843867095e-03
+38 2.211766887199139e-10
+ 1.645772066633549e+00
+ 1.645772066633520e+00
+ 1.800000000000000e+00
+ -3.422545353227601e-03
+39 2.311766887199139e-10
+ 1.645768753418792e+00
+ 1.645768753418719e+00
+ 1.800000000000000e+00
+ -3.402477370598412e-03
+40 2.411766887199139e-10
+ 1.645771228384768e+00
+ 1.645771228384625e+00
+ 1.800000000000000e+00
+ -3.422070415272143e-03
+41 2.511766887199139e-10
+ 1.645768625866064e+00
+ 1.645768625865818e+00
+ 1.800000000000000e+00
+ -3.402937017964174e-03
+42 2.611766887199139e-10
+ 1.645770886985162e+00
+ 1.645770886984777e+00
+ 1.800000000000000e+00
+ -3.421628190538152e-03
+43 2.711766887199139e-10
+ 1.645768695495528e+00
+ 1.645768695494971e+00
+ 1.800000000000000e+00
+ -3.403363564899504e-03
+44 2.811766887199140e-10
+ 1.645770706988365e+00
+ 1.645770706987616e+00
+ 1.800000000000000e+00
+ -3.421217113917505e-03
+45 2.911766887199140e-10
+ 1.645768801225862e+00
+ 1.645768801224923e+00
+ 1.800000000000000e+00
+ -3.403759690042822e-03
+46 3.011766887199140e-10
+ 1.645770588050754e+00
+ 1.645770588049665e+00
+ 1.800000000000000e+00
+ -3.420835146551027e-03
+47 3.111766887199140e-10
+ 1.645768902126431e+00
+ 1.645768902125309e+00
+ 1.800000000000000e+00
+ -3.404127667675826e-03
+48 3.211766887199140e-10
+ 1.645770498027595e+00
+ 1.645770498026657e+00
+ 1.800000000000000e+00
+ -3.420480278639072e-03
+49 3.311766887199140e-10
+ 1.645768990037167e+00
+ 1.645768990036768e+00
+ 1.800000000000000e+00
+ -3.404469577097304e-03
+50 3.411766887199141e-10
+ 1.645770425159490e+00
+ 1.645770425160178e+00
+ 1.800000000000000e+00
+ -3.420150504657771e-03
+51 3.511766887199141e-10
+ 1.645769065142631e+00
+ 1.645769065145174e+00
+ 1.800000000000000e+00
+ -3.404787334032401e-03
+52 3.611766887199141e-10
+ 1.645770364165175e+00
+ 1.645770364170572e+00
+ 1.800000000000000e+00
+ -3.419844008490513e-03
+53 3.711766887199141e-10
+ 1.645769129360351e+00
+ 1.645769129369804e+00
+ 1.800000000000000e+00
+ -3.405082711769581e-03
+54 3.811766887199141e-10
+ 1.645770312112671e+00
+ 1.645770312127519e+00
+ 1.800000000000000e+00
+ -3.419559074598343e-03
+55 3.911766887199141e-10
+ 1.645769184618519e+00
+ 1.645769184640048e+00
+ 1.800000000000000e+00
+ -3.405357358567411e-03
+56 4.000000000000000e-10
+ 1.645770263963463e+00
+ 1.645770263991664e+00
+ 1.800000000000000e+00
+ -3.419277064959597e-03
+57 4.010000000000000e-10
+ 1.645769786215185e+00
+ 1.645769786244157e+00
+ 1.800000000000000e+00
+ -3.412681904899839e-03
+58 4.030000000000000e-10
+ 1.645769703217130e+00
+ 1.645769703247631e+00
+ 1.800000000000000e+00
+ -3.412146034177485e-03
+59 4.070000000000000e-10
+ 1.645769769711828e+00
+ 1.645769769745625e+00
+ 1.800000000000000e+00
+ -3.412614618528416e-03
+60 4.150000000000000e-10
+ 1.645769713922942e+00
+ 1.645769713962483e+00
+ 1.800000000000000e+00
+ -3.412175863181285e-03
+61 4.250000000000000e-10
+ 1.645769775873863e+00
+ 1.645769775917424e+00
+ 1.800000000000000e+00
+ -3.412597862765284e-03
+62 4.350000000000000e-10
+ 1.645769726267815e+00
+ 1.645769726310216e+00
+ 1.800000000000000e+00
+ -3.412190084140200e-03
+63 4.450000000000001e-10
+ 1.645769778881689e+00
+ 1.645769778912397e+00
+ 1.800000000000000e+00
+ -3.412584143288763e-03
+64 4.550000000000001e-10
+ 1.645769731543004e+00
+ 1.645769731545552e+00
+ 1.800000000000000e+00
+ -3.412203284884343e-03
+65 4.650000000000001e-10
+ 1.645769778057495e+00
+ 1.645769778007575e+00
+ 1.800000000000000e+00
+ -3.412571413893622e-03
+66 4.750000000000001e-10
+ 1.645769734403114e+00
+ 1.645769734267790e+00
+ 1.800000000000000e+00
+ -3.412215529668833e-03
+67 4.850000000000001e-10
+ 1.645769776500564e+00
+ 1.645769776238001e+00
+ 1.800000000000000e+00
+ -3.412559631111513e-03
+68 4.950000000000000e-10
+ 1.645769736569261e+00
+ 1.645769736129988e+00
+ 1.800000000000000e+00
+ -3.412226869743001e-03
+69 5.000000000000000e-10
+ 1.645769774140345e+00
+ 1.645769773593714e+00
+ 1.800000000000000e+00
+ -3.412543557051255e-03
+70 5.010000000000000e-10
+ 1.645769757903154e+00
+ 1.645769757333307e+00
+ 1.800000000000000e+00
+ -3.412402029544245e-03
+71 5.030000000000000e-10
+ 1.645769754986987e+00
+ 1.645769754368764e+00
+ 1.800000000000000e+00
+ -3.412380875356557e-03
+72 5.070000000000000e-10
+ 1.645769757398990e+00
+ 1.645769756676266e+00
+ 1.800000000000000e+00
+ -3.412399220718120e-03
+73 5.150000000000000e-10
+ 1.645769755388969e+00
+ 1.645769754439343e+00
+ 1.800000000000000e+00
+ -3.412382117012231e-03
+74 5.249999999999999e-10
+ 1.645769757522087e+00
+ 1.645769756269283e+00
+ 1.800000000000000e+00
+ -3.412398527624574e-03
+75 5.349999999999999e-10
+ 1.645769755731549e+00
+ 1.645769754194663e+00
+ 1.800000000000000e+00
+ -3.412382702627997e-03
+76 5.449999999999999e-10
+ 1.645769757568187e+00
+ 1.645769755848005e+00
+ 1.800000000000000e+00
+ -3.412397961647659e-03
+77 5.549999999999998e-10
+ 1.645769755762341e+00
+ 1.645769754080515e+00
+ 1.800000000000000e+00
+ -3.412383246026797e-03
+78 5.649999999999998e-10
+ 1.645769757069409e+00
+ 1.645769755826707e+00
+ 1.800000000000000e+00
+ -3.412397435038106e-03
+79 5.749999999999998e-10
+ 1.645769754848160e+00
+ 1.645769754685880e+00
+ 1.800000000000000e+00
+ -3.412383754244431e-03
+80 5.849999999999997e-10
+ 1.645769755144665e+00
+ 1.645769757009238e+00
+ 1.800000000000000e+00
+ -3.412396948585417e-03
+81 5.949999999999997e-10
+ 1.645769751853544e+00
+ 1.645769757041004e+00
+ 1.800000000000000e+00
+ -3.412384222521331e-03
+82 6.000000000000000e-10
+ 1.645769751906942e+00
+ 1.645769759345289e+00
+ 1.800000000000000e+00
+ -3.412396287230421e-03
+83 6.010000000000000e-10
+ 1.645769751057155e+00
+ 1.645769759009323e+00
+ 1.800000000000000e+00
+ -3.412390946943565e-03
+84 6.030000000000000e-10
+ 1.645769750356255e+00
+ 1.645769759373837e+00
+ 1.800000000000000e+00
+ -3.412390076194287e-03
+85 6.070000000000000e-10
+ 1.645769749128784e+00
+ 1.645769760510819e+00
+ 1.800000000000000e+00
+ -3.412390825978869e-03
+86 6.149999999999999e-10
+ 1.645769745878351e+00
+ 1.645769762989862e+00
+ 1.800000000000000e+00
+ -3.412390135280352e-03
+87 6.249999999999999e-10
+ 1.645769740926613e+00
+ 1.645769767108621e+00
+ 1.800000000000000e+00
+ -3.412390801414576e-03
+88 6.349999999999999e-10
+ 1.645769734747776e+00
+ 1.645769771877236e+00
+ 1.800000000000000e+00
+ -3.412390149629211e-03
+89 6.449999999999998e-10
+ 1.645769727985504e+00
+ 1.645769777117008e+00
+ 1.800000000000000e+00
+ -3.412390775950886e-03
+90 6.549999999999998e-10
+ 1.645769721195957e+00
+ 1.645769781633797e+00
+ 1.800000000000000e+00
+ -3.412390175158414e-03
+91 6.649999999999998e-10
+ 1.645769716085418e+00
+ 1.645769784063408e+00
+ 1.800000000000000e+00
+ -3.412390753904454e-03
+92 6.749999999999997e-10
+ 1.645769714728622e+00
+ 1.645769781666051e+00
+ 1.800000000000000e+00
+ -3.412390195024647e-03
+93 6.849999999999997e-10
+ 1.645769720728648e+00
+ 1.645769771037602e+00
+ 1.800000000000000e+00
+ -3.412390734769867e-03
+94 6.949999999999997e-10
+ 1.645769738449904e+00
+ 1.645769747068161e+00
+ 1.800000000000000e+00
+ -3.412390213002614e-03
+95 7.049999999999996e-10
+ 1.645769773835019e+00
+ 1.645769703779931e+00
+ 1.800000000000000e+00
+ -3.412390716069096e-03
+96 7.149999999999996e-10
+ 1.645769833332412e+00
+ 1.645769633790655e+00
+ 1.800000000000000e+00
+ -3.412390233817975e-03
+97 7.249999999999996e-10
+ 1.645769923918329e+00
+ 1.645769529762267e+00
+ 1.800000000000000e+00
+ -3.412390698212339e-03
+98 7.349999999999995e-10
+ 1.645770050977075e+00
+ 1.645769385023086e+00
+ 1.800000000000000e+00
+ -3.412390249870850e-03
+99 7.449999999999995e-10
+ 1.645770216687549e+00
+ 1.645769196506746e+00
+ 1.800000000000000e+00
+ -3.412390683496804e-03
+100 7.549999999999995e-10
+ 1.645770415873207e+00
+ 1.645768967489226e+00
+ 1.800000000000000e+00
+ -3.412390265767092e-03
+101 7.649999999999994e-10
+ 1.645770631724675e+00
+ 1.645768713000917e+00
+ 1.800000000000000e+00
+ -3.412390668072689e-03
+102 7.749999999999994e-10
+ 1.645770828818379e+00
+ 1.645768465499569e+00
+ 1.800000000000000e+00
+ -3.412390279808801e-03
+103 7.849999999999994e-10
+ 1.645770945868592e+00
+ 1.645768283051033e+00
+ 1.800000000000000e+00
+ -3.412390654307510e-03
+104 7.949999999999993e-10
+ 1.645770886508393e+00
+ 1.645768257208878e+00
+ 1.800000000000000e+00
+ -3.412390295190778e-03
+105 8.049999999999993e-10
+ 1.645770511458362e+00
+ 1.645768521599044e+00
+ 1.800000000000000e+00
+ -3.412390640285142e-03
+106 8.149999999999993e-10
+ 1.645769632019884e+00
+ 1.645769256989647e+00
+ 1.800000000000000e+00
+ -3.412390306275412e-03
+107 8.249999999999992e-10
+ 1.645768010250598e+00
+ 1.645770691536980e+00
+ 1.800000000000000e+00
+ -3.412390630369842e-03
+108 8.349999999999992e-10
+ 1.645765368703513e+00
+ 1.645773089437946e+00
+ 1.800000000000000e+00
+ -3.412390316547973e-03
+109 8.449999999999991e-10
+ 1.645761418114466e+00
+ 1.645776723189720e+00
+ 1.800000000000000e+00
+ -3.412390617590119e-03
+110 8.549999999999991e-10
+ 1.645755909635030e+00
+ 1.645781819331971e+00
+ 1.800000000000000e+00
+ -3.412390329647624e-03
+111 8.649999999999991e-10
+ 1.645748723058871e+00
+ 1.645788469526483e+00
+ 1.800000000000000e+00
+ -3.412390609807662e-03
+112 8.749999999999990e-10
+ 1.645739999632309e+00
+ 1.645796495011507e+00
+ 1.800000000000000e+00
+ -3.412390339920647e-03
+113 8.849999999999990e-10
+ 1.645730329882056e+00
+ 1.645805257111369e+00
+ 1.800000000000000e+00
+ -3.412390605405011e-03
+114 8.949999999999990e-10
+ 1.645720999252088e+00
+ 1.645813407763322e+00
+ 1.800000000000000e+00
+ -3.412390360296374e-03
+115 9.049999999999989e-10
+ 1.645714288041608e+00
+ 1.645818586155631e+00
+ 1.800000000000000e+00
+ -3.412390613033772e-03
+116 9.149999999999989e-10
+ 1.645713803110740e+00
+ 1.645817080559725e+00
+ 1.800000000000000e+00
+ -3.412390401710274e-03
+117 9.249999999999989e-10
+ 1.645724796572757e+00
+ 1.645803501559427e+00
+ 1.800000000000000e+00
+ -3.412390666863720e-03
+118 9.349999999999989e-10
+ 1.645754387894936e+00
+ 1.645770545578866e+00
+ 1.800000000000000e+00
+ -3.412390516801396e-03
+119 9.449999999999989e-10
+ 1.645811560201366e+00
+ 1.645708977546636e+00
+ 1.800000000000000e+00
+ -3.412390858053039e-03
+120 9.549999999999989e-10
+ 1.645906739581242e+00
+ 1.645608018809347e+00
+ 1.800000000000000e+00
+ -3.412390893710904e-03
+121 9.649999999999988e-10
+ 1.646050699545307e+00
+ 1.645456396882429e+00
+ 1.800000000000000e+00
+ -3.412391546650548e-03
+122 9.749999999999988e-10
+ 1.646252475587845e+00
+ 1.645244396253043e+00
+ 1.800000000000000e+00
+ -3.412392175715520e-03
+123 9.849999999999988e-10
+ 1.646515906218514e+00
+ 1.644967292041994e+00
+ 1.800000000000000e+00
+ -3.412393867340418e-03
+124 9.949999999999987e-10
+ 1.646834421443471e+00
+ 1.644630593689531e+00
+ 1.800000000000000e+00
+ -3.412396466970547e-03
+125 1.004999999999999e-09
+ 1.647183767037581e+00
+ 1.644257489708885e+00
+ 1.800000000000000e+00
+ -3.412401757910922e-03
+126 1.014999999999999e-09
+ 1.647512478472903e+00
+ 1.643898663395590e+00
+ 1.800000000000000e+00
+ -3.412411020508532e-03
+127 1.024999999999999e-09
+ 1.647730213207117e+00
+ 1.643644233317147e+00
+ 1.800000000000000e+00
+ -3.412428536120306e-03
+128 1.034999999999999e-09
+ 1.647694459387378e+00
+ 1.643636738711182e+00
+ 1.800000000000000e+00
+ -3.412460338874487e-03
+129 1.044999999999999e-09
+ 1.647196755425063e+00
+ 1.644082725084535e+00
+ 1.800000000000000e+00
+ -3.412519327189738e-03
+130 1.054999999999999e-09
+ 1.645950518576782e+00
+ 1.645258457909790e+00
+ 1.800000000000000e+00
+ -3.412627501408162e-03
+131 1.064999999999998e-09
+ 1.643584293181759e+00
+ 1.647502698858462e+00
+ 1.800000000000000e+00
+ -3.412827002152088e-03
+132 1.074999999999998e-09
+ 1.639647422564102e+00
+ 1.651186961922688e+00
+ 1.800000000000000e+00
+ -3.413193606963189e-03
+133 1.084999999999998e-09
+ 1.633640704435639e+00
+ 1.656653037105680e+00
+ 1.800000000000000e+00
+ -3.413867835103876e-03
+134 1.094999999999998e-09
+ 1.625092593898819e+00
+ 1.664112375679860e+00
+ 1.800000000000000e+00
+ -3.415104783005529e-03
+135 1.104999999999998e-09
+ 1.613709659928160e+00
+ 1.673516591788181e+00
+ 1.800000000000000e+00
+ -3.417368375377107e-03
+136 1.114999999999998e-09
+ 1.599632958103093e+00
+ 1.684432223484812e+00
+ 1.800000000000000e+00
+ -3.421486658577500e-03
+137 1.124999999999998e-09
+ 1.583823583492193e+00
+ 1.695966626438729e+00
+ 1.800000000000000e+00
+ -3.428903050634808e-03
+138 1.134999999999998e-09
+ 1.568567959802440e+00
+ 1.706748984326536e+00
+ 1.800000000000000e+00
+ -3.442010955794601e-03
+139 1.144999999999998e-09
+ 1.557968792995711e+00
+ 1.714843161724434e+00
+ 1.800000000000000e+00
+ -3.464416820767577e-03
+140 1.154999999999998e-09
+ 1.557902981730064e+00
+ 1.717405571600383e+00
+ 1.800000000000000e+00
+ -3.500410998310757e-03
+141 1.164999999999998e-09
+ 1.574314647210608e+00
+ 1.710376921260141e+00
+ 1.800000000000000e+00
+ -3.550937223110985e-03
+142 1.174999999999998e-09
+ 1.608898737839601e+00
+ 1.689400687520199e+00
+ 1.800000000000000e+00
+ -3.606428647701678e-03
+143 1.184999999999998e-09
+ 1.654470962498233e+00
+ 1.652352362732034e+00
+ 1.800000000000000e+00
+ -3.644688458968343e-03
+144 1.194999999999998e-09
+ 1.697444388553363e+00
+ 1.600660369416316e+00
+ 1.800000000000000e+00
+ -3.654899377844497e-03
+145 1.204999999999998e-09
+ 1.727807172452028e+00
+ 1.536842915196602e+00
+ 1.800000000000000e+00
+ -3.646880748324554e-03
+146 1.214999999999998e-09
+ 1.747691225188001e+00
+ 1.463676938192330e+00
+ 1.800000000000000e+00
+ -3.631967042182684e-03
+147 1.224999999999998e-09
+ 1.763753478247061e+00
+ 1.385247316921451e+00
+ 1.800000000000000e+00
+ -3.629773661089952e-03
+148 1.234999999999998e-09
+ 1.777023748083172e+00
+ 1.305453737193166e+00
+ 1.800000000000000e+00
+ -3.667603571130156e-03
+149 1.244999999999998e-09
+ 1.786288190275880e+00
+ 1.228130470009061e+00
+ 1.800000000000000e+00
+ -3.707569017136458e-03
+150 1.254999999999998e-09
+ 1.791975461634411e+00
+ 1.155956152805193e+00
+ 1.800000000000000e+00
+ -3.709025882742927e-03
+151 1.264999999999998e-09
+ 1.795294849870552e+00
+ 1.085251102749292e+00
+ 1.800000000000000e+00
+ -3.696425539060335e-03
+152 1.274999999999998e-09
+ 1.797143137741592e+00
+ 1.009542414272639e+00
+ 1.800000000000000e+00
+ -3.685665818338856e-03
+153 1.284999999999998e-09
+ 1.798169527484772e+00
+ 9.286219685391855e-01
+ 1.800000000000000e+00
+ -3.679070275616913e-03
+154 1.294999999999998e-09
+ 1.798734967649053e+00
+ 8.465271517904525e-01
+ 1.800000000000000e+00
+ -3.691378913546377e-03
+155 1.304999999999998e-09
+ 1.799041225129610e+00
+ 7.672705777625173e-01
+ 1.800000000000000e+00
+ -3.700637073338298e-03
+156 1.314999999999998e-09
+ 1.799232690350611e+00
+ 6.945901405024852e-01
+ 1.800000000000000e+00
+ -3.676367357621563e-03
+157 1.324999999999998e-09
+ 1.799380381998742e+00
+ 6.306895953017236e-01
+ 1.800000000000000e+00
+ -3.683460787369411e-03
+158 1.334999999999998e-09
+ 1.799463589433472e+00
+ 5.762083746681728e-01
+ 1.800000000000000e+00
+ -3.721624900179214e-03
+159 1.344999999999998e-09
+ 1.799568534079229e+00
+ 5.310468291097590e-01
+ 1.800000000000000e+00
+ -3.780455693470798e-03
+160 1.354999999999997e-09
+ 1.799743751129328e+00
+ 4.945593845782534e-01
+ 1.800000000000000e+00
+ -3.823603003066378e-03
+161 1.364999999999997e-09
+ 1.800030202878532e+00
+ 4.655236063291083e-01
+ 1.800000000000000e+00
+ -3.845593566285085e-03
+162 1.374999999999997e-09
+ 1.800514864587455e+00
+ 4.423337155946572e-01
+ 1.800000000000000e+00
+ -3.826746187530861e-03
+163 1.384999999999997e-09
+ 1.801409010706521e+00
+ 4.233859702507306e-01
+ 1.800000000000000e+00
+ -3.785930662668891e-03
+164 1.394999999999997e-09
+ 1.803008063789563e+00
+ 4.076644654816430e-01
+ 1.800000000000000e+00
+ -3.747076432631337e-03
+165 1.404999999999997e-09
+ 1.804563623662371e+00
+ 3.951239900706501e-01
+ 1.800000000000000e+00
+ -3.717569698091807e-03
+166 1.414999999999997e-09
+ 1.805042953040107e+00
+ 3.864729650185484e-01
+ 1.800000000000000e+00
+ -3.642523792248647e-03
+167 1.424999999999997e-09
+ 1.804913977394702e+00
+ 3.831928129414082e-01
+ 1.800000000000000e+00
+ -3.617897236957566e-03
+168 1.434999999999997e-09
+ 1.804367093140099e+00
+ 3.882263277970697e-01
+ 1.800000000000000e+00
+ -3.638261182522786e-03
+169 1.444999999999997e-09
+ 1.803591606000393e+00
+ 4.068370452815714e-01
+ 1.800000000000000e+00
+ -3.700567595328451e-03
+170 1.454999999999997e-09
+ 1.803143834742076e+00
+ 4.480609421303721e-01
+ 1.800000000000000e+00
+ -3.765360589321083e-03
+171 1.464999999999997e-09
+ 1.803222057506055e+00
+ 5.281650110910601e-01
+ 1.800000000000000e+00
+ -3.828065885623301e-03
+172 1.474999999999997e-09
+ 1.804095722534061e+00
+ 6.695506510835194e-01
+ 1.800000000000000e+00
+ -3.858882978243597e-03
+173 1.484999999999997e-09
+ 1.806084388858442e+00
+ 8.743792319826806e-01
+ 1.800000000000000e+00
+ -3.854167893329529e-03
+174 1.494999999999997e-09
+ 1.809495537491819e+00
+ 1.119797026226788e+00
+ 1.800000000000000e+00
+ -3.807858953665617e-03
+175 1.504999999999997e-09
+ 1.813001720852507e+00
+ 1.356244661323528e+00
+ 1.800000000000000e+00
+ -3.753635394233745e-03
+176 1.514999999999997e-09
+ 1.814395653509394e+00
+ 1.530259823454982e+00
+ 1.800000000000000e+00
+ -3.716130986568787e-03
+177 1.524999999999997e-09
+ 1.812006454975446e+00
+ 1.638072092626055e+00
+ 1.800000000000000e+00
+ -3.637903108533009e-03
+178 1.534999999999997e-09
+ 1.801624499878758e+00
+ 1.705308023017956e+00
+ 1.800000000000000e+00
+ -3.577027833231812e-03
+179 1.544999999999997e-09
+ 1.776079192374136e+00
+ 1.746739944600872e+00
+ 1.800000000000000e+00
+ -3.576902494015518e-03
+180 1.554999999999997e-09
+ 1.730392170447836e+00
+ 1.770594979972779e+00
+ 1.800000000000000e+00
+ -3.623781057656841e-03
+181 1.564999999999997e-09
+ 1.665192045107327e+00
+ 1.783826608286581e+00
+ 1.800000000000000e+00
+ -3.692998572236113e-03
+182 1.574999999999997e-09
+ 1.585427095542136e+00
+ 1.790986592543466e+00
+ 1.800000000000000e+00
+ -3.767769424216518e-03
+183 1.584999999999997e-09
+ 1.497431249749211e+00
+ 1.794946097595233e+00
+ 1.800000000000000e+00
+ -3.830810547483502e-03
+184 1.594999999999997e-09
+ 1.406875782831311e+00
+ 1.797075982824461e+00
+ 1.800000000000000e+00
+ -3.864082327804067e-03
+185 1.604999999999997e-09
+ 1.318042607871056e+00
+ 1.798330957567963e+00
+ 1.800000000000000e+00
+ -3.854951520711972e-03
+186 1.614999999999997e-09
+ 1.233784099794929e+00
+ 1.799022195461774e+00
+ 1.800000000000000e+00
+ -3.805682068026451e-03
+187 1.624999999999997e-09
+ 1.155724191541589e+00
+ 1.799426590617220e+00
+ 1.800000000000000e+00
+ -3.747996574781330e-03
+188 1.634999999999997e-09
+ 1.085644208378427e+00
+ 1.799551088797352e+00
+ 1.800000000000000e+00
+ -3.707172166783868e-03
+189 1.644999999999996e-09
+ 1.025549438756512e+00
+ 1.799662016204799e+00
+ 1.800000000000000e+00
+ -3.621282260291042e-03
+190 1.654999999999996e-09
+ 9.705856475644180e-01
+ 1.799727467587934e+00
+ 1.800000000000000e+00
+ -3.561843664913556e-03
+191 1.664999999999996e-09
+ 9.099479268404868e-01
+ 1.799766246008048e+00
+ 1.800000000000000e+00
+ -3.563356935315235e-03
+192 1.674999999999996e-09
+ 8.417500115820025e-01
+ 1.799751665336193e+00
+ 1.800000000000000e+00
+ -3.611226630621845e-03
+193 1.684999999999996e-09
+ 7.715925722983346e-01
+ 1.799780016670134e+00
+ 1.800000000000000e+00
+ -3.681823133302376e-03
+194 1.694999999999996e-09
+ 7.042373039344787e-01
+ 1.799785862642656e+00
+ 1.800000000000000e+00
+ -3.757902345811216e-03
+195 1.704999999999996e-09
+ 6.430910929300432e-01
+ 1.799818335477736e+00
+ 1.800000000000000e+00
+ -3.824635866096860e-03
+196 1.714999999999996e-09
+ 5.895768261323753e-01
+ 1.799829252038904e+00
+ 1.800000000000000e+00
+ -3.861329195991072e-03
+197 1.724999999999996e-09
+ 5.441077684117186e-01
+ 1.799858069229605e+00
+ 1.800000000000000e+00
+ -3.857714181637103e-03
+198 1.734999999999996e-09
+ 5.064360574259608e-01
+ 1.799871065244617e+00
+ 1.800000000000000e+00
+ -3.809771970841655e-03
+199 1.744999999999996e-09
+ 4.759583987640476e-01
+ 1.799889394811856e+00
+ 1.800000000000000e+00
+ -3.751601130446970e-03
+200 1.754999999999996e-09
+ 4.515607700137300e-01
+ 1.799869549225747e+00
+ 1.800000000000000e+00
+ -3.708872342487653e-03
+201 1.764999999999996e-09
+ 4.320587352951883e-01
+ 1.799855635086959e+00
+ 1.800000000000000e+00
+ -3.627714566518307e-03
+202 1.774999999999996e-09
+ 4.166716014831224e-01
+ 1.799869237499411e+00
+ 1.800000000000000e+00
+ -3.559492801725597e-03
+203 1.784999999999996e-09
+ 4.045317459293228e-01
+ 1.799833295601061e+00
+ 1.800000000000000e+00
+ -3.557244443083291e-03
+204 1.794999999999996e-09
+ 3.948396633131850e-01
+ 1.799738851246522e+00
+ 1.800000000000000e+00
+ -3.599807263262475e-03
+205 1.804999999999996e-09
+ 3.870633532976486e-01
+ 1.799708157143791e+00
+ 1.800000000000000e+00
+ -3.670653033406284e-03
+206 1.814999999999996e-09
+ 3.805986358676119e-01
+ 1.799728529164367e+00
+ 1.800000000000000e+00
+ -3.746010625908041e-03
+207 1.824999999999996e-09
+ 3.750819826947491e-01
+ 1.799824072652163e+00
+ 1.800000000000000e+00
+ -3.816891890151444e-03
+208 1.834999999999996e-09
+ 3.702248534253251e-01
+ 1.799981064660390e+00
+ 1.800000000000000e+00
+ -3.857679146300621e-03
+209 1.844999999999996e-09
+ 3.658032231375440e-01
+ 1.800258731862448e+00
+ 1.800000000000000e+00
+ -3.861593224552976e-03
+210 1.854999999999996e-09
+ 3.615917947753563e-01
+ 1.800769568344042e+00
+ 1.800000000000000e+00
+ -3.817353988379736e-03
+211 1.864999999999996e-09
+ 3.573655087050323e-01
+ 1.801763445373537e+00
+ 1.800000000000000e+00
+ -3.759042002838693e-03
+212 1.874999999999996e-09
+ 3.532087664979774e-01
+ 1.803584733431063e+00
+ 1.800000000000000e+00
+ -3.714223374251192e-03
+213 1.884999999999996e-09
+ 3.496028861605813e-01
+ 1.804804789329926e+00
+ 1.800000000000000e+00
+ -3.640950951007271e-03
+214 1.894999999999996e-09
+ 3.473593530415920e-01
+ 1.805069634442827e+00
+ 1.800000000000000e+00
+ -3.562948659118380e-03
+215 1.904999999999997e-09
+ 3.477945332433399e-01
+ 1.804744012313110e+00
+ 1.800000000000000e+00
+ -3.553646035400723e-03
+216 1.914999999999997e-09
+ 3.535426623109633e-01
+ 1.803880590160033e+00
+ 1.800000000000000e+00
+ -3.590025872988833e-03
+217 1.924999999999997e-09
+ 3.688953059211268e-01
+ 1.803050340008641e+00
+ 1.800000000000000e+00
+ -3.658969784057056e-03
+218 1.934999999999997e-09
+ 4.007376588694223e-01
+ 1.802544707962028e+00
+ 1.800000000000000e+00
+ -3.734144917868089e-03
+219 1.944999999999997e-09
+ 4.625105945997072e-01
+ 1.802588868373130e+00
+ 1.800000000000000e+00
+ -3.807411381138440e-03
+220 1.954999999999997e-09
+ 5.779226421749667e-01
+ 1.803274262442760e+00
+ 1.800000000000000e+00
+ -3.853659013194162e-03
+221 1.964999999999998e-09
+ 7.658421352123812e-01
+ 1.804901489583684e+00
+ 1.800000000000000e+00
+ -3.864097204235574e-03
+222 1.974999999999998e-09
+ 1.009273589030513e+00
+ 1.807870155058694e+00
+ 1.800000000000000e+00
+ -3.826164298155932e-03
+223 1.984999999999998e-09
+ 1.264749550706853e+00
+ 1.811741317793797e+00
+ 1.800000000000000e+00
+ -3.767387795751761e-03
+224 1.994999999999998e-09
+ 1.470704872228084e+00
+ 1.814278593086843e+00
+ 1.800000000000000e+00
+ -3.720348552538989e-03
+225 2.004999999999998e-09
+ 1.602358649564670e+00
+ 1.813996154324191e+00
+ 1.800000000000000e+00
+ -3.655606525031143e-03
+226 2.014999999999999e-09
+ 1.683611710463650e+00
+ 1.808318626572190e+00
+ 1.800000000000000e+00
+ -3.569833932152198e-03
+227 2.024999999999999e-09
+ 1.733978518513311e+00
+ 1.791007588062191e+00
+ 1.800000000000000e+00
+ -3.551332919243221e-03
+228 2.034999999999999e-09
+ 1.763567793221770e+00
+ 1.755365255439353e+00
+ 1.800000000000000e+00
+ -3.581635974934812e-03
+229 2.044999999999999e-09
+ 1.779945438073202e+00
+ 1.699319454126422e+00
+ 1.800000000000000e+00
+ -3.646948234137536e-03
+230 2.054999999999999e-09
+ 1.788956056534928e+00
+ 1.626044139009411e+00
+ 1.800000000000000e+00
+ -3.722599671559499e-03
+231 2.064999999999999e-09
+ 1.793769020972407e+00
+ 1.541485059767175e+00
+ 1.800000000000000e+00
+ -3.796615543605858e-03
+232 2.075000000000000e-09
+ 1.796492463272452e+00
+ 1.451757250096729e+00
+ 1.800000000000000e+00
+ -3.849207409328231e-03
+233 2.085000000000000e-09
+ 1.797924018256884e+00
+ 1.361781343814500e+00
+ 1.800000000000000e+00
+ -3.864891827804242e-03
+234 2.095000000000000e-09
+ 1.798840326120118e+00
+ 1.275115105613617e+00
+ 1.800000000000000e+00
+ -3.835188894404355e-03
+235 2.105000000000000e-09
+ 1.799293298325168e+00
+ 1.193906180708203e+00
+ 1.800000000000000e+00
+ -3.775790817603551e-03
+236 2.115000000000000e-09
+ 1.799567643308364e+00
+ 1.119572688610015e+00
+ 1.800000000000000e+00
+ -3.726876813452418e-03
+237 2.125000000000000e-09
+ 1.799606873124310e+00
+ 1.054354332043395e+00
+ 1.800000000000000e+00
+ -3.669465997083802e-03
+238 2.135000000000001e-09
+ 1.799736602193673e+00
+ 9.982512429180426e-01
+ 1.800000000000000e+00
+ -3.579545061013800e-03
+239 2.145000000000001e-09
+ 1.799747894851857e+00
+ 9.419882416322469e-01
+ 1.800000000000000e+00
+ -3.549915461189327e-03
+240 2.155000000000001e-09
+ 1.799783536677803e+00
+ 8.774988890116910e-01
+ 1.800000000000000e+00
+ -3.574614861627995e-03
+241 2.165000000000001e-09
+ 1.799754857512355e+00
+ 8.078383248991541e-01
+ 1.800000000000000e+00
+ -3.634779413806660e-03
+242 2.175000000000001e-09
+ 1.799802247959309e+00
+ 7.385932086732652e-01
+ 1.800000000000000e+00
+ -3.711388269590877e-03
+243 2.185000000000001e-09
+ 1.799790895141965e+00
+ 6.739641861444167e-01
+ 1.800000000000000e+00
+ -3.784914747921757e-03
+244 2.195000000000002e-09
+ 1.799840167319322e+00
+ 6.164171117633818e-01
+ 1.800000000000000e+00
+ -3.844163668071192e-03
+245 2.205000000000002e-09
+ 1.799832896848256e+00
+ 5.667736678671570e-01
+ 1.800000000000000e+00
+ -3.864219300745753e-03
+246 2.215000000000002e-09
+ 1.799877894631505e+00
+ 5.251224501726764e-01
+ 1.800000000000000e+00
+ -3.843799547501412e-03
+247 2.225000000000002e-09
+ 1.799873087537759e+00
+ 4.910307440890760e-01
+ 1.800000000000000e+00
+ -3.784242508211931e-03
+248 2.235000000000002e-09
+ 1.799897866657635e+00
+ 4.636575539969609e-01
+ 1.800000000000000e+00
+ -3.733870034075288e-03
+249 2.245000000000002e-09
+ 1.799853187978455e+00
+ 4.417664494070856e-01
+ 1.800000000000000e+00
+ -3.681773224254092e-03
+250 2.255000000000003e-09
+ 1.799871598435808e+00
+ 4.243175259241212e-01
+ 1.800000000000000e+00
+ -3.591618119066817e-03
+251 2.265000000000003e-09
+ 1.799861741132416e+00
+ 4.105553391893110e-01
+ 1.800000000000000e+00
+ -3.549550095490695e-03
+252 2.275000000000003e-09
+ 1.799803498878691e+00
+ 3.996523372358733e-01
+ 1.800000000000000e+00
+ -3.568767320561730e-03
+253 2.285000000000003e-09
+ 1.799713583862241e+00
+ 3.909147587922474e-01
+ 1.800000000000000e+00
+ -3.622791174430473e-03
+254 2.295000000000003e-09
+ 1.799715810819716e+00
+ 3.838293145977891e-01
+ 1.800000000000000e+00
+ -3.700283654396510e-03
+255 2.305000000000004e-09
+ 1.799751757065595e+00
+ 3.778555764887175e-01
+ 1.800000000000000e+00
+ -3.772710980933749e-03
+256 2.315000000000004e-09
+ 1.799881098769823e+00
+ 3.727016938636483e-01
+ 1.800000000000000e+00
+ -3.838260738508853e-03
+257 2.325000000000004e-09
+ 1.800063042020033e+00
+ 3.681000320420837e-01
+ 1.800000000000000e+00
+ -3.862408352585261e-03
+258 2.335000000000004e-09
+ 1.800419086626309e+00
+ 3.638439897548066e-01
+ 1.800000000000000e+00
+ -3.851488723476496e-03
+259 2.345000000000004e-09
+ 1.801069648222284e+00
+ 3.596965339883988e-01
+ 1.800000000000000e+00
+ -3.792854614556864e-03
+260 2.355000000000004e-09
+ 1.802360090135028e+00
+ 3.554991994693710e-01
+ 1.800000000000000e+00
+ -3.741442044685525e-03
+261 2.365000000000005e-09
+ 1.804205008358852e+00
+ 3.515198474823001e-01
+ 1.800000000000000e+00
+ -3.692224214626133e-03
+262 2.375000000000005e-09
+ 1.805017442628461e+00
+ 3.483410527726844e-01
+ 1.800000000000000e+00
+ -3.605638614890913e-03
+263 2.385000000000005e-09
+ 1.804991404470706e+00
+ 3.469151251979113e-01
+ 1.800000000000000e+00
+ -3.550437454177738e-03
+264 2.395000000000005e-09
+ 1.804474660223437e+00
+ 3.489668573953599e-01
+ 1.800000000000000e+00
+ -3.563968598228962e-03
+265 2.405000000000005e-09
+ 1.803517969231711e+00
+ 3.577201812091775e-01
+ 1.800000000000000e+00
+ -3.611251273864774e-03
+266 2.415000000000005e-09
+ 1.802817611146555e+00
+ 3.782098220650703e-01
+ 1.800000000000000e+00
+ -3.689097726622460e-03
+267 2.425000000000006e-09
+ 1.802476955929732e+00
+ 4.191416812565483e-01
+ 1.800000000000000e+00
+ -3.760331095288815e-03
+268 2.435000000000006e-09
+ 1.802763611161319e+00
+ 4.976647062780772e-01
+ 1.800000000000000e+00
+ -3.831283960697443e-03
+269 2.445000000000006e-09
+ 1.803744794210340e+00
+ 6.398470431412240e-01
+ 1.800000000000000e+00
+ -3.859773459016488e-03
+270 2.455000000000006e-09
+ 1.805834706640753e+00
+ 8.518512827576764e-01
+ 1.800000000000000e+00
+ -3.857846083547781e-03
+271 2.465000000000006e-09
+ 1.809320396607378e+00
+ 1.106736305721309e+00
+ 1.800000000000000e+00
+ -3.801770391927059e-03
+272 2.475000000000006e-09
+ 1.812954360082271e+00
+ 1.350228017144985e+00
+ 1.800000000000000e+00
+ -3.749469863484303e-03
+273 2.485000000000007e-09
+ 1.814564351604476e+00
+ 1.527757736880083e+00
+ 1.800000000000000e+00
+ -3.701077098790267e-03
+274 2.495000000000007e-09
+ 1.812769072086495e+00
+ 1.637184575270979e+00
+ 1.800000000000000e+00
+ -3.620832508115536e-03
+275 2.505000000000007e-09
+ 1.803631845037293e+00
+ 1.705419844712379e+00
+ 1.800000000000000e+00
+ -3.553056357549753e-03
+276 2.515000000000007e-09
+ 1.780090379684973e+00
+ 1.747020416969682e+00
+ 1.800000000000000e+00
+ -3.559906024171066e-03
+277 2.525000000000007e-09
+ 1.736763127604693e+00
+ 1.770860323785203e+00
+ 1.800000000000000e+00
+ -3.600603880397759e-03
+278 2.535000000000007e-09
+ 1.673698220794244e+00
+ 1.783970852662444e+00
+ 1.800000000000000e+00
+ -3.677510754027002e-03
+279 2.545000000000008e-09
+ 1.595465565375503e+00
+ 1.791094777738560e+00
+ 1.800000000000000e+00
+ -3.748205693188274e-03
+280 2.555000000000008e-09
+ 1.508313787379415e+00
+ 1.794989528316707e+00
+ 1.800000000000000e+00
+ -3.822941228408904e-03
+281 2.565000000000008e-09
+ 1.417991231340888e+00
+ 1.797113817783294e+00
+ 1.800000000000000e+00
+ -3.856690478529024e-03
+282 2.575000000000008e-09
+ 1.328915260165164e+00
+ 1.798333855352723e+00
+ 1.800000000000000e+00
+ -3.862464623708918e-03
+283 2.585000000000008e-09
+ 1.244097993773831e+00
+ 1.799032045215505e+00
+ 1.800000000000000e+00
+ -3.811114647815109e-03
+284 2.595000000000009e-09
+ 1.165274885569932e+00
+ 1.799436130405530e+00
+ 1.800000000000000e+00
+ -3.757678907610696e-03
+285 2.605000000000009e-09
+ 1.094028287448738e+00
+ 1.799576970905124e+00
+ 1.800000000000000e+00
+ -3.708840343146408e-03
+286 2.615000000000009e-09
+ 1.032630362914763e+00
+ 1.799664798183377e+00
+ 1.800000000000000e+00
+ -3.636361474893237e-03
+287 2.625000000000009e-09
+ 9.778983566848710e-01
+ 1.799738383696072e+00
+ 1.800000000000000e+00
+ -3.557803108966191e-03
+288 2.635000000000009e-09
+ 9.189188445956594e-01
+ 1.799774080443304e+00
+ 1.800000000000000e+00
+ -3.556424043877092e-03
+289 2.645000000000009e-09
+ 8.517731981087580e-01
+ 1.799761509501920e+00
+ 1.800000000000000e+00
+ -3.591122988589053e-03
+290 2.655000000000010e-09
+ 7.817189061119890e-01
+ 1.799780472649904e+00
+ 1.800000000000000e+00
+ -3.665430232786366e-03
+291 2.665000000000010e-09
+ 7.137637243691788e-01
+ 1.799790083890087e+00
+ 1.800000000000000e+00
+ -3.736536159784110e-03
+292 2.675000000000010e-09
+ 6.516142166243016e-01
+ 1.799816082459582e+00
+ 1.800000000000000e+00
+ -3.813200959605312e-03
+293 2.685000000000010e-09
+ 5.969559707618493e-01
+ 1.799831526722594e+00
+ 1.800000000000000e+00
+ -3.853283360585444e-03
+294 2.695000000000010e-09
+ 5.503263440657399e-01
+ 1.799854982656401e+00
+ 1.800000000000000e+00
+ -3.865212010328465e-03
+295 2.705000000000010e-09
+ 5.115544706093186e-01
+ 1.799871884013967e+00
+ 1.800000000000000e+00
+ -3.820773396333770e-03
+296 2.715000000000011e-09
+ 4.801058417675291e-01
+ 1.799889463403082e+00
+ 1.800000000000000e+00
+ -3.765858578409916e-03
+297 2.725000000000011e-09
+ 4.549177272973844e-01
+ 1.799880108530264e+00
+ 1.800000000000000e+00
+ -3.716025839575701e-03
+298 2.735000000000011e-09
+ 4.347741767257710e-01
+ 1.799856730769027e+00
+ 1.800000000000000e+00
+ -3.651489734180766e-03
+299 2.745000000000011e-09
+ 4.188056422555871e-01
+ 1.799870496151836e+00
+ 1.800000000000000e+00
+ -3.564897839277035e-03
+300 2.755000000000011e-09
+ 4.062052338815145e-01
+ 1.799852565442489e+00
+ 1.800000000000000e+00
+ -3.553542141584603e-03
+301 2.765000000000011e-09
+ 3.961623108168953e-01
+ 1.799760135176731e+00
+ 1.800000000000000e+00
+ -3.582898887198656e-03
+302 2.775000000000012e-09
+ 3.881174768139825e-01
+ 1.799710583478934e+00
+ 1.800000000000000e+00
+ -3.652978491438523e-03
+303 2.785000000000012e-09
+ 3.814865402767008e-01
+ 1.799718645958923e+00
+ 1.800000000000000e+00
+ -3.725315161835387e-03
+304 2.795000000000012e-09
+ 3.758552104974667e-01
+ 1.799794602206803e+00
+ 1.800000000000000e+00
+ -3.802254806768272e-03
+305 2.805000000000012e-09
+ 3.709311147444561e-01
+ 1.799935498334402e+00
+ 1.800000000000000e+00
+ -3.849469086238212e-03
+306 2.815000000000012e-09
+ 3.664855450038403e-01
+ 1.800173280038929e+00
+ 1.800000000000000e+00
+ -3.866195769863277e-03
+307 2.825000000000012e-09
+ 3.622978012888948e-01
+ 1.800608895474349e+00
+ 1.800000000000000e+00
+ -3.830423783657293e-03
+308 2.835000000000013e-09
+ 3.581370220720089e-01
+ 1.801454447933418e+00
+ 1.800000000000000e+00
+ -3.773975545890461e-03
+309 2.845000000000013e-09
+ 3.539647313151419e-01
+ 1.803087347070973e+00
+ 1.800000000000000e+00
+ -3.723025012528055e-03
+310 2.855000000000013e-09
+ 3.501971689142501e-01
+ 1.804609371218123e+00
+ 1.800000000000000e+00
+ -3.665672096868874e-03
+311 2.865000000000013e-09
+ 3.475433944747368e-01
+ 1.805085429599431e+00
+ 1.800000000000000e+00
+ -3.574283249874857e-03
+312 2.875000000000013e-09
+ 3.471325561514864e-01
+ 1.804869117897904e+00
+ 1.800000000000000e+00
+ -3.551509629980241e-03
+313 2.885000000000014e-09
+ 3.512103980937182e-01
+ 1.804128379053994e+00
+ 1.800000000000000e+00
+ -3.575827255701879e-03
+314 2.895000000000014e-09
+ 3.636225137753606e-01
+ 1.803221595219715e+00
+ 1.800000000000000e+00
+ -3.640459027817241e-03
+315 2.905000000000014e-09
+ 3.903547933394977e-01
+ 1.802630764458162e+00
+ 1.800000000000000e+00
+ -3.714346914271794e-03
+316 2.915000000000014e-09
+ 4.426762085751926e-01
+ 1.802512527333698e+00
+ 1.800000000000000e+00
+ -3.790473449404785e-03
+317 2.925000000000014e-09
+ 5.417117088388829e-01
+ 1.803027162219379e+00
+ 1.800000000000000e+00
+ -3.844996018866086e-03
+318 2.935000000000014e-09
+ 7.115532585973333e-01
+ 1.804373232857604e+00
+ 1.800000000000000e+00
+ -3.865722713372560e-03
+319 2.945000000000015e-09
+ 9.437967079221198e-01
+ 1.806969478815105e+00
+ 1.800000000000000e+00
+ -3.839598380460938e-03
+320 2.955000000000015e-09
+ 1.202182052429260e+00
+ 1.810793987733534e+00
+ 1.800000000000000e+00
+ -3.782157634599369e-03
+321 2.965000000000015e-09
+ 1.425560097087904e+00
+ 1.813861817516359e+00
+ 1.800000000000000e+00
+ -3.730151094812502e-03
+322 2.975000000000015e-09
+ 1.574860363409074e+00
+ 1.814415415673919e+00
+ 1.800000000000000e+00
+ -3.678440677103369e-03
+323 2.985000000000015e-09
+ 1.666393566588430e+00
+ 1.810568804869014e+00
+ 1.800000000000000e+00
+ -3.585846769836529e-03
+324 2.995000000000015e-09
+ 1.723495636802481e+00
+ 1.796946941855051e+00
+ 1.800000000000000e+00
+ -3.550543051860369e-03
+325 3.005000000000016e-09
+ 1.757576761686423e+00
+ 1.766405038088569e+00
+ 1.800000000000000e+00
+ -3.569797096528144e-03
+326 3.015000000000016e-09
+ 1.776661329822271e+00
+ 1.715438995616355e+00
+ 1.800000000000000e+00
+ -3.628165726467144e-03
+327 3.025000000000016e-09
+ 1.787171559433383e+00
+ 1.646044072659851e+00
+ 1.800000000000000e+00
+ -3.703419510544656e-03
+328 3.035000000000016e-09
+ 1.792792676983318e+00
+ 1.563755663241853e+00
+ 1.800000000000000e+00
+ -3.778220844195154e-03
+329 3.045000000000016e-09
+ 1.795961721123607e+00
+ 1.474822612697280e+00
+ 1.800000000000000e+00
+ -3.839610873962475e-03
+330 3.055000000000016e-09
+ 1.797616480052903e+00
+ 1.384517825763698e+00
+ 1.800000000000000e+00
+ -3.864128943838700e-03
+331 3.065000000000017e-09
+ 1.798666281804185e+00
+ 1.296753571518718e+00
+ 1.800000000000000e+00
+ -3.847845835481594e-03
+332 3.075000000000017e-09
+ 1.799189353756373e+00
+ 1.214013116699544e+00
+ 1.800000000000000e+00
+ -3.790565288564349e-03
+333 3.085000000000017e-09
+ 1.799535275613613e+00
+ 1.137763550710471e+00
+ 1.800000000000000e+00
+ -3.737646638011936e-03
+334 3.095000000000017e-09
+ 1.799584239923328e+00
+ 1.069986311057590e+00
+ 1.800000000000000e+00
+ -3.689487057215436e-03
+335 3.105000000000017e-09
+ 1.799718244258401e+00
+ 1.012067342477648e+00
+ 1.800000000000000e+00
+ -3.599341108694084e-03
+336 3.115000000000017e-09
+ 1.799737813790900e+00
+ 9.569762579753907e-01
+ 1.800000000000000e+00
+ -3.550846373252526e-03
+337 3.125000000000018e-09
+ 1.799788724356333e+00
+ 8.946868803395879e-01
+ 1.800000000000000e+00
+ -3.564725860685315e-03
+338 3.135000000000018e-09
+ 1.799748650960423e+00
+ 8.257504068811142e-01
+ 1.800000000000000e+00
+ -3.616341717593667e-03
+339 3.145000000000018e-09
+ 1.799800908512888e+00
+ 7.559655581520159e-01
+ 1.800000000000000e+00
+ -3.692364213824715e-03
+340 3.155000000000018e-09
+ 1.799783318543331e+00
+ 6.898311320812214e-01
+ 1.800000000000000e+00
+ -3.765793895145579e-03
+341 3.165000000000018e-09
+ 1.799837042034280e+00
+ 6.303655866850875e-01
+ 1.800000000000000e+00
+ -3.833120895569738e-03
+342 3.175000000000019e-09
+ 1.799826251576981e+00
+ 5.786657039352685e-01
+ 1.800000000000000e+00
+ -3.861701046773452e-03
+343 3.185000000000019e-09
+ 1.799874173417263e+00
+ 5.350088534868693e-01
+ 1.800000000000000e+00
+ -3.854799456086784e-03
+344 3.195000000000019e-09
+ 1.799867874104641e+00
+ 4.990422125788199e-01
+ 1.800000000000000e+00
+ -3.799304803551811e-03
+345 3.205000000000019e-09
+ 1.799900571344346e+00
+ 4.700737700637820e-01
+ 1.800000000000000e+00
+ -3.745586356372073e-03
+346 3.215000000000019e-09
+ 1.799860017654798e+00
+ 4.468998515976683e-01
+ 1.800000000000000e+00
+ -3.698834992275657e-03
+347 3.225000000000019e-09
+ 1.799867182121369e+00
+ 4.283810087991686e-01
+ 1.800000000000000e+00
+ -3.614257320067339e-03
+348 3.235000000000020e-09
+ 1.799865324477118e+00
+ 4.137624493270841e-01
+ 1.800000000000000e+00
+ -3.552724942390547e-03
+349 3.245000000000020e-09
+ 1.799829301800610e+00
+ 4.022109630472657e-01
+ 1.800000000000000e+00
+ -3.560471161463790e-03
+350 3.255000000000020e-09
+ 1.799725729909619e+00
+ 3.929598527191667e-01
+ 1.800000000000000e+00
+ -3.605272997275668e-03
+351 3.265000000000020e-09
+ 1.799714291355327e+00
+ 3.855177927288105e-01
+ 1.800000000000000e+00
+ -3.680997762390893e-03
+352 3.275000000000020e-09
+ 1.799731911050873e+00
+ 3.792885502218067e-01
+ 1.800000000000000e+00
+ -3.753489331374429e-03
+353 3.285000000000020e-09
+ 1.799845582524034e+00
+ 3.739560903329930e-01
+ 1.800000000000000e+00
+ -3.825348651767894e-03
+354 3.295000000000021e-09
+ 1.800002975859731e+00
+ 3.692317877925552e-01
+ 1.800000000000000e+00
+ -3.858707372599190e-03
+355 3.305000000000021e-09
+ 1.800309891804301e+00
+ 3.649104163736296e-01
+ 1.800000000000000e+00
+ -3.860141083053653e-03
+356 3.315000000000021e-09
+ 1.800855352974025e+00
+ 3.607572824579550e-01
+ 1.800000000000000e+00
+ -3.808440086378390e-03
+357 3.325000000000021e-09
+ 1.801937990172807e+00
+ 3.565702092379268e-01
+ 1.800000000000000e+00
+ -3.753816235887819e-03
+358 3.335000000000021e-09
+ 1.803805928243424e+00
+ 3.524887619397232e-01
+ 1.800000000000000e+00
+ -3.706880487425076e-03
+359 3.345000000000021e-09
+ 1.804888507628136e+00
+ 3.490283043790053e-01
+ 1.800000000000000e+00
+ -3.629819273521543e-03
+360 3.355000000000022e-09
+ 1.805048434879402e+00
+ 3.470418095180013e-01
+ 1.800000000000000e+00
+ -3.556588552556035e-03
+361 3.365000000000022e-09
+ 1.804669542937500e+00
+ 3.479591962451622e-01
+ 1.800000000000000e+00
+ -3.556844188910082e-03
+362 3.375000000000022e-09
+ 1.803756451014735e+00
+ 3.545954180214870e-01
+ 1.800000000000000e+00
+ -3.595277525206438e-03
+363 3.385000000000022e-09
+ 1.802971652585766e+00
+ 3.714667607845241e-01
+ 1.800000000000000e+00
+ -3.669160127825594e-03
+364 3.395000000000022e-09
+ 1.802509091744413e+00
+ 4.059498740342064e-01
+ 1.800000000000000e+00
+ -3.741576989063405e-03
+365 3.405000000000022e-09
+ 1.802634697577183e+00
+ 4.726052772375856e-01
+ 1.800000000000000e+00
+ -3.816178246962950e-03
+366 3.415000000000023e-09
+ 1.803404168585300e+00
+ 5.961643737075036e-01
+ 1.800000000000000e+00
+ -3.855354395577064e-03
+367 3.425000000000023e-09
+ 1.805174544217848e+00
+ 7.920530992107532e-01
+ 1.800000000000000e+00
+ -3.863645535286420e-03
+368 3.435000000000023e-09
+ 1.808312666934059e+00
+ 1.039856567105106e+00
+ 1.800000000000000e+00
+ -3.817943967205740e-03
+369 3.445000000000023e-09
+ 1.812150911497050e+00
+ 1.292566449023931e+00
+ 1.800000000000000e+00
+ -3.762088995784880e-03
+370 3.455000000000023e-09
+ 1.814410936341800e+00
+ 1.489812268760438e+00
+ 1.800000000000000e+00
+ -3.714159832891669e-03
+371 3.465000000000023e-09
+ 1.813700428753061e+00
+ 1.613980606187151e+00
+ 1.800000000000000e+00
+ -3.645233972445657e-03
+372 3.475000000000024e-09
+ 1.807041934922258e+00
+ 1.690903081473906e+00
+ 1.800000000000000e+00
+ -3.562747612665312e-03
+373 3.485000000000024e-09
+ 1.787878682514226e+00
+ 1.738373739797945e+00
+ 1.800000000000000e+00
+ -3.553784642499074e-03
+374 3.495000000000024e-09
+ 1.749841046224975e+00
+ 1.766045614729892e+00
+ 1.800000000000000e+00
+ -3.586526725846126e-03
+375 3.505000000000024e-09
+ 1.691534763150853e+00
+ 1.781309944821027e+00
+ 1.800000000000000e+00
+ -3.656883048683348e-03
+376 3.515000000000024e-09
+ 1.616610126922925e+00
+ 1.789686269790194e+00
+ 1.800000000000000e+00
+ -3.730139804863362e-03
+377 3.525000000000025e-09
+ 1.531149135697543e+00
+ 1.794180324401146e+00
+ 1.800000000000000e+00
+ -3.805706290193491e-03
+378 3.535000000000025e-09
+ 1.441164684843650e+00
+ 1.796705773779185e+00
+ 1.800000000000000e+00
+ -3.851649317787108e-03
+379 3.545000000000025e-09
+ 1.351422492953063e+00
+ 1.798059405358447e+00
+ 1.800000000000000e+00
+ -3.865316929986709e-03
+380 3.555000000000025e-09
+ 1.265306969841942e+00
+ 1.798907235802611e+00
+ 1.800000000000000e+00
+ -3.827584578149319e-03
+381 3.565000000000025e-09
+ 1.184829101820501e+00
+ 1.799340822576440e+00
+ 1.800000000000000e+00
+ -3.770282258665291e-03
+382 3.575000000000025e-09
+ 1.111423090517912e+00
+ 1.799573950957028e+00
+ 1.800000000000000e+00
+ -3.721128317539499e-03
+383 3.585000000000026e-09
+ 1.047403831894572e+00
+ 1.799623175117875e+00
+ 1.800000000000000e+00
+ -3.659886572484089e-03
+384 3.595000000000026e-09
+ 9.919094664602405e-01
+ 1.799739441612553e+00
+ 1.800000000000000e+00
+ -3.571232575294605e-03
+385 3.605000000000026e-09
+ 9.349071903484715e-01
+ 1.799755708347403e+00
+ 1.800000000000000e+00
+ -3.551470553804194e-03
+386 3.615000000000026e-09
+ 8.695024654772564e-01
+ 1.799777470498652e+00
+ 1.800000000000000e+00
+ -3.578987615344582e-03
+387 3.625000000000026e-09
+ 7.996406931732400e-01
+ 1.799761760417334e+00
+ 1.800000000000000e+00
+ -3.644406419366016e-03
+388 3.635000000000026e-09
+ 7.307372690551300e-01
+ 1.799799424648972e+00
+ 1.800000000000000e+00
+ -3.719050695089626e-03
+389 3.645000000000027e-09
+ 6.668550720982924e-01
+ 1.799797781163344e+00
+ 1.800000000000000e+00
+ -3.794240732884280e-03
+390 3.655000000000027e-09
+ 6.102026028716504e-01
+ 1.799838466732697e+00
+ 1.800000000000000e+00
+ -3.847400578036126e-03
+391 3.665000000000027e-09
+ 5.615044202708529e-01
+ 1.799838876331364e+00
+ 1.800000000000000e+00
+ -3.865391505889997e-03
+392 3.675000000000027e-09
+ 5.207613808242788e-01
+ 1.799876925454099e+00
+ 1.800000000000000e+00
+ -3.836943288604032e-03
+393 3.685000000000027e-09
+ 4.875120204414138e-01
+ 1.799877658916747e+00
+ 1.800000000000000e+00
+ -3.778466636853097e-03
+394 3.695000000000027e-09
+ 4.608410069838788e-01
+ 1.799893645209962e+00
+ 1.800000000000000e+00
+ -3.728129705991882e-03
+395 3.705000000000028e-09
+ 4.395129998818707e-01
+ 1.799852802479662e+00
+ 1.800000000000000e+00
+ -3.673267334843465e-03
+396 3.715000000000028e-09
+ 4.225397097617848e-01
+ 1.799872123469110e+00
+ 1.800000000000000e+00
+ -3.581970051831565e-03
+397 3.725000000000028e-09
+ 4.091526949145133e-01
+ 1.799859784372669e+00
+ 1.800000000000000e+00
+ -3.550126778169759e-03
+398 3.735000000000028e-09
+ 3.985282469250510e-01
+ 1.799790097564466e+00
+ 1.800000000000000e+00
+ -3.572544500112219e-03
+399 3.745000000000028e-09
+ 3.900159425239273e-01
+ 1.799711135971010e+00
+ 1.800000000000000e+00
+ -3.632035966500790e-03
+400 3.755000000000028e-09
+ 3.830799652278349e-01
+ 1.799716317924369e+00
+ 1.800000000000000e+00
+ -3.708094986343934e-03
+401 3.765000000000027e-09
+ 3.772178526027827e-01
+ 1.799763597223003e+00
+ 1.800000000000000e+00
+ -3.782157840504689e-03
+402 3.775000000000027e-09
+ 3.721394811619761e-01
+ 1.799897461724412e+00
+ 1.800000000000000e+00
+ -3.842346327176067e-03
+403 3.785000000000027e-09
+ 3.675900834639736e-01
+ 1.800094464486993e+00
+ 1.800000000000000e+00
+ -3.864206130249720e-03
+404 3.795000000000027e-09
+ 3.633590217025665e-01
+ 1.800473752098095e+00
+ 1.800000000000000e+00
+ -3.845551530276841e-03
+405 3.805000000000026e-09
+ 3.592102713808542e-01
+ 1.801180198143202e+00
+ 1.800000000000000e+00
+ -3.786803186926217e-03
+406 3.815000000000026e-09
+ 3.550147404483966e-01
+ 1.802577770622048e+00
+ 1.800000000000000e+00
+ -3.735441214576741e-03
+407 3.825000000000026e-09
+ 3.510929881754096e-01
+ 1.804350598661528e+00
+ 1.800000000000000e+00
+ -3.684995353024688e-03
+408 3.835000000000026e-09
+ 3.480635071436568e-01
+ 1.805054006232927e+00
+ 1.800000000000000e+00
+ -3.594767883571983e-03
+409 3.845000000000025e-09
+ 3.469259795158024e-01
+ 1.804958796319263e+00
+ 1.800000000000000e+00
+ -3.549956989958546e-03
+410 3.855000000000025e-09
+ 3.495589156183765e-01
+ 1.804372902980713e+00
+ 1.800000000000000e+00
+ -3.567107608183501e-03
+411 3.865000000000025e-09
+ 3.593765150895684e-01
+ 1.803418864913036e+00
+ 1.800000000000000e+00
+ -3.620030915948544e-03
+412 3.875000000000025e-09
+ 3.816774930363638e-01
+ 1.802753750052755e+00
+ 1.800000000000000e+00
+ -3.697086070185785e-03
+413 3.885000000000025e-09
+ 4.258857347491944e-01
+ 1.802477697304335e+00
+ 1.800000000000000e+00
+ -3.769781464600409e-03
+414 3.895000000000024e-09
+ 5.103781956203584e-01
+ 1.802835319539636e+00
+ 1.800000000000000e+00
+ -3.836267130791147e-03
+415 3.905000000000024e-09
+ 6.612166809369705e-01
+ 1.803923281917786e+00
+ 1.800000000000000e+00
+ -3.862072473229476e-03
+416 3.915000000000024e-09
+ 8.799661137117418e-01
+ 1.806165749001085e+00
+ 1.800000000000000e+00
+ -3.853005811741590e-03
+417 3.925000000000024e-09
+ 1.136870693191953e+00
+ 1.809784582020391e+00
+ 1.800000000000000e+00
+ -3.795426437172140e-03
+418 3.935000000000023e-09
+ 1.374877654762025e+00
+ 1.813273273730438e+00
+ 1.800000000000000e+00
+ -3.743208353998223e-03
+419 3.945000000000023e-09
+ 1.543421748484980e+00
+ 1.814568720650259e+00
+ 1.800000000000000e+00
+ -3.694955974131159e-03
+420 3.955000000000023e-09
+ 1.646846055823525e+00
+ 1.812201652725068e+00
+ 1.800000000000000e+00
+ -3.609225024396103e-03
+421 3.965000000000023e-09
+ 1.711430808507560e+00
+ 1.801779394211996e+00
+ 1.800000000000000e+00
+ -3.551220475741933e-03
+422 3.975000000000022e-09
+ 1.750558886331414e+00
+ 1.776124201675841e+00
+ 1.800000000000000e+00
+ -3.562561716969433e-03
+423 3.985000000000022e-09
+ 1.772811573301790e+00
+ 1.730396353148940e+00
+ 1.800000000000000e+00
+ -3.608656127390063e-03
+424 3.995000000000022e-09
+ 1.785050486684488e+00
+ 1.665275644287977e+00
+ 1.800000000000000e+00
+ -3.685846736815187e-03
+425 4.005000000000022e-09
+ 1.791664136209423e+00
+ 1.585681280303315e+00
+ 1.800000000000000e+00
+ -3.757406305726911e-03
+426 4.015000000000021e-09
+ 1.795318846962261e+00
+ 1.497890259692495e+00
+ 1.800000000000000e+00
+ -3.828978812064291e-03
+427 4.025000000000021e-09
+ 1.797279582120473e+00
+ 1.407510841339199e+00
+ 1.800000000000000e+00
+ -3.859267154591180e-03
+428 4.035000000000021e-09
+ 1.798447142039110e+00
+ 1.318803628961567e+00
+ 1.800000000000000e+00
+ -3.858968509816894e-03
+429 4.045000000000021e-09
+ 1.799082697924255e+00
+ 1.234612243290484e+00
+ 1.800000000000000e+00
+ -3.804419334976778e-03
+430 4.055000000000020e-09
+ 1.799473214717029e+00
+ 1.156568148923829e+00
+ 1.800000000000000e+00
+ -3.751352344938866e-03
+431 4.065000000000020e-09
+ 1.799577175086975e+00
+ 1.086362619886662e+00
+ 1.800000000000000e+00
+ -3.703428373429562e-03
+432 4.075000000000020e-09
+ 1.799683791404142e+00
+ 1.026118340986791e+00
+ 1.800000000000000e+00
+ -3.624639489740418e-03
+433 4.085000000000020e-09
+ 1.799736954608506e+00
+ 9.714598825980654e-01
+ 1.800000000000000e+00
+ -3.554310568706052e-03
+434 4.095000000000019e-09
+ 1.799781081798925e+00
+ 9.114736677275603e-01
+ 1.800000000000000e+00
+ -3.558714101892665e-03
+435 4.105000000000019e-09
+ 1.799755217675323e+00
+ 8.436732325998398e-01
+ 1.800000000000000e+00
+ -3.598237558572605e-03
+436 4.115000000000019e-09
+ 1.799788646238195e+00
+ 7.736360052977204e-01
+ 1.800000000000000e+00
+ -3.674188347714654e-03
+437 4.125000000000019e-09
+ 1.799786236033815e+00
+ 7.061959302319406e-01
+ 1.800000000000000e+00
+ -3.745330444930306e-03
+438 4.135000000000018e-09
+ 1.799824173368225e+00
+ 6.448667888306299e-01
+ 1.800000000000000e+00
+ -3.820324097732960e-03
+439 4.145000000000018e-09
+ 1.799828491072261e+00
+ 5.911250197033925e-01
+ 1.800000000000000e+00
+ -3.856036697933887e-03
+440 4.155000000000018e-09
+ 1.799862230898416e+00
+ 5.454288006003325e-01
+ 1.800000000000000e+00
+ -3.863162929042114e-03
+441 4.165000000000018e-09
+ 1.799869568163068e+00
+ 5.075403040951623e-01
+ 1.800000000000000e+00
+ -3.813804403151049e-03
+442 4.175000000000018e-09
+ 1.799894353274430e+00
+ 4.768847113696875e-01
+ 1.800000000000000e+00
+ -3.759631168402512e-03
+443 4.185000000000017e-09
+ 1.799873222409255e+00
+ 4.523432913011827e-01
+ 1.800000000000000e+00
+ -3.710933570190918e-03
+444 4.195000000000017e-09
+ 1.799859913872097e+00
+ 4.327171294735698e-01
+ 1.800000000000000e+00
+ -3.640191350080908e-03
+445 4.205000000000017e-09
+ 1.799868982302744e+00
+ 4.171838387637811e-01
+ 1.800000000000000e+00
+ -3.559594229358433e-03
+446 4.215000000000017e-09
+ 1.799847205476623e+00
+ 4.049235427223380e-01
+ 1.800000000000000e+00
+ -3.555443162849009e-03
+447 4.225000000000016e-09
+ 1.799747641099005e+00
+ 3.951333648692565e-01
+ 1.800000000000000e+00
+ -3.589021377193572e-03
+448 4.235000000000016e-09
+ 1.799711629817954e+00
+ 3.872872247408026e-01
+ 1.800000000000000e+00
+ -3.662052136700816e-03
+449 4.245000000000016e-09
+ 1.799721099880090e+00
+ 3.807858695562499e-01
+ 1.800000000000000e+00
+ -3.733726055040357e-03
+450 4.255000000000016e-09
+ 1.799810142615572e+00
+ 3.752528226323305e-01
+ 1.800000000000000e+00
+ -3.810302980175886e-03
+451 4.265000000000015e-09
+ 1.799954521199538e+00
+ 3.703937910524288e-01
+ 1.800000000000000e+00
+ -3.852479133878087e-03
+452 4.275000000000015e-09
+ 1.800213186501584e+00
+ 3.659906452562547e-01
+ 1.800000000000000e+00
+ -3.865490992994712e-03
+453 4.285000000000015e-09
+ 1.800678515210511e+00
+ 3.618171259995048e-01
+ 1.800000000000000e+00
+ -3.823439585365340e-03
+454 4.295000000000015e-09
+ 1.801593107279728e+00
+ 3.576484543800543e-01
+ 1.800000000000000e+00
+ -3.767850574045373e-03
+455 4.305000000000014e-09
+ 1.803320450169456e+00
+ 3.534968465525804e-01
+ 1.800000000000000e+00
+ -3.717976693289979e-03
+456 4.315000000000014e-09
+ 1.804706458076033e+00
+ 3.498137445466581e-01
+ 1.800000000000000e+00
+ -3.655182975981480e-03
+457 4.325000000000014e-09
+ 1.805081834291195e+00
+ 3.473516933980537e-01
+ 1.800000000000000e+00
+ -3.567237902469393e-03
+458 4.335000000000014e-09
+ 1.804817066846249e+00
+ 3.473179174870500e-01
+ 1.800000000000000e+00
+ -3.552812261947906e-03
+459 4.345000000000013e-09
+ 1.804012329265166e+00
+ 3.521319686217877e-01
+ 1.800000000000000e+00
+ -3.581053709638886e-03
+460 4.355000000000013e-09
+ 1.803139864667385e+00
+ 3.658422994149865e-01
+ 1.800000000000000e+00
+ -3.649608164332322e-03
+461 4.365000000000013e-09
+ 1.802584714061789e+00
+ 3.948098447248523e-01
+ 1.800000000000000e+00
+ -3.722536841174926e-03
+462 4.375000000000013e-09
+ 1.802542073562669e+00
+ 4.512577989963338e-01
+ 1.800000000000000e+00
+ -3.799155908687344e-03
+463 4.385000000000012e-09
+ 1.803131321027381e+00
+ 5.575311793696240e-01
+ 1.800000000000000e+00
+ -3.848466242198494e-03
+464 4.395000000000012e-09
+ 1.804603854606959e+00
+ 7.357741037815019e-01
+ 1.800000000000000e+00
+ -3.866113484579606e-03
+465 4.405000000000012e-09
+ 1.807367759049146e+00
+ 9.734417418128170e-01
+ 1.800000000000000e+00
+ -3.832962852814935e-03
+466 4.415000000000012e-09
+ 1.811235750986661e+00
+ 1.231067930706225e+00
+ 1.800000000000000e+00
+ -3.776016006653549e-03
+467 4.425000000000011e-09
+ 1.814073295209319e+00
+ 1.446807437499921e+00
+ 1.800000000000000e+00
+ -3.724935429918537e-03
+468 4.435000000000011e-09
+ 1.814261854806066e+00
+ 1.587833245185474e+00
+ 1.800000000000000e+00
+ -3.669079314094058e-03
+469 4.445000000000011e-09
+ 1.809629894861452e+00
+ 1.674508967011123e+00
+ 1.800000000000000e+00
+ -3.577165908047520e-03
+470 4.455000000000011e-09
+ 1.794390680457660e+00
+ 1.728456609216602e+00
+ 1.800000000000000e+00
+ -3.551078810194444e-03
+471 4.465000000000011e-09
+ 1.761550151467354e+00
+ 1.760425613687581e+00
+ 1.800000000000000e+00
+ -3.574223620931908e-03
+472 4.475000000000010e-09
+ 1.708251212021200e+00
+ 1.778221949826670e+00
+ 1.800000000000000e+00
+ -3.637159560370908e-03
+473 4.485000000000010e-09
+ 1.637042269739245e+00
+ 1.788023447640831e+00
+ 1.800000000000000e+00
+ -3.711561795415322e-03
+474 4.495000000000010e-09
+ 1.553670847122779e+00
+ 1.793254626306309e+00
+ 1.800000000000000e+00
+ -3.787253951765707e-03
+475 4.505000000000010e-09
+ 1.464335398060210e+00
+ 1.796216553359902e+00
+ 1.800000000000000e+00
+ -3.843744499226815e-03
+476 4.515000000000009e-09
+ 1.374150687564179e+00
+ 1.797759752054035e+00
+ 1.800000000000000e+00
+ -3.865348890771700e-03
+477 4.525000000000009e-09
+ 1.286867730177280e+00
+ 1.798750890165093e+00
+ 1.800000000000000e+00
+ -3.841906111549855e-03
+478 4.535000000000009e-09
+ 1.204814502087339e+00
+ 1.799237043299790e+00
+ 1.800000000000000e+00
+ -3.784271742273339e-03
+479 4.545000000000009e-09
+ 1.129419138417236e+00
+ 1.799553528303961e+00
+ 1.800000000000000e+00
+ -3.732111523837621e-03
+480 4.555000000000008e-09
+ 1.062793144754399e+00
+ 1.799592529214255e+00
+ 1.800000000000000e+00
+ -3.681445065619327e-03
+481 4.565000000000008e-09
+ 1.005776002242544e+00
+ 1.799728707766578e+00
+ 1.800000000000000e+00
+ -3.589239462519019e-03
+482 4.575000000000008e-09
+ 9.502369383557758e-01
+ 1.799741288053017e+00
+ 1.800000000000000e+00
+ -3.550445387548243e-03
+483 4.585000000000008e-09
+ 8.869220120591215e-01
+ 1.799787857415322e+00
+ 1.800000000000000e+00
+ -3.568430206151101e-03
+484 4.595000000000007e-09
+ 8.176078517894962e-01
+ 1.799749958425214e+00
+ 1.800000000000000e+00
+ -3.624985572684263e-03
+485 4.605000000000007e-09
+ 7.480330807178796e-01
+ 1.799802854234320e+00
+ 1.800000000000000e+00
+ -3.700597951872279e-03
+486 4.615000000000007e-09
+ 6.825605100768134e-01
+ 1.799785482666016e+00
+ 1.800000000000000e+00
+ -3.774946201335419e-03
+487 4.625000000000007e-09
+ 6.239605008249458e-01
+ 1.799839675781473e+00
+ 1.800000000000000e+00
+ -3.838072021546172e-03
+488 4.635000000000006e-09
+ 5.731939945683605e-01
+ 1.799828163868459e+00
+ 1.800000000000000e+00
+ -3.863527022742787e-03
+489 4.645000000000006e-09
+ 5.304524564631811e-01
+ 1.799876901721582e+00
+ 1.800000000000000e+00
+ -3.849834289174543e-03
+490 4.655000000000006e-09
+ 4.953441473906429e-01
+ 1.799869391687744e+00
+ 1.800000000000000e+00
+ -3.792771741163347e-03
+491 4.665000000000006e-09
+ 4.671115938278088e-01
+ 1.799900499052783e+00
+ 1.800000000000000e+00
+ -3.739711987344526e-03
+492 4.675000000000005e-09
+ 4.445307509857469e-01
+ 1.799855977948974e+00
+ 1.800000000000000e+00
+ -3.692041968997257e-03
+493 4.685000000000005e-09
+ 4.265025748065243e-01
+ 1.799869692307948e+00
+ 1.800000000000000e+00
+ -3.603155024851483e-03
+494 4.695000000000005e-09
+ 4.122798383407110e-01
+ 1.799863756260652e+00
+ 1.800000000000000e+00
+ -3.551134722884865e-03
+495 4.705000000000005e-09
+ 4.010300898141091e-01
+ 1.799818415762651e+00
+ 1.800000000000000e+00
+ -3.563578928953814e-03
+496 4.715000000000005e-09
+ 3.920157055291972e-01
+ 1.799718996331581e+00
+ 1.800000000000000e+00
+ -3.613337752651649e-03
+497 4.725000000000004e-09
+ 3.847411248791783e-01
+ 1.799715135981263e+00
+ 1.800000000000000e+00
+ -3.689470754937854e-03
+498 4.735000000000004e-09
+ 3.786300583894022e-01
+ 1.799739772571836e+00
+ 1.800000000000000e+00
+ -3.762530883180845e-03
+499 4.745000000000004e-09
+ 3.733812492817903e-01
+ 1.799861701368838e+00
+ 1.800000000000000e+00
+ -3.831255770231384e-03
+500 4.755000000000004e-09
+ 3.687142954897459e-01
+ 1.800028649409948e+00
+ 1.800000000000000e+00
+ -3.860934544399227e-03
+501 4.765000000000003e-09
+ 3.644246195989942e-01
+ 1.800357732656310e+00
+ 1.800000000000000e+00
+ -3.856388844783001e-03
+502 4.775000000000003e-09
+ 3.602759580144489e-01
+ 1.800947606224008e+00
+ 1.800000000000000e+00
+ -3.801617236324137e-03
+503 4.785000000000003e-09
+ 3.560825309887550e-01
+ 1.802118516241503e+00
+ 1.800000000000000e+00
+ -3.747743279830349e-03
+504 4.795000000000003e-09
+ 3.520436189726198e-01
+ 1.804000391087971e+00
+ 1.800000000000000e+00
+ -3.701007292854295e-03
+505 4.805000000000002e-09
+ 3.487030324098037e-01
+ 1.804954938422708e+00
+ 1.800000000000000e+00
+ -3.618314718556947e-03
+506 4.815000000000002e-09
+ 3.469590831305188e-01
+ 1.805024916182527e+00
+ 1.800000000000000e+00
+ -3.553496536634206e-03
+507 4.825000000000002e-09
+ 3.483669344568354e-01
+ 1.804586852488006e+00
+ 1.800000000000000e+00
+ -3.559499225490322e-03
+508 4.835000000000002e-09
+ 3.559252356126180e-01
+ 1.803644983563917e+00
+ 1.800000000000000e+00
+ -3.602524906222147e-03
+509 4.845000000000001e-09
+ 3.743768831941512e-01
+ 1.802899974163577e+00
+ 1.800000000000000e+00
+ -3.677988429619021e-03
+510 4.855000000000001e-09
+ 4.116592200690751e-01
+ 1.802488587892982e+00
+ 1.800000000000000e+00
+ -3.750310438866008e-03
+511 4.865000000000001e-09
+ 4.834817039272654e-01
+ 1.802688609762611e+00
+ 1.800000000000000e+00
+ -3.823121352829806e-03
+512 4.875000000000001e-09
+ 6.153686689920302e-01
+ 1.803549637623068e+00
+ 1.800000000000000e+00
+ -3.857835449326827e-03
+513 4.885000000000000e-09
+ 8.187701363905345e-01
+ 1.805462523834489e+00
+ 1.800000000000000e+00
+ -3.861264271091731e-03
+514 4.895000000000000e-09
+ 1.070205836732940e+00
+ 1.808764598408080e+00
+ 1.800000000000000e+00
+ -3.810859310868428e-03
+515 4.905000000000000e-09
+ 1.319246686969233e+00
+ 1.812531241190032e+00
+ 1.800000000000000e+00
+ -3.756005585762116e-03
+516 4.915000000000000e-09
+ 1.507621351165102e+00
+ 1.814504011982953e+00
+ 1.800000000000000e+00
+ -3.708802704672442e-03
+517 4.924999999999999e-09
+ 1.624840339948325e+00
+ 1.813328940187643e+00
+ 1.800000000000000e+00
+ -3.633909630183284e-03
+518 4.934999999999999e-09
+ 1.697707676538600e+00
+ 1.805605297631150e+00
+ 1.800000000000000e+00
+ -3.557935354467658e-03
+519 4.944999999999999e-09
+ 1.742443705310636e+00
+ 1.784508797677901e+00
+ 1.800000000000000e+00
+ -3.556019533591919e-03
+520 4.954999999999999e-09
+ 1.768320755105091e+00
+ 1.744077316590263e+00
+ 1.800000000000000e+00
+ -3.592845839250048e-03
+521 4.964999999999998e-09
+ 1.782566135128673e+00
+ 1.683577932877209e+00
+ 1.800000000000000e+00
+ -3.666023188736105e-03
+522 4.974999999999998e-09
+ 1.790353163912898e+00
+ 1.607101440336402e+00
+ 1.800000000000000e+00
+ -3.738523899478210e-03
+523 4.984999999999998e-09
+ 1.794561410202005e+00
+ 1.520825291488471e+00
+ 1.800000000000000e+00
+ -3.813591804648736e-03
+524 4.994999999999998e-09
+ 1.796899202632356e+00
+ 1.430650146987367e+00
+ 1.800000000000000e+00
+ -3.854399918272427e-03
+525 5.004999999999998e-09
+ 1.798187552895254e+00
+ 1.341184045301415e+00
+ 1.800000000000000e+00
+ -3.864279111239177e-03
+526 5.014999999999997e-09
+ 1.798966767379719e+00
+ 1.255642203814306e+00
+ 1.800000000000000e+00
+ -3.820431184321613e-03
+527 5.024999999999997e-09
+ 1.799385808330826e+00
+ 1.175904803735753e+00
+ 1.800000000000000e+00
+ -3.764259939113678e-03
+528 5.034999999999997e-09
+ 1.799576500091321e+00
+ 1.103455238799891e+00
+ 1.800000000000000e+00
+ -3.715963873495515e-03
+529 5.044999999999997e-09
+ 1.799641408459204e+00
+ 1.040630283766190e+00
+ 1.800000000000000e+00
+ -3.649180065836651e-03
+530 5.054999999999996e-09
+ 1.799739809294999e+00
+ 9.855821457812740e-01
+ 1.800000000000000e+00
+ -3.564706163181012e-03
+531 5.064999999999996e-09
+ 1.799764122035260e+00
+ 9.277355043809322e-01
+ 1.800000000000000e+00
+ -3.553127440101373e-03
+532 5.074999999999996e-09
+ 1.799770323789081e+00
+ 8.614923526167860e-01
+ 1.800000000000000e+00
+ -3.584422334294607e-03
+533 5.084999999999996e-09
+ 1.799769940013379e+00
+ 7.915018464120905e-01
+ 1.800000000000000e+00
+ -3.653663350434504e-03
+534 5.094999999999995e-09
+ 1.799795424522791e+00
+ 7.229951143301762e-01
+ 1.800000000000000e+00
+ -3.727197840576807e-03
+535 5.104999999999995e-09
+ 1.799805800946715e+00
+ 6.598838748860352e-01
+ 1.800000000000000e+00
+ -3.802823384601983e-03
+536 5.114999999999995e-09
+ 1.799835605157547e+00
+ 6.041305343824478e-01
+ 1.800000000000000e+00
+ -3.850579186767477e-03
+537 5.124999999999995e-09
+ 1.799845900796959e+00
+ 5.563715345112463e-01
+ 1.800000000000000e+00
+ -3.865502331646914e-03
+538 5.134999999999994e-09
+ 1.799874916959399e+00
+ 5.165259373114200e-01
+ 1.800000000000000e+00
+ -3.830045804184336e-03
+539 5.144999999999994e-09
+ 1.799882922046945e+00
+ 4.841014380252174e-01
+ 1.800000000000000e+00
+ -3.772435396334714e-03
+540 5.154999999999994e-09
+ 1.799888033380152e+00
+ 4.581123999591775e-01
+ 1.800000000000000e+00
+ -3.722913391980361e-03
+541 5.164999999999994e-09
+ 1.799853883211695e+00
+ 4.373295504317303e-01
+ 1.800000000000000e+00
+ -3.663539385817527e-03
+542 5.174999999999993e-09
+ 1.799871779030829e+00
+ 4.208190360188160e-01
+ 1.800000000000000e+00
+ -3.573796714936313e-03
+543 5.184999999999993e-09
+ 1.799857152445119e+00
+ 4.077949059776957e-01
+ 1.800000000000000e+00
+ -3.551041600037998e-03
+544 5.194999999999993e-09
+ 1.799776340101214e+00
+ 3.974386696811102e-01
+ 1.800000000000000e+00
+ -3.577183155844152e-03
+545 5.204999999999993e-09
+ 1.799710226722092e+00
+ 3.891431797990305e-01
+ 1.800000000000000e+00
+ -3.641182874852062e-03
+546 5.214999999999992e-09
+ 1.799717006382083e+00
+ 3.823490590738963e-01
+ 1.800000000000000e+00
+ -3.716167283400951e-03
+547 5.224999999999992e-09
+ 1.799776961892324e+00
+ 3.765940213193657e-01
+ 1.800000000000000e+00
+ -3.791158406267141e-03
+548 5.234999999999992e-09
+ 1.799914207244217e+00
+ 3.715874296116172e-01
+ 1.800000000000000e+00
+ -3.846148334723565e-03
+549 5.244999999999992e-09
+ 1.800128619252916e+00
+ 3.670869221843556e-01
+ 1.800000000000000e+00
+ -3.865212207943958e-03
+550 5.254999999999991e-09
+ 1.800532227073216e+00
+ 3.628774191672191e-01
+ 1.800000000000000e+00
+ -3.839255965038799e-03
+551 5.264999999999991e-09
+ 1.801299342166994e+00
+ 3.587244943271249e-01
+ 1.800000000000000e+00
+ -3.780640061079124e-03
+552 5.274999999999991e-09
+ 1.802805847428034e+00
+ 3.545358140839066e-01
+ 1.800000000000000e+00
+ -3.729975579714246e-03
+553 5.284999999999991e-09
+ 1.804477075817013e+00
+ 3.506789528718536e-01
+ 1.800000000000000e+00
+ -3.676515956946358e-03
+554 5.294999999999991e-09
+ 1.805075954030068e+00
+ 3.478118329430830e-01
+ 1.800000000000000e+00
+ -3.585098357534345e-03
+555 5.304999999999990e-09
+ 1.804921758376145e+00
+ 3.469872503294305e-01
+ 1.800000000000000e+00
+ -3.549981271261952e-03
+556 5.314999999999990e-09
+ 1.804264708157886e+00
+ 3.502462698135531e-01
+ 1.800000000000000e+00
+ -3.571013574590283e-03
+557 5.324999999999990e-09
+ 1.803326131673887e+00
+ 3.611966513908182e-01
+ 1.800000000000000e+00
+ -3.628880989551985e-03
+558 5.334999999999990e-09
+ 1.802694582978307e+00
+ 3.854278572033020e-01
+ 1.800000000000000e+00
+ -3.705217599772494e-03
+559 5.344999999999989e-09
+ 1.802488114651546e+00
+ 4.331558691974674e-01
+ 1.800000000000000e+00
+ -3.778966953638172e-03
+560 5.354999999999989e-09
+ 1.802916172597047e+00
+ 5.240029996620847e-01
+ 1.800000000000000e+00
+ -3.840849089123488e-03
+561 5.364999999999989e-09
+ 1.804117599086740e+00
+ 6.835063202147127e-01
+ 1.800000000000000e+00
+ -3.863748465960479e-03
+562 5.374999999999989e-09
+ 1.806517387242179e+00
+ 9.086205593832689e-01
+ 1.800000000000000e+00
+ -3.847602025104509e-03
+563 5.384999999999988e-09
+ 1.810246572537153e+00
+ 1.166720923581352e+00
+ 1.800000000000000e+00
+ -3.789037838733268e-03
+564 5.394999999999988e-09
+ 1.813560359115421e+00
+ 1.398502662924401e+00
+ 1.800000000000000e+00
+ -3.737402974492714e-03
+565 5.404999999999988e-09
+ 1.814528641549332e+00
+ 1.558185987018407e+00
+ 1.800000000000000e+00
+ -3.687775846764037e-03
+566 5.414999999999988e-09
+ 1.811530557437323e+00
+ 1.656001603191965e+00
+ 1.800000000000000e+00
+ -3.598382509897827e-03
+567 5.424999999999987e-09
+ 1.799720152307440e+00
+ 1.717099847866530e+00
+ 1.800000000000000e+00
+ -3.550152143650993e-03
+568 5.434999999999987e-09
+ 1.771883795395003e+00
+ 1.753871327894950e+00
+ 1.800000000000000e+00
+ -3.565825777061489e-03
+569 5.444999999999987e-09
+ 1.723767925700772e+00
+ 1.774630874272116e+00
+ 1.800000000000000e+00
+ -3.617009975568920e-03
+570 5.454999999999987e-09
+ 1.656663257006149e+00
+ 1.786055301776107e+00
+ 1.800000000000000e+00
+ -3.694168630844864e-03
+571 5.464999999999986e-09
+ 1.575794794115100e+00
+ 1.792196047614082e+00
+ 1.800000000000000e+00
+ -3.766560283682359e-03
+572 5.474999999999986e-09
+ 1.487441205265260e+00
+ 1.795624483621207e+00
+ 1.800000000000000e+00
+ -3.834473542948466e-03
+573 5.484999999999986e-09
+ 1.397062418467677e+00
+ 1.797436511916429e+00
+ 1.800000000000000e+00
+ -3.861412291581425e-03
+574 5.494999999999986e-09
+ 1.308761576678027e+00
+ 1.798551989943489e+00
+ 1.800000000000000e+00
+ -3.854699349935437e-03
+575 5.504999999999985e-09
+ 1.225216739063670e+00
+ 1.799131551294826e+00
+ 1.800000000000000e+00
+ -3.797750161151894e-03
+576 5.514999999999985e-09
+ 1.147972211598540e+00
+ 1.799504971070447e+00
+ 1.800000000000000e+00
+ -3.745285977406080e-03
+577 5.524999999999985e-09
+ 1.078846591652574e+00
+ 1.799578798984073e+00
+ 1.800000000000000e+00
+ -3.697306481847133e-03
+578 5.534999999999985e-09
+ 1.019703766776265e+00
+ 1.799701064878469e+00
+ 1.800000000000000e+00
+ -3.613167381364105e-03
+579 5.544999999999984e-09
+ 9.649482951383811e-01
+ 1.799736377972877e+00
+ 1.800000000000000e+00
+ -3.551849975904782e-03
+580 5.554999999999984e-09
+ 9.039212774290831e-01
+ 1.799786071048519e+00
+ 1.800000000000000e+00
+ -3.561481979483617e-03
+581 5.564999999999984e-09
+ 8.355533638488056e-01
+ 1.799750771480299e+00
+ 1.800000000000000e+00
+ -3.605852136435942e-03
+582 5.574999999999984e-09
+ 7.655943567401151e-01
+ 1.799795411667060e+00
+ 1.800000000000000e+00
+ -3.682836743196383e-03
+583 5.584999999999984e-09
+ 6.987187027113529e-01
+ 1.799783754049586e+00
+ 1.800000000000000e+00
+ -3.754235973730455e-03
+584 5.594999999999983e-09
+ 6.382262311292476e-01
+ 1.799831059572120e+00
+ 1.800000000000000e+00
+ -3.826841074110283e-03
+585 5.604999999999983e-09
+ 5.854072505886406e-01
+ 1.799826524998146e+00
+ 1.800000000000000e+00
+ -3.858475445052056e-03
+586 5.614999999999983e-09
+ 5.406392728003616e-01
+ 1.799868513088672e+00
+ 1.800000000000000e+00
+ -3.860223404957389e-03
+587 5.624999999999983e-09
+ 5.036270111550011e-01
+ 1.799868064538069e+00
+ 1.800000000000000e+00
+ -3.806847367411562e-03
+588 5.634999999999982e-09
+ 4.737473307960779e-01
+ 1.799898114963997e+00
+ 1.800000000000000e+00
+ -3.753490815616229e-03
+589 5.644999999999982e-09
+ 4.498362615703904e-01
+ 1.799866705232200e+00
+ 1.800000000000000e+00
+ -3.705473150970725e-03
+590 5.654999999999982e-09
+ 4.307170588467096e-01
+ 1.799863323973936e+00
+ 1.800000000000000e+00
+ -3.628694573657952e-03
+591 5.664999999999982e-09
+ 4.156060999204715e-01
+ 1.799867330128813e+00
+ 1.800000000000000e+00
+ -3.555483538193739e-03
+592 5.674999999999981e-09
+ 4.036744828145987e-01
+ 1.799840144183002e+00
+ 1.800000000000000e+00
+ -3.557788532819510e-03
+593 5.684999999999981e-09
+ 3.941317120049290e-01
+ 1.799736611952337e+00
+ 1.800000000000000e+00
+ -3.595731525423178e-03
+594 5.694999999999981e-09
+ 3.864747299242909e-01
+ 1.799712877591686e+00
+ 1.800000000000000e+00
+ -3.671049644616559e-03
+595 5.704999999999981e-09
+ 3.800989061149807e-01
+ 1.799724984753642e+00
+ 1.800000000000000e+00
+ -3.742276024994617e-03
+596 5.714999999999980e-09
+ 3.746595755050595e-01
+ 1.799826104181901e+00
+ 1.800000000000000e+00
+ -3.817819596274665e-03
+597 5.724999999999980e-09
+ 3.698631033468180e-01
+ 1.799975253679761e+00
+ 1.800000000000000e+00
+ -3.855160205697328e-03
+598 5.734999999999980e-09
+ 3.654990399011113e-01
+ 1.800255549936741e+00
+ 1.800000000000000e+00
+ -3.863929508065645e-03
+599 5.744999999999980e-09
+ 3.613366371085580e-01
+ 1.800754458824528e+00
+ 1.800000000000000e+00
+ -3.816321386854692e-03
+600 5.754999999999979e-09
+ 3.571593457205211e-01
+ 1.801741864451542e+00
+ 1.800000000000000e+00
+ -3.761765058922114e-03
+601 5.764999999999979e-09
+ 3.530354374233716e-01
+ 1.803547716402125e+00
+ 1.800000000000000e+00
+ -3.712814962426837e-03
+602 5.774999999999979e-09
+ 3.494466596443432e-01
+ 1.804794359729385e+00
+ 1.800000000000000e+00
+ -3.644159334130323e-03
+603 5.784999999999979e-09
+ 3.471908484306689e-01
+ 1.805070328419877e+00
+ 1.800000000000000e+00
+ -3.561387560898559e-03
+604 5.794999999999978e-09
+ 3.475670353626067e-01
+ 1.804756023305837e+00
+ 1.800000000000000e+00
+ -3.554656922418900e-03
+605 5.804999999999978e-09
+ 3.531724219393744e-01
+ 1.803895577617023e+00
+ 1.800000000000000e+00
+ -3.586846945336935e-03
+606 5.814999999999978e-09
+ 3.682632602732559e-01
+ 1.803061734502950e+00
+ 1.800000000000000e+00
+ -3.658807871662483e-03
+607 5.824999999999978e-09
+ 3.996263071626847e-01
+ 1.802545686594480e+00
+ 1.800000000000000e+00
+ -3.730794045511772e-03
+608 5.834999999999977e-09
+ 4.605072250655342e-01
+ 1.802579505358956e+00
+ 1.800000000000000e+00
+ -3.807473507618938e-03
+609 5.844999999999977e-09
+ 5.744081199533124e-01
+ 1.803247333373323e+00
+ 1.800000000000000e+00
+ -3.851504159071922e-03
+610 5.854999999999977e-09
+ 7.608226035636964e-01
+ 1.804851838166073e+00
+ 1.800000000000000e+00
+ -3.865788316773211e-03
+611 5.864999999999977e-09
+ 1.003420653227113e+00
+ 1.807785867817743e+00
+ 1.800000000000000e+00
+ -3.825969382198731e-03
+612 5.874999999999977e-09
+ 1.259368627431487e+00
+ 1.811662228467277e+00
+ 1.800000000000000e+00
+ -3.769961883562287e-03
+613 5.884999999999976e-09
+ 1.466959057460116e+00
+ 1.814248667116619e+00
+ 1.800000000000000e+00
+ -3.719803910044399e-03
+614 5.894999999999976e-09
+ 1.600087108355892e+00
+ 1.814047930799999e+00
+ 1.800000000000000e+00
+ -3.658912242692503e-03
+615 5.904999999999976e-09
+ 1.682189806379665e+00
+ 1.808549728219465e+00
+ 1.800000000000000e+00
+ -3.569627890679091e-03
+616 5.914999999999976e-09
+ 1.733121453675469e+00
+ 1.791590879012676e+00
+ 1.800000000000000e+00
+ -3.552247089555207e-03
+617 5.924999999999975e-09
+ 1.763082160477577e+00
+ 1.756411916427182e+00
+ 1.800000000000000e+00
+ -3.579186823504898e-03
+618 5.934999999999975e-09
+ 1.779679379948409e+00
+ 1.700816220953935e+00
+ 1.800000000000000e+00
+ -3.646332456170657e-03
+619 5.944999999999975e-09
+ 1.788812425032158e+00
+ 1.627873172899451e+00
+ 1.800000000000000e+00
+ -3.719682713782512e-03
+620 5.954999999999975e-09
+ 1.793689459443014e+00
+ 1.543503767071676e+00
+ 1.800000000000000e+00
+ -3.796091957434203e-03
+621 5.964999999999974e-09
+ 1.796450090582197e+00
+ 1.453834277462843e+00
+ 1.800000000000000e+00
+ -3.847333125474599e-03
+622 5.974999999999974e-09
+ 1.797898340276962e+00
+ 1.363820756002686e+00
+ 1.800000000000000e+00
+ -3.866015003943084e-03
+623 5.984999999999974e-09
+ 1.798826622068851e+00
+ 1.277049826413655e+00
+ 1.800000000000000e+00
+ -3.835387920943379e-03
+624 5.994999999999974e-09
+ 1.799284500509345e+00
+ 1.195700960730418e+00
+ 1.800000000000000e+00
+ -3.778133696430008e-03
+625 6.004999999999973e-09
+ 1.799565868537552e+00
+ 1.121188603725864e+00
+ 1.800000000000000e+00
+ -3.726793175021175e-03
+626 6.014999999999973e-09
+ 1.799604431754850e+00
+ 1.055736085750909e+00
+ 1.800000000000000e+00
+ -3.672446344540236e-03
+627 6.024999999999973e-09
+ 1.799735582346791e+00
+ 9.994956979451998e-01
+ 1.800000000000000e+00
+ -3.580133678473243e-03
+628 6.034999999999973e-09
+ 1.799746806207852e+00
+ 9.433682970730678e-01
+ 1.800000000000000e+00
+ -3.550780975737635e-03
+629 6.044999999999972e-09
+ 1.799784413587570e+00
+ 8.790699315409050e-01
+ 1.800000000000000e+00
+ -3.572635595244244e-03
+630 6.054999999999972e-09
+ 1.799753933487618e+00
+ 8.094603584900477e-01
+ 1.800000000000000e+00
+ -3.633930613370811e-03
+631 6.064999999999972e-09
+ 1.799802496734940e+00
+ 7.401548330726280e-01
+ 1.800000000000000e+00
+ -3.708728690810054e-03
+632 6.074999999999972e-09
+ 1.799789882733736e+00
+ 6.753827281875195e-01
+ 1.800000000000000e+00
+ -3.784053120928292e-03
+633 6.084999999999971e-09
+ 1.799840232175508e+00
+ 6.176595507686337e-01
+ 1.800000000000000e+00
+ -3.842384712805692e-03
+634 6.094999999999971e-09
+ 1.799831993410444e+00
+ 5.678297358873722e-01
+ 1.800000000000000e+00
+ -3.864944689834316e-03
+635 6.104999999999971e-09
+ 1.799877864812335e+00
+ 5.259977944869154e-01
+ 1.800000000000000e+00
+ -3.844105281935071e-03
+636 6.114999999999971e-09
+ 1.799872377253508e+00
+ 4.917386224827667e-01
+ 1.800000000000000e+00
+ -3.786440126019526e-03
+637 6.124999999999970e-09
+ 1.799898489860474e+00
+ 4.642243184800066e-01
+ 1.800000000000000e+00
+ -3.734066326501723e-03
+638 6.134999999999970e-09
+ 1.799853522029028e+00
+ 4.422205517638113e-01
+ 1.800000000000000e+00
+ -3.684361030343701e-03
+639 6.144999999999970e-09
+ 1.799871374214622e+00
+ 4.246759274262891e-01
+ 1.800000000000000e+00
+ -3.592726829230039e-03
+640 6.154999999999970e-09
+ 1.799862118278670e+00
+ 4.108382597602703e-01
+ 1.800000000000000e+00
+ -3.550467484679099e-03
+641 6.164999999999970e-09
+ 1.799806156650934e+00
+ 3.998784783012105e-01
+ 1.800000000000000e+00
+ -3.567098654653190e-03
+642 6.174999999999969e-09
+ 1.799714293869051e+00
+ 3.910954643790420e-01
+ 1.800000000000000e+00
+ -3.621868674098771e-03
+643 6.184999999999969e-09
+ 1.799715740945120e+00
+ 3.839792959537798e-01
+ 1.800000000000000e+00
+ -3.697738901456383e-03
+644 6.194999999999969e-09
+ 1.799749505679892e+00
+ 3.779831805209944e-01
+ 1.800000000000000e+00
+ -3.771689543805444e-03
+645 6.204999999999969e-09
+ 1.799877838821808e+00
+ 3.728139008907481e-01
+ 1.800000000000000e+00
+ -3.836431206991921e-03
+646 6.214999999999968e-09
+ 1.800056875979796e+00
+ 3.682018274267957e-01
+ 1.800000000000000e+00
+ -3.862895902359404e-03
+647 6.224999999999968e-09
+ 1.800408397032197e+00
+ 3.639406368773486e-01
+ 1.800000000000000e+00
+ -3.851707094419269e-03
+648 6.234999999999968e-09
+ 1.801047989782362e+00
+ 3.597935671417710e-01
+ 1.800000000000000e+00
+ -3.795022905795815e-03
+649 6.244999999999968e-09
+ 1.802317236577639e+00
+ 3.555967118565075e-01
+ 1.800000000000000e+00
+ -3.741787753300246e-03
+650 6.254999999999967e-09
+ 1.804172589619487e+00
+ 3.516067844753671e-01
+ 1.800000000000000e+00
+ -3.694503247269923e-03
+651 6.264999999999967e-09
+ 1.805008499315739e+00
+ 3.483992290189261e-01
+ 1.800000000000000e+00
+ -3.607036488120796e-03
+652 6.274999999999967e-09
+ 1.804997318226968e+00
+ 3.469171273978665e-01
+ 1.800000000000000e+00
+ -3.551553700959466e-03
+653 6.284999999999967e-09
+ 1.804494753138909e+00
+ 3.488551656992254e-01
+ 1.800000000000000e+00
+ -3.562467951558840e-03
+654 6.294999999999966e-09
+ 1.803538754278799e+00
+ 3.573985159228215e-01
+ 1.800000000000000e+00
+ -3.610406373135039e-03
+655 6.304999999999966e-09
+ 1.802831376527167e+00
+ 3.775305049071958e-01
+ 1.800000000000000e+00
+ -3.686537757596534e-03
+656 6.314999999999966e-09
+ 1.802477734443476e+00
+ 4.178187259914166e-01
+ 1.800000000000000e+00
+ -3.759295938909880e-03
+657 6.324999999999966e-09
+ 1.802750143947153e+00
+ 4.951637415785812e-01
+ 1.800000000000000e+00
+ -3.829286682072324e-03
+658 6.334999999999965e-09
+ 1.803709859851837e+00
+ 6.355794455630919e-01
+ 1.800000000000000e+00
+ -3.860147471230748e-03
+659 6.344999999999965e-09
+ 1.805769478809078e+00
+ 8.461556273965835e-01
+ 1.800000000000000e+00
+ -3.857850582989911e-03
+660 6.354999999999965e-09
+ 1.809225142915935e+00
+ 1.100529742380289e+00
+ 1.800000000000000e+00
+ -3.803969673759781e-03
+661 6.364999999999965e-09
+ 1.812885336935556e+00
+ 1.345049980022319e+00
+ 1.800000000000000e+00
+ -3.749904028151912e-03
+662 6.374999999999964e-09
+ 1.814558121752553e+00
+ 1.524429421531276e+00
+ 1.800000000000000e+00
+ -3.703111489789340e-03
+663 6.384999999999964e-09
+ 1.812873705026434e+00
+ 1.635138552512326e+00
+ 1.800000000000000e+00
+ -3.622389856171643e-03
+664 6.394999999999964e-09
+ 1.803987233132873e+00
+ 1.704143844309124e+00
+ 1.800000000000000e+00
+ -3.554421342501254e-03
+665 6.404999999999964e-09
+ 1.780870488800282e+00
+ 1.746265911212488e+00
+ 1.800000000000000e+00
+ -3.558556201903001e-03
+666 6.414999999999963e-09
+ 1.738036207495724e+00
+ 1.770443033305441e+00
+ 1.800000000000000e+00
+ -3.599865527463212e-03
+667 6.424999999999963e-09
+ 1.675401734833987e+00
+ 1.783739872608136e+00
+ 1.800000000000000e+00
+ -3.674934713448793e-03
+668 6.434999999999963e-09
+ 1.597459009904752e+00
+ 1.790973040442525e+00
+ 1.800000000000000e+00
+ -3.747172422584204e-03
+669 6.444999999999963e-09
+ 1.510448312606602e+00
+ 1.794919046999800e+00
+ 1.800000000000000e+00
+ -3.820787948103694e-03
+670 6.454999999999963e-09
+ 1.420144486391972e+00
+ 1.797078550719536e+00
+ 1.800000000000000e+00
+ -3.856951796779837e-03
+671 6.464999999999962e-09
+ 1.330997998505078e+00
+ 1.798309651623778e+00
+ 1.800000000000000e+00
+ -3.862249742915249e-03
+672 6.474999999999962e-09
+ 1.246054815388841e+00
+ 1.799021328405313e+00
+ 1.800000000000000e+00
+ -3.813312110586880e-03
+673 6.484999999999962e-09
+ 1.167074429002116e+00
+ 1.799427949803237e+00
+ 1.800000000000000e+00
+ -3.758183177946758e-03
+674 6.494999999999962e-09
+ 1.095618870031113e+00
+ 1.799576975452354e+00
+ 1.800000000000000e+00
+ -3.710692811045415e-03
+675 6.504999999999961e-09
+ 1.033980191670323e+00
+ 1.799660803903457e+00
+ 1.800000000000000e+00
+ -3.637966605025337e-03
+676 6.514999999999961e-09
+ 9.792116648623169e-01
+ 1.799738689456424e+00
+ 1.800000000000000e+00
+ -3.559451370066137e-03
+677 6.524999999999961e-09
+ 9.204323256401821e-01
+ 1.799772472872629e+00
+ 1.800000000000000e+00
+ -3.555224775719013e-03
+678 6.534999999999961e-09
+ 8.534315432233265e-01
+ 1.799762944323564e+00
+ 1.800000000000000e+00
+ -3.590510206418463e-03
+679 6.544999999999960e-09
+ 7.833816860199162e-01
+ 1.799778706855686e+00
+ 1.800000000000000e+00
+ -3.662848559112647e-03
+680 6.554999999999960e-09
+ 7.153269980329253e-01
+ 1.799790960680338e+00
+ 1.800000000000000e+00
+ -3.735513047483925e-03
+681 6.564999999999960e-09
+ 6.530116651281894e-01
+ 1.799814354149920e+00
+ 1.800000000000000e+00
+ -3.810910373636160e-03
+682 6.574999999999960e-09
+ 5.981660715673722e-01
+ 1.799832204376677e+00
+ 1.800000000000000e+00
+ -3.853429986659730e-03
+683 6.584999999999959e-09
+ 5.513445969814852e-01
+ 1.799853450798099e+00
+ 1.800000000000000e+00
+ -3.864780083699457e-03
+684 6.594999999999959e-09
+ 5.123904665521666e-01
+ 1.799872390409888e+00
+ 1.800000000000000e+00
+ -3.822931788950211e-03
+685 6.604999999999959e-09
+ 4.807773269751449e-01
+ 1.799888391877301e+00
+ 1.800000000000000e+00
+ -3.766414883190742e-03
+686 6.614999999999959e-09
+ 4.554543789290231e-01
+ 1.799881493155521e+00
+ 1.800000000000000e+00
+ -3.717763506432311e-03
+687 6.624999999999958e-09
+ 4.352034046502238e-01
+ 1.799856169793329e+00
+ 1.800000000000000e+00
+ -3.653049900716727e-03
+688 6.634999999999958e-09
+ 4.191437837461175e-01
+ 1.799870748964549e+00
+ 1.800000000000000e+00
+ -3.566836588732647e-03
+689 6.644999999999958e-09
+ 4.064724175456039e-01
+ 1.799853498927613e+00
+ 1.800000000000000e+00
+ -3.552515396966871e-03
+690 6.654999999999958e-09
+ 3.963767213833153e-01
+ 1.799762806453899e+00
+ 1.800000000000000e+00
+ -3.582407838284243e-03
+691 6.664999999999957e-09
+ 3.882901929633162e-01
+ 1.799710457517546e+00
+ 1.800000000000000e+00
+ -3.650426853570153e-03
+692 6.674999999999957e-09
+ 3.816319136011808e-01
+ 1.799718259077635e+00
+ 1.800000000000000e+00
+ -3.724284500497629e-03
+693 6.684999999999957e-09
+ 3.759800512230372e-01
+ 1.799791521943975e+00
+ 1.800000000000000e+00
+ -3.799871451991357e-03
+694 6.694999999999957e-09
+ 3.710421090584214e-01
+ 1.799931741387025e+00
+ 1.800000000000000e+00
+ -3.849475503048834e-03
+695 6.704999999999956e-09
+ 3.665876001218805e-01
+ 1.800165429212793e+00
+ 1.800000000000000e+00
+ -3.865577040442766e-03
+696 6.714999999999956e-09
+ 3.623963884563110e-01
+ 1.800595291113308e+00
+ 1.800000000000000e+00
+ -3.832486821300460e-03
+697 6.724999999999956e-09
+ 3.582372255824003e-01
+ 1.801427153183332e+00
+ 1.800000000000000e+00
+ -3.774583165238838e-03
+698 6.734999999999956e-09
+ 3.540613810782188e-01
+ 1.803039234639791e+00
+ 1.800000000000000e+00
+ -3.724713198134982e-03
+699 6.744999999999956e-09
+ 3.502778106966560e-01
+ 1.804588175536232e+00
+ 1.800000000000000e+00
+ -3.667091120279814e-03
+700 6.754999999999955e-09
+ 3.475862169518119e-01
+ 1.805084953022931e+00
+ 1.800000000000000e+00
+ -3.576517775220124e-03
+701 6.764999999999955e-09
+ 3.471020296049037e-01
+ 1.804878824990063e+00
+ 1.800000000000000e+00
+ -3.550676749681010e-03
+702 6.774999999999955e-09
+ 3.510351779399288e-01
+ 1.804151910101656e+00
+ 1.800000000000000e+00
+ -3.575456867403556e-03
+703 6.784999999999955e-09
+ 3.631907301623607e-01
+ 1.803238917070046e+00
+ 1.800000000000000e+00
+ -3.637966583883542e-03
+704 6.794999999999954e-09
+ 3.894827073428434e-01
+ 1.802640987400262e+00
+ 1.800000000000000e+00
+ -3.713294239645670e-03
+705 6.804999999999954e-09
+ 4.409935260201301e-01
+ 1.802507510611483e+00
+ 1.800000000000000e+00
+ -3.788036080314087e-03
+706 6.814999999999954e-09
+ 5.385932634378936e-01
+ 1.803007145102565e+00
+ 1.800000000000000e+00
+ -3.844841214259528e-03
+707 6.824999999999954e-09
+ 7.066879645495026e-01
+ 1.804328030163117e+00
+ 1.800000000000000e+00
+ -3.864949385019133e-03
+708 6.834999999999953e-09
+ 9.377614615925657e-01
+ 1.806890291607290e+00
+ 1.800000000000000e+00
+ -3.841513223436445e-03
+709 6.844999999999953e-09
+ 1.196189979868375e+00
+ 1.810701798113077e+00
+ 1.800000000000000e+00
+ -3.782823460727540e-03
+710 6.854999999999953e-09
+ 1.421064149197423e+00
+ 1.813814009589566e+00
+ 1.800000000000000e+00
+ -3.731850295260124e-03
+711 6.864999999999953e-09
+ 1.572103725061102e+00
+ 1.814440043890261e+00
+ 1.800000000000000e+00
+ -3.679643287768499e-03
+712 6.874999999999952e-09
+ 1.664672197202373e+00
+ 1.810745158748082e+00
+ 1.800000000000000e+00
+ -3.588365267910228e-03
+713 6.884999999999952e-09
+ 1.722439373784913e+00
+ 1.797442460120591e+00
+ 1.800000000000000e+00
+ -3.549916795617976e-03
+714 6.894999999999952e-09
+ 1.756967258267402e+00
+ 1.767366567277168e+00
+ 1.800000000000000e+00
+ -3.569551522117315e-03
+715 6.904999999999952e-09
+ 1.776327508215587e+00
+ 1.716883200006219e+00
+ 1.800000000000000e+00
+ -3.625753698137956e-03
+716 6.914999999999951e-09
+ 1.786988550813939e+00
+ 1.647870267364644e+00
+ 1.800000000000000e+00
+ -3.702334739344991e-03
+717 6.924999999999951e-09
+ 1.792694299719082e+00
+ 1.565814791832448e+00
+ 1.800000000000000e+00
+ -3.775760670172024e-03
+718 6.934999999999951e-09
+ 1.795906646080165e+00
+ 1.476972958189660e+00
+ 1.800000000000000e+00
+ -3.839279234871228e-03
+719 6.944999999999951e-09
+ 1.797586460371226e+00
+ 1.386650080238528e+00
+ 1.800000000000000e+00
+ -3.863231269494755e-03
+720 6.954999999999950e-09
+ 1.798647755080608e+00
+ 1.298790964611620e+00
+ 1.800000000000000e+00
+ -3.849567476328959e-03
+721 6.964999999999950e-09
+ 1.799179569728565e+00
+ 1.215911711434733e+00
+ 1.800000000000000e+00
+ -3.791294089389290e-03
+722 6.974999999999950e-09
+ 1.799530734859608e+00
+ 1.139490107914135e+00
+ 1.800000000000000e+00
+ -3.739396788792652e-03
+723 6.984999999999950e-09
+ 1.799583006020551e+00
+ 1.071480033226212e+00
+ 1.800000000000000e+00
+ -3.690436873993938e-03
+724 6.994999999999949e-09
+ 1.799715629885271e+00
+ 1.013362273308812e+00
+ 1.800000000000000e+00
+ -3.602100256404282e-03
+725 7.004999999999949e-09
+ 1.799737391125755e+00
+ 9.583446341504899e-01
+ 1.800000000000000e+00
+ -3.550450897117155e-03
+726 7.014999999999949e-09
+ 1.799788531110947e+00
+ 8.962690773481883e-01
+ 1.800000000000000e+00
+ -3.564601039071142e-03
+727 7.024999999999949e-09
+ 1.799748757567073e+00
+ 8.274206210080094e-01
+ 1.800000000000000e+00
+ -3.614038098110170e-03
+728 7.034999999999949e-09
+ 1.799800183243665e+00
+ 7.575999598208475e-01
+ 1.800000000000000e+00
+ -3.691231077476285e-03
+729 7.044999999999948e-09
+ 1.799783190745082e+00
+ 6.913348600618054e-01
+ 1.800000000000000e+00
+ -3.763345849616216e-03
+730 7.054999999999948e-09
+ 1.799836206565663e+00
+ 6.316931071478799e-01
+ 1.800000000000000e+00
+ -3.832593227863984e-03
+731 7.064999999999948e-09
+ 1.799826132872190e+00
+ 5.798022187617939e-01
+ 1.800000000000000e+00
+ -3.860712726519991e-03
+732 7.074999999999948e-09
+ 1.799873359200514e+00
+ 5.359567451383174e-01
+ 1.800000000000000e+00
+ -3.856284318455792e-03
+733 7.084999999999947e-09
+ 1.799867782546669e+00
+ 4.998129292740977e-01
+ 1.800000000000000e+00
+ -3.800101625305071e-03
+734 7.094999999999947e-09
+ 1.799900315178500e+00
+ 4.706911720918762e-01
+ 1.800000000000000e+00
+ -3.747384827863222e-03
+735 7.104999999999947e-09
+ 1.799861056645458e+00
+ 4.473935141116037e-01
+ 1.800000000000000e+00
+ -3.699564634841980e-03
+736 7.114999999999947e-09
+ 1.799866550273455e+00
+ 4.287731211750809e-01
+ 1.800000000000000e+00
+ -3.617158964706873e-03
+737 7.124999999999946e-09
+ 1.799865682453440e+00
+ 4.140719700394108e-01
+ 1.800000000000000e+00
+ -3.552612889832065e-03
+738 7.134999999999946e-09
+ 1.799831304962031e+00
+ 4.024569982698815e-01
+ 1.800000000000000e+00
+ -3.560444400148214e-03
+739 7.144999999999946e-09
+ 1.799727399973077e+00
+ 3.931567371075755e-01
+ 1.800000000000000e+00
+ -3.603120781197120e-03
+740 7.154999999999946e-09
+ 1.799714051116463e+00
+ 3.856790738001225e-01
+ 1.800000000000000e+00
+ -3.679793576406686e-03
+741 7.164999999999945e-09
+ 1.799730565468904e+00
+ 3.794252279003161e-01
+ 1.800000000000000e+00
+ -3.751092716158281e-03
+742 7.174999999999945e-09
+ 1.799842238844442e+00
+ 3.740750177626626e-01
+ 1.800000000000000e+00
+ -3.824606624939656e-03
+743 7.184999999999945e-09
+ 1.799998044641289e+00
+ 3.693386890743622e-01
+ 1.800000000000000e+00
+ -3.857660297194221e-03
+744 7.194999999999945e-09
+ 1.800300359373349e+00
+ 3.650103700922085e-01
+ 1.800000000000000e+00
+ -3.861352346579568e-03
+745 7.204999999999944e-09
+ 1.800837429612736e+00
+ 3.608559884950102e-01
+ 1.800000000000000e+00
+ -3.809303172055481e-03
+746 7.214999999999944e-09
+ 1.801903045800396e+00
+ 3.566704387535237e-01
+ 1.800000000000000e+00
+ -3.755632234239888e-03
+747 7.224999999999944e-09
+ 1.803763593954823e+00
+ 3.525810958493132e-01
+ 1.800000000000000e+00
+ -3.707463329542620e-03
+748 7.234999999999944e-09
+ 1.804873444600564e+00
+ 3.490975637051326e-01
+ 1.800000000000000e+00
+ -3.632743392239053e-03
+749 7.244999999999943e-09
+ 1.805052737723088e+00
+ 3.470635269336780e-01
+ 1.800000000000000e+00
+ -3.556812112913766e-03
+750 7.254999999999943e-09
+ 1.804685263386961e+00
+ 3.478849603726776e-01
+ 1.800000000000000e+00
+ -3.556900280660265e-03
+751 7.264999999999943e-09
+ 1.803779869786015e+00
+ 3.543395575823209e-01
+ 1.800000000000000e+00
+ -3.593311267883730e-03
+752 7.274999999999943e-09
+ 1.802986684015881e+00
+ 3.708983451628856e-01
+ 1.800000000000000e+00
+ -3.667878211078866e-03
+753 7.284999999999942e-09
+ 1.802514468707606e+00
+ 4.048312016660360e-01
+ 1.800000000000000e+00
+ -3.739256048997444e-03
+754 7.294999999999942e-09
+ 1.802624520128581e+00
+ 4.704689020473781e-01
+ 1.800000000000000e+00
+ -3.815223251221393e-03
+755 7.304999999999942e-09
+ 1.803376099818038e+00
+ 5.923512258832376e-01
+ 1.800000000000000e+00
+ -3.854262323123481e-03
+756 7.314999999999942e-09
+ 1.805117706697454e+00
+ 7.866580173031613e-01
+ 1.800000000000000e+00
+ -3.864568651244726e-03
+757 7.324999999999942e-09
+ 1.808221438073110e+00
+ 1.033636300098666e+00
+ 1.800000000000000e+00
+ -3.818851719155925e-03
+758 7.334999999999941e-09
+ 1.812069875332265e+00
+ 1.286990227150064e+00
+ 1.800000000000000e+00
+ -3.763892083236874e-03
+759 7.344999999999941e-09
+ 1.814387159584854e+00
+ 1.486029612093706e+00
+ 1.800000000000000e+00
+ -3.714673349931087e-03
+760 7.354999999999941e-09
+ 1.813766993006536e+00
+ 1.611678547609209e+00
+ 1.800000000000000e+00
+ -3.648077836978204e-03
+761 7.364999999999941e-09
+ 1.807315483172369e+00
+ 1.689459703920964e+00
+ 1.800000000000000e+00
+ -3.563328666685825e-03
+762 7.374999999999940e-09
+ 1.788537500159377e+00
+ 1.737506990323817e+00
+ 1.800000000000000e+00
+ -3.553933311383933e-03
+763 7.384999999999940e-09
+ 1.750989123022623e+00
+ 1.765558615168436e+00
+ 1.800000000000000e+00
+ -3.584754454598315e-03
+764 7.394999999999940e-09
+ 1.693139467718036e+00
+ 1.781041605338570e+00
+ 1.800000000000000e+00
+ -3.655547544407862e-03
+765 7.404999999999940e-09
+ 1.618543786621937e+00
+ 1.789543107071467e+00
+ 1.800000000000000e+00
+ -3.727888079772458e-03
+766 7.414999999999939e-09
+ 1.533260146963926e+00
+ 1.794099229022617e+00
+ 1.800000000000000e+00
+ -3.804572680847499e-03
+767 7.424999999999939e-09
+ 1.443322724140694e+00
+ 1.796664086546386e+00
+ 1.800000000000000e+00
+ -3.850495099705918e-03
+768 7.434999999999939e-09
+ 1.353529434724468e+00
+ 1.798032464065055e+00
+ 1.800000000000000e+00
+ -3.865973565302616e-03
+769 7.444999999999939e-09
+ 1.267299499325179e+00
+ 1.798894257825365e+00
+ 1.800000000000000e+00
+ -3.828484364501414e-03
+770 7.454999999999938e-09
+ 1.186671606063900e+00
+ 1.799331349606724e+00
+ 1.800000000000000e+00
+ -3.772070588292792e-03
+771 7.464999999999938e-09
+ 1.113073786078827e+00
+ 1.799573026536506e+00
+ 1.800000000000000e+00
+ -3.721631675574485e-03
+772 7.474999999999938e-09
+ 1.048809536973556e+00
+ 1.799619687175786e+00
+ 1.800000000000000e+00
+ -3.662558184896096e-03
+773 7.484999999999938e-09
+ 9.932038064441215e-01
+ 1.799739090621965e+00
+ 1.800000000000000e+00
+ -3.572172181558516e-03
+774 7.494999999999937e-09
+ 9.363622016032505e-01
+ 1.799754056568598e+00
+ 1.800000000000000e+00
+ -3.551746491375091e-03
+775 7.504999999999937e-09
+ 8.711389187737159e-01
+ 1.799778825257827e+00
+ 1.800000000000000e+00
+ -3.577394876726246e-03
+776 7.514999999999937e-09
+ 8.013123568925128e-01
+ 1.799760230931271e+00
+ 1.800000000000000e+00
+ -3.643062235547402e-03
+777 7.524999999999937e-09
+ 7.323345706140276e-01
+ 1.799800119496046e+00
+ 1.800000000000000e+00
+ -3.716838753578542e-03
+778 7.534999999999936e-09
+ 6.682975773628187e-01
+ 1.799796265463314e+00
+ 1.800000000000000e+00
+ -3.792983943900834e-03
+779 7.544999999999936e-09
+ 6.114617880685780e-01
+ 1.799838929302868e+00
+ 1.800000000000000e+00
+ -3.846146518724454e-03
+780 7.554999999999936e-09
+ 5.625707735159468e-01
+ 1.799837552622864e+00
+ 1.800000000000000e+00
+ -3.865828976458837e-03
+781 7.564999999999936e-09
+ 5.216429049253043e-01
+ 1.799877226963616e+00
+ 1.800000000000000e+00
+ -3.837764556334346e-03
+782 7.574999999999935e-09
+ 4.882226999856681e-01
+ 1.799876650781646e+00
+ 1.800000000000000e+00
+ -3.780261240396744e-03
+783 7.584999999999935e-09
+ 4.614097932094884e-01
+ 1.799894641795190e+00
+ 1.800000000000000e+00
+ -3.728670333053687e-03
+784 7.594999999999935e-09
+ 4.399681550701589e-01
+ 1.799852753824191e+00
+ 1.800000000000000e+00
+ -3.675702646098639e-03
+785 7.604999999999935e-09
+ 4.228985939127324e-01
+ 1.799872096839644e+00
+ 1.800000000000000e+00
+ -3.583243852848774e-03
+786 7.614999999999935e-09
+ 4.094358336264418e-01
+ 1.799860226390687e+00
+ 1.800000000000000e+00
+ -3.550561837744631e-03
+787 7.624999999999934e-09
+ 3.987553088191762e-01
+ 1.799792901025792e+00
+ 1.800000000000000e+00
+ -3.571115956417730e-03
+788 7.634999999999934e-09
+ 3.901975682292733e-01
+ 1.799711494505838e+00
+ 1.800000000000000e+00
+ -3.630725312221673e-03
+789 7.644999999999934e-09
+ 3.832316901771685e-01
+ 1.799716218770593e+00
+ 1.800000000000000e+00
+ -3.705892417996795e-03
+790 7.654999999999934e-09
+ 3.773471031180960e-01
+ 1.799761025406746e+00
+ 1.800000000000000e+00
+ -3.780830928575767e-03
+791 7.664999999999933e-09
+ 3.722536307653951e-01
+ 1.799894095126489e+00
+ 1.800000000000000e+00
+ -3.840955808150542e-03
+792 7.674999999999933e-09
+ 3.676938174292209e-01
+ 1.800087781851079e+00
+ 1.800000000000000e+00
+ -3.864474741183022e-03
+793 7.684999999999933e-09
+ 3.634579696176026e-01
+ 1.800462259353937e+00
+ 1.800000000000000e+00
+ -3.846227784501167e-03
+794 7.694999999999933e-09
+ 3.593097503968634e-01
+ 1.801156803819580e+00
+ 1.800000000000000e+00
+ -3.788628136273163e-03
+795 7.704999999999932e-09
+ 3.551135206487145e-01
+ 1.802532089951470e+00
+ 1.800000000000000e+00
+ -3.736052463982371e-03
+796 7.714999999999932e-09
+ 3.511793906930845e-01
+ 1.804322399758129e+00
+ 1.800000000000000e+00
+ -3.687154706800637e-03
+797 7.724999999999932e-09
+ 3.481182443972127e-01
+ 1.805047758309341e+00
+ 1.800000000000000e+00
+ -3.596332387914598e-03
+798 7.734999999999932e-09
+ 3.469196112040660e-01
+ 1.804965786561135e+00
+ 1.800000000000000e+00
+ -3.550584140969460e-03
+799 7.744999999999931e-09
+ 3.494297456144641e-01
+ 1.804394386385526e+00
+ 1.800000000000000e+00
+ -3.565828917877851e-03
+800 7.754999999999931e-09
+ 3.590234434204338e-01
+ 1.803438636155576e+00
+ 1.800000000000000e+00
+ -3.618792273967698e-03
+801 7.764999999999931e-09
+ 3.809433732048914e-01
+ 1.802766520219462e+00
+ 1.800000000000000e+00
+ -3.694865361388185e-03
+802 7.774999999999931e-09
+ 4.244599645373794e-01
+ 1.802476710087293e+00
+ 1.800000000000000e+00
+ -3.768430864900503e-03
+803 7.784999999999930e-09
+ 5.076964280352757e-01
+ 1.802819908147972e+00
+ 1.800000000000000e+00
+ -3.834709180591350e-03
+804 7.794999999999930e-09
+ 6.567549569759017e-01
+ 1.803885346416294e+00
+ 1.800000000000000e+00
+ -3.862217464254308e-03
+805 7.804999999999930e-09
+ 8.741504921399983e-01
+ 1.806096178846733e+00
+ 1.800000000000000e+00
+ -3.853480455991384e-03
+806 7.814999999999930e-09
+ 1.130706182183945e+00
+ 1.809689322302684e+00
+ 1.800000000000000e+00
+ -3.797299221276122e-03
+807 7.824999999999929e-09
+ 1.369900937904143e+00
+ 1.813210374621383e+00
+ 1.800000000000000e+00
+ -3.743891324500474e-03
+808 7.834999999999929e-09
+ 1.540282161609438e+00
+ 1.814571318487018e+00
+ 1.800000000000000e+00
+ -3.696858927259783e-03
+809 7.844999999999929e-09
+ 1.644905229118974e+00
+ 1.812326245097917e+00
+ 1.800000000000000e+00
+ -3.610989776819075e-03
+810 7.854999999999929e-09
+ 1.710225491179886e+00
+ 1.802176041718402e+00
+ 1.800000000000000e+00
+ -3.552093696838925e-03
+811 7.864999999999928e-09
+ 1.749851441846212e+00
+ 1.776960473568882e+00
+ 1.800000000000000e+00
+ -3.561405610869942e-03
+812 7.874999999999928e-09
+ 1.772422205243399e+00
+ 1.731724520713972e+00
+ 1.800000000000000e+00
+ -3.607537732954306e-03
+813 7.884999999999928e-09
+ 1.784835123985444e+00
+ 1.667020041474991e+00
+ 1.800000000000000e+00
+ -3.683576945465421e-03
+814 7.894999999999928e-09
+ 1.791550477662070e+00
+ 1.587697960975338e+00
+ 1.800000000000000e+00
+ -3.756079648622796e-03
+815 7.904999999999928e-09
+ 1.795253195257501e+00
+ 1.500031834713532e+00
+ 1.800000000000000e+00
+ -3.827224979223025e-03
+816 7.914999999999927e-09
+ 1.797246351047631e+00
+ 1.409659296640157e+00
+ 1.800000000000000e+00
+ -3.859330469094223e-03
+817 7.924999999999927e-09
+ 1.798424555443542e+00
+ 1.320873286598245e+00
+ 1.800000000000000e+00
+ -3.859193176371999e-03
+818 7.934999999999927e-09
+ 1.799072484841508e+00
+ 1.236551680982433e+00
+ 1.800000000000000e+00
+ -3.806349644457744e-03
+819 7.944999999999927e-09
+ 1.799466014006692e+00
+ 1.158346154288286e+00
+ 1.800000000000000e+00
+ -3.752075967859250e-03
+820 7.954999999999926e-09
+ 1.799577057701033e+00
+ 1.087923721277145e+00
+ 1.800000000000000e+00
+ -3.705145816125980e-03
+821 7.964999999999926e-09
+ 1.799680000964368e+00
+ 1.027446180397004e+00
+ 1.800000000000000e+00
+ -3.626479692228349e-03
+822 7.974999999999926e-09
+ 1.799737202482639e+00
+ 9.727866050194444e-01
+ 1.800000000000000e+00
+ -3.555494226121243e-03
+823 7.984999999999926e-09
+ 1.799779792438763e+00
+ 9.130106696872706e-01
+ 1.800000000000000e+00
+ -3.557651475280848e-03
+824 7.994999999999925e-09
+ 1.799756376865813e+00
+ 8.453374901766163e-01
+ 1.800000000000000e+00
+ -3.597287836115315e-03
+825 8.004999999999925e-09
+ 1.799787065874268e+00
+ 7.752917427965802e-01
+ 1.800000000000000e+00
+ -3.671846755342239e-03
+826 8.014999999999925e-09
+ 1.799786930444566e+00
+ 7.077418116336714e-01
+ 1.800000000000000e+00
+ -3.744067215219359e-03
+827 8.024999999999925e-09
+ 1.799822596050674e+00
+ 6.462429066296265e-01
+ 1.800000000000000e+00
+ -3.818359352707100e-03
+828 8.034999999999924e-09
+ 1.799829040526132e+00
+ 5.923124814393059e-01
+ 1.800000000000000e+00
+ -3.856047319304635e-03
+829 8.044999999999924e-09
+ 1.799860809918232e+00
+ 5.464251109932236e-01
+ 1.800000000000000e+00
+ -3.863106679406528e-03
+830 8.054999999999924e-09
+ 1.799869987201362e+00
+ 5.083558622433431e-01
+ 1.800000000000000e+00
+ -3.815785184286150e-03
+831 8.064999999999924e-09
+ 1.799893431310639e+00
+ 4.775388917959174e-01
+ 1.800000000000000e+00
+ -3.760356310372478e-03
+832 8.074999999999923e-09
+ 1.799874617126334e+00
+ 4.528660459858280e-01
+ 1.800000000000000e+00
+ -3.712549184116698e-03
+833 8.084999999999923e-09
+ 1.799859235362276e+00
+ 4.331346384579924e-01
+ 1.800000000000000e+00
+ -3.641983402639924e-03
+834 8.094999999999923e-09
+ 1.799869296234516e+00
+ 4.175130569951245e-01
+ 1.800000000000000e+00
+ -3.561145209078282e-03
+835 8.104999999999923e-09
+ 1.799848447141022e+00
+ 4.051839232989304e-01
+ 1.800000000000000e+00
+ -3.554461627851433e-03
+836 8.114999999999922e-09
+ 1.799750105195518e+00
+ 3.953423054925623e-01
+ 1.800000000000000e+00
+ -3.588259411327081e-03
+837 8.124999999999922e-09
+ 1.799711388360218e+00
+ 3.874561235421708e-01
+ 1.800000000000000e+00
+ -3.659649430595133e-03
+838 8.134999999999922e-09
+ 1.799720483089331e+00
+ 3.809285272840627e-01
+ 1.800000000000000e+00
+ -3.732531851679704e-03
+839 8.144999999999922e-09
+ 1.799806915703834e+00
+ 3.753756972084579e-01
+ 1.800000000000000e+00
+ -3.808149281796733e-03
+840 8.154999999999921e-09
+ 1.799950482277124e+00
+ 3.705035038460572e-01
+ 1.800000000000000e+00
+ -3.852431078958343e-03
+841 8.164999999999921e-09
+ 1.800204801675041e+00
+ 3.660919441289811e-01
+ 1.800000000000000e+00
+ -3.865162626794841e-03
+842 8.174999999999921e-09
+ 1.800663727879916e+00
+ 3.619157405308486e-01
+ 1.800000000000000e+00
+ -3.825428581748682e-03
+843 8.184999999999921e-09
+ 1.801563883810415e+00
+ 3.577487991010380e-01
+ 1.800000000000000e+00
+ -3.768564984097411e-03
+844 8.194999999999921e-09
+ 1.803272907571745e+00
+ 3.535923582038618e-01
+ 1.800000000000000e+00
+ -3.719555310058263e-03
+845 8.204999999999920e-09
+ 1.804687335650154e+00
+ 3.498911644580295e-01
+ 1.800000000000000e+00
+ -3.656848759245354e-03
+846 8.214999999999920e-09
+ 1.805083277000561e+00
+ 3.473885920691286e-01
+ 1.800000000000000e+00
+ -3.569124518484967e-03
+847 8.224999999999920e-09
+ 1.804828456470522e+00
+ 3.472748435005340e-01
+ 1.800000000000000e+00
+ -3.551961638015198e-03
+848 8.234999999999920e-09
+ 1.804036256920131e+00
+ 3.519333862013851e-01
+ 1.800000000000000e+00
+ -3.580471818105950e-03
+849 8.244999999999919e-09
+ 1.803156328580052e+00
+ 3.653707416112548e-01
+ 1.800000000000000e+00
+ -3.647187581148847e-03
+850 8.254999999999919e-09
+ 1.802593609476894e+00
+ 3.938669169621485e-01
+ 1.800000000000000e+00
+ -3.721387648780482e-03
+851 8.264999999999919e-09
+ 1.802535360130185e+00
+ 4.494435954670307e-01
+ 1.800000000000000e+00
+ -3.796865111192046e-03
+852 8.274999999999919e-09
+ 1.803108998801051e+00
+ 5.541989972804886e-01
+ 1.800000000000000e+00
+ -3.848326024711768e-03
+853 8.284999999999918e-09
+ 1.804555131936327e+00
+ 7.307345121436937e-01
+ 1.800000000000000e+00
+ -3.865554407206586e-03
+854 8.294999999999918e-09
+ 1.807284339832701e+00
+ 9.673275205056882e-01
+ 1.800000000000000e+00
+ -3.834892429477750e-03
+855 8.304999999999918e-09
+ 1.811146220860704e+00
+ 1.225184255298247e+00
+ 1.800000000000000e+00
+ -3.776735217873943e-03
+856 8.314999999999918e-09
+ 1.814032803355584e+00
+ 1.442536297727810e+00
+ 1.800000000000000e+00
+ -3.726526870745982e-03
+857 8.324999999999917e-09
+ 1.814298093785014e+00
+ 1.585231334361433e+00
+ 1.800000000000000e+00
+ -3.670540239876079e-03
+858 8.334999999999917e-09
+ 1.809833684989855e+00
+ 1.672879642920388e+00
+ 1.800000000000000e+00
+ -3.579387576725600e-03
+859 8.344999999999917e-09
+ 1.794934820384429e+00
+ 1.727463157206566e+00
+ 1.800000000000000e+00
+ -3.550384520477961e-03
+860 8.354999999999917e-09
+ 1.762569558512029e+00
+ 1.759857007429124e+00
+ 1.800000000000000e+00
+ -3.573802317722950e-03
+861 8.364999999999916e-09
+ 1.709746685122933e+00
+ 1.777910354999470e+00
+ 1.800000000000000e+00
+ -3.634766398611666e-03
+862 8.374999999999916e-09
+ 1.638903556878293e+00
+ 1.787853883968884e+00
+ 1.800000000000000e+00
+ -3.710423960111077e-03
+863 8.384999999999916e-09
+ 1.555747440244675e+00
+ 1.793162113023836e+00
+ 1.800000000000000e+00
+ -3.784883116761817e-03
+864 8.394999999999916e-09
+ 1.466488907913706e+00
+ 1.796166035968143e+00
+ 1.800000000000000e+00
+ -3.843471743668826e-03
+865 8.404999999999915e-09
+ 1.376275333537765e+00
+ 1.797730750121378e+00
+ 1.800000000000000e+00
+ -3.864611627042162e-03
+866 8.414999999999915e-09
+ 1.288891019371896e+00
+ 1.798734264512076e+00
+ 1.800000000000000e+00
+ -3.843705126512167e-03
+867 8.424999999999915e-09
+ 1.206695345218679e+00
+ 1.799227273025526e+00
+ 1.800000000000000e+00
+ -3.785021698679782e-03
+868 8.434999999999915e-09
+ 1.131122396215598e+00
+ 1.799550277159342e+00
+ 1.800000000000000e+00
+ -3.733755200195628e-03
+869 8.444999999999914e-09
+ 1.064258099005906e+00
+ 1.799590536522431e+00
+ 1.800000000000000e+00
+ -3.682647742893583e-03
+870 8.454999999999914e-09
+ 1.007065434875358e+00
+ 1.799726849704761e+00
+ 1.800000000000000e+00
+ -3.591763573664950e-03
+871 8.464999999999914e-09
+ 9.516302128731845e-01
+ 1.799740407350303e+00
+ 1.800000000000000e+00
+ -3.549938072969785e-03
+872 8.474999999999914e-09
+ 8.885229326458893e-01
+ 1.799788251215004e+00
+ 1.800000000000000e+00
+ -3.568156293525770e-03
+873 8.484999999999914e-09
+ 8.192794775559535e-01
+ 1.799749469709554e+00
+ 1.800000000000000e+00
+ -3.622658247239460e-03
+874 8.494999999999913e-09
+ 7.496567413230044e-01
+ 1.799802643848481e+00
+ 1.800000000000000e+00
+ -3.699443754152179e-03
+875 8.504999999999913e-09
+ 6.840450761675129e-01
+ 1.799784855786503e+00
+ 1.800000000000000e+00
+ -3.772543175962524e-03
+876 8.514999999999913e-09
+ 6.252664740339908e-01
+ 1.799839304204770e+00
+ 1.800000000000000e+00
+ -3.837634540717333e-03
+877 8.524999999999913e-09
+ 5.743081152627729e-01
+ 1.799827616184447e+00
+ 1.800000000000000e+00
+ -3.862658102455385e-03
+878 8.534999999999912e-09
+ 5.313791900318705e-01
+ 1.799876484236979e+00
+ 1.800000000000000e+00
+ -3.851443490224261e-03
+879 8.544999999999912e-09
+ 4.960954573001731e-01
+ 1.799868961221839e+00
+ 1.800000000000000e+00
+ -3.793571865639651e-03
+880 8.554999999999912e-09
+ 4.677133302900046e-01
+ 1.799900668650273e+00
+ 1.800000000000000e+00
+ -3.741423526775370e-03
+881 8.564999999999912e-09
+ 4.450121190330847e-01
+ 1.799856687389750e+00
+ 1.800000000000000e+00
+ -3.692981135149745e-03
+882 8.574999999999911e-09
+ 4.268837785028602e-01
+ 1.799869235097188e+00
+ 1.800000000000000e+00
+ -3.605911051649261e-03
+883 8.584999999999911e-09
+ 4.125807164716973e-01
+ 1.799864082383579e+00
+ 1.800000000000000e+00
+ -3.550858150519853e-03
+884 8.594999999999911e-09
+ 4.012700210584297e-01
+ 1.799820769316992e+00
+ 1.800000000000000e+00
+ -3.563432067990422e-03
+885 8.604999999999911e-09
+ 3.922074760816678e-01
+ 1.799720213895065e+00
+ 1.800000000000000e+00
+ -3.611118648634544e-03
+886 8.614999999999910e-09
+ 3.848992834884600e-01
+ 1.799714980628878e+00
+ 1.800000000000000e+00
+ -3.688272219368992e-03
+887 8.624999999999910e-09
+ 3.787642288287915e-01
+ 1.799738008773877e+00
+ 1.800000000000000e+00
+ -3.760140913300280e-03
+888 8.634999999999910e-09
+ 3.734985944173550e-01
+ 1.799858389773720e+00
+ 1.800000000000000e+00
+ -3.830625703489264e-03
+889 8.644999999999910e-09
+ 3.688200740981037e-01
+ 1.800023180822107e+00
+ 1.800000000000000e+00
+ -3.859975655615685e-03
+890 8.654999999999909e-09
+ 3.645241520113389e-01
+ 1.800347690227201e+00
+ 1.800000000000000e+00
+ -3.857758298269177e-03
+891 8.664999999999909e-09
+ 3.603748170110970e-01
+ 1.800928025757139e+00
+ 1.800000000000000e+00
+ -3.802478895953915e-03
+892 8.674999999999909e-09
+ 3.561824880006128e-01
+ 1.802079986286567e+00
+ 1.800000000000000e+00
+ -3.749503243391141e-03
+893 8.684999999999909e-09
+ 3.521343287151378e-01
+ 1.803962222300370e+00
+ 1.800000000000000e+00
+ -3.701737344510079e-03
+894 8.694999999999908e-09
+ 3.487680826576087e-01
+ 1.804942283632717e+00
+ 1.800000000000000e+00
+ -3.621187521651698e-03
+895 8.704999999999908e-09
+ 3.469728545993038e-01
+ 1.805030094524057e+00
+ 1.800000000000000e+00
+ -3.553513802486132e-03
+896 8.714999999999908e-09
+ 3.482768708192094e-01
+ 1.804604613365970e+00
+ 1.800000000000000e+00
+ -3.559448726642547e-03
+897 8.724999999999908e-09
+ 3.556408736125455e-01
+ 1.803667480338474e+00
+ 1.800000000000000e+00
+ -3.600464432020731e-03
+898 8.734999999999907e-09
+ 3.737602511594268e-01
+ 1.802914445219111e+00
+ 1.800000000000000e+00
+ -3.676717868575621e-03
+899 8.744999999999907e-09
+ 4.104517493403571e-01
+ 1.802492028113995e+00
+ 1.800000000000000e+00
+ -3.747977698660070e-03
+900 8.754999999999907e-09
+ 4.811852304677576e-01
+ 1.802676933701639e+00
+ 1.800000000000000e+00
+ -3.822277062726788e-03
+901 8.764999999999907e-09
+ 6.113439171990976e-01
+ 1.803518605091036e+00
+ 1.800000000000000e+00
+ -3.856821733828770e-03
+902 8.774999999999907e-09
+ 8.132305228413454e-01
+ 1.805401892483439e+00
+ 1.800000000000000e+00
+ -3.862355198346891e-03
+903 8.784999999999906e-09
+ 1.063975211809937e+00
+ 1.808670990594606e+00
+ 1.800000000000000e+00
+ -3.811782749305256e-03
+904 8.794999999999906e-09
+ 1.313839904682745e+00
+ 1.812455221225884e+00
+ 1.800000000000000e+00
+ -3.757774682805373e-03
+905 8.804999999999906e-09
+ 1.504049479045964e+00
+ 1.814488042537665e+00
+ 1.800000000000000e+00
+ -3.709406372617163e-03
+906 8.814999999999906e-09
+ 1.622658516368424e+00
+ 1.813411741372157e+00
+ 1.800000000000000e+00
+ -3.636775288599385e-03
+907 8.824999999999905e-09
+ 1.696341800267996e+00
+ 1.805914551376510e+00
+ 1.800000000000000e+00
+ -3.558297710777434e-03
+908 8.834999999999905e-09
+ 1.741629050105261e+00
+ 1.785222143790528e+00
+ 1.800000000000000e+00
+ -3.556052242520707e-03
+909 8.844999999999905e-09
+ 1.767866578460430e+00
+ 1.745283024103693e+00
+ 1.800000000000000e+00
+ -3.590975929108480e-03
+910 8.854999999999905e-09
+ 1.782315210165268e+00
+ 1.685229247048450e+00
+ 1.800000000000000e+00
+ -3.664678358617373e-03
+911 8.864999999999904e-09
+ 1.790220279737267e+00
+ 1.609064313597350e+00
+ 1.800000000000000e+00
+ -3.736268121856976e-03
+912 8.874999999999904e-09
+ 1.794485120053162e+00
+ 1.522948835817144e+00
+ 1.800000000000000e+00
+ -3.812540467282197e-03
+913 8.884999999999904e-09
+ 1.796860736268252e+00
+ 1.432807712059214e+00
+ 1.800000000000000e+00
+ -3.853339563269583e-03
+914 8.894999999999904e-09
+ 1.798161711294248e+00
+ 1.343281304846136e+00
+ 1.800000000000000e+00
+ -3.865084268837809e-03
+915 8.904999999999903e-09
+ 1.798955007358190e+00
+ 1.257619630323223e+00
+ 1.800000000000000e+00
+ -3.821387971976110e-03
+916 8.914999999999903e-09
+ 1.799376766695249e+00
+ 1.177728929744705e+00
+ 1.800000000000000e+00
+ -3.766013352614470e-03
+917 8.924999999999903e-09
+ 1.799576201836625e+00
+ 1.105080089840680e+00
+ 1.800000000000000e+00
+ -3.716514381653561e-03
+918 8.934999999999903e-09
+ 1.799637528199423e+00
+ 1.042010183207054e+00
+ 1.800000000000000e+00
+ -3.651936043875186e-03
+919 8.944999999999902e-09
+ 1.799739892682123e+00
+ 9.868837597231834e-01
+ 1.800000000000000e+00
+ -3.565430978122639e-03
+920 8.954999999999902e-09
+ 1.799762364252806e+00
+ 9.292183188837423e-01
+ 1.800000000000000e+00
+ -3.553262441357589e-03
+921 8.964999999999902e-09
+ 1.799771845766856e+00
+ 8.631411259282306e-01
+ 1.800000000000000e+00
+ -3.582742956286934e-03
+922 8.974999999999902e-09
+ 1.799768180909014e+00
+ 7.931714449461122e-01
+ 1.800000000000000e+00
+ -3.652277418357091e-03
+923 8.984999999999901e-09
+ 1.799796314037403e+00
+ 7.245787660610457e-01
+ 1.800000000000000e+00
+ -3.725003001916233e-03
+924 8.994999999999901e-09
+ 1.799804082873315e+00
+ 6.613071035780448e-01
+ 1.800000000000000e+00
+ -3.801608944557347e-03
+925 9.004999999999901e-09
+ 1.799836263079134e+00
+ 6.053684529530245e-01
+ 1.800000000000000e+00
+ -3.849445603711833e-03
+926 9.014999999999901e-09
+ 1.799844391682947e+00
+ 5.574167147728353e-01
+ 1.800000000000000e+00
+ -3.866054289038189e-03
+927 9.024999999999900e-09
+ 1.799875393654878e+00
+ 5.173873494648659e-01
+ 1.800000000000000e+00
+ -3.830974354037582e-03
+928 9.034999999999900e-09
+ 1.799881803010616e+00
+ 4.847945451850371e-01
+ 1.800000000000000e+00
+ -3.774181005632350e-03
+929 9.044999999999900e-09
+ 1.799889280700700e+00
+ 4.586667986630529e-01
+ 1.800000000000000e+00
+ -3.723463954943875e-03
+930 9.054999999999900e-09
+ 1.799853549079933e+00
+ 4.377731292311580e-01
+ 1.800000000000000e+00
+ -3.666114179550450e-03
+931 9.064999999999900e-09
+ 1.799871915005767e+00
+ 4.211685404833174e-01
+ 1.800000000000000e+00
+ -3.574867007441315e-03
+932 9.074999999999899e-09
+ 1.799857761661958e+00
+ 4.080707242260509e-01
+ 1.800000000000000e+00
+ -3.551315695014435e-03
+933 9.084999999999899e-09
+ 1.799779166704939e+00
+ 3.976601005519758e-01
+ 1.800000000000000e+00
+ -3.575674770419988e-03
+934 9.094999999999899e-09
+ 1.799710304814931e+00
+ 3.893207123059073e-01
+ 1.800000000000000e+00
+ -3.639803840069240e-03
+935 9.104999999999899e-09
+ 1.799716833331864e+00
+ 3.824979933466062e-01
+ 1.800000000000000e+00
+ -3.714000138103753e-03
+936 9.114999999999898e-09
+ 1.799774108987773e+00
+ 3.767212795748852e-01
+ 1.800000000000000e+00
+ -3.789839389839270e-03
+937 9.124999999999898e-09
+ 1.799910720219443e+00
+ 3.717002166050615e-01
+ 1.800000000000000e+00
+ -3.844900920814661e-03
+938 9.134999999999898e-09
+ 1.800121389642607e+00
+ 3.671898983479271e-01
+ 1.800000000000000e+00
+ -3.865562494510497e-03
+939 9.144999999999898e-09
+ 1.800519877257470e+00
+ 3.629762340810020e-01
+ 1.800000000000000e+00
+ -3.840083759287358e-03
+940 9.154999999999897e-09
+ 1.801274185491967e+00
+ 3.588243420715743e-01
+ 1.800000000000000e+00
+ -3.782402614607490e-03
+941 9.164999999999897e-09
+ 1.802758439750060e+00
+ 3.546337896713977e-01
+ 1.800000000000000e+00
+ -3.730570103812070e-03
+942 9.174999999999897e-09
+ 1.804452492106991e+00
+ 3.507629442225387e-01
+ 1.800000000000000e+00
+ -3.678843940511085e-03
+943 9.184999999999897e-09
+ 1.805072569890987e+00
+ 3.478614321091882e-01
+ 1.800000000000000e+00
+ -3.586490783190141e-03
+944 9.194999999999896e-09
+ 1.804929791397346e+00
+ 3.469704687520926e-01
+ 1.800000000000000e+00
+ -3.550426039522225e-03
+945 9.204999999999896e-09
+ 1.804287347042798e+00
+ 3.500971797700837e-01
+ 1.800000000000000e+00
+ -3.569662158781715e-03
+946 9.214999999999896e-09
+ 1.803344686944222e+00
+ 3.608093016497970e-01
+ 1.800000000000000e+00
+ -3.627549171509216e-03
+947 9.224999999999896e-09
+ 1.802706295606721e+00
+ 3.846341168977493e-01
+ 1.800000000000000e+00
+ -3.703048729319982e-03
+948 9.234999999999895e-09
+ 1.802485226635777e+00
+ 4.316189564967721e-01
+ 1.800000000000000e+00
+ -3.777593963620185e-03
+949 9.244999999999895e-09
+ 1.802898780504408e+00
+ 5.211297914200712e-01
+ 1.800000000000000e+00
+ -3.839452978931608e-03
+950 9.254999999999895e-09
+ 1.804076420688786e+00
+ 6.788581474221238e-01
+ 1.800000000000000e+00
+ -3.863945611627628e-03
+951 9.264999999999895e-09
+ 1.806443495182939e+00
+ 9.026982348072821e-01
+ 1.800000000000000e+00
+ -3.848265639019654e-03
+952 9.274999999999894e-09
+ 1.810152168873304e+00
+ 1.160622648126580e+00
+ 1.800000000000000e+00
+ -3.790839190709346e-03
+953 9.284999999999894e-09
+ 1.813504115270686e+00
+ 1.393739656485089e+00
+ 1.800000000000000e+00
+ -3.738068886628926e-03
+954 9.294999999999894e-09
+ 1.814540680583394e+00
+ 1.555226700021719e+00
+ 1.800000000000000e+00
+ -3.689829423496513e-03
+955 9.304999999999894e-09
+ 1.811677242454548e+00
+ 1.654162816402496e+00
+ 1.800000000000000e+00
+ -3.600044269388571e-03
+956 9.314999999999893e-09
+ 1.800160212954404e+00
+ 1.715963661494221e+00
+ 1.800000000000000e+00
+ -3.550803095732277e-03
+957 9.324999999999893e-09
+ 1.772776549916677e+00
+ 1.753209482157509e+00
+ 1.800000000000000e+00
+ -3.564616320638671e-03
+958 9.334999999999893e-09
+ 1.725149361177692e+00
+ 1.774267791446193e+00
+ 1.800000000000000e+00
+ -3.615763611746613e-03
+959 9.344999999999893e-09
+ 1.658445792485421e+00
+ 1.785855028585285e+00
+ 1.800000000000000e+00
+ -3.691972073535169e-03
+960 9.354999999999893e-09
+ 1.577831694733731e+00
+ 1.792089740658523e+00
+ 1.800000000000000e+00
+ -3.765177498564575e-03
+961 9.364999999999892e-09
+ 1.489587415000527e+00
+ 1.795563685697562e+00
+ 1.800000000000000e+00
+ -3.832900813371789e-03
+962 9.374999999999892e-09
+ 1.399203924349876e+00
+ 1.797404925941773e+00
+ 1.800000000000000e+00
+ -3.861498487430523e-03
+963 9.384999999999892e-09
+ 1.310816722242079e+00
+ 1.798531198831854e+00
+ 1.800000000000000e+00
+ -3.855146733860656e-03
+964 9.394999999999892e-09
+ 1.227137596059235e+00
+ 1.799121617374273e+00
+ 1.800000000000000e+00
+ -3.799603815057325e-03
+965 9.404999999999891e-09
+ 1.149727149667387e+00
+ 1.799498927410152e+00
+ 1.800000000000000e+00
+ -3.746017025421854e-03
+966 9.414999999999891e-09
+ 1.080376848085188e+00
+ 1.799578286610426e+00
+ 1.800000000000000e+00
+ -3.699119458174076e-03
+967 9.424999999999891e-09
+ 1.021013400973133e+00
+ 1.799697713649633e+00
+ 1.800000000000000e+00
+ -3.614997772636210e-03
+968 9.434999999999891e-09
+ 9.662915609177470e-01
+ 1.799736385745548e+00
+ 1.800000000000000e+00
+ -3.552764907012864e-03
+969 9.444999999999890e-09
+ 9.054796276928646e-01
+ 1.799785241318621e+00
+ 1.800000000000000e+00
+ -3.560385782649943e-03
+970 9.454999999999890e-09
+ 8.372210605757167e-01
+ 1.799751500197458e+00
+ 1.800000000000000e+00
+ -3.604740368903372e-03
+971 9.464999999999890e-09
+ 7.672410713335679e-01
+ 1.799794170802611e+00
+ 1.800000000000000e+00
+ -3.680582792773502e-03
+972 9.474999999999890e-09
+ 7.002457127224433e-01
+ 1.799784121292487e+00
+ 1.800000000000000e+00
+ -3.752889627089827e-03
+973 9.484999999999889e-09
+ 6.395803192256839e-01
+ 1.799829774070006e+00
+ 1.800000000000000e+00
+ -3.825065941243032e-03
+974 9.494999999999889e-09
+ 5.865714903139330e-01
+ 1.799826813576674e+00
+ 1.800000000000000e+00
+ -3.858489900428274e-03
+975 9.504999999999889e-09
+ 5.416134614803727e-01
+ 1.799867328278279e+00
+ 1.800000000000000e+00
+ -3.860409991760394e-03
+976 9.514999999999889e-09
+ 5.044219844688880e-01
+ 1.799868284385942e+00
+ 1.800000000000000e+00
+ -3.808759202466521e-03
+977 9.524999999999888e-09
+ 4.743845061378970e-01
+ 1.799897458251430e+00
+ 1.800000000000000e+00
+ -3.754251579477183e-03
+978 9.534999999999888e-09
+ 4.503454355997581e-01
+ 1.799867987092157e+00
+ 1.800000000000000e+00
+ -3.707122810369462e-03
+979 9.544999999999888e-09
+ 4.311229228394181e-01
+ 1.799862626220865e+00
+ 1.800000000000000e+00
+ -3.630567661723739e-03
+980 9.554999999999888e-09
+ 4.159263314749818e-01
+ 1.799867672132868e+00
+ 1.800000000000000e+00
+ -3.556722449111435e-03
+981 9.564999999999887e-09
+ 4.039282198833426e-01
+ 1.799841738191298e+00
+ 1.800000000000000e+00
+ -3.556782404364527e-03
+982 9.574999999999887e-09
+ 3.943350843786200e-01
+ 1.799738736952564e+00
+ 1.800000000000000e+00
+ -3.594796634633858e-03
+983 9.584999999999887e-09
+ 3.866400741176190e-01
+ 1.799712619882836e+00
+ 1.800000000000000e+00
+ -3.668723568655657e-03
+984 9.594999999999887e-09
+ 3.802387943929066e-01
+ 1.799724056475034e+00
+ 1.800000000000000e+00
+ -3.740997925717178e-03
+985 9.604999999999886e-09
+ 3.747806027807473e-01
+ 1.799822807396835e+00
+ 1.800000000000000e+00
+ -3.815835841484791e-03
+986 9.614999999999886e-09
+ 3.699714932078901e-01
+ 1.799970841342867e+00
+ 1.800000000000000e+00
+ -3.855123630644302e-03
+987 9.624999999999886e-09
+ 3.655996792235219e-01
+ 1.800246656871880e+00
+ 1.800000000000000e+00
+ -3.863833794875911e-03
+988 9.634999999999886e-09
+ 3.614352512818369e-01
+ 1.800738321276500e+00
+ 1.800000000000000e+00
+ -3.818275722799368e-03
+989 9.644999999999886e-09
+ 3.572597342819079e-01
+ 1.801710418273697e+00
+ 1.800000000000000e+00
+ -3.762521291527779e-03
+990 9.654999999999885e-09
+ 3.531295758559395e-01
+ 1.803501811831912e+00
+ 1.800000000000000e+00
+ -3.714381366052621e-03
+991 9.664999999999885e-09
+ 3.495205820643004e-01
+ 1.804777050284127e+00
+ 1.800000000000000e+00
+ -3.645960267333023e-03
+992 9.674999999999885e-09
+ 3.472212157009838e-01
+ 1.805073248527405e+00
+ 1.800000000000000e+00
+ -3.562982848552509e-03
+993 9.684999999999885e-09
+ 3.475104649985920e-01
+ 1.804769292085536e+00
+ 1.800000000000000e+00
+ -3.553748765152315e-03
+994 9.694999999999884e-09
+ 3.529488309263130e-01
+ 1.803919499015156e+00
+ 1.800000000000000e+00
+ -3.586100723171608e-03
+995 9.704999999999884e-09
+ 3.677493767218779e-01
+ 1.803077502063399e+00
+ 1.800000000000000e+00
+ -3.656430695674984e-03
+996 9.714999999999884e-09
+ 3.986070336069286e-01
+ 1.802553089141485e+00
+ 1.800000000000000e+00
+ -3.729580754093715e-03
+997 9.724999999999884e-09
+ 4.585522805702891e-01
+ 1.802571199095944e+00
+ 1.800000000000000e+00
+ -3.805312508341056e-03
+998 9.734999999999883e-09
+ 5.708573479634880e-01
+ 1.803222517165982e+00
+ 1.800000000000000e+00
+ -3.851401883861592e-03
+999 9.744999999999883e-09
+ 7.556161387100679e-01
+ 1.804799502106518e+00
+ 1.800000000000000e+00
+ -3.865428995775185e-03
+1000 9.754999999999883e-09
+ 9.972451798214613e-01
+ 1.807698539536773e+00
+ 1.800000000000000e+00
+ -3.827915725057620e-03
+1001 9.764999999999883e-09
+ 1.253612638825992e+00
+ 1.811576121857806e+00
+ 1.800000000000000e+00
+ -3.770709451601662e-03
+1002 9.774999999999882e-09
+ 1.462912149374369e+00
+ 1.814215660292627e+00
+ 1.800000000000000e+00
+ -3.721347077567545e-03
+1003 9.784999999999882e-09
+ 1.597628006919593e+00
+ 1.814097073473774e+00
+ 1.800000000000000e+00
+ -3.660565538755656e-03
+1004 9.794999999999882e-09
+ 1.680647707059082e+00
+ 1.808783565810438e+00
+ 1.800000000000000e+00
+ -3.571569444836548e-03
+1005 9.804999999999882e-09
+ 1.732187386757369e+00
+ 1.792185875450270e+00
+ 1.800000000000000e+00
+ -3.551468674499110e-03
+1006 9.814999999999881e-09
+ 1.762552040136713e+00
+ 1.757489671582547e+00
+ 1.800000000000000e+00
+ -3.578613656957916e-03
+1007 9.824999999999881e-09
+ 1.779388273152736e+00
+ 1.702362082328848e+00
+ 1.800000000000000e+00
+ -3.643949615957607e-03
+1008 9.834999999999881e-09
+ 1.788655412603148e+00
+ 1.629768346497078e+00
+ 1.800000000000000e+00
+ -3.718504739736928e-03
+1009 9.844999999999881e-09
+ 1.793602315118351e+00
+ 1.545596888853422e+00
+ 1.800000000000000e+00
+ -3.793809938693609e-03
+1010 9.854999999999880e-09
+ 1.796403820567773e+00
+ 1.455990497298658e+00
+ 1.800000000000000e+00
+ -3.847127124741005e-03
+1011 9.864999999999880e-09
+ 1.797870258315702e+00
+ 1.365937769931679e+00
+ 1.800000000000000e+00
+ -3.865439444310338e-03
+1012 9.874999999999880e-09
+ 1.798811772895998e+00
+ 1.279059335213992e+00
+ 1.800000000000000e+00
+ -3.837255050710325e-03
+1013 9.884999999999880e-09
+ 1.799274790285632e+00
+ 1.197564538397172e+00
+ 1.800000000000000e+00
+ -3.778893489391804e-03
+1014 9.894999999999879e-09
+ 1.799563790486031e+00
+ 1.122868477469205e+00
+ 1.800000000000000e+00
+ -3.728360107415159e-03
+1015 9.904999999999879e-09
+ 1.799601698537060e+00
+ 1.057173657154200e+00
+ 1.800000000000000e+00
+ -3.673878754295498e-03
+1016 9.914999999999879e-09
+ 1.799734460670171e+00
+ 1.000784939190727e+00
+ 1.800000000000000e+00
+ -3.582403453133977e-03
+1017 9.924999999999879e-09
+ 1.799745515966393e+00
+ 9.447890494948178e-01
+ 1.800000000000000e+00
+ -3.550167328649962e-03
+1018 9.934999999999879e-09
+ 1.799785314997641e+00
+ 8.806882225936731e-01
+ 1.800000000000000e+00
+ -3.572219018265160e-03
+1019 9.944999999999878e-09
+ 1.799752911383298e+00
+ 8.111327420444630e-01
+ 1.800000000000000e+00
+ -3.631585977284085e-03
+1020 9.954999999999878e-09
+ 1.799802749409491e+00
+ 7.417671585474621e-01
+ 1.800000000000000e+00
+ -3.707554149460135e-03
+1021 9.964999999999878e-09
+ 1.799788804609961e+00
+ 6.768483302959182e-01
+ 1.800000000000000e+00
+ -3.781704471508876e-03
+1022 9.974999999999878e-09
+ 1.799840281588190e+00
+ 6.189443107902098e-01
+ 1.800000000000000e+00
+ -3.842036938535607e-03
+1023 9.984999999999877e-09
+ 1.799831055657256e+00
+ 5.689220360738784e-01
+ 1.800000000000000e+00
+ -3.864203744064905e-03
+1024 9.994999999999877e-09
+ 1.799877807385038e+00
+ 5.269038674809134e-01
+ 1.800000000000000e+00
+ -3.845825262784571e-03
+1025 1.000000000000000e-08
+ 1.799864128299574e+00
+ 5.087865049709742e-01
+ 1.800000000000000e+00
+ -3.817470741212248e-03
diff --git a/xschem/vco_2-4GHz/tests/spiceinterface_temp.spice b/xschem/vco_2-4GHz/tests/spiceinterface_temp.spice
new file mode 100644
index 0000000..51e4fbe
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/spiceinterface_temp.spice
@@ -0,0 +1,87 @@
+**.subckt vco_2-4GHz_tb
+V1 vctl 0 vctl
+Vdd net1 0 vdd
+xvco net1 Ip In Qp Qn NCp NCn FBp FBn vctl 0 vco_2-4GHz
+**** begin user architecture code
+
+
+.param temp=125.000000
+.temp 125.000000
+
+.save v(ip) v(in) v(vctl) i(vdd)
+
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35.spice
+.lib sky130_fd_pr/models/sky130.lib.spice lh
+.tran 0.01n 10n uic
+.param vdd=1.800000
+.param vctl=1.800000
+
+
+**** end user architecture code
+**.ends
+
+* expanding symbol: vco_2-4GHz/vco_2-4GHz.sym # of pins=11
+
+.subckt vco_2-4GHz VDD ph1_p ph1_n ph2_p ph2_n ph3_p ph3_n ph4_p ph4_n CTL GND
+*.ipin CTL
+*.iopin VDD
+*.iopin GND
+*.opin ph3_p
+*.opin ph3_n
+*.opin ph4_p
+*.opin ph4_n
+*.opin ph2_p
+*.opin ph2_n
+*.opin ph1_p
+*.opin ph1_n
+x1 VDD net2 net1 net7 net8 GND CTL vco_2-4Ghz_delaycell
+x2 VDD net4 net3 net2 net1 GND CTL vco_2-4Ghz_delaycell
+x3 VDD net6 net5 net4 net3 GND CTL vco_2-4Ghz_delaycell
+x4 VDD net8 net7 net6 net5 GND CTL vco_2-4Ghz_delaycell
+x5 VDD ph1_p ph1_n net1 net2 GND rf_bufferdiff
+x6 VDD ph2_p ph2_n net3 net4 GND rf_bufferdiff
+x7 VDD ph3_p ph3_n net5 net6 GND rf_bufferdiff
+x8 VDD ph4_p ph4_n net7 net8 GND rf_bufferdiff
+I0 GND GND pulse(1000n 0 0 400p 100p 100p 10 20 0)
+.ends
+
+
+* expanding symbol: vco_2-4GHz_delaycell/vco_2-4Ghz_delaycell.sym # of pins=7
+
+.subckt vco_2-4Ghz_delaycell VDD OUTn OUTp Pn Pp GND CTL
+*.ipin Pp
+*.ipin Pn
+*.opin OUTn
+*.opin OUTp
+*.iopin VDD
+*.iopin GND
+*.ipin CTL
+XXMprimpos OUTp Pp GND GND sky130_fd_pr__rf_nfet_01v8_bM04W5p00L0p15 m=3
+XXMcrossneg OUTn OUTp GND GND sky130_fd_pr__rf_nfet_01v8_bM02W3p00L0p15 m=1
+XXMctlneg OUTn CTL VDD VDD sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35 m=1
+XXMctlpos OUTp CTL VDD VDD sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35 m=1
+XXMcrosspos OUTp OUTn GND GND sky130_fd_pr__rf_nfet_01v8_bM02W3p00L0p15 m=1
+XXMprimneg OUTn Pn GND GND sky130_fd_pr__rf_nfet_01v8_bM04W5p00L0p15 m=3
+XXMctlpos1 net2 GND VDD VDD sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p15 m=1
+XXMctlneg1 net1 GND VDD VDD sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p15 m=1
+XXMctlpos2 OUTp GND net2 VDD sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p15 m=1
+XXMctlneg2 OUTn GND net1 VDD sky130_fd_pr__rf_pfet_01v8_bM02W5p00L0p15 m=1
+.ends
+
+
+* expanding symbol: rf_bufferdiff/rf_bufferdiff.sym # of pins=6
+
+.subckt rf_bufferdiff vdd out_n out_p in_p in_n vss
+*.iopin vdd
+*.iopin vss
+*.ipin in_p
+*.ipin in_n
+*.opin out_n
+*.opin out_p
+XXMdiffp out_n in_p vss vss sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p15 m=1
+XXMdiffn out_p in_n vss vss sky130_fd_pr__rf_nfet_01v8_bM02W1p65L0p15 m=1
+XRn vdd out_n vss sky130_fd_pr__res_xhigh_po_2p85 m=1
+XRp vdd out_p vss sky130_fd_pr__res_xhigh_po_2p85 m=1
+.ends
+
+.end
diff --git a/xschem/vco_2-4GHz/tests/transfer_model.ods b/xschem/vco_2-4GHz/tests/transfer_model.ods
new file mode 100644
index 0000000..78c3264
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/transfer_model.ods
Binary files differ
diff --git a/xschem/vco_2-4GHz/tests/vco_2-4GHz_behavourial_square_tb.sch b/xschem/vco_2-4GHz/tests/vco_2-4GHz_behavourial_square_tb.sch
new file mode 100644
index 0000000..bded039
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/vco_2-4GHz_behavourial_square_tb.sch
@@ -0,0 +1,34 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 100 -40 120 -40 {lab=Ip}
+N 100 -20 120 -20 {lab=In}
+N 100 20 120 20 {lab=Qp}
+N 100 40 120 40 {lab=Qn}
+N 0 -120 -0 -80 {lab=#net1}
+N -290 -120 -0 -120 {lab=#net1}
+N -290 -120 -290 -30 {lab=#net1}
+N -290 30 -290 130 {lab=0}
+N -290 130 -0 130 {lab=0}
+N -0 80 0 130 {lab=0}
+N -170 100 -170 130 {lab=0}
+N -170 -0 -170 40 {lab=#net2}
+N -170 -0 -100 -0 {lab=#net2}
+C {lab_wire.sym} 100 -40 0 1 {name=l1 sig_type=std_logic lab=Ip}
+C {lab_wire.sym} 100 -20 0 1 {name=l2 sig_type=std_logic lab=In}
+C {lab_wire.sym} 100 20 0 1 {name=l3 sig_type=std_logic lab=Qp}
+C {lab_wire.sym} 100 40 0 1 {name=l4 sig_type=std_logic lab=Qn}
+C {vsource.sym} -170 70 0 0 {name=V1 value=0.9}
+C {vsource.sym} -290 0 0 0 {name=V2 value=1.8}
+C {gnd.sym} -290 130 0 0 {name=l5 lab=0}
+C {code.sym} 80 -250 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+.include "xh018_ng/xh018.lib"
+.temp 30
+.param vctl=0.9
+.tran 0.1e-9 1e-6 uic
+"}
+C {vco_quad/vco_quad_behavourial_square.sym} 0 0 0 0 {}
diff --git a/xschem/vco_2-4GHz/tests/vco_2-4GHz_behavourial_tb.sch b/xschem/vco_2-4GHz/tests/vco_2-4GHz_behavourial_tb.sch
new file mode 100644
index 0000000..8f71242
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/vco_2-4GHz_behavourial_tb.sch
@@ -0,0 +1,34 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 100 -40 120 -40 {lab=Ip}
+N 100 -20 120 -20 {lab=In}
+N 100 20 120 20 {lab=Qp}
+N 100 40 120 40 {lab=Qn}
+N 0 -120 -0 -80 {lab=#net1}
+N -290 -120 -0 -120 {lab=#net1}
+N -290 -120 -290 -30 {lab=#net1}
+N -290 30 -290 130 {lab=0}
+N -290 130 -0 130 {lab=0}
+N -0 80 0 130 {lab=0}
+N -170 100 -170 130 {lab=0}
+N -170 -0 -170 40 {lab=#net2}
+N -170 -0 -100 -0 {lab=#net2}
+C {vco_quad/vco_quad_behavourial.sym} 0 0 0 0 {name=xvco}
+C {lab_wire.sym} 100 -40 0 1 {name=l1 sig_type=std_logic lab=Ip}
+C {lab_wire.sym} 100 -20 0 1 {name=l2 sig_type=std_logic lab=In}
+C {lab_wire.sym} 100 20 0 1 {name=l3 sig_type=std_logic lab=Qp}
+C {lab_wire.sym} 100 40 0 1 {name=l4 sig_type=std_logic lab=Qn}
+C {vsource.sym} -170 70 0 0 {name=V1 value=0.0}
+C {vsource.sym} -290 0 0 0 {name=V2 value=1.8}
+C {gnd.sym} -290 130 0 0 {name=l5 lab=0}
+C {code.sym} 80 -250 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+.include "xh018_ng/xh018.lib"
+.temp 30
+.param vctl=0.9
+.tran 0.1e-9 1e-6 uic
+"}
diff --git a/xschem/vco_2-4GHz/tests/vco_2-4GHz_corners.hdf5 b/xschem/vco_2-4GHz/tests/vco_2-4GHz_corners.hdf5
new file mode 100644
index 0000000..588ae17
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/vco_2-4GHz_corners.hdf5
Binary files differ
diff --git a/xschem/vco_2-4GHz/tests/vco_2-4GHz_tb.sch b/xschem/vco_2-4GHz/tests/vco_2-4GHz_tb.sch
new file mode 100644
index 0000000..20eb662
--- /dev/null
+++ b/xschem/vco_2-4GHz/tests/vco_2-4GHz_tb.sch
@@ -0,0 +1,142 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N -440 -600 -440 -300 {lab=#net1}
+N -440 -240 -440 0 {lab=0}
+N -130 -0 330 0 {lab=0}
+N -360 -270 -360 -150 {lab=vctl}
+N -360 -270 -260 -270 {lab=vctl}
+N -360 -90 -360 0 {lab=0}
+N 0 -290 80 -290 {lab=Qn}
+N 0 -310 80 -310 {lab=Qp}
+N 0 -190 230 -190 {lab=FBn}
+N 0 -210 230 -210 {lab=FBp}
+N 330 -140 330 0 {lab=0}
+N 430 -190 440 -190 {lab=0}
+N 440 -190 440 0 {lab=0}
+N 330 0 440 0 {lab=0}
+N 430 -210 440 -210 {lab=0}
+N 440 -210 440 -190 {lab=0}
+N -130 -150 -130 -0 {lab=0}
+N 0 -340 80 -340 {lab=In}
+N 0 -360 80 -360 {lab=Ip}
+N -440 -600 -130 -600 {lab=#net1}
+N -440 0 -360 0 {lab=0}
+N -360 0 -130 -0 {lab=0}
+N 0 -240 80 -240 {lab=NCn}
+N 0 -260 80 -260 {lab=NCp}
+N 330 -600 330 -260 {lab=#net1}
+N -130 -600 330 -600 {lab=#net1}
+N -130 -470 -130 -400 { lab=#net2}
+N -130 -500 -110 -500 { lab=#net1}
+N -110 -600 -110 -500 { lab=#net1}
+N -130 -600 -130 -530 { lab=#net1}
+N -590 -500 -570 -500 { lab=#net1}
+N -570 -600 -570 -500 { lab=#net1}
+N -590 -600 -590 -530 { lab=#net1}
+N -590 -600 -570 -600 { lab=#net1}
+N -570 -600 -430 -600 { lab=#net1}
+N -590 -470 -590 -390 { lab=#net3}
+N -590 -330 -590 -0 { lab=0}
+N -590 -0 -440 -0 { lab=0}
+N 80 -310 160 -310 { lab=Qp}
+N 160 -360 160 -310 { lab=Qp}
+N 160 -360 220 -360 { lab=Qp}
+N 220 -360 220 -330 { lab=Qp}
+N 80 -290 160 -290 { lab=Qn}
+N 160 -290 160 -240 { lab=Qn}
+N 160 -240 220 -240 { lab=Qn}
+N 220 -270 220 -240 { lab=Qn}
+C {vsource.sym} -360 -120 0 0 {name=V1 value="vctl"}
+C {vsource.sym} -440 -270 0 0 {name=Vdd value=vdd}
+C {lab_wire.sym} 40 -290 0 1 {name=l1 sig_type=std_logic lab=Qn}
+C {lab_wire.sym} 40 -310 0 1 {name=l2 sig_type=std_logic lab=Qp}
+C {lab_wire.sym} 40 -190 0 1 {name=l3 sig_type=std_logic lab=FBn}
+C {lab_wire.sym} 40 -210 0 1 {name=l4 sig_type=std_logic lab=FBp}
+C {lab_wire.sym} -440 0 0 1 {name=l5 sig_type=std_logic lab=0}
+C {code.sym} 370 -420 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+.param temp=27
+.temp 27
+
+*.save v(ip) v(in) v(vctl) i(vdd)
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM04W5p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15.spice
+
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W3p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p50.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM02W3p00L0p35.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p35.spice
+
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W3p00L0p25.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p25.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aF04W2p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aF04W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p25.spice
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF06W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF04W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF02W0p84L0p15.spice
+
+
+.lib sky130_fd_pr/models/sky130.lib.spice tt
+*.include sky130_fd_pr/models/corners/tt.spice
+
+
+.tran 0.01n 10n uic
+.param vdd=1.8
+.param vctl=0.2
+"}
+C {vco_2-4GHz/vco_2-4GHz.sym} -130 -270 0 0 {name=xvco}
+C {lab_wire.sym} 40 -340 0 1 {name=l8 sig_type=std_logic lab=In}
+C {lab_wire.sym} 40 -360 0 1 {name=l9 sig_type=std_logic lab=Ip}
+C {noconn.sym} 80 -360 2 0 {name=l10}
+C {noconn.sym} 80 -340 2 0 {name=l11}
+C {lab_wire.sym} 40 -240 0 1 {name=l12 sig_type=std_logic lab=NCn}
+C {lab_wire.sym} 40 -260 0 1 {name=l13 sig_type=std_logic lab=NCp}
+C {noconn.sym} 80 -260 2 0 {name=l14}
+C {noconn.sym} 80 -240 2 0 {name=l15}
+C {lab_wire.sym} -360 -270 0 1 {name=l16 sig_type=std_logic lab=vctl}
+C {sky130_fd_pr/pfet_01v8_lvt.sym} -150 -500 0 0 {name=M1
+L=0.35
+W=7
+ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
+as="'W * 0.29'" ps="'2 * (W + 0.29)'"
+nrd="'0.29 / W'" nrs="'0.29 / W'"
+sa=0 sb=0 sd=0
+nf=1 mult=64
+model=pfet_01v8_lvt
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8_lvt.sym} -610 -500 0 0 {name=M2
+L=0.35
+W=7
+ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
+as="'W * 0.29'" ps="'2 * (W + 0.29)'"
+nrd="'0.29 / W'" nrs="'0.29 / W'"
+sa=0 sb=0 sd=0
+nf=1 mult=64
+model=pfet_01v8_lvt
+spiceprefix=X
+}
+C {ammeter.sym} -590 -360 0 0 {name=Vmeas}
+C {lab_wire.sym} -630 -500 0 0 {name=l17 sig_type=std_logic lab=0}
+C {lab_wire.sym} -170 -500 0 0 {name=l18 sig_type=std_logic lab=0}
+C {res.sym} 220 -300 0 0 {name=R1
+value=100
+footprint=1206
+device=resistor
+m=1}
diff --git a/xschem/vco_2-4GHz/vco_2-4GHz.sch b/xschem/vco_2-4GHz/vco_2-4GHz.sch
new file mode 100644
index 0000000..6890061
--- /dev/null
+++ b/xschem/vco_2-4GHz/vco_2-4GHz.sch
@@ -0,0 +1,125 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 340 -150 470 -150 {lab=1p}
+N 360 -130 470 -130 {lab=1n}
+N 695 -150 830 -150 {lab=2p}
+N 715 -130 830 -130 {lab=2n}
+N 1055 -150 1190 -150 {lab=3p}
+N 1075 -130 1190 -130 {lab=4n}
+N 1400 -150 1450 -150 {lab=4n}
+N 1450 -150 1470 -130 {lab=4n}
+N 1420 -130 1450 -130 {lab=4p}
+N 1450 -130 1470 -150 {lab=4p}
+N 1470 -130 1490 -130 {lab=4n}
+N 1490 -130 1490 -20 {lab=4n}
+N 60 -20 1490 -20 {lab=4n}
+N 60 -130 110 -130 {lab=4n}
+N 1470 -150 1490 -150 {lab=4p}
+N 1490 -260 1490 -150 {lab=4p}
+N 60 -150 110 -150 {lab=4p}
+N 60 -260 1490 -260 {lab=4p}
+N 170 -280 170 -200 {lab=CTL}
+N 540 -80 540 0 {lab=GND}
+N 900 -80 900 0 {lab=GND}
+N 1260 -80 1260 0 {lab=GND}
+N 450 0 540 0 {lab=GND}
+N 180 -80 180 0 {lab=GND}
+N 810 0 900 0 {lab=GND}
+N 1170 -0 1260 0 {lab=GND}
+N 170 -280 530 -280 {lab=CTL}
+N 530 -280 890 -280 {lab=CTL}
+N 890 -280 1250 -280 {lab=CTL}
+N 450 -700 560 -700 {lab=VDD}
+N 810 -700 920 -700 {lab=VDD}
+N 1170 -700 1280 -700 {lab=VDD}
+N 530 -280 530 -200 {lab=CTL}
+N 560 -700 560 -200 {lab=VDD}
+N 890 -280 890 -200 {lab=CTL}
+N 920 -700 920 -200 {lab=VDD}
+N 1250 -280 1250 -200 {lab=CTL}
+N 1280 -700 1280 -200 {lab=VDD}
+N 0 -280 170 -280 {lab=CTL}
+N 0 -700 200 -700 {lab=VDD}
+N 1400 -340 1400 -150 {lab=4n}
+N 1075 -420 1075 -130 {lab=4n}
+N 1055 -440 1055 -150 {lab=3p}
+N 715 -510 715 -130 {lab=2n}
+N 695 -530 695 -150 {lab=2p}
+N 1280 -700 1550 -700 {lab=VDD}
+N 360 -620 360 -130 {lab=1n}
+N 340 -640 340 -150 {lab=1p}
+N 1610 -340 1710 -340 {lab=ph4_p}
+N 1610 -320 1710 -320 {lab=ph4_n}
+N 1230 -440 1710 -440 {lab=ph3_p}
+N 1230 -420 1710 -420 {lab=ph3_n}
+N 870 -530 1710 -530 {lab=ph2_p}
+N 870 -510 1710 -510 {lab=ph2_n}
+N 510 -640 1715 -640 {lab=ph1_p}
+N 510 -620 1715 -620 {lab=ph1_n}
+N 1350 -150 1400 -150 {lab=4n}
+N 1350 -130 1420 -130 {lab=4p}
+N 630 -150 695 -150 {lab=2p}
+N 630 -130 715 -130 {lab=2n}
+N 270 -150 340 -150 {lab=1p}
+N 270 -130 360 -130 {lab=1n}
+N 990 -150 1055 -150 {lab=3p}
+N 990 -130 1075 -130 {lab=4n}
+N 560 -700 810 -700 {lab=VDD}
+N 360 -620 380 -620 {lab=1n}
+N 340 -640 380 -640 {lab=1p}
+N 450 -590 450 0 {lab=GND}
+N 450 -700 450 -670 {lab=VDD}
+N 180 0 450 0 {lab=GND}
+N 200 -700 450 -700 {lab=VDD}
+N 695 -530 740 -530 {lab=2p}
+N 715 -510 740 -510 {lab=2n}
+N 810 -700 810 -560 {lab=VDD}
+N 810 -480 810 0 {lab=GND}
+N 1170 -390 1170 -0 {lab=GND}
+N 1055 -440 1100 -440 {lab=3p}
+N 1075 -420 1100 -420 {lab=4n}
+N 540 0 810 0 {lab=GND}
+N 900 0 1170 -0 {lab=GND}
+N 1170 -700 1170 -470 {lab=VDD}
+N 920 -700 1170 -700 {lab=VDD}
+N 1420 -320 1480 -320 {lab=4p}
+N 1420 -320 1420 -130 {lab=4p}
+N 1400 -340 1480 -340 {lab=4n}
+N 1260 -0 1550 -0 {lab=GND}
+N 1550 -290 1550 -0 {lab=GND}
+N 1550 -700 1550 -370 {lab=VDD}
+N 0 0 180 0 {lab=GND}
+N 200 -700 200 -200 { lab=VDD}
+N 60 -260 60 -150 { lab=4p}
+N 60 -130 60 -20 { lab=4n}
+C {vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym} 180 -140 0 0 {name=x1}
+C {vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym} 540 -140 0 0 {name=x2}
+C {vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym} 900 -140 0 0 {name=x3}
+C {vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym} 1260 -140 0 0 {name=x4}
+C {ipin.sym} 0 -280 0 0 {name=p1 lab=CTL}
+C {iopin.sym} 0 -700 0 1 {name=p6 lab=VDD}
+C {iopin.sym} 0 0 0 1 {name=p7 lab=GND}
+C {opin.sym} 1710 -440 0 0 {name=p2 lab=ph3_p}
+C {opin.sym} 1710 -420 0 0 {name=p3 lab=ph3_n}
+C {opin.sym} 1710 -340 0 0 {name=p4 lab=ph4_p}
+C {opin.sym} 1710 -320 0 0 {name=p5 lab=ph4_n}
+C {rf_bufferdiff/rf_bufferdiff.sym} 450 -630 0 0 {name=x5}
+C {rf_bufferdiff/rf_bufferdiff.sym} 810 -520 0 0 {name=x6}
+C {rf_bufferdiff/rf_bufferdiff.sym} 1170 -430 0 0 {name=x7}
+C {rf_bufferdiff/rf_bufferdiff.sym} 1550 -330 0 0 {name=x8}
+C {opin.sym} 1710 -530 0 0 {name=p8 lab=ph2_p}
+C {opin.sym} 1710 -510 0 0 {name=p9 lab=ph2_n}
+C {opin.sym} 1715 -640 0 0 {name=p10 lab=ph1_p}
+C {opin.sym} 1715 -620 0 0 {name=p11 lab=ph1_n}
+C {lab_wire.sym} 470 -150 0 0 {name=l1 sig_type=std_logic lab=1p}
+C {lab_wire.sym} 470 -130 2 1 {name=l2 sig_type=std_logic lab=1n}
+C {lab_wire.sym} 830 -150 0 0 {name=l3 sig_type=std_logic lab=2p}
+C {lab_wire.sym} 830 -130 2 1 {name=l4 sig_type=std_logic lab=2n}
+C {lab_wire.sym} 1190 -150 0 0 {name=l5 sig_type=std_logic lab=3p}
+C {lab_wire.sym} 1190 -130 2 1 {name=l6 sig_type=std_logic lab=3n}
+C {lab_wire.sym} 110 -150 0 0 {name=l7 sig_type=std_logic lab=4p}
+C {lab_wire.sym} 110 -130 2 1 {name=l8 sig_type=std_logic lab=4n}
diff --git a/xschem/vco_2-4GHz/vco_2-4GHz.sym b/xschem/vco_2-4GHz/vco_2-4GHz.sym
new file mode 100644
index 0000000..7ab3724
--- /dev/null
+++ b/xschem/vco_2-4GHz/vco_2-4GHz.sym
@@ -0,0 +1,49 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"
+template="name=xvco"}
+V {}
+S {}
+E {}
+L 4 -110 -110 110 -110 {}
+L 4 -110 100 110 100 {}
+L 4 -110 -110 -110 100 {}
+L 4 110 -110 110 100 {}
+L 4 110 -90 130 -90 {}
+L 4 110 -70 130 -70 {}
+L 4 110 -40 130 -40 {}
+L 4 110 -20 130 -20 {}
+L 4 110 10 130 10 {}
+L 4 110 30 130 30 {}
+L 4 110 60 130 60 {}
+L 4 110 80 130 80 {}
+L 4 -130 0 -110 0 {}
+L 7 0 -130 0 -110 {}
+L 7 0 100 0 120 {}
+B 5 -2.5 -132.5 2.5 -127.5 {name=VDD dir=inout }
+B 5 127.5 -92.5 132.5 -87.5 {name=ph1_p dir=out }
+B 5 127.5 -72.5 132.5 -67.5 {name=ph1_n dir=out }
+B 5 127.5 -42.5 132.5 -37.5 {name=ph2_p dir=out }
+B 5 127.5 -22.5 132.5 -17.5 {name=ph2_n dir=out }
+B 5 127.5 7.5 132.5 12.5 {name=ph3_p dir=out }
+B 5 127.5 27.5 132.5 32.5 {name=ph3_n dir=out }
+B 5 127.5 57.5 132.5 62.5 {name=ph4_p dir=out }
+B 5 127.5 77.5 132.5 82.5 {name=ph4_n dir=out }
+B 5 -132.5 -2.5 -127.5 2.5 {name=CTL dir=in }
+B 5 -2.5 117.5 2.5 122.5 {name=GND dir=inout }
+A 4 15 -5 15.8113883008419 198.434948822922 143.130102354156 {}
+A 4 -15 5 15.8113883008419 18.43494882292204 143.130102354156 {}
+A 4 0 -1.25 40.0195264839553 358.2100893917539 360 {}
+T {@symname} 27 124 0 0 0.3 0.3 {}
+T {@name} 25 108 0 0 0.2 0.2 {}
+T {VDD} 6 -105 0 1 0.2 0.2 {}
+T {ph1_p} 105 -94 0 1 0.2 0.2 {}
+T {ph1_n} 105 -74 0 1 0.2 0.2 {}
+T {ph2_p} 105 -44 0 1 0.2 0.2 {}
+T {ph2_n} 105 -24 0 1 0.2 0.2 {}
+T {ph3_p} 105 6 0 1 0.2 0.2 {}
+T {ph3_n} 105 26 0 1 0.2 0.2 {}
+T {ph4_p} 105 56 0 1 0.2 0.2 {}
+T {ph4_n} 105 76 0 1 0.2 0.2 {}
+T {CTL} -105 -4 0 0 0.2 0.2 {}
+T {GND} -16 95 2 1 0.2 0.2 {}
diff --git a/xschem/vco_2-4GHz/vco_2-4GHz_behavourial.sch b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial.sch
new file mode 100644
index 0000000..5bdd636
--- /dev/null
+++ b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial.sch
@@ -0,0 +1,44 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 630 -110 630 0 {lab=GND}
+N 440 0 630 0 {lab=GND}
+N 0 0 440 0 {lab=GND}
+N 480 -180 480 -100 {lab=phase}
+N 480 -40 480 0 {lab=GND}
+N 630 -280 630 -170 {lab=Ip}
+N 630 -280 790 -280 {lab=Ip}
+N 480 -300 480 -240 {lab=VDD}
+N 0 -300 480 -300 {lab=VDD}
+N 1000 -110 1000 0 {lab=GND}
+N 1000 -280 1000 -170 {lab=In}
+N 1000 -280 1160 -280 {lab=In}
+N 1380 -110 1380 0 {lab=GND}
+N 1380 -280 1380 -170 {lab=Qp}
+N 1380 -280 1540 -280 {lab=Qp}
+N 1750 -110 1750 0 {lab=GND}
+N 1750 -280 1750 -170 {lab=Qn}
+N 1750 -280 1910 -280 {lab=Qn}
+N 630 0 1000 0 {lab=GND}
+N 1000 0 1380 0 {lab=GND}
+N 1380 0 1750 0 {lab=GND}
+C {ipin.sym} 0 -230 0 0 {name=p1 lab=CTL}
+C {iopin.sym} 0 -300 0 1 {name=p6 lab=VDD}
+C {iopin.sym} 0 0 0 1 {name=p7 lab=GND}
+C {opin.sym} 790 -280 0 0 {name=p2 lab=Ip}
+C {opin.sym} 1160 -280 0 0 {name=p3 lab=In}
+C {opin.sym} 1540 -280 0 0 {name=p4 lab=Qp}
+C {opin.sym} 1910 -280 0 0 {name=p5 lab=Qn}
+C {capa.sym} 480 -70 0 0 {name=C1
+m=1
+value=1
+footprint=1206
+device="ceramic capacitor"}
+C {lab_wire.sym} 480 -130 0 1 {name=l1 sig_type=std_logic lab=phase}
+C {bsource.sym} 480 -210 0 1 {name=B2 VAR=I FUNC="-546e3*v(ctl,gnd)^3 + 2.8e6*v(ctl,gnd)^2 - 4.6e6*v(ctl,gnd) + 5.65e6"}
+C {bsource.sym} 630 -140 0 0 {name=B1 VAR=V FUNC="0.5*v(vdd)*cos(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
+C {bsource.sym} 1000 -140 0 0 {name=B3 VAR=V FUNC="-1*0.5*v(vdd)*cos(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
+C {bsource.sym} 1380 -140 0 0 {name=B4 VAR=V FUNC="0.5*v(vdd)*sin(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
+C {bsource.sym} 1750 -140 0 0 {name=B5 VAR=V FUNC="-1*0.5*v(vdd)*sin(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
diff --git a/xschem/vco_2-4GHz/vco_2-4GHz_behavourial.sym b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial.sym
new file mode 100644
index 0000000..cd0b86f
--- /dev/null
+++ b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial.sym
@@ -0,0 +1,36 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"}
+V {}
+S {}
+E {}
+L 4 -80 -60 80 -60 {}
+L 4 -80 60 80 60 {}
+L 4 -80 -60 -80 60 {}
+L 4 80 -60 80 60 {}
+L 4 -100 0 -80 0 {}
+L 4 80 -40 100 -40 {}
+L 4 80 -20 100 -20 {}
+L 4 80 20 100 20 {}
+L 4 80 40 100 40 {}
+L 7 0 -80 0 -60 {}
+L 7 0 60 0 80 {}
+B 5 -2.5 -82.5 2.5 -77.5 {name=VDD dir=inout }
+B 5 -102.5 -2.5 -97.5 2.5 {name=CTL dir=in }
+B 5 97.5 -42.5 102.5 -37.5 {name=Ip dir=out }
+B 5 97.5 -22.5 102.5 -17.5 {name=In dir=out }
+B 5 97.5 17.5 102.5 22.5 {name=Qp dir=out }
+B 5 97.5 37.5 102.5 42.5 {name=Qn dir=out }
+B 5 -2.5 77.5 2.5 82.5 {name=GND dir=inout }
+A 4 15 -5 15.8113883008419 198.434948822922 143.130102354156 {}
+A 4 -15 5 15.8113883008419 18.43494882292204 143.130102354156 {}
+A 4 0 -1.25 40.0195264839553 358.2100893917539 360 {}
+T {@symname} 16 84 0 0 0.3 0.3 {}
+T {@name} 15 68 0 0 0.2 0.2 {}
+T {VDD} 10 -57 0 1 0.2 0.2 {}
+T {CTL} -75 -4 0 0 0.2 0.2 {}
+T {Ip} 75 -44 0 1 0.2 0.2 {}
+T {In} 75 -24 0 1 0.2 0.2 {}
+T {Qp} 75 16 0 1 0.2 0.2 {}
+T {Qn} 75 36 0 1 0.2 0.2 {}
+T {GND} -12 57 2 1 0.2 0.2 {}
diff --git a/xschem/vco_2-4GHz/vco_2-4GHz_behavourial_square.sch b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial_square.sch
new file mode 100644
index 0000000..73298ff
--- /dev/null
+++ b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial_square.sch
@@ -0,0 +1,44 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 630 -110 630 0 {lab=GND}
+N 440 0 630 0 {lab=GND}
+N 0 0 440 0 {lab=GND}
+N 480 -180 480 -100 {lab=phase}
+N 480 -40 480 0 {lab=GND}
+N 630 -280 630 -170 {lab=Ip}
+N 630 -280 790 -280 {lab=Ip}
+N 480 -300 480 -240 {lab=VDD}
+N 0 -300 480 -300 {lab=VDD}
+N 1000 -110 1000 0 {lab=GND}
+N 1000 -280 1000 -170 {lab=In}
+N 1000 -280 1160 -280 {lab=In}
+N 1380 -110 1380 0 {lab=GND}
+N 1380 -280 1380 -170 {lab=Qp}
+N 1380 -280 1540 -280 {lab=Qp}
+N 1750 -110 1750 0 {lab=GND}
+N 1750 -280 1750 -170 {lab=Qn}
+N 1750 -280 1910 -280 {lab=Qn}
+N 630 0 1000 0 {lab=GND}
+N 1000 0 1380 0 {lab=GND}
+N 1380 0 1750 0 {lab=GND}
+C {ipin.sym} 0 -230 0 0 {name=p1 lab=CTL}
+C {iopin.sym} 0 -300 0 1 {name=p6 lab=VDD}
+C {iopin.sym} 0 0 0 1 {name=p7 lab=GND}
+C {opin.sym} 790 -280 0 0 {name=p2 lab=Ip}
+C {opin.sym} 1160 -280 0 0 {name=p3 lab=In}
+C {opin.sym} 1540 -280 0 0 {name=p4 lab=Qp}
+C {opin.sym} 1910 -280 0 0 {name=p5 lab=Qn}
+C {capa.sym} 480 -70 0 0 {name=C1
+m=1
+value=1
+footprint=1206
+device="ceramic capacitor"}
+C {lab_wire.sym} 480 -130 0 1 {name=l1 sig_type=std_logic lab=phase}
+C {bsource.sym} 480 -210 0 1 {name=B2 VAR=I FUNC="-17500000*v(ctl,gnd)^3 + 89500000*v(ctl,gnd)^2 - 146000000*v(ctl,gnd) + 181000000"}
+C {bsource.sym} 630 -140 0 0 {name=B1 VAR=V FUNC="0.5*v(vdd)*(((2*v(phase,gnd)%2)\\\\1)+0.5*v(vdd)"}
+C {bsource.sym} 1000 -140 0 0 {name=B3 VAR=V FUNC="-1*0.5*v(vdd)*cos(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
+C {bsource.sym} 1380 -140 0 0 {name=B4 VAR=V FUNC="0.5*v(vdd)*sin(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
+C {bsource.sym} 1750 -140 0 0 {name=B5 VAR=V FUNC="-1*0.5*v(vdd)*sin(6.283185307*v(phase,gnd))+0.5*v(vdd)"}
diff --git a/xschem/vco_2-4GHz/vco_2-4GHz_behavourial_square.sym b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial_square.sym
new file mode 100644
index 0000000..cd0b86f
--- /dev/null
+++ b/xschem/vco_2-4GHz/vco_2-4GHz_behavourial_square.sym
@@ -0,0 +1,36 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"}
+V {}
+S {}
+E {}
+L 4 -80 -60 80 -60 {}
+L 4 -80 60 80 60 {}
+L 4 -80 -60 -80 60 {}
+L 4 80 -60 80 60 {}
+L 4 -100 0 -80 0 {}
+L 4 80 -40 100 -40 {}
+L 4 80 -20 100 -20 {}
+L 4 80 20 100 20 {}
+L 4 80 40 100 40 {}
+L 7 0 -80 0 -60 {}
+L 7 0 60 0 80 {}
+B 5 -2.5 -82.5 2.5 -77.5 {name=VDD dir=inout }
+B 5 -102.5 -2.5 -97.5 2.5 {name=CTL dir=in }
+B 5 97.5 -42.5 102.5 -37.5 {name=Ip dir=out }
+B 5 97.5 -22.5 102.5 -17.5 {name=In dir=out }
+B 5 97.5 17.5 102.5 22.5 {name=Qp dir=out }
+B 5 97.5 37.5 102.5 42.5 {name=Qn dir=out }
+B 5 -2.5 77.5 2.5 82.5 {name=GND dir=inout }
+A 4 15 -5 15.8113883008419 198.434948822922 143.130102354156 {}
+A 4 -15 5 15.8113883008419 18.43494882292204 143.130102354156 {}
+A 4 0 -1.25 40.0195264839553 358.2100893917539 360 {}
+T {@symname} 16 84 0 0 0.3 0.3 {}
+T {@name} 15 68 0 0 0.2 0.2 {}
+T {VDD} 10 -57 0 1 0.2 0.2 {}
+T {CTL} -75 -4 0 0 0.2 0.2 {}
+T {Ip} 75 -44 0 1 0.2 0.2 {}
+T {In} 75 -24 0 1 0.2 0.2 {}
+T {Qp} 75 16 0 1 0.2 0.2 {}
+T {Qn} 75 36 0 1 0.2 0.2 {}
+T {GND} -12 57 2 1 0.2 0.2 {}
diff --git a/xschem/vco_2-4GHz_delaycell/tests/vco_2-4GHz_delaycell_ac_test.sch b/xschem/vco_2-4GHz_delaycell/tests/vco_2-4GHz_delaycell_ac_test.sch
new file mode 100644
index 0000000..5267373
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/tests/vco_2-4GHz_delaycell_ac_test.sch
@@ -0,0 +1,126 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 500 -220 510 -220 { lab=GND}
+N 500 -220 500 0 { lab=GND}
+N 390 -260 390 -120 { lab=#net1}
+N 390 -260 510 -260 { lab=#net1}
+N 550 -290 550 -270 { lab=#net2}
+N 550 -290 620 -290 { lab=#net2}
+N 620 -250 640 -250 { lab=#net2}
+N 620 -290 620 -250 { lab=#net2}
+N 550 -210 550 -190 { lab=#net3}
+N 550 -190 620 -190 { lab=#net3}
+N 620 -230 640 -230 { lab=#net3}
+N 620 -230 620 -190 { lab=#net3}
+N 390 -60 390 0 { lab=GND}
+N 390 0 500 0 { lab=GND}
+N 100 0 390 0 { lab=GND}
+N 0 -230 0 0 { lab=GND}
+N 100 -230 100 0 { lab=GND}
+N 100 -340 100 -290 { lab=#net4}
+N 100 -340 700 -340 { lab=#net4}
+N 700 -340 700 -300 { lab=#net4}
+N 0 -470 730 -470 { lab=#net5}
+N 0 -470 0 -290 { lab=#net5}
+N 710 -180 710 0 { lab=GND}
+N 500 0 710 0 { lab=GND}
+N 710 0 1170 0 { lab=GND}
+N 1170 -180 1170 0 { lab=GND}
+N 1160 -340 1160 -300 { lab=#net4}
+N 700 -340 1160 -340 { lab=#net4}
+N 730 -470 1190 -470 { lab=#net5}
+N 1190 -470 1190 -300 { lab=#net5}
+N 0 0 100 0 { lab=GND}
+N 800 -250 1100 -250 { lab=#net6}
+N 800 -230 1100 -230 { lab=#net7}
+N 990 -140 1020 -140 { lab=#net7}
+N 970 -100 1020 -100 { lab=#net6}
+N 1060 -90 1060 0 { lab=GND}
+N 350 -190 550 -190 { lab=#net3}
+N 350 -290 550 -290 { lab=#net2}
+N 170 -60 170 0 { lab=GND}
+N 170 -290 170 -120 { lab=#net8}
+N 170 -290 290 -290 { lab=#net8}
+N 170 -190 290 -190 { lab=#net8}
+N 990 -230 990 -140 { lab=#net7}
+N 970 -250 970 -100 { lab=#net6}
+N 730 -380 730 -300 { lab=#net9}
+N 730 -470 730 -440 { lab=#net5}
+N 570 120 600 120 { lab=GND}
+N 600 120 600 190 { lab=GND}
+N 260 190 600 190 { lab=GND}
+N 260 0 260 190 { lab=GND}
+N 570 150 570 190 { lab=GND}
+N 280 120 530 120 { lab=#net8}
+N 280 -190 280 120 { lab=#net8}
+N 570 -470 570 30 { lab=#net5}
+C {code.sym} 1050 -610 0 0 {name=STIMULI
+tclcommand="xschem edit_vi_prop"
+value="
+.param temp=27
+.temp 27
+
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM04W5p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W3p00L0p15.spice
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aM02W1p65L0p15.spice
+.include sky130_fd_pr/cells/rf_pfet_01v8_lvt/sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35.spice
+
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p25.spice
+
+.include sky130_fd_pr/cells/rf_nfet_01v8_lvt/sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15.spice
+
+.include sky130_fd_pr/cells/rf_pfet_01v8/sky130_fd_pr__rf_pfet_01v8_aF02W2p00L0p15.spice
+
+
+*.lib sky130_fd_pr/models/sky130.lib.spice tt
+.include sky130_fd_pr/models/corners/tt.spice
+
+*.option savecurrents
+
+.save i(Vmeas)
+.save i(Vmeas1)
+
+
+.op
+.ac dec 10 1 100G
+
+.param vdd=1.8
+.param vctl=1.8
+"}
+C {vco_2-4GHz_delaycell/vco_2-4Ghz_delaycell.sym} 710 -240 0 0 {name=x1}
+C {vsource.sym} 100 -260 0 0 {name=V1 value="vctl"}
+C {vsource.sym} 0 -260 0 0 {name=Vdd value=vdd}
+C {vsource.sym} 390 -90 0 0 {name=V2 value="dc=0 ac=1"}
+C {vcvs.sym} 550 -240 0 0 {name=E1 value=1}
+C {vsource.sym} 170 -90 0 0 {name=V3 value="dc=\{vdd/2\} ac=0"}
+C {vco_2-4GHz_delaycell/vco_2-4Ghz_delaycell.sym} 1170 -240 0 0 {name=x2}
+C {vcvs.sym} 1060 -120 0 0 {name=E2 value=1}
+C {res.sym} 320 -190 1 0 {name=R1
+value="1u ac=1G"
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 320 -290 1 0 {name=R2
+value="1u ac=1G"
+footprint=1206
+device=resistor
+m=1}
+C {gnd.sym} 0 0 0 0 {name=l1 lab=GND}
+C {lab_wire.sym} 1060 -150 0 1 {name=l2 sig_type=std_logic lab=ac}
+C {noconn.sym} 1260 -250 0 1 {name=l3}
+C {noconn.sym} 1260 -230 0 1 {name=l4}
+C {spice_probe.sym} 350 -290 0 0 {name=p1 analysis=tran voltage=0.9}
+C {spice_probe.sym} 350 -190 0 0 {name=p2 analysis=tran voltage=0.9}
+C {spice_probe.sym} 1010 -250 0 0 {name=p3 analysis=tran voltage=0.03406}
+C {spice_probe.sym} 1010 -230 2 1 {name=p5 analysis=tran voltage=0.03406}
+C {spice_probe.sym} 1060 -150 0 0 {name=p4 analysis=tran voltage=-2.7756e-17}
+C {spice_probe.sym} 100 -340 0 0 {name=p6 analysis=tran voltage=1.8}
+C {spice_probe.sym} 100 -470 0 0 {name=p7 analysis=tran voltage=1.8}
+C {ammeter.sym} 730 -410 0 0 {name=Vmeas current=0.002034}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 550 120 0 0 {name=XMprimpos model=sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15 m=8}
+C {ammeter.sym} 570 60 0 0 {name=Vmeas1 current=0.01801}
diff --git a/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_2cells_tb.sch b/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_2cells_tb.sch
new file mode 100644
index 0000000..760151c
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_2cells_tb.sch
@@ -0,0 +1,87 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 90 -10 290 -10 {lab=#net1}
+N 90 10 290 10 {lab=#net2}
+N 940 -10 1010 -10 {lab=#net1}
+N 940 10 1010 10 {lab=#net2}
+N 1170 -10 1220 -10 {lab=OUT+}
+N 1220 -10 1240 10 {lab=OUT+}
+N 1170 10 1220 10 {lab=OUT-}
+N 1220 10 1240 -10 {lab=OUT-}
+N 1240 10 1280 10 {lab=OUT+}
+N 1280 10 1280 110 {lab=OUT+}
+N -150 110 1280 110 {lab=OUT+}
+N -150 60 -150 110 {lab=OUT+}
+N -100 10 -70 10 {lab=OUT+}
+N 1240 -10 1280 -10 {lab=OUT-}
+N 1280 -110 1280 -10 {lab=OUT-}
+N -100 -10 -70 -10 {lab=OUT-}
+N -150 -60 -150 -10 {lab=OUT-}
+N 940 -80 940 -30 {lab=OUT-}
+N 940 -30 1010 -30 {lab=OUT-}
+N 940 30 940 80 {lab=OUT+}
+N 940 30 1010 30 {lab=OUT+}
+N -100 -80 940 -80 {lab=OUT-}
+N -100 80 940 80 {lab=OUT+}
+N -150 10 -100 10 {lab=OUT+}
+N -150 -10 -100 -10 {lab=OUT-}
+N 940 10 970 -20 {lab=#net2}
+N 940 -10 970 20 {lab=#net1}
+N -120 90 970 90 {lab=#net1}
+N -120 30 -120 90 {lab=#net1}
+N -120 30 -70 30 {lab=#net1}
+N -120 -100 970 -100 {lab=#net2}
+N -120 -100 -120 -30 {lab=#net2}
+N -120 -30 -70 -30 {lab=#net2}
+N -150 -110 1280 -110 {lab=OUT-}
+N 810 -10 940 -10 {lab=#net1}
+N 810 10 940 10 {lab=#net2}
+N -10 -120 -10 -60 {lab=CTL}
+N 1080 60 1080 120 {lab=0}
+N 0 120 1080 120 {lab=0}
+N 0 60 0 120 {lab=0}
+N -10 -120 1070 -120 {lab=CTL}
+N 20 -140 1100 -140 {lab=#net3}
+N 1070 -120 1070 -60 {lab=CTL}
+N 1100 -140 1100 -60 {lab=#net3}
+N -530 30 -530 120 {lab=0}
+N -440 120 0 120 {lab=0}
+N -440 30 -440 120 {lab=0}
+N -440 -120 -10 -120 {lab=CTL}
+N -440 -120 -440 -30 {lab=CTL}
+N -530 -140 20 -140 {lab=#net3}
+N -530 -140 -530 -30 {lab=#net3}
+N -530 120 -440 120 {lab=0}
+N 20 -140 20 -60 {lab=#net3}
+N -370 -60 -370 -30 {lab=OUT-}
+N -370 -60 -150 -60 {lab=OUT-}
+N -370 30 -370 60 {lab=OUT+}
+N -370 60 -150 60 {lab=OUT+}
+N -150 10 -150 60 {lab=OUT+}
+N -150 -110 -150 -60 {lab=OUT-}
+N 290 -10 810 -10 {lab=#net1}
+N 290 10 810 10 {lab=#net2}
+C {/home/tom/repositories/amsat_txrx_ic/design/vco_delaycell/vco_delaycell.sym} 0 0 0 0 {name=x1}
+C {vsource.sym} -530 0 0 0 {name=VDD value="1.8"}
+C {vsource.sym} -440 0 0 0 {name=VCTL value=0.9}
+C {/home/tom/repositories/amsat_txrx_ic/design/vco_delaycell/vco_delaycell.sym} 1080 0 0 0 {name=x4}
+C {lab_wire.sym} 1170 10 0 1 {name=l2 sig_type=std_logic lab=OUT-}
+C {lab_wire.sym} 1170 -10 0 1 {name=l3 sig_type=std_logic lab=OUT+}
+C {lab_wire.sym} -440 -120 0 1 {name=l4 sig_type=std_logic lab=CTL}
+C {code_shown.sym} -330 200 0 0 {name=CONTROL value="* .control
+* save all
+* tran 5n 100u uic
+* write led_driver.raw
+* .endc
+* .save all
+.include \\"xh018/xh018.lib\\"
+.tran 0.1n 1u uic
+.measure tran osc_freq freq v(out+) on=1.1 off 0.7 from=0.9u to=1u
+*.save all
+* .dc VP 0 21 0.01
+"}
+C {lab_wire.sym} -520 120 0 1 {name=l1 sig_type=std_logic lab=0}
+C {isource.sym} -370 0 0 0 {name=I0 value="PWL 0S 0A 1nS 1mA 5nS 0A"}
diff --git a/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_3cells_tb.sch b/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_3cells_tb.sch
new file mode 100644
index 0000000..240cbfb
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_3cells_tb.sch
@@ -0,0 +1,63 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 90 -10 240 -10 {lab=#net1}
+N 90 10 240 10 {lab=#net2}
+N 400 -10 540 -10 {lab=#net3}
+N 400 10 540 10 {lab=#net4}
+N 700 -10 810 -10 {lab=OUT+}
+N 700 10 810 10 {lab=OUT-}
+N -150 100 810 100 {lab=OUT-}
+N -150 10 -70 10 {lab=OUT-}
+N 810 -100 810 -10 {lab=OUT+}
+N -150 -10 -70 -10 {lab=OUT+}
+N -150 -60 -150 -10 {lab=OUT+}
+N -150 -100 810 -100 {lab=OUT+}
+N -10 -120 -10 -60 {lab=CTL}
+N 310 60 310 120 {lab=0}
+N 610 60 610 120 {lab=0}
+N 0 120 310 120 {lab=0}
+N 0 60 0 120 {lab=0}
+N 310 120 610 120 {lab=0}
+N -10 -120 300 -120 {lab=CTL}
+N 300 -120 600 -120 {lab=CTL}
+N 20 -140 330 -140 {lab=#net5}
+N 330 -140 630 -140 {lab=#net5}
+N 300 -120 300 -60 {lab=CTL}
+N 330 -140 330 -60 {lab=#net5}
+N 600 -120 600 -60 {lab=CTL}
+N 630 -140 630 -60 {lab=#net5}
+N -530 30 -530 120 {lab=0}
+N -440 120 0 120 {lab=0}
+N -440 30 -440 120 {lab=0}
+N -440 -120 -10 -120 {lab=CTL}
+N -440 -120 -440 -30 {lab=CTL}
+N -530 -140 20 -140 {lab=#net5}
+N -530 -140 -530 -30 {lab=#net5}
+N -530 120 -440 120 {lab=0}
+N 20 -140 20 -60 {lab=#net5}
+N -370 -60 -150 -60 {lab=OUT+}
+N -370 30 -370 60 {lab=OUT-}
+N -370 60 -150 60 {lab=OUT-}
+N -150 10 -150 60 {lab=OUT-}
+N -150 -100 -150 -60 {lab=OUT+}
+N 810 10 810 100 {lab=OUT-}
+N -150 60 -150 100 {lab=OUT-}
+C {vco_delaycell/vco_delaycell.sym} 0 0 0 0 {name=x1}
+C {vsource.sym} -530 0 0 0 {name=VDD value="1.8"}
+C {vsource.sym} -440 0 0 0 {name=VCTL value=0}
+C {vco_delaycell/vco_delaycell.sym} 310 0 0 0 {name=x3}
+C {vco_delaycell/vco_delaycell.sym} 610 0 0 0 {name=x4}
+C {lab_wire.sym} 700 10 0 1 {name=l2 sig_type=std_logic lab=OUT-}
+C {lab_wire.sym} 700 -10 0 1 {name=l3 sig_type=std_logic lab=OUT+}
+C {lab_wire.sym} -440 -120 0 1 {name=l4 sig_type=std_logic lab=CTL}
+C {code_shown.sym} -330 200 0 0 {name=CONTROL value="
+.param temp=27
+.lib sky130_fd_pr/models/sky130.lib.spice tt
+.tran 0.001n 10n uic
+.measure tran osc_freq freq v(out+) on=1.1 off 0.7 from=8n to=10n
+"}
+C {lab_wire.sym} -520 120 0 1 {name=l1 sig_type=std_logic lab=0}
+C {isource.sym} -370 0 0 0 {name=I0 value="PWL 0S 0A 1nS 1mA 5nS 0A"}
diff --git a/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_tb.sch b/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_tb.sch
new file mode 100644
index 0000000..cd02355
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/tests/vco_delaycell_tb.sch
@@ -0,0 +1,137 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {}
+V {}
+S {}
+E {}
+N 260 -10 290 -10 {lab=#net1}
+N 260 10 290 10 {lab=#net2}
+N 620 -10 650 -10 {lab=#net3}
+N 620 10 650 10 {lab=#net4}
+N 940 -10 1010 -10 {lab=#net5}
+N 940 10 1010 10 {lab=#net6}
+N 1170 -10 1220 -10 {lab=OUT+}
+N 1220 -10 1240 10 {lab=OUT+}
+N 1170 10 1220 10 {lab=OUT-}
+N 1220 10 1240 -10 {lab=OUT-}
+N 1240 10 1280 10 {lab=OUT+}
+N 1280 10 1280 110 {lab=OUT+}
+N -150 110 1280 110 {lab=OUT+}
+N -150 10 -150 110 {lab=OUT+}
+N -100 10 -70 10 {lab=OUT+}
+N 1240 -10 1280 -10 {lab=OUT-}
+N 1280 -110 1280 -10 {lab=OUT-}
+N -100 -10 -70 -10 {lab=OUT-}
+N -150 -110 -150 -10 {lab=OUT-}
+N 620 -80 620 -10 {lab=#net3}
+N 940 -80 940 -30 {lab=#net3}
+N 940 -30 1010 -30 {lab=#net3}
+N 620 10 620 80 {lab=#net4}
+N 940 30 940 80 {lab=#net4}
+N 940 30 1010 30 {lab=#net4}
+N 450 -10 620 -10 {lab=#net3}
+N 450 10 620 10 {lab=#net4}
+N 620 -80 940 -80 {lab=#net3}
+N 620 80 940 80 {lab=#net4}
+N 260 -80 260 -10 {lab=#net1}
+N 580 -80 580 -30 {lab=#net1}
+N 580 -30 650 -30 {lab=#net1}
+N 260 10 260 80 {lab=#net2}
+N 580 30 580 80 {lab=#net2}
+N 580 30 650 30 {lab=#net2}
+N 260 -80 580 -80 {lab=#net1}
+N 260 80 580 80 {lab=#net2}
+N -100 -80 -100 -10 {lab=OUT-}
+N 220 -80 220 -30 {lab=OUT-}
+N 220 -30 290 -30 {lab=OUT-}
+N -100 10 -100 80 {lab=OUT+}
+N 220 30 220 80 {lab=OUT+}
+N 220 30 290 30 {lab=OUT+}
+N -100 -80 220 -80 {lab=OUT-}
+N -100 80 220 80 {lab=OUT+}
+N -150 10 -100 10 {lab=OUT+}
+N -150 -10 -100 -10 {lab=OUT-}
+N 90 -10 260 -10 {lab=#net1}
+N 90 10 260 10 {lab=#net2}
+N 940 10 970 -20 {lab=#net6}
+N 940 -10 970 20 {lab=#net5}
+N 970 20 970 90 {lab=#net5}
+N -120 90 970 90 {lab=#net5}
+N -120 30 -120 90 {lab=#net5}
+N -120 30 -70 30 {lab=#net5}
+N 970 -100 970 -20 {lab=#net6}
+N -120 -100 970 -100 {lab=#net6}
+N -120 -100 -120 -30 {lab=#net6}
+N -120 -30 -70 -30 {lab=#net6}
+N -150 -110 1280 -110 {lab=OUT-}
+N 810 -10 940 -10 {lab=#net5}
+N 810 10 940 10 {lab=#net6}
+N -10 -120 -10 -60 {lab=CTL}
+N 360 60 360 120 {lab=0}
+N 720 60 720 120 {lab=0}
+N 1080 60 1080 120 {lab=0}
+N 0 120 360 120 {lab=0}
+N 0 60 0 120 {lab=0}
+N 360 120 720 120 {lab=0}
+N 720 120 1080 120 {lab=0}
+N -10 -120 350 -120 {lab=CTL}
+N 350 -120 710 -120 {lab=CTL}
+N 710 -120 1070 -120 {lab=CTL}
+N 20 -140 380 -140 {lab=#net7}
+N 380 -140 740 -140 {lab=#net7}
+N 740 -140 1100 -140 {lab=#net7}
+N 350 -120 350 -60 {lab=CTL}
+N 380 -140 380 -60 {lab=#net7}
+N 710 -120 710 -60 {lab=CTL}
+N 740 -140 740 -60 {lab=#net7}
+N 1070 -120 1070 -60 {lab=CTL}
+N 1100 -140 1100 -60 {lab=#net7}
+N -530 30 -530 120 {lab=0}
+N -270 120 0 120 {lab=0}
+N -440 30 -440 120 {lab=0}
+N -270 -120 -10 -120 {lab=CTL}
+N -440 -120 -440 -30 {lab=CTL}
+N -360 -140 20 -140 {lab=#net7}
+N -530 -140 -530 -30 {lab=#net7}
+N -530 120 -440 120 {lab=0}
+N 20 -140 20 -60 {lab=#net7}
+N -370 -60 -370 -30 {lab=OUT-}
+N -200 -60 -150 -60 {lab=OUT-}
+N -370 30 -370 60 {lab=OUT+}
+N -200 60 -150 60 {lab=OUT+}
+N -370 60 -200 60 {lab=OUT+}
+N -440 120 -270 120 {lab=0}
+N -370 -60 -200 -60 {lab=OUT-}
+N -440 -120 -270 -120 {lab=CTL}
+N -530 -140 -360 -140 {lab=#net7}
+C {vco_delaycell/vco_delaycell.sym} 0 0 0 0 {name=x1 sec_w=sec_w load_w=load_w ctl_w=ctl_w prim_w=prim_w cross_w=cross_w }
+C {vsource.sym} -530 0 0 0 {name=VDD value="1.8"}
+C {vsource.sym} -440 0 0 0 {name=VCTL value=0.0
+}
+C {vco_delaycell/vco_delaycell.sym} 360 0 0 0 {name=x2 sec_w=sec_w load_w=load_w ctl_w=ctl_w prim_w=prim_w cross_w=cross_w }
+C {vco_delaycell/vco_delaycell.sym} 720 0 0 0 {name=x3 sec_w=sec_w load_w=load_w ctl_w=ctl_w prim_w=prim_w cross_w=cross_w }
+C {vco_delaycell/vco_delaycell.sym} 1080 0 0 0 {name=x4 sec_w=sec_w load_w=load_w ctl_w=ctl_w prim_w=prim_w cross_w=cross_w }
+C {lab_wire.sym} 1170 10 0 1 {name=l2 sig_type=std_logic lab=OUT-}
+C {lab_wire.sym} 1170 -10 0 1 {name=l3 sig_type=std_logic lab=OUT+}
+C {lab_wire.sym} -440 -120 0 1 {name=l4 sig_type=std_logic lab=CTL}
+C {code_shown.sym} -330 200 0 0 {name=CONTROL value="* .control
+* save all
+* tran 5n 100u uic
+* write led_driver.raw
+* .endc
+* .save all
+*.include \\"xh018/xh018.lib\\"
+*.tran 0.1n 1u uic
+*.measure tran osc_freq freq v(out+) on=1.1 off 0.7 from=0.9u to=1u
+*.save all
+* .dc VP 0 21 0.01
+
+.param TEMP=27
+
+.options savecurrents
+.lib /home/tom/repositories/skywater/sky130_fd_pr/models/sky130.lib.spice tt
+
+.temp 30
+.tran 0.1e-9 0.1e-6 uic
+"}
+C {lab_wire.sym} -520 120 0 1 {name=l1 sig_type=std_logic lab=0}
+C {isource.sym} -370 0 0 0 {name=I0 value="PULSE(0 1m 1n 1p 1p 4n 10 0)"}
diff --git a/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell
new file mode 100644
index 0000000..e8e83b9
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell
Binary files differ
diff --git a/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sch b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sch
new file mode 100644
index 0000000..f7f72c5
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sch
@@ -0,0 +1,104 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 370 -300 410 -300 {lab=CTL}
+N 80 -110 80 -80 {lab=OUTp}
+N 290 -110 290 -80 {lab=OUTp}
+N 340 -110 400 -50 {lab=OUTp}
+N 340 -50 400 -110 {lab=OUTn}
+N 290 -110 340 -110 {lab=OUTp}
+N 330 -50 340 -50 {lab=OUTn}
+N 450 -110 450 -80 {lab=OUTn}
+N 400 -110 450 -110 {lab=OUTn}
+N 400 -50 410 -50 {lab=OUTp}
+N 660 -110 660 -80 {lab=OUTn}
+N 660 -150 660 -110 {lab=OUTn}
+N 640 -50 660 -50 {lab=GND}
+N 660 -20 660 0 {lab=GND}
+N 640 0 660 0 {lab=GND}
+N 80 -20 80 0 {lab=GND}
+N 80 -50 100 -50 {lab=GND}
+N 100 -50 100 0 {lab=GND}
+N 270 -50 290 -50 {lab=GND}
+N 270 -50 270 0 {lab=GND}
+N 290 -20 290 0 {lab=GND}
+N 450 -20 450 0 {lab=GND}
+N 450 -50 470 -50 {lab=GND}
+N 470 -50 470 0 {lab=GND}
+N 640 -50 640 0 {lab=GND}
+N 270 -300 290 -300 {lab=VDD}
+N 270 -400 270 -300 {lab=VDD}
+N 290 -400 290 -330 {lab=VDD}
+N 450 -300 470 -300 {lab=VDD}
+N 470 -400 470 -300 {lab=VDD}
+N 450 -400 450 -330 {lab=VDD}
+N 290 -400 450 -400 {lab=VDD}
+N 0 -50 40 -50 {lab=Pp}
+N 700 -50 740 -50 {lab=Pn}
+N 660 -150 740 -150 {lab=OUTn}
+N 0 0 80 0 {lab=GND}
+N 370 -300 370 -175 {lab=CTL}
+N 0 -140 80 -140 {lab=OUTp}
+N 0 -175 370 -175 {lab=CTL}
+N 330 -300 370 -300 {lab=CTL}
+N 80 -140 80 -110 {lab=OUTp}
+N 80 0 100 0 {lab=GND}
+N 150 -0 270 0 {lab=GND}
+N 270 0 290 0 {lab=GND}
+N 290 0 450 0 {lab=GND}
+N 450 0 470 0 {lab=GND}
+N 590 0 640 0 {lab=GND}
+N 450 -400 470 -400 {lab=VDD}
+N 80 -400 270 -400 {lab=VDD}
+N 270 -400 290 -400 {lab=VDD}
+N 60 -350 80 -350 {lab=VDD}
+N 60 -400 60 -350 {lab=VDD}
+N 80 -400 80 -380 {lab=VDD}
+N 80 -200 80 -140 {lab=OUTp}
+N 120 -350 150 -350 {lab=GND}
+N 150 -350 150 -0 {lab=GND}
+N 660 -350 680 -350 {lab=VDD}
+N 680 -400 680 -350 {lab=VDD}
+N 660 -400 660 -380 {lab=VDD}
+N 660 -400 680 -400 {lab=VDD}
+N 660 -200 660 -150 {lab=OUTn}
+N 470 -400 660 -400 {lab=VDD}
+N 590 -350 620 -350 {lab=GND}
+N 590 -350 590 0 {lab=GND}
+N 100 0 150 -0 {lab=GND}
+N 470 0 590 0 {lab=GND}
+N 0 -400 60 -400 {lab=VDD}
+N 60 -400 80 -400 {lab=VDD}
+N 80 -200 290 -200 { lab=OUTp}
+N 450 -200 660 -200 { lab=OUTn}
+N 290 -270 290 -200 { lab=OUTp}
+N 450 -270 450 -200 { lab=OUTn}
+N 450 -110 660 -110 { lab=OUTn}
+N 80 -110 290 -110 { lab=OUTp}
+N 80 -320 80 -280 { lab=OUTp}
+N 660 -320 660 -280 { lab=OUTn}
+N 80 -280 80 -200 { lab=OUTp}
+N 660 -280 660 -200 { lab=OUTn}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 60 -50 0 0 {name=XMprimpos model=sky130_fd_pr__rf_nfet_01v8_lvt_aF02W3p00L0p15 m=1}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 430 -50 0 0 {name=XMcrossneg model=sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 430 -300 0 0 {name=XMctlneg model=sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p35 m=1}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 310 -300 0 1 {name=XMctlpos model=sky130_fd_pr__rf_pfet_01v8_lvt_aM02W5p00L0p35 m=1}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 310 -50 0 1 {name=XMcrosspos model=sky130_fd_pr__rf_nfet_01v8_lvt_aF02W1p65L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 680 -50 0 1 {name=XMprimneg model=sky130_fd_pr__rf_nfet_01v8_lvt_aF02W3p00L0p15 m=1}
+C {ipin.sym} 0 -50 0 0 {name=p1 lab=Pp
+}
+C {ipin.sym} 740 -50 0 1 {name=p2 lab=Pn
+}
+C {opin.sym} 740 -150 0 0 {name=p5 lab=OUTn
+}
+C {opin.sym} 0 -140 0 1 {name=p6 lab=OUTp
+}
+C {iopin.sym} 0 -400 0 1 {name=p7 lab=VDD}
+C {iopin.sym} 0 0 0 1 {name=p8 lab=GND
+}
+C {ipin.sym} 0 -175 0 0 {name=p9 lab=CTL}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 100 -350 0 1 {name=XMctlpos1 model=sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p25 m=1}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 640 -350 0 0 {name=XMctlneg1 model=sky130_fd_pr__rf_pfet_01v8_aM02W1p65L0p25 m=1}
diff --git a/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym
new file mode 100644
index 0000000..5217bc2
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell.sym
@@ -0,0 +1,42 @@
+v {xschem version=2.9.7 file_version=1.1}
+G {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"}
+V {}
+S {}
+E {}
+L 4 -50 -40 -50 40 {}
+L 4 70 10 90 10 {}
+L 4 70 -10 90 -10 {}
+L 4 -70 10 -50 10 {}
+L 4 -70 -10 -50 -10 {}
+L 4 -50 -60 80 -0 {}
+L 4 -50 60 80 -0 {}
+L 4 60 10 80 10 {}
+L 4 60 -10 70 -10 {}
+L 4 -50 -60 -50 -40 {}
+L 4 -50 40 -50 60 {}
+L 4 59 10 60 10 {}
+L 4 59 -10 60 -10 {}
+L 4 -10 -60 -10 -50 {}
+L 4 -10 -50 -10 -42 {}
+L 7 20 -60 20 -40 {}
+L 7 0 40 0 60 {}
+L 7 20 -40 20 -28 {}
+L 7 0 37 -0 40 {}
+B 5 17.5 -62.5 22.5 -57.5 {name=VDD dir=inout }
+B 5 87.5 7.5 92.5 12.5 {name=OUTn dir=out }
+B 5 87.5 -12.5 92.5 -7.5 {name=OUTp dir=out }
+B 5 -72.5 7.5 -67.5 12.5 {name=Pn dir=in }
+B 5 -72.5 -12.5 -67.5 -7.5 {name=Pp dir=in }
+B 5 -2.5 57.5 2.5 62.5 {name=GND dir=inout }
+B 5 -12.5 -62.5 -7.5 -57.5 {name=CTL dir=in }
+T {@symname} 43.5 19 0 0 0.3 0.3 {}
+T {@name} 45 38 0 0 0.2 0.2 {}
+T {VDD} 50 -40 0 1 0.2 0.2 {}
+T {OUTn} 45 6 0 1 0.2 0.2 {}
+T {OUTp} 45 -14 0 1 0.2 0.2 {}
+T {Pn} -45 6 0 0 0.2 0.2 {}
+T {Pp} -45 -14 0 0 0.2 0.2 {}
+T {GND} 25 46 0 1 0.2 0.2 {}
+T {CTL} 4 -25 2 0 0.2 0.2 {}
diff --git a/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell_old.sch b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell_old.sch
new file mode 100644
index 0000000..387f090
--- /dev/null
+++ b/xschem/vco_2-4GHz_delaycell/vco_2-4GHz_delaycell_old.sch
@@ -0,0 +1,107 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 370 -300 410 -300 {lab=CTL}
+N 80 -110 80 -80 {lab=OUTp}
+N 290 -110 290 -80 {lab=OUTp}
+N 340 -110 400 -50 {lab=OUTp}
+N 340 -50 400 -110 {lab=OUTn}
+N 290 -110 340 -110 {lab=OUTp}
+N 330 -50 340 -50 {lab=OUTn}
+N 450 -110 450 -80 {lab=OUTn}
+N 400 -110 450 -110 {lab=OUTn}
+N 400 -50 410 -50 {lab=OUTp}
+N 660 -110 660 -80 {lab=OUTn}
+N 660 -150 660 -110 {lab=OUTn}
+N 640 -50 660 -50 {lab=GND}
+N 660 -20 660 0 {lab=GND}
+N 640 0 660 0 {lab=GND}
+N 80 -20 80 0 {lab=GND}
+N 80 -50 100 -50 {lab=GND}
+N 100 -50 100 0 {lab=GND}
+N 270 -50 290 -50 {lab=GND}
+N 270 -50 270 0 {lab=GND}
+N 290 -20 290 0 {lab=GND}
+N 450 -20 450 0 {lab=GND}
+N 450 -50 470 -50 {lab=GND}
+N 470 -50 470 0 {lab=GND}
+N 640 -50 640 0 {lab=GND}
+N 270 -300 290 -300 {lab=VDD}
+N 270 -400 270 -300 {lab=VDD}
+N 290 -400 290 -330 {lab=VDD}
+N 450 -300 470 -300 {lab=VDD}
+N 470 -400 470 -300 {lab=VDD}
+N 450 -400 450 -330 {lab=VDD}
+N 290 -400 450 -400 {lab=VDD}
+N 0 -50 40 -50 {lab=Pp}
+N 700 -50 740 -50 {lab=Pn}
+N 660 -150 740 -150 {lab=OUTn}
+N 0 0 80 0 {lab=GND}
+N 370 -300 370 -175 {lab=CTL}
+N 0 -140 80 -140 {lab=OUTp}
+N 0 -175 370 -175 {lab=CTL}
+N 330 -300 370 -300 {lab=CTL}
+N 80 -140 80 -110 {lab=OUTp}
+N 80 0 100 0 {lab=GND}
+N 150 -0 270 0 {lab=GND}
+N 270 0 290 0 {lab=GND}
+N 290 0 450 0 {lab=GND}
+N 450 0 470 0 {lab=GND}
+N 590 0 640 0 {lab=GND}
+N 450 -400 470 -400 {lab=VDD}
+N 80 -400 270 -400 {lab=VDD}
+N 270 -400 290 -400 {lab=VDD}
+N 60 -350 80 -350 {lab=VDD}
+N 60 -400 60 -350 {lab=VDD}
+N 80 -400 80 -380 {lab=VDD}
+N 80 -200 80 -140 {lab=OUTp}
+N 120 -350 150 -350 {lab=GND}
+N 150 -350 150 -0 {lab=GND}
+N 660 -350 680 -350 {lab=VDD}
+N 680 -400 680 -350 {lab=VDD}
+N 660 -400 660 -380 {lab=VDD}
+N 660 -400 680 -400 {lab=VDD}
+N 660 -200 660 -150 {lab=OUTn}
+N 470 -400 660 -400 {lab=VDD}
+N 590 -350 620 -350 {lab=GND}
+N 590 -350 590 0 {lab=GND}
+N 100 0 150 -0 {lab=GND}
+N 470 0 590 0 {lab=GND}
+N 0 -400 60 -400 {lab=VDD}
+N 60 -400 80 -400 {lab=VDD}
+N 660 -320 660 -300 {lab=OUTn}
+N 80 -320 80 -300 {lab=OUTp}
+N 80 -200 220 -200 { lab=OUTp}
+N 220 -200 290 -200 { lab=OUTp}
+N 450 -200 660 -200 { lab=OUTn}
+N 290 -270 290 -200 { lab=OUTp}
+N 450 -270 450 -200 { lab=OUTn}
+N 80 -240 80 -200 { lab=OUTp}
+N 660 -240 660 -200 { lab=OUTn}
+N 450 -110 660 -110 { lab=OUTn}
+N 80 -110 290 -110 { lab=OUTp}
+N 80 -300 80 -240 { lab=OUTp}
+N 660 -300 660 -240 { lab=OUTn}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 60 -50 0 0 {name=XMprimpos model=sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15 m=3}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 430 -50 0 0 {name=XMcrossneg model=sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 430 -300 0 0 {name=XMctlneg model=sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35 m=2}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 310 -300 0 1 {name=XMctlpos model=sky130_fd_pr__rf_pfet_01v8_lvt_aM04W5p00L0p35 m=2}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 310 -50 0 1 {name=XMcrosspos model=sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_nfet.sym} 680 -50 0 1 {name=XMprimneg model=sky130_fd_pr__rf_nfet_01v8_lvt_aF06W3p00L0p15 m=3}
+C {ipin.sym} 0 -50 0 0 {name=p1 lab=Pp
+}
+C {ipin.sym} 740 -50 0 1 {name=p2 lab=Pn
+}
+C {opin.sym} 740 -150 0 0 {name=p5 lab=OUTn
+}
+C {opin.sym} 0 -140 0 1 {name=p6 lab=OUTp
+}
+C {iopin.sym} 0 -400 0 1 {name=p7 lab=VDD}
+C {iopin.sym} 0 0 0 1 {name=p8 lab=GND
+}
+C {ipin.sym} 0 -175 0 0 {name=p9 lab=CTL}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 100 -350 0 1 {name=XMctlpos1 model=sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p25 m=1}
+C {/home/tom/repositories/amsat_txrx_ic/library/primitives/sky130_fd_pr__rf_pfet.sym} 640 -350 0 0 {name=XMctlneg1 model=sky130_fd_pr__rf_pfet_01v8_aM02W5p00L0p25 m=1}