Cell View consistency fixed
diff --git a/cells/cell/NOR2X1.cell b/cells/cell/BUFX4.cell
similarity index 66%
rename from cells/cell/NOR2X1.cell
rename to cells/cell/BUFX4.cell
index 32d5a8a..f6631cf 100644
--- a/cells/cell/NOR2X1.cell
+++ b/cells/cell/BUFX4.cell
@@ -1,8 +1,10 @@
 .AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
-.inputs B A
+.inputs A
 .outputs Y
 .ORDER "MOSFET Gate Drain Source"
 pmos A 1 vdd
-pmos B Y 1
-nmos A Y gnd
-nmos B Y gnd
+pmos 1 Y vdd
+pmos 1 Y vdd
+nmos A 1 gnd
+nmos 1 Y gnd
+nmos 1 Y gnd
diff --git a/cells/cell/CLKBUF1.cell b/cells/cell/CLKBUF1.cell
new file mode 100644
index 0000000..ae7775d
--- /dev/null
+++ b/cells/cell/CLKBUF1.cell
@@ -0,0 +1,20 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos A 1 vdd
+pmos 1 2 vdd
+pmos 1 2 vdd
+pmos 2 3 vdd
+pmos 2 3 vdd
+pmos 3 Y vdd
+pmos 3 Y vdd
+nmos A 1 gnd
+nmos A 1 gnd
+nmos 1 2 gnd
+nmos 1 2 gnd
+nmos 2 3 gnd
+nmos 2 3 gnd
+nmos 3 Y gnd
+nmos 3 Y gnd
diff --git a/cells/cell/INVX8.cell b/cells/cell/INVX8.cell
new file mode 100644
index 0000000..56cb811
--- /dev/null
+++ b/cells/cell/INVX8.cell
@@ -0,0 +1,12 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A Y vdd
+pmos A Y vdd
+pmos A Y vdd
+pmos A Y vdd
+nmos A Y gnd
+nmos A Y gnd
+nmos A Y gnd
+nmos A Y gnd
diff --git a/cells/cell/XOR2X1.cell b/cells/cell/XOR2X1.cell
deleted file mode 100644
index 376f17a..0000000
--- a/cells/cell/XOR2X1.cell
+++ /dev/null
@@ -1,16 +0,0 @@
-.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
-.inputs B A
-.outputs Y
-.ORDER "MOSFET Gate Drain Source"
-pmos A 1 vdd
-pmos 2 3 vdd
-pmos A Y 3
-pmos 1 4 Y
-pmos B 4 vdd
-pmos B 2 vdd
-nmos A 1 gnd
-nmos 2 5 gnd
-nmos 1 Y 5
-nmos A 6 Y
-nmos B 6 gnd
-nmos B 2 gnd
diff --git a/cells/gds/AND2X1.gds b/cells/gds/AND2X1.gds
index 4f6a6fe..331c560 100644
--- a/cells/gds/AND2X1.gds
+++ b/cells/gds/AND2X1.gds
Binary files differ
diff --git a/cells/gds/AND2X2.gds b/cells/gds/AND2X2.gds
index f7e95eb..c3b11a6 100644
--- a/cells/gds/AND2X2.gds
+++ b/cells/gds/AND2X2.gds
Binary files differ
diff --git a/cells/gds/AOI21X1.gds b/cells/gds/AOI21X1.gds
index ba6ad33..85d4e1a 100644
--- a/cells/gds/AOI21X1.gds
+++ b/cells/gds/AOI21X1.gds
Binary files differ
diff --git a/cells/gds/AOI22X1.gds b/cells/gds/AOI22X1.gds
index 170f5f4..5314805 100644
--- a/cells/gds/AOI22X1.gds
+++ b/cells/gds/AOI22X1.gds
Binary files differ
diff --git a/cells/gds/BUFX2.gds b/cells/gds/BUFX2.gds
index 1735cf9..fecec14 100644
--- a/cells/gds/BUFX2.gds
+++ b/cells/gds/BUFX2.gds
Binary files differ
diff --git a/cells/gds/BUFX4.gds b/cells/gds/BUFX4.gds
new file mode 100644
index 0000000..c9d3a5d
--- /dev/null
+++ b/cells/gds/BUFX4.gds
Binary files differ
diff --git a/cells/gds/CLKBUF1.gds b/cells/gds/CLKBUF1.gds
new file mode 100644
index 0000000..edce858
--- /dev/null
+++ b/cells/gds/CLKBUF1.gds
Binary files differ
diff --git a/cells/gds/INV.gds b/cells/gds/INV.gds
new file mode 100644
index 0000000..ffb3dbb
--- /dev/null
+++ b/cells/gds/INV.gds
Binary files differ
diff --git a/cells/gds/INVX1.gds b/cells/gds/INVX1.gds
index da82e78..fdb96c7 100644
--- a/cells/gds/INVX1.gds
+++ b/cells/gds/INVX1.gds
Binary files differ
diff --git a/cells/gds/INVX2.gds b/cells/gds/INVX2.gds
new file mode 100644
index 0000000..52f8507
--- /dev/null
+++ b/cells/gds/INVX2.gds
Binary files differ
diff --git a/cells/gds/INVX4.gds b/cells/gds/INVX4.gds
index 0f7add7..f50ed54 100644
--- a/cells/gds/INVX4.gds
+++ b/cells/gds/INVX4.gds
Binary files differ
diff --git a/cells/gds/INVX8.gds b/cells/gds/INVX8.gds
new file mode 100644
index 0000000..8740f08
--- /dev/null
+++ b/cells/gds/INVX8.gds
Binary files differ
diff --git a/cells/gds/MUX2X1.gds b/cells/gds/MUX2X1.gds
index 3b26d77..57e127f 100644
--- a/cells/gds/MUX2X1.gds
+++ b/cells/gds/MUX2X1.gds
Binary files differ
diff --git a/cells/gds/NAND2X1.gds b/cells/gds/NAND2X1.gds
index 527601c..0deb1c4 100644
--- a/cells/gds/NAND2X1.gds
+++ b/cells/gds/NAND2X1.gds
Binary files differ
diff --git a/cells/gds/NAND3X1.gds b/cells/gds/NAND3X1.gds
index 73c3e03..a09976d 100644
--- a/cells/gds/NAND3X1.gds
+++ b/cells/gds/NAND3X1.gds
Binary files differ
diff --git a/cells/gds/NOR2X1.gds b/cells/gds/NOR2X1.gds
deleted file mode 100644
index 7a2a3d5..0000000
--- a/cells/gds/NOR2X1.gds
+++ /dev/null
Binary files differ
diff --git a/cells/gds/OR2X1.gds b/cells/gds/OR2X1.gds
new file mode 100644
index 0000000..f401110
--- /dev/null
+++ b/cells/gds/OR2X1.gds
Binary files differ
diff --git a/cells/gds/OR2X2.gds b/cells/gds/OR2X2.gds
index cf50240..cea0735 100644
--- a/cells/gds/OR2X2.gds
+++ b/cells/gds/OR2X2.gds
Binary files differ
diff --git a/cells/gds/XNOR2X1.gds b/cells/gds/XNOR2X1.gds
new file mode 100644
index 0000000..8d0a02d
--- /dev/null
+++ b/cells/gds/XNOR2X1.gds
Binary files differ
diff --git a/cells/gds/XOR2X1.gds b/cells/gds/XOR2X1.gds
deleted file mode 100644
index f0e8aed..0000000
--- a/cells/gds/XOR2X1.gds
+++ /dev/null
Binary files differ
diff --git a/cells/lef/AND2X1.lef b/cells/lef/AND2X1.lef
index 3f84093..dd3148f 100644
--- a/cells/lef/AND2X1.lef
+++ b/cells/lef/AND2X1.lef
@@ -87,7 +87,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 2.740 0.850 3.030 1.140 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.540 2.950 1.780 ;
+        RECT 2.740 1.250 3.030 1.540 ;
     END
   END B
   OBS
@@ -95,44 +97,44 @@
         RECT 1.760 2.430 2.090 2.510 ;
         RECT 1.760 2.260 1.840 2.430 ;
         RECT 2.010 2.260 2.090 2.430 ;
-        RECT 1.760 2.180 2.090 2.260 ;
         RECT 4.640 2.430 4.970 2.510 ;
         RECT 4.640 2.260 4.720 2.430 ;
         RECT 4.890 2.260 4.970 2.430 ;
-        RECT 4.640 2.180 4.970 2.260 ;
-        RECT 1.280 2.010 1.590 2.090 ;
-        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 1.780 2.180 2.090 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
         RECT 1.280 1.840 1.360 2.010 ;
         RECT 1.530 1.840 1.610 2.010 ;
         RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
         RECT 2.720 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.050 2.010 ;
         RECT 2.720 1.760 3.050 1.840 ;
-        RECT 4.160 2.010 4.470 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
         RECT 4.160 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.490 2.010 ;
         RECT 4.160 1.760 4.490 1.840 ;
-        RECT 2.800 1.160 2.970 1.760 ;
+        RECT 2.800 1.160 2.970 1.310 ;
         RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.280 0.920 1.360 1.080 ;
+        RECT 1.300 0.910 1.360 0.920 ;
         RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 1.300 0.830 1.610 0.910 ;
         RECT 2.720 1.080 3.050 1.160 ;
         RECT 2.720 0.910 2.800 1.080 ;
         RECT 2.970 0.910 3.050 1.080 ;
         RECT 2.720 0.830 3.050 0.910 ;
         RECT 4.160 1.080 4.490 1.160 ;
         RECT 4.160 0.910 4.240 1.080 ;
-        RECT 4.410 0.920 4.490 1.080 ;
-        RECT 4.410 0.910 4.470 0.920 ;
-        RECT 4.160 0.830 4.470 0.910 ;
-        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 0.800 0.670 1.130 0.750 ;
         RECT 0.800 0.500 0.880 0.670 ;
-        RECT 1.050 0.660 1.110 0.670 ;
-        RECT 4.640 0.670 4.970 0.750 ;
-        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
         RECT 0.800 0.420 1.130 0.500 ;
-        RECT 4.640 0.500 4.720 0.670 ;
+        RECT 4.640 0.500 4.720 0.660 ;
         RECT 4.890 0.500 4.970 0.670 ;
         RECT 4.640 0.420 4.970 0.500 ;
       LAYER met1 ;
@@ -140,20 +142,20 @@
         RECT 1.780 2.260 1.840 2.430 ;
         RECT 2.010 2.260 2.070 2.430 ;
         RECT 1.780 2.200 2.070 2.260 ;
-        RECT 1.850 2.000 1.990 2.200 ;
+        RECT 1.850 1.060 1.990 2.200 ;
         RECT 4.180 2.010 4.470 2.070 ;
-        RECT 4.180 2.000 4.240 2.010 ;
-        RECT 1.850 1.860 4.240 2.000 ;
-        RECT 0.820 0.670 1.110 0.730 ;
-        RECT 0.820 0.500 0.880 0.670 ;
-        RECT 1.050 0.660 1.110 0.670 ;
-        RECT 1.850 0.660 1.990 1.860 ;
-        RECT 4.180 1.840 4.240 1.860 ;
+        RECT 4.180 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.470 2.010 ;
         RECT 4.180 1.780 4.470 1.840 ;
         RECT 4.250 1.140 4.390 1.780 ;
         RECT 4.180 1.080 4.470 1.140 ;
-        RECT 4.180 0.910 4.240 1.080 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 1.850 0.920 4.240 1.060 ;
+        RECT 0.820 0.670 1.110 0.730 ;
+        RECT 0.820 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 1.850 0.660 1.990 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
         RECT 4.410 0.910 4.470 1.080 ;
         RECT 4.180 0.850 4.470 0.910 ;
         RECT 1.050 0.520 1.990 0.660 ;
diff --git a/cells/lef/AND2X1.lef.beforemagic b/cells/lef/AND2X1.lef.beforemagic
index 7c7240f..3a69996 100644
--- a/cells/lef/AND2X1.lef.beforemagic
+++ b/cells/lef/AND2X1.lef.beforemagic
@@ -64,7 +64,9 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
@@ -97,47 +99,47 @@
       RECT ( 1.76 2.43 ) ( 2.09 2.51 ) ;
       RECT ( 1.76 2.26 ) ( 1.84 2.43 ) ;
       RECT ( 2.01 2.26 ) ( 2.09 2.43 ) ;
-      RECT ( 1.76 2.18 ) ( 2.09 2.26 ) ;
       RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
       RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
       RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
-      RECT ( 4.64 2.18 ) ( 4.97 2.26 ) ;
-      RECT ( 1.28 2.01 ) ( 1.59 2.09 ) ;
-      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 1.78 2.18 ) ( 2.09 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
       RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
       RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
       RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
-      RECT ( 4.16 2.01 ) ( 4.47 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
       RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
       RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
-      RECT ( 2.8 1.16 ) ( 2.97 1.76 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
       RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
-      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
-      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
       RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
       RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
       RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
       RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
       RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
       RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
-      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
-      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
-      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
-      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
       RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
-      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
-      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
-      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
       RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
       RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
       RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
       RECT ( 3.45 0.34 ) ( 3.53 0.51 ) ;
-      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
       RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
       RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
       RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
@@ -192,29 +194,34 @@
       RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
       RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
-      RECT ( 1.85 2 ) ( 1.99 2.2 ) ;
-      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
-      RECT ( 4.18 2 ) ( 4.24 2.01 ) ;
-      RECT ( 1.85 1.86 ) ( 4.24 2 ) ;
       RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
       RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
       RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
       RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 1.85 1.06 ) ( 1.99 2.2 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 2.81 1.54 ) ( 2.95 1.78 ) ;
+      RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
+      RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
+      RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
+      RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 1.85 0.92 ) ( 4.24 1.06 ) ;
       RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
       RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
       RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
-      RECT ( 1.85 0.66 ) ( 1.99 1.86 ) ;
-      RECT ( 4.18 1.84 ) ( 4.24 1.86 ) ;
-      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
-      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
-      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
-      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
-      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
-      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
-      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
-      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
-      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 1.85 0.66 ) ( 1.99 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
       RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
       RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
       RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
diff --git a/cells/lef/AND2X1.lef.temp b/cells/lef/AND2X1.lef.temp
index b12c7ac..cc6f3dd 100644
--- a/cells/lef/AND2X1.lef.temp
+++ b/cells/lef/AND2X1.lef.temp
@@ -64,7 +64,9 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
diff --git a/cells/lef/AND2X2.lef b/cells/lef/AND2X2.lef
index d595511..ec94f87 100644
--- a/cells/lef/AND2X2.lef
+++ b/cells/lef/AND2X2.lef
@@ -70,17 +70,6 @@
         RECT 4.660 0.440 4.950 0.730 ;
     END
   END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.780 1.590 2.070 ;
-        RECT 1.370 1.140 1.510 1.780 ;
-        RECT 1.300 0.850 1.590 1.140 ;
-    END
-  END A
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -92,48 +81,59 @@
         RECT 2.740 0.850 3.030 1.140 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
         RECT 1.760 2.430 2.090 2.510 ;
         RECT 1.760 2.260 1.840 2.430 ;
         RECT 2.010 2.260 2.090 2.430 ;
-        RECT 1.760 2.180 2.090 2.260 ;
         RECT 4.640 2.430 4.970 2.510 ;
         RECT 4.640 2.260 4.720 2.430 ;
         RECT 4.890 2.260 4.970 2.430 ;
-        RECT 4.640 2.180 4.970 2.260 ;
-        RECT 1.280 2.010 1.590 2.090 ;
-        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 1.780 2.180 2.090 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
         RECT 1.280 1.840 1.360 2.010 ;
         RECT 1.530 1.840 1.610 2.010 ;
         RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
         RECT 2.720 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.050 2.010 ;
         RECT 2.720 1.760 3.050 1.840 ;
-        RECT 4.160 2.010 4.470 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
         RECT 4.160 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.490 2.010 ;
         RECT 4.160 1.760 4.490 1.840 ;
         RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.280 0.920 1.360 1.080 ;
+        RECT 1.300 0.910 1.360 0.920 ;
         RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 1.300 0.830 1.610 0.910 ;
         RECT 2.720 1.080 3.050 1.160 ;
         RECT 2.720 0.910 2.800 1.080 ;
         RECT 2.970 0.910 3.050 1.080 ;
         RECT 2.720 0.830 3.050 0.910 ;
         RECT 4.160 1.080 4.490 1.160 ;
         RECT 4.160 0.910 4.240 1.080 ;
-        RECT 4.410 0.920 4.490 1.080 ;
-        RECT 4.410 0.910 4.470 0.920 ;
-        RECT 4.160 0.830 4.470 0.910 ;
-        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 0.800 0.670 1.130 0.750 ;
         RECT 0.800 0.500 0.880 0.670 ;
-        RECT 1.050 0.660 1.110 0.670 ;
-        RECT 4.640 0.670 4.970 0.750 ;
-        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
         RECT 0.800 0.420 1.130 0.500 ;
-        RECT 4.640 0.500 4.720 0.670 ;
+        RECT 4.640 0.500 4.720 0.660 ;
         RECT 4.890 0.500 4.970 0.670 ;
         RECT 4.640 0.420 4.970 0.500 ;
       LAYER met1 ;
diff --git a/cells/lef/AND2X2.lef.beforemagic b/cells/lef/AND2X2.lef.beforemagic
index c9a875c..708d5bb 100644
--- a/cells/lef/AND2X2.lef.beforemagic
+++ b/cells/lef/AND2X2.lef.beforemagic
@@ -44,19 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -70,6 +57,19 @@
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
 
   OBS
     LAYER locali ;
@@ -99,46 +99,46 @@
       RECT ( 1.76 2.43 ) ( 2.09 2.51 ) ;
       RECT ( 1.76 2.26 ) ( 1.84 2.43 ) ;
       RECT ( 2.01 2.26 ) ( 2.09 2.43 ) ;
-      RECT ( 1.76 2.18 ) ( 2.09 2.26 ) ;
       RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
       RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
       RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
-      RECT ( 4.64 2.18 ) ( 4.97 2.26 ) ;
-      RECT ( 1.28 2.01 ) ( 1.59 2.09 ) ;
-      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 1.78 2.18 ) ( 2.09 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
       RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
       RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
       RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
-      RECT ( 4.16 2.01 ) ( 4.47 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
       RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
       RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
       RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
-      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
-      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
       RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
       RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
       RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
       RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
       RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
       RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
-      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
-      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
-      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
-      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
       RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
-      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
-      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
-      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
       RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
       RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
       RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
       RECT ( 3.45 0.34 ) ( 3.53 0.51 ) ;
-      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
       RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
       RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
       RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
diff --git a/cells/lef/AND2X2.lef.temp b/cells/lef/AND2X2.lef.temp
index 9e5af4c..8cdf445 100644
--- a/cells/lef/AND2X2.lef.temp
+++ b/cells/lef/AND2X2.lef.temp
@@ -44,19 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -70,4 +57,17 @@
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
 END AND2X2
diff --git a/cells/lef/AOI21X1.lef b/cells/lef/AOI21X1.lef
index 27d135d..e0ee984 100644
--- a/cells/lef/AOI21X1.lef
+++ b/cells/lef/AOI21X1.lef
@@ -73,17 +73,6 @@
         RECT 1.300 0.850 1.590 1.140 ;
     END
   END C
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.780 3.030 2.070 ;
-        RECT 2.810 1.140 2.950 1.780 ;
-        RECT 2.740 0.850 3.030 1.140 ;
-    END
-  END A
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -95,6 +84,17 @@
         RECT 4.180 0.850 4.470 1.140 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
         RECT 0.560 2.430 0.890 2.510 ;
@@ -108,7 +108,7 @@
         RECT 4.640 2.260 4.720 2.430 ;
         RECT 4.890 2.260 4.970 2.430 ;
         RECT 2.240 2.180 2.550 2.260 ;
-        RECT 4.640 2.180 4.970 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
         RECT 1.280 2.010 1.610 2.090 ;
         RECT 1.280 1.840 1.360 2.010 ;
         RECT 1.530 1.840 1.610 2.010 ;
@@ -117,7 +117,7 @@
         RECT 2.720 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.050 2.010 ;
         RECT 2.720 1.760 3.050 1.840 ;
-        RECT 4.160 2.010 4.470 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
         RECT 4.160 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.490 2.010 ;
         RECT 4.160 1.760 4.490 1.840 ;
diff --git a/cells/lef/AOI21X1.lef.beforemagic b/cells/lef/AOI21X1.lef.beforemagic
index ae52c75..f5be2e5 100644
--- a/cells/lef/AOI21X1.lef.beforemagic
+++ b/cells/lef/AOI21X1.lef.beforemagic
@@ -61,19 +61,6 @@
     END
   END C
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -87,6 +74,19 @@
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
 
   OBS
     LAYER locali ;
@@ -120,7 +120,7 @@
       RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
       RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
       RECT ( 2.24 2.18 ) ( 2.55 2.26 ) ;
-      RECT ( 4.64 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
       RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
@@ -129,7 +129,7 @@
       RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
       RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
-      RECT ( 4.16 2.01 ) ( 4.47 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
       RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
       RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
diff --git a/cells/lef/AOI21X1.lef.temp b/cells/lef/AOI21X1.lef.temp
index 277b5f1..bb309be 100644
--- a/cells/lef/AOI21X1.lef.temp
+++ b/cells/lef/AOI21X1.lef.temp
@@ -61,19 +61,6 @@
     END
   END C
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -87,4 +74,17 @@
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
 END AOI21X1
diff --git a/cells/lef/AOI22X1.lef b/cells/lef/AOI22X1.lef
index 3c05133..3913b60 100644
--- a/cells/lef/AOI22X1.lef
+++ b/cells/lef/AOI22X1.lef
@@ -16,6 +16,10 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 7.200 3.570 ;
+        RECT 1.780 2.990 2.070 3.090 ;
+        RECT 1.780 2.820 1.840 2.990 ;
+        RECT 2.010 2.820 2.070 2.990 ;
+        RECT 1.780 2.760 2.070 2.820 ;
     END
     PORT
       LAYER li1 ;
@@ -49,15 +53,28 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 5.140 2.200 5.430 2.490 ;
+        RECT 5.140 2.410 5.430 2.490 ;
+        RECT 5.140 2.270 6.310 2.410 ;
+        RECT 5.140 2.200 5.430 2.270 ;
+        RECT 6.170 0.730 6.310 2.270 ;
         RECT 0.820 0.660 1.110 0.730 ;
-        RECT 5.210 0.660 5.350 2.200 ;
         RECT 6.100 0.660 6.390 0.730 ;
         RECT 0.820 0.520 6.390 0.660 ;
         RECT 0.820 0.440 1.110 0.520 ;
         RECT 6.100 0.440 6.390 0.520 ;
     END
   END Y
+  PIN C
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 4.180 1.780 4.470 2.070 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 0.850 4.470 1.140 ;
+    END
+  END C
   PIN D
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -91,31 +108,20 @@
         RECT 1.300 0.850 1.590 1.140 ;
     END
   END B
-  PIN C
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 4.180 1.780 4.470 2.070 ;
-        RECT 4.250 1.140 4.390 1.780 ;
-        RECT 4.180 0.850 4.470 1.140 ;
-    END
-  END C
   OBS
       LAYER li1 ;
-        RECT 0.800 2.830 1.130 2.910 ;
-        RECT 0.800 2.660 0.880 2.830 ;
-        RECT 1.050 2.660 1.130 2.830 ;
-        RECT 0.800 2.580 1.130 2.660 ;
         RECT 3.680 2.830 4.010 2.910 ;
         RECT 3.680 2.660 3.760 2.830 ;
         RECT 3.930 2.660 4.010 2.830 ;
+        RECT 0.800 2.560 1.130 2.640 ;
         RECT 3.680 2.580 4.010 2.660 ;
         RECT 6.080 2.830 6.410 2.910 ;
         RECT 6.080 2.660 6.160 2.830 ;
         RECT 6.330 2.660 6.410 2.830 ;
         RECT 6.080 2.580 6.410 2.660 ;
+        RECT 0.800 2.390 0.880 2.560 ;
+        RECT 1.050 2.390 1.130 2.560 ;
+        RECT 0.800 2.310 1.130 2.390 ;
         RECT 5.120 2.430 5.450 2.510 ;
         RECT 5.120 2.260 5.200 2.430 ;
         RECT 5.370 2.260 5.450 2.430 ;
@@ -137,10 +143,9 @@
         RECT 5.850 1.840 5.930 2.010 ;
         RECT 5.600 1.760 5.930 1.840 ;
         RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.920 1.360 1.080 ;
-        RECT 1.300 0.910 1.360 0.920 ;
+        RECT 1.280 0.910 1.360 1.080 ;
         RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.300 0.830 1.610 0.910 ;
+        RECT 1.280 0.830 1.610 0.910 ;
         RECT 2.720 1.080 3.050 1.160 ;
         RECT 2.720 0.910 2.800 1.080 ;
         RECT 2.970 0.910 3.050 1.080 ;
@@ -154,33 +159,34 @@
         RECT 5.850 0.920 5.930 1.080 ;
         RECT 5.850 0.910 5.910 0.920 ;
         RECT 5.600 0.830 5.910 0.910 ;
-        RECT 0.800 0.670 1.130 0.750 ;
+        RECT 0.800 0.670 1.110 0.750 ;
         RECT 0.800 0.500 0.880 0.670 ;
-        RECT 1.050 0.500 1.130 0.670 ;
-        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 1.050 0.660 1.110 0.670 ;
         RECT 6.080 0.670 6.410 0.750 ;
+        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 0.800 0.420 1.130 0.500 ;
         RECT 6.080 0.500 6.160 0.670 ;
         RECT 6.330 0.500 6.410 0.670 ;
         RECT 6.080 0.420 6.410 0.500 ;
       LAYER met1 ;
-        RECT 0.820 2.830 1.110 2.890 ;
-        RECT 0.820 2.660 0.880 2.830 ;
-        RECT 1.050 2.820 1.110 2.830 ;
         RECT 3.700 2.830 3.990 2.890 ;
-        RECT 3.700 2.820 3.760 2.830 ;
-        RECT 1.050 2.680 3.760 2.820 ;
-        RECT 1.050 2.660 1.110 2.680 ;
-        RECT 0.820 2.600 1.110 2.660 ;
-        RECT 3.700 2.660 3.760 2.680 ;
+        RECT 3.700 2.660 3.760 2.830 ;
         RECT 3.930 2.820 3.990 2.830 ;
         RECT 6.100 2.830 6.390 2.890 ;
         RECT 6.100 2.820 6.160 2.830 ;
         RECT 3.930 2.680 6.160 2.820 ;
         RECT 3.930 2.660 3.990 2.680 ;
+        RECT 0.820 2.560 1.110 2.620 ;
+        RECT 0.820 2.390 0.880 2.560 ;
+        RECT 1.050 2.550 1.110 2.560 ;
         RECT 3.700 2.600 3.990 2.660 ;
         RECT 6.100 2.660 6.160 2.680 ;
         RECT 6.330 2.660 6.390 2.830 ;
         RECT 6.100 2.600 6.390 2.660 ;
+        RECT 3.700 2.550 3.910 2.600 ;
+        RECT 1.050 2.410 3.910 2.550 ;
+        RECT 1.050 2.390 1.110 2.410 ;
+        RECT 0.820 2.330 1.110 2.390 ;
   END
 END AOI22X1
 END LIBRARY
diff --git a/cells/lef/AOI22X1.lef.beforemagic b/cells/lef/AOI22X1.lef.beforemagic
index 37f49ab..a7460da 100644
--- a/cells/lef/AOI22X1.lef.beforemagic
+++ b/cells/lef/AOI22X1.lef.beforemagic
@@ -43,11 +43,26 @@
         RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
         RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
         RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
-        RECT 5.21000000 0.65500000 5.35000000 2.19500000 ;
-        RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END C
+
   PIN D
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -87,19 +102,6 @@
     END
   END B
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
-        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
-        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
-    END
-  END C
-
 
   OBS
     LAYER locali ;
@@ -122,21 +124,21 @@
       RECT ( 7.05 3.25 ) ( 7.2 3.42 ) ;
       RECT ( 0 3.09 ) ( 7.2 3.25 ) ;
       RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
-      RECT ( 0.8 2.83 ) ( 1.13 2.91 ) ;
-      RECT ( 0.8 2.66 ) ( 0.88 2.83 ) ;
-      RECT ( 1.05 2.66 ) ( 1.13 2.83 ) ;
       RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
       RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
       RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
       RECT ( 3.68 2.83 ) ( 4.01 2.91 ) ;
-      RECT ( 0.8 2.58 ) ( 1.13 2.66 ) ;
       RECT ( 3.68 2.66 ) ( 3.76 2.83 ) ;
       RECT ( 3.93 2.66 ) ( 4.01 2.83 ) ;
+      RECT ( 0.8 2.56 ) ( 1.13 2.64 ) ;
       RECT ( 3.68 2.58 ) ( 4.01 2.66 ) ;
       RECT ( 6.08 2.83 ) ( 6.41 2.91 ) ;
       RECT ( 6.08 2.66 ) ( 6.16 2.83 ) ;
       RECT ( 6.33 2.66 ) ( 6.41 2.83 ) ;
       RECT ( 6.08 2.58 ) ( 6.41 2.66 ) ;
+      RECT ( 0.8 2.39 ) ( 0.88 2.56 ) ;
+      RECT ( 1.05 2.39 ) ( 1.13 2.56 ) ;
+      RECT ( 0.8 2.31 ) ( 1.13 2.39 ) ;
       RECT ( 5.12 2.43 ) ( 5.45 2.51 ) ;
       RECT ( 5.12 2.26 ) ( 5.2 2.43 ) ;
       RECT ( 5.37 2.26 ) ( 5.45 2.43 ) ;
@@ -158,10 +160,9 @@
       RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
       RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
       RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
-      RECT ( 1.28 0.92 ) ( 1.36 1.08 ) ;
-      RECT ( 1.3 0.91 ) ( 1.36 0.92 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
-      RECT ( 1.3 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
       RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
       RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
       RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
@@ -175,10 +176,11 @@
       RECT ( 5.85 0.92 ) ( 5.93 1.08 ) ;
       RECT ( 5.85 0.91 ) ( 5.91 0.92 ) ;
       RECT ( 5.6 0.83 ) ( 5.91 0.91 ) ;
-      RECT ( 0.8 0.67 ) ( 1.13 0.75 ) ;
+      RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
       RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
-      RECT ( 1.05 0.5 ) ( 1.13 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
       RECT ( 6.08 0.67 ) ( 6.41 0.75 ) ;
+      RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
       RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
       RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
       RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
@@ -224,27 +226,33 @@
       RECT ( 6.57 3.25 ) ( 6.88 3.42 ) ;
       RECT ( 7.05 3.25 ) ( 7.2 3.42 ) ;
       RECT ( 0 3.09 ) ( 7.2 3.25 ) ;
-      RECT ( 0.82 2.83 ) ( 1.11 2.89 ) ;
-      RECT ( 0.82 2.66 ) ( 0.88 2.83 ) ;
-      RECT ( 1.05 2.82 ) ( 1.11 2.83 ) ;
+      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
+      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
+      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
       RECT ( 3.7 2.83 ) ( 3.99 2.89 ) ;
-      RECT ( 3.7 2.82 ) ( 3.76 2.83 ) ;
-      RECT ( 1.05 2.68 ) ( 3.76 2.82 ) ;
-      RECT ( 1.05 2.66 ) ( 1.11 2.68 ) ;
-      RECT ( 0.82 2.6 ) ( 1.11 2.66 ) ;
-      RECT ( 3.7 2.66 ) ( 3.76 2.68 ) ;
+      RECT ( 3.7 2.66 ) ( 3.76 2.83 ) ;
       RECT ( 3.93 2.82 ) ( 3.99 2.83 ) ;
       RECT ( 6.1 2.83 ) ( 6.39 2.89 ) ;
       RECT ( 6.1 2.82 ) ( 6.16 2.83 ) ;
       RECT ( 3.93 2.68 ) ( 6.16 2.82 ) ;
       RECT ( 3.93 2.66 ) ( 3.99 2.68 ) ;
+      RECT ( 0.82 2.56 ) ( 1.11 2.62 ) ;
+      RECT ( 0.82 2.39 ) ( 0.88 2.56 ) ;
+      RECT ( 1.05 2.55 ) ( 1.11 2.56 ) ;
       RECT ( 3.7 2.6 ) ( 3.99 2.66 ) ;
       RECT ( 6.1 2.66 ) ( 6.16 2.68 ) ;
       RECT ( 6.33 2.66 ) ( 6.39 2.83 ) ;
       RECT ( 6.1 2.6 ) ( 6.39 2.66 ) ;
+      RECT ( 3.7 2.55 ) ( 3.91 2.6 ) ;
+      RECT ( 1.05 2.41 ) ( 3.91 2.55 ) ;
       RECT ( 5.14 2.43 ) ( 5.43 2.49 ) ;
+      RECT ( 1.05 2.39 ) ( 1.11 2.41 ) ;
+      RECT ( 0.82 2.33 ) ( 1.11 2.39 ) ;
       RECT ( 5.14 2.26 ) ( 5.2 2.43 ) ;
-      RECT ( 5.37 2.26 ) ( 5.43 2.43 ) ;
+      RECT ( 5.37 2.41 ) ( 5.43 2.43 ) ;
+      RECT ( 5.37 2.27 ) ( 6.31 2.41 ) ;
+      RECT ( 5.37 2.26 ) ( 5.43 2.27 ) ;
       RECT ( 5.14 2.2 ) ( 5.43 2.26 ) ;
       RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
       RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
@@ -258,9 +266,14 @@
       RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
       RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
       RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
       RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
       RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 5.69 1.14 ) ( 5.83 1.78 ) ;
       RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
       RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
@@ -273,19 +286,14 @@
       RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
       RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
       RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
-      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
-      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
-      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
-      RECT ( 5.21 0.66 ) ( 5.35 2.2 ) ;
-      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
-      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
-      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
-      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
-      RECT ( 5.69 1.14 ) ( 5.83 1.78 ) ;
       RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
       RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
       RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
       RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
+      RECT ( 6.17 0.73 ) ( 6.31 2.27 ) ;
+      RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
+      RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
+      RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
       RECT ( 6.1 0.67 ) ( 6.39 0.73 ) ;
       RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
       RECT ( 1.05 0.52 ) ( 6.16 0.66 ) ;
diff --git a/cells/lef/AOI22X1.lef.temp b/cells/lef/AOI22X1.lef.temp
index 2c000ed..127be60 100644
--- a/cells/lef/AOI22X1.lef.temp
+++ b/cells/lef/AOI22X1.lef.temp
@@ -43,11 +43,26 @@
         RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
         RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
         RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
-        RECT 5.21000000 0.65500000 5.35000000 2.19500000 ;
-        RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END C
+
   PIN D
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -87,17 +102,4 @@
     END
   END B
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
-        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
-        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
-    END
-  END C
-
 END AOI22X1
diff --git a/cells/lef/BUFX2.lef b/cells/lef/BUFX2.lef
index 578679d..b62c0fa 100644
--- a/cells/lef/BUFX2.lef
+++ b/cells/lef/BUFX2.lef
@@ -68,9 +68,9 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 1.390 1.590 1.680 ;
-        RECT 1.370 1.140 1.510 1.390 ;
-        RECT 1.300 0.850 1.590 1.140 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.540 1.510 1.780 ;
+        RECT 1.300 1.250 1.590 1.540 ;
     END
   END A
   OBS
@@ -91,7 +91,7 @@
         RECT 2.720 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.050 2.010 ;
         RECT 2.720 1.760 3.050 1.840 ;
-        RECT 1.360 1.620 1.530 1.760 ;
+        RECT 1.360 1.160 1.530 1.310 ;
         RECT 1.280 1.080 1.610 1.160 ;
         RECT 1.280 0.910 1.360 1.080 ;
         RECT 1.530 0.910 1.610 1.080 ;
@@ -114,17 +114,17 @@
         RECT 0.580 2.260 0.640 2.430 ;
         RECT 0.810 2.260 0.870 2.430 ;
         RECT 0.580 2.200 0.870 2.260 ;
-        RECT 0.650 2.000 0.790 2.200 ;
+        RECT 0.650 1.060 0.790 2.200 ;
         RECT 2.740 2.010 3.030 2.070 ;
-        RECT 2.740 2.000 2.800 2.010 ;
-        RECT 0.650 1.860 2.800 2.000 ;
-        RECT 0.650 0.730 0.790 1.860 ;
-        RECT 2.740 1.840 2.800 1.860 ;
+        RECT 2.740 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.030 2.010 ;
         RECT 2.740 1.780 3.030 1.840 ;
         RECT 2.810 1.140 2.950 1.780 ;
         RECT 2.740 1.080 3.030 1.140 ;
-        RECT 2.740 0.910 2.800 1.080 ;
+        RECT 2.740 1.060 2.800 1.080 ;
+        RECT 0.650 0.920 2.800 1.060 ;
+        RECT 0.650 0.730 0.790 0.920 ;
+        RECT 2.740 0.910 2.800 0.920 ;
         RECT 2.970 0.910 3.030 1.080 ;
         RECT 2.740 0.850 3.030 0.910 ;
         RECT 0.580 0.670 0.870 0.730 ;
diff --git a/cells/lef/BUFX2.lef.beforemagic b/cells/lef/BUFX2.lef.beforemagic
index a93654c..18990c2 100644
--- a/cells/lef/BUFX2.lef.beforemagic
+++ b/cells/lef/BUFX2.lef.beforemagic
@@ -51,9 +51,9 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
@@ -92,7 +92,7 @@
       RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
       RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
-      RECT ( 1.36 1.62 ) ( 1.53 1.76 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.31 ) ;
       RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
       RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
@@ -151,26 +151,26 @@
       RECT ( 3.22 2.26 ) ( 3.28 2.43 ) ;
       RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
       RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
-      RECT ( 0.65 2 ) ( 0.79 2.2 ) ;
+      RECT ( 0.65 1.06 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
       RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
-      RECT ( 2.74 2 ) ( 2.8 2.01 ) ;
-      RECT ( 0.65 1.86 ) ( 2.8 2 ) ;
-      RECT ( 0.65 0.73 ) ( 0.79 1.86 ) ;
-      RECT ( 2.74 1.84 ) ( 2.8 1.86 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
       RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
-      RECT ( 1.3 1.62 ) ( 1.59 1.68 ) ;
-      RECT ( 1.3 1.45 ) ( 1.36 1.62 ) ;
-      RECT ( 1.53 1.45 ) ( 1.59 1.62 ) ;
-      RECT ( 1.3 1.39 ) ( 1.59 1.45 ) ;
-      RECT ( 1.37 1.14 ) ( 1.51 1.39 ) ;
+      RECT ( 1.37 1.54 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.48 ) ( 1.59 1.54 ) ;
+      RECT ( 1.3 1.31 ) ( 1.36 1.48 ) ;
+      RECT ( 1.53 1.31 ) ( 1.59 1.48 ) ;
+      RECT ( 1.3 1.25 ) ( 1.59 1.31 ) ;
       RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
-      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
-      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
-      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
       RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
-      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.74 1.06 ) ( 2.8 1.08 ) ;
+      RECT ( 0.65 0.92 ) ( 2.8 1.06 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 0.92 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
       RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
       RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
       RECT ( 3.29 0.73 ) ( 3.43 2.2 ) ;
diff --git a/cells/lef/BUFX2.lef.temp b/cells/lef/BUFX2.lef.temp
index 15ea3d0..ac817d9 100644
--- a/cells/lef/BUFX2.lef.temp
+++ b/cells/lef/BUFX2.lef.temp
@@ -51,9 +51,9 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
diff --git a/cells/lef/BUFX4.lef b/cells/lef/BUFX4.lef
new file mode 100644
index 0000000..75908fe
--- /dev/null
+++ b/cells/lef/BUFX4.lef
@@ -0,0 +1,173 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO BUFX4
+  CLASS CORE ;
+  FOREIGN BUFX4 ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 5.760 BY 3.330 ;
+  SYMMETRY X Y R90 ;
+  SITE unit ;
+  PIN vdd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 3.090 5.760 3.570 ;
+        RECT 1.780 2.990 2.070 3.090 ;
+        RECT 1.780 2.820 1.840 2.990 ;
+        RECT 2.010 2.820 2.070 2.990 ;
+        RECT 1.780 2.760 2.070 2.820 ;
+        RECT 4.660 2.990 4.950 3.090 ;
+        RECT 4.660 2.820 4.720 2.990 ;
+        RECT 4.890 2.820 4.950 2.990 ;
+        RECT 4.660 2.760 4.950 2.820 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.000 3.090 5.760 3.570 ;
+        RECT 1.760 2.990 2.090 3.090 ;
+        RECT 1.760 2.820 1.840 2.990 ;
+        RECT 2.010 2.820 2.090 2.990 ;
+        RECT 1.760 2.740 2.090 2.820 ;
+        RECT 4.640 2.990 4.970 3.090 ;
+        RECT 4.640 2.820 4.720 2.990 ;
+        RECT 4.890 2.820 4.970 2.990 ;
+        RECT 4.640 2.740 4.970 2.820 ;
+    END
+  END vdd
+  PIN gnd
+    DIRECTION INOUT ;
+    USE GROUND ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.780 0.510 2.070 0.570 ;
+        RECT 1.780 0.340 1.840 0.510 ;
+        RECT 2.010 0.340 2.070 0.510 ;
+        RECT 1.780 0.240 2.070 0.340 ;
+        RECT 0.000 -0.240 5.760 0.240 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 1.760 0.510 2.090 0.590 ;
+        RECT 1.760 0.340 1.840 0.510 ;
+        RECT 2.010 0.340 2.090 0.510 ;
+        RECT 1.760 0.240 2.090 0.340 ;
+        RECT 4.640 0.510 4.970 0.590 ;
+        RECT 4.640 0.340 4.720 0.510 ;
+        RECT 4.890 0.340 4.970 0.510 ;
+        RECT 4.640 0.240 4.970 0.340 ;
+        RECT 0.000 -0.240 5.760 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 3.700 2.410 3.990 2.490 ;
+        RECT 3.700 2.270 4.870 2.410 ;
+        RECT 3.700 2.200 3.990 2.270 ;
+        RECT 3.700 0.660 3.990 0.730 ;
+        RECT 4.730 0.660 4.870 2.270 ;
+        RECT 3.700 0.520 4.870 0.660 ;
+        RECT 3.700 0.440 3.990 0.520 ;
+    END
+  END Y
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.540 1.510 1.780 ;
+        RECT 1.300 1.250 1.590 1.540 ;
+    END
+  END A
+  OBS
+      LAYER li1 ;
+        RECT 0.560 2.430 0.890 2.510 ;
+        RECT 0.560 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.890 2.430 ;
+        RECT 0.560 2.180 0.890 2.260 ;
+        RECT 3.680 2.430 4.010 2.510 ;
+        RECT 3.680 2.260 3.760 2.430 ;
+        RECT 3.930 2.260 4.010 2.430 ;
+        RECT 3.680 2.180 4.010 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 4.180 2.010 4.490 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.360 1.160 1.530 1.310 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.920 4.240 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.180 0.830 4.490 0.910 ;
+        RECT 0.560 0.670 0.890 0.750 ;
+        RECT 0.560 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.890 0.670 ;
+        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 3.680 0.670 4.010 0.750 ;
+        RECT 3.680 0.500 3.760 0.670 ;
+        RECT 3.930 0.500 4.010 0.670 ;
+        RECT 3.680 0.420 4.010 0.500 ;
+      LAYER met1 ;
+        RECT 0.580 2.430 0.870 2.490 ;
+        RECT 0.580 2.260 0.640 2.430 ;
+        RECT 0.810 2.260 0.870 2.430 ;
+        RECT 0.580 2.200 0.870 2.260 ;
+        RECT 0.650 1.060 0.790 2.200 ;
+        RECT 2.740 2.010 3.030 2.070 ;
+        RECT 2.740 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.030 2.010 ;
+        RECT 2.740 1.780 3.030 1.840 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 2.740 1.080 3.030 1.140 ;
+        RECT 2.740 1.060 2.800 1.080 ;
+        RECT 0.650 0.920 2.800 1.060 ;
+        RECT 0.650 0.730 0.790 0.920 ;
+        RECT 2.740 0.910 2.800 0.920 ;
+        RECT 2.970 1.060 3.030 1.080 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 2.970 0.920 4.240 1.060 ;
+        RECT 2.970 0.910 3.030 0.920 ;
+        RECT 2.740 0.850 3.030 0.910 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 0.580 0.670 0.870 0.730 ;
+        RECT 0.580 0.500 0.640 0.670 ;
+        RECT 0.810 0.500 0.870 0.670 ;
+        RECT 0.580 0.440 0.870 0.500 ;
+  END
+END BUFX4
+END LIBRARY
+
diff --git a/cells/lef/BUFX4.lef.beforemagic b/cells/lef/BUFX4.lef.beforemagic
new file mode 100644
index 0000000..183cfcc
--- /dev/null
+++ b/cells/lef/BUFX4.lef.beforemagic
@@ -0,0 +1,255 @@
+MACRO BUFX4
+ CLASS CORE ;
+ FOREIGN BUFX4 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE GROUND ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 3.69500000 0.51500000 4.87000000 0.65500000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 4.73000000 0.65500000 4.87000000 2.27000000 ;
+        RECT 3.69500000 2.27000000 4.87000000 2.41000000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 0 3.42 ) ( 5.76 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.76 3.42 ) ;
+      RECT ( 0 3.09 ) ( 5.76 3.25 ) ;
+      RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
+      RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
+      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
+      RECT ( 4.64 2.99 ) ( 4.97 3.09 ) ;
+      RECT ( 4.64 2.82 ) ( 4.72 2.99 ) ;
+      RECT ( 4.89 2.82 ) ( 4.97 2.99 ) ;
+      RECT ( 4.64 2.74 ) ( 4.97 2.82 ) ;
+      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
+      RECT ( 3.68 2.43 ) ( 4.01 2.51 ) ;
+      RECT ( 3.68 2.26 ) ( 3.76 2.43 ) ;
+      RECT ( 3.93 2.26 ) ( 4.01 2.43 ) ;
+      RECT ( 3.68 2.18 ) ( 4.01 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 4.18 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.31 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.92 ) ( 4.24 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.18 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
+      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
+      RECT ( 3.68 0.67 ) ( 4.01 0.75 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
+      RECT ( 1.76 0.51 ) ( 2.09 0.59 ) ;
+      RECT ( 1.76 0.34 ) ( 1.84 0.51 ) ;
+      RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
+      RECT ( 3.68 0.5 ) ( 3.76 0.67 ) ;
+      RECT ( 3.93 0.5 ) ( 4.01 0.67 ) ;
+      RECT ( 3.68 0.42 ) ( 4.01 0.5 ) ;
+      RECT ( 4.64 0.51 ) ( 4.97 0.59 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
+      RECT ( 4.64 0.34 ) ( 4.72 0.51 ) ;
+      RECT ( 4.89 0.34 ) ( 4.97 0.51 ) ;
+      RECT ( 4.64 0.24 ) ( 4.97 0.34 ) ;
+      RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.76 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 -0.09 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.42 ) ( 5.76 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.76 3.42 ) ;
+      RECT ( 0 3.09 ) ( 5.76 3.25 ) ;
+      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
+      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
+      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
+      RECT ( 4.66 2.99 ) ( 4.95 3.09 ) ;
+      RECT ( 4.66 2.82 ) ( 4.72 2.99 ) ;
+      RECT ( 4.89 2.82 ) ( 4.95 2.99 ) ;
+      RECT ( 4.66 2.76 ) ( 4.95 2.82 ) ;
+      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
+      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
+      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
+      RECT ( 3.7 2.43 ) ( 3.99 2.49 ) ;
+      RECT ( 3.7 2.26 ) ( 3.76 2.43 ) ;
+      RECT ( 3.93 2.41 ) ( 3.99 2.43 ) ;
+      RECT ( 3.93 2.27 ) ( 4.87 2.41 ) ;
+      RECT ( 3.93 2.26 ) ( 3.99 2.27 ) ;
+      RECT ( 3.7 2.2 ) ( 3.99 2.26 ) ;
+      RECT ( 0.65 1.06 ) ( 0.79 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.54 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.48 ) ( 1.59 1.54 ) ;
+      RECT ( 1.3 1.31 ) ( 1.36 1.48 ) ;
+      RECT ( 1.53 1.31 ) ( 1.59 1.48 ) ;
+      RECT ( 1.3 1.25 ) ( 1.59 1.31 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 1.06 ) ( 2.8 1.08 ) ;
+      RECT ( 0.65 0.92 ) ( 2.8 1.06 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 0.92 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
+      RECT ( 2.97 1.06 ) ( 3.03 1.08 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 2.97 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 0.92 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
+      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 3.7 0.67 ) ( 3.99 0.73 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
+      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
+      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
+      RECT ( 3.7 0.5 ) ( 3.76 0.67 ) ;
+      RECT ( 3.93 0.66 ) ( 3.99 0.67 ) ;
+      RECT ( 4.73 0.66 ) ( 4.87 2.27 ) ;
+      RECT ( 3.93 0.52 ) ( 4.87 0.66 ) ;
+      RECT ( 3.93 0.5 ) ( 3.99 0.52 ) ;
+      RECT ( 3.7 0.44 ) ( 3.99 0.5 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
+      RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.76 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 -0.09 ) ;
+
+  end
+END BUFX4
diff --git a/cells/lef/BUFX4.lef.temp b/cells/lef/BUFX4.lef.temp
new file mode 100644
index 0000000..e445ba4
--- /dev/null
+++ b/cells/lef/BUFX4.lef.temp
@@ -0,0 +1,64 @@
+MACRO BUFX4
+ CLASS CORE ;
+ FOREIGN BUFX4 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 3.69500000 0.51500000 4.87000000 0.65500000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 4.73000000 0.65500000 4.87000000 2.27000000 ;
+        RECT 3.69500000 2.27000000 4.87000000 2.41000000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+END BUFX4
diff --git a/cells/lef/CLKBUF1.lef b/cells/lef/CLKBUF1.lef
new file mode 100644
index 0000000..fd2c8f7
--- /dev/null
+++ b/cells/lef/CLKBUF1.lef
@@ -0,0 +1,343 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO CLKBUF1
+  CLASS CORE ;
+  FOREIGN CLKBUF1 ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 12.960 BY 3.330 ;
+  SYMMETRY X Y R90 ;
+  SITE unit ;
+  PIN vdd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 3.090 12.960 3.570 ;
+        RECT 0.580 2.990 0.870 3.090 ;
+        RECT 0.580 2.820 0.640 2.990 ;
+        RECT 0.810 2.820 0.870 2.990 ;
+        RECT 0.580 2.760 0.870 2.820 ;
+        RECT 3.220 2.990 3.510 3.090 ;
+        RECT 3.220 2.820 3.280 2.990 ;
+        RECT 3.450 2.820 3.510 2.990 ;
+        RECT 3.220 2.760 3.510 2.820 ;
+        RECT 6.100 2.990 6.390 3.090 ;
+        RECT 6.100 2.820 6.160 2.990 ;
+        RECT 6.330 2.820 6.390 2.990 ;
+        RECT 6.100 2.760 6.390 2.820 ;
+        RECT 8.980 2.990 9.270 3.090 ;
+        RECT 8.980 2.820 9.040 2.990 ;
+        RECT 9.210 2.820 9.270 2.990 ;
+        RECT 8.980 2.760 9.270 2.820 ;
+        RECT 11.860 2.990 12.150 3.090 ;
+        RECT 11.860 2.820 11.920 2.990 ;
+        RECT 12.090 2.820 12.150 2.990 ;
+        RECT 11.860 2.760 12.150 2.820 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.000 3.090 12.960 3.570 ;
+        RECT 0.560 2.990 0.890 3.090 ;
+        RECT 0.560 2.820 0.640 2.990 ;
+        RECT 0.810 2.820 0.890 2.990 ;
+        RECT 0.560 2.740 0.890 2.820 ;
+        RECT 3.200 2.990 3.530 3.090 ;
+        RECT 3.200 2.820 3.280 2.990 ;
+        RECT 3.450 2.820 3.530 2.990 ;
+        RECT 3.200 2.740 3.530 2.820 ;
+        RECT 6.080 2.990 6.410 3.090 ;
+        RECT 6.080 2.820 6.160 2.990 ;
+        RECT 6.330 2.820 6.410 2.990 ;
+        RECT 6.080 2.740 6.410 2.820 ;
+        RECT 8.960 2.990 9.290 3.090 ;
+        RECT 8.960 2.820 9.040 2.990 ;
+        RECT 9.210 2.820 9.290 2.990 ;
+        RECT 8.960 2.740 9.290 2.820 ;
+        RECT 11.840 2.990 12.170 3.090 ;
+        RECT 11.840 2.820 11.920 2.990 ;
+        RECT 12.090 2.820 12.170 2.990 ;
+        RECT 11.840 2.740 12.170 2.820 ;
+    END
+  END vdd
+  PIN gnd
+    DIRECTION INOUT ;
+    USE GROUND ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.580 0.510 0.870 0.570 ;
+        RECT 0.580 0.340 0.640 0.510 ;
+        RECT 0.810 0.340 0.870 0.510 ;
+        RECT 0.580 0.240 0.870 0.340 ;
+        RECT 3.220 0.510 3.510 0.570 ;
+        RECT 3.220 0.340 3.280 0.510 ;
+        RECT 3.450 0.340 3.510 0.510 ;
+        RECT 3.220 0.240 3.510 0.340 ;
+        RECT 6.100 0.510 6.390 0.570 ;
+        RECT 6.100 0.340 6.160 0.510 ;
+        RECT 6.330 0.340 6.390 0.510 ;
+        RECT 6.100 0.240 6.390 0.340 ;
+        RECT 8.980 0.510 9.270 0.570 ;
+        RECT 8.980 0.340 9.040 0.510 ;
+        RECT 9.210 0.340 9.270 0.510 ;
+        RECT 8.980 0.240 9.270 0.340 ;
+        RECT 11.860 0.510 12.150 0.570 ;
+        RECT 11.860 0.340 11.920 0.510 ;
+        RECT 12.090 0.340 12.150 0.510 ;
+        RECT 11.860 0.240 12.150 0.340 ;
+        RECT 0.000 -0.240 12.960 0.240 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.560 0.510 0.890 0.590 ;
+        RECT 0.560 0.340 0.640 0.510 ;
+        RECT 0.810 0.340 0.890 0.510 ;
+        RECT 0.560 0.240 0.890 0.340 ;
+        RECT 3.200 0.510 3.530 0.590 ;
+        RECT 3.200 0.340 3.280 0.510 ;
+        RECT 3.450 0.340 3.530 0.510 ;
+        RECT 3.200 0.240 3.530 0.340 ;
+        RECT 6.080 0.510 6.410 0.590 ;
+        RECT 6.080 0.340 6.160 0.510 ;
+        RECT 6.330 0.340 6.410 0.510 ;
+        RECT 6.080 0.240 6.410 0.340 ;
+        RECT 8.960 0.510 9.290 0.590 ;
+        RECT 8.960 0.340 9.040 0.510 ;
+        RECT 9.210 0.340 9.290 0.510 ;
+        RECT 8.960 0.240 9.290 0.340 ;
+        RECT 11.840 0.510 12.170 0.590 ;
+        RECT 11.840 0.340 11.920 0.510 ;
+        RECT 12.090 0.340 12.170 0.510 ;
+        RECT 11.840 0.240 12.170 0.340 ;
+        RECT 0.000 -0.240 12.960 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 10.420 2.200 10.710 2.490 ;
+        RECT 10.490 1.540 10.630 2.200 ;
+        RECT 10.420 1.250 10.710 1.540 ;
+    END
+  END Y
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.370 2.680 2.950 2.820 ;
+        RECT 1.370 2.070 1.510 2.680 ;
+        RECT 2.810 2.070 2.950 2.680 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END A
+  OBS
+      LAYER li1 ;
+        RECT 1.760 2.430 2.090 2.510 ;
+        RECT 1.760 2.260 1.840 2.430 ;
+        RECT 2.010 2.260 2.090 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 1.780 2.180 2.090 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 7.520 2.430 7.850 2.510 ;
+        RECT 7.520 2.260 7.600 2.430 ;
+        RECT 7.770 2.260 7.850 2.430 ;
+        RECT 10.400 2.430 10.730 2.510 ;
+        RECT 10.400 2.260 10.480 2.430 ;
+        RECT 10.650 2.260 10.730 2.430 ;
+        RECT 7.520 2.180 7.850 2.260 ;
+        RECT 10.420 2.180 10.730 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 7.040 2.010 7.350 2.090 ;
+        RECT 8.480 2.010 8.810 2.090 ;
+        RECT 7.040 1.840 7.120 2.010 ;
+        RECT 7.290 1.840 7.370 2.010 ;
+        RECT 7.040 1.760 7.370 1.840 ;
+        RECT 8.480 1.840 8.560 2.010 ;
+        RECT 8.730 1.840 8.810 2.010 ;
+        RECT 8.480 1.760 8.810 1.840 ;
+        RECT 9.920 2.010 10.250 2.090 ;
+        RECT 9.920 1.840 10.000 2.010 ;
+        RECT 10.170 1.840 10.250 2.010 ;
+        RECT 9.920 1.760 10.250 1.840 ;
+        RECT 11.360 2.010 11.690 2.090 ;
+        RECT 11.360 1.840 11.440 2.010 ;
+        RECT 11.610 1.840 11.690 2.010 ;
+        RECT 11.360 1.760 11.690 1.840 ;
+        RECT 2.800 1.160 2.970 1.760 ;
+        RECT 5.680 1.160 5.850 1.760 ;
+        RECT 8.560 1.160 8.730 1.760 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.920 4.490 1.080 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 4.410 0.910 4.470 0.920 ;
+        RECT 4.160 0.830 4.470 0.910 ;
+        RECT 5.600 0.910 5.680 1.080 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.600 0.830 5.930 0.910 ;
+        RECT 7.040 1.080 7.370 1.160 ;
+        RECT 7.040 0.910 7.120 1.080 ;
+        RECT 7.290 0.920 7.370 1.080 ;
+        RECT 8.480 1.080 8.810 1.160 ;
+        RECT 7.290 0.910 7.350 0.920 ;
+        RECT 7.040 0.830 7.350 0.910 ;
+        RECT 8.480 0.910 8.560 1.080 ;
+        RECT 8.730 0.910 8.810 1.080 ;
+        RECT 8.480 0.830 8.810 0.910 ;
+        RECT 9.920 1.080 10.250 1.160 ;
+        RECT 9.920 0.910 10.000 1.080 ;
+        RECT 10.170 0.920 10.250 1.080 ;
+        RECT 10.170 0.910 10.230 0.920 ;
+        RECT 9.920 0.830 10.230 0.910 ;
+        RECT 10.480 0.750 10.650 1.310 ;
+        RECT 11.360 1.080 11.690 1.160 ;
+        RECT 11.360 0.910 11.440 1.080 ;
+        RECT 11.610 0.910 11.690 1.080 ;
+        RECT 11.360 0.830 11.690 0.910 ;
+        RECT 1.780 0.670 2.090 0.750 ;
+        RECT 1.780 0.660 1.840 0.670 ;
+        RECT 1.760 0.500 1.840 0.660 ;
+        RECT 2.010 0.500 2.090 0.670 ;
+        RECT 1.760 0.420 2.090 0.500 ;
+        RECT 4.640 0.670 4.970 0.750 ;
+        RECT 4.640 0.500 4.720 0.670 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 7.520 0.670 7.850 0.750 ;
+        RECT 7.520 0.500 7.600 0.670 ;
+        RECT 7.770 0.500 7.850 0.670 ;
+        RECT 7.520 0.420 7.850 0.500 ;
+        RECT 10.400 0.670 10.730 0.750 ;
+        RECT 10.400 0.500 10.480 0.670 ;
+        RECT 10.650 0.500 10.730 0.670 ;
+        RECT 10.400 0.420 10.730 0.500 ;
+      LAYER met1 ;
+        RECT 4.250 2.680 5.830 2.820 ;
+        RECT 1.780 2.430 2.070 2.490 ;
+        RECT 1.780 2.260 1.840 2.430 ;
+        RECT 2.010 2.260 2.070 2.430 ;
+        RECT 1.780 2.200 2.070 2.260 ;
+        RECT 1.850 1.060 1.990 2.200 ;
+        RECT 4.250 2.070 4.390 2.680 ;
+        RECT 4.660 2.430 4.950 2.490 ;
+        RECT 4.660 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.950 2.430 ;
+        RECT 4.660 2.200 4.950 2.260 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 1.850 0.920 4.240 1.060 ;
+        RECT 1.850 0.730 1.990 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 4.730 1.060 4.870 2.200 ;
+        RECT 5.690 2.070 5.830 2.680 ;
+        RECT 7.130 2.680 8.710 2.820 ;
+        RECT 7.130 2.070 7.270 2.680 ;
+        RECT 7.540 2.430 7.830 2.490 ;
+        RECT 7.540 2.260 7.600 2.430 ;
+        RECT 7.770 2.260 7.830 2.430 ;
+        RECT 7.540 2.200 7.830 2.260 ;
+        RECT 5.620 2.010 5.910 2.070 ;
+        RECT 5.620 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.910 2.010 ;
+        RECT 5.620 1.780 5.910 1.840 ;
+        RECT 7.060 2.010 7.350 2.070 ;
+        RECT 7.060 1.840 7.120 2.010 ;
+        RECT 7.290 1.840 7.350 2.010 ;
+        RECT 7.060 1.780 7.350 1.840 ;
+        RECT 7.130 1.140 7.270 1.780 ;
+        RECT 7.060 1.080 7.350 1.140 ;
+        RECT 7.060 1.060 7.120 1.080 ;
+        RECT 4.730 0.920 7.120 1.060 ;
+        RECT 4.730 0.730 4.870 0.920 ;
+        RECT 7.060 0.910 7.120 0.920 ;
+        RECT 7.290 0.910 7.350 1.080 ;
+        RECT 7.060 0.850 7.350 0.910 ;
+        RECT 7.610 1.060 7.750 2.200 ;
+        RECT 8.570 2.070 8.710 2.680 ;
+        RECT 8.500 2.010 8.790 2.070 ;
+        RECT 8.500 1.840 8.560 2.010 ;
+        RECT 8.730 1.840 8.790 2.010 ;
+        RECT 8.500 1.780 8.790 1.840 ;
+        RECT 9.940 2.010 10.230 2.070 ;
+        RECT 9.940 1.840 10.000 2.010 ;
+        RECT 10.170 1.840 10.230 2.010 ;
+        RECT 9.940 1.780 10.230 1.840 ;
+        RECT 11.380 2.010 11.670 2.070 ;
+        RECT 11.380 1.840 11.440 2.010 ;
+        RECT 11.610 1.840 11.670 2.010 ;
+        RECT 11.380 1.780 11.670 1.840 ;
+        RECT 10.010 1.140 10.150 1.780 ;
+        RECT 11.450 1.140 11.590 1.780 ;
+        RECT 9.940 1.080 10.230 1.140 ;
+        RECT 9.940 1.060 10.000 1.080 ;
+        RECT 7.610 0.920 10.000 1.060 ;
+        RECT 7.610 0.730 7.750 0.920 ;
+        RECT 9.940 0.910 10.000 0.920 ;
+        RECT 10.170 1.060 10.230 1.080 ;
+        RECT 11.380 1.080 11.670 1.140 ;
+        RECT 11.380 1.060 11.440 1.080 ;
+        RECT 10.170 0.920 11.440 1.060 ;
+        RECT 10.170 0.910 10.230 0.920 ;
+        RECT 9.940 0.850 10.230 0.910 ;
+        RECT 11.380 0.910 11.440 0.920 ;
+        RECT 11.610 0.910 11.670 1.080 ;
+        RECT 11.380 0.850 11.670 0.910 ;
+        RECT 1.780 0.670 2.070 0.730 ;
+        RECT 1.780 0.500 1.840 0.670 ;
+        RECT 2.010 0.500 2.070 0.670 ;
+        RECT 1.780 0.440 2.070 0.500 ;
+        RECT 4.660 0.670 4.950 0.730 ;
+        RECT 4.660 0.500 4.720 0.670 ;
+        RECT 4.890 0.500 4.950 0.670 ;
+        RECT 4.660 0.440 4.950 0.500 ;
+        RECT 7.540 0.670 7.830 0.730 ;
+        RECT 7.540 0.500 7.600 0.670 ;
+        RECT 7.770 0.500 7.830 0.670 ;
+        RECT 7.540 0.440 7.830 0.500 ;
+  END
+END CLKBUF1
+END LIBRARY
+
diff --git a/cells/lef/CLKBUF1.lef.beforemagic b/cells/lef/CLKBUF1.lef.beforemagic
new file mode 100644
index 0000000..00750d0
--- /dev/null
+++ b/cells/lef/CLKBUF1.lef.beforemagic
@@ -0,0 +1,488 @@
+MACRO CLKBUF1
+ CLASS CORE ;
+ FOREIGN CLKBUF1 0 0 ;
+ SIZE 12.96 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN vdd
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+    END
+  END vdd
+
+  PIN gnd
+   DIRECTION INOUT ;
+   USE GROUND ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+    END
+  END gnd
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 10.41500000 1.25000000 10.70500000 1.54000000 ;
+        RECT 10.49000000 1.54000000 10.63000000 2.19500000 ;
+        RECT 10.41500000 2.19500000 10.70500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+        RECT 1.37000000 2.07000000 1.51000000 2.67500000 ;
+        RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+        RECT 1.37000000 2.67500000 2.95000000 2.81500000 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 0 3.42 ) ( 12.96 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.92 3.42 ) ;
+      RECT ( 6.09 3.25 ) ( 6.4 3.42 ) ;
+      RECT ( 6.57 3.25 ) ( 6.88 3.42 ) ;
+      RECT ( 7.05 3.25 ) ( 7.36 3.42 ) ;
+      RECT ( 7.53 3.25 ) ( 7.84 3.42 ) ;
+      RECT ( 8.01 3.25 ) ( 8.32 3.42 ) ;
+      RECT ( 8.49 3.25 ) ( 8.8 3.42 ) ;
+      RECT ( 8.97 3.25 ) ( 9.28 3.42 ) ;
+      RECT ( 9.45 3.25 ) ( 9.76 3.42 ) ;
+      RECT ( 9.93 3.25 ) ( 10.24 3.42 ) ;
+      RECT ( 10.41 3.25 ) ( 10.72 3.42 ) ;
+      RECT ( 10.89 3.25 ) ( 11.2 3.42 ) ;
+      RECT ( 11.37 3.25 ) ( 11.68 3.42 ) ;
+      RECT ( 11.85 3.25 ) ( 12.16 3.42 ) ;
+      RECT ( 12.33 3.25 ) ( 12.64 3.42 ) ;
+      RECT ( 12.81 3.25 ) ( 12.96 3.42 ) ;
+      RECT ( 0 3.09 ) ( 12.96 3.25 ) ;
+      RECT ( 0.56 2.99 ) ( 0.89 3.09 ) ;
+      RECT ( 0.56 2.82 ) ( 0.64 2.99 ) ;
+      RECT ( 0.81 2.82 ) ( 0.89 2.99 ) ;
+      RECT ( 0.56 2.74 ) ( 0.89 2.82 ) ;
+      RECT ( 3.2 2.99 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.82 ) ( 3.28 2.99 ) ;
+      RECT ( 3.45 2.82 ) ( 3.53 2.99 ) ;
+      RECT ( 3.2 2.74 ) ( 3.53 2.82 ) ;
+      RECT ( 6.08 2.99 ) ( 6.41 3.09 ) ;
+      RECT ( 6.08 2.82 ) ( 6.16 2.99 ) ;
+      RECT ( 6.33 2.82 ) ( 6.41 2.99 ) ;
+      RECT ( 6.08 2.74 ) ( 6.41 2.82 ) ;
+      RECT ( 8.96 2.99 ) ( 9.29 3.09 ) ;
+      RECT ( 8.96 2.82 ) ( 9.04 2.99 ) ;
+      RECT ( 9.21 2.82 ) ( 9.29 2.99 ) ;
+      RECT ( 8.96 2.74 ) ( 9.29 2.82 ) ;
+      RECT ( 11.84 2.99 ) ( 12.17 3.09 ) ;
+      RECT ( 11.84 2.82 ) ( 11.92 2.99 ) ;
+      RECT ( 12.09 2.82 ) ( 12.17 2.99 ) ;
+      RECT ( 11.84 2.74 ) ( 12.17 2.82 ) ;
+      RECT ( 1.76 2.43 ) ( 2.09 2.51 ) ;
+      RECT ( 1.76 2.26 ) ( 1.84 2.43 ) ;
+      RECT ( 2.01 2.26 ) ( 2.09 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 1.78 2.18 ) ( 2.09 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 7.52 2.43 ) ( 7.85 2.51 ) ;
+      RECT ( 7.52 2.26 ) ( 7.6 2.43 ) ;
+      RECT ( 7.77 2.26 ) ( 7.85 2.43 ) ;
+      RECT ( 10.4 2.43 ) ( 10.73 2.51 ) ;
+      RECT ( 10.4 2.26 ) ( 10.48 2.43 ) ;
+      RECT ( 10.65 2.26 ) ( 10.73 2.43 ) ;
+      RECT ( 7.52 2.18 ) ( 7.85 2.26 ) ;
+      RECT ( 10.42 2.18 ) ( 10.73 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 7.04 2.01 ) ( 7.35 2.09 ) ;
+      RECT ( 8.48 2.01 ) ( 8.81 2.09 ) ;
+      RECT ( 7.04 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.37 2.01 ) ;
+      RECT ( 7.04 1.76 ) ( 7.37 1.84 ) ;
+      RECT ( 8.48 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.73 1.84 ) ( 8.81 2.01 ) ;
+      RECT ( 8.48 1.76 ) ( 8.81 1.84 ) ;
+      RECT ( 9.92 2.01 ) ( 10.25 2.09 ) ;
+      RECT ( 9.92 1.84 ) ( 10 2.01 ) ;
+      RECT ( 10.17 1.84 ) ( 10.25 2.01 ) ;
+      RECT ( 9.92 1.76 ) ( 10.25 1.84 ) ;
+      RECT ( 11.36 2.01 ) ( 11.69 2.09 ) ;
+      RECT ( 11.36 1.84 ) ( 11.44 2.01 ) ;
+      RECT ( 11.61 1.84 ) ( 11.69 2.01 ) ;
+      RECT ( 11.36 1.76 ) ( 11.69 1.84 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.76 ) ;
+      RECT ( 5.68 1.16 ) ( 5.85 1.76 ) ;
+      RECT ( 8.56 1.16 ) ( 8.73 1.76 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
+      RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
+      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
+      RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
+      RECT ( 5.6 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 7.04 1.08 ) ( 7.37 1.16 ) ;
+      RECT ( 7.04 0.91 ) ( 7.12 1.08 ) ;
+      RECT ( 7.29 0.92 ) ( 7.37 1.08 ) ;
+      RECT ( 8.48 1.08 ) ( 8.81 1.16 ) ;
+      RECT ( 7.29 0.91 ) ( 7.35 0.92 ) ;
+      RECT ( 7.04 0.83 ) ( 7.35 0.91 ) ;
+      RECT ( 8.48 0.91 ) ( 8.56 1.08 ) ;
+      RECT ( 8.73 0.91 ) ( 8.81 1.08 ) ;
+      RECT ( 8.48 0.83 ) ( 8.81 0.91 ) ;
+      RECT ( 9.92 1.08 ) ( 10.25 1.16 ) ;
+      RECT ( 9.92 0.91 ) ( 10 1.08 ) ;
+      RECT ( 10.17 0.92 ) ( 10.25 1.08 ) ;
+      RECT ( 10.17 0.91 ) ( 10.23 0.92 ) ;
+      RECT ( 9.92 0.83 ) ( 10.23 0.91 ) ;
+      RECT ( 10.48 0.75 ) ( 10.65 1.31 ) ;
+      RECT ( 11.36 1.08 ) ( 11.69 1.16 ) ;
+      RECT ( 11.36 0.91 ) ( 11.44 1.08 ) ;
+      RECT ( 11.61 0.91 ) ( 11.69 1.08 ) ;
+      RECT ( 11.36 0.83 ) ( 11.69 0.91 ) ;
+      RECT ( 1.78 0.67 ) ( 2.09 0.75 ) ;
+      RECT ( 1.78 0.66 ) ( 1.84 0.67 ) ;
+      RECT ( 0.56 0.51 ) ( 0.89 0.59 ) ;
+      RECT ( 0.56 0.34 ) ( 0.64 0.51 ) ;
+      RECT ( 0.81 0.34 ) ( 0.89 0.51 ) ;
+      RECT ( 1.76 0.5 ) ( 1.84 0.66 ) ;
+      RECT ( 2.01 0.5 ) ( 2.09 0.67 ) ;
+      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 1.76 0.42 ) ( 2.09 0.5 ) ;
+      RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
+      RECT ( 0.56 0.24 ) ( 0.89 0.34 ) ;
+      RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
+      RECT ( 3.45 0.34 ) ( 3.53 0.51 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 7.52 0.67 ) ( 7.85 0.75 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 6.08 0.51 ) ( 6.41 0.59 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
+      RECT ( 6.08 0.34 ) ( 6.16 0.51 ) ;
+      RECT ( 6.33 0.34 ) ( 6.41 0.51 ) ;
+      RECT ( 7.52 0.5 ) ( 7.6 0.67 ) ;
+      RECT ( 7.77 0.5 ) ( 7.85 0.67 ) ;
+      RECT ( 10.4 0.67 ) ( 10.73 0.75 ) ;
+      RECT ( 7.52 0.42 ) ( 7.85 0.5 ) ;
+      RECT ( 8.96 0.51 ) ( 9.29 0.59 ) ;
+      RECT ( 6.08 0.24 ) ( 6.41 0.34 ) ;
+      RECT ( 8.96 0.34 ) ( 9.04 0.51 ) ;
+      RECT ( 9.21 0.34 ) ( 9.29 0.51 ) ;
+      RECT ( 10.4 0.5 ) ( 10.48 0.67 ) ;
+      RECT ( 10.65 0.5 ) ( 10.73 0.67 ) ;
+      RECT ( 10.4 0.42 ) ( 10.73 0.5 ) ;
+      RECT ( 11.84 0.51 ) ( 12.17 0.59 ) ;
+      RECT ( 8.96 0.24 ) ( 9.29 0.34 ) ;
+      RECT ( 11.84 0.34 ) ( 11.92 0.51 ) ;
+      RECT ( 12.09 0.34 ) ( 12.17 0.51 ) ;
+      RECT ( 11.84 0.24 ) ( 12.17 0.34 ) ;
+      RECT ( 0 0.09 ) ( 12.96 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.92 0.09 ) ;
+      RECT ( 6.09 -0.09 ) ( 6.4 0.09 ) ;
+      RECT ( 6.57 -0.09 ) ( 6.88 0.09 ) ;
+      RECT ( 7.05 -0.09 ) ( 7.36 0.09 ) ;
+      RECT ( 7.53 -0.09 ) ( 7.84 0.09 ) ;
+      RECT ( 8.01 -0.09 ) ( 8.32 0.09 ) ;
+      RECT ( 8.49 -0.09 ) ( 8.8 0.09 ) ;
+      RECT ( 8.97 -0.09 ) ( 9.28 0.09 ) ;
+      RECT ( 9.45 -0.09 ) ( 9.76 0.09 ) ;
+      RECT ( 9.93 -0.09 ) ( 10.24 0.09 ) ;
+      RECT ( 10.41 -0.09 ) ( 10.72 0.09 ) ;
+      RECT ( 10.89 -0.09 ) ( 11.2 0.09 ) ;
+      RECT ( 11.37 -0.09 ) ( 11.68 0.09 ) ;
+      RECT ( 11.85 -0.09 ) ( 12.16 0.09 ) ;
+      RECT ( 12.33 -0.09 ) ( 12.64 0.09 ) ;
+      RECT ( 12.81 -0.09 ) ( 12.96 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 12.96 -0.09 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.42 ) ( 12.96 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.92 3.42 ) ;
+      RECT ( 6.09 3.25 ) ( 6.4 3.42 ) ;
+      RECT ( 6.57 3.25 ) ( 6.88 3.42 ) ;
+      RECT ( 7.05 3.25 ) ( 7.36 3.42 ) ;
+      RECT ( 7.53 3.25 ) ( 7.84 3.42 ) ;
+      RECT ( 8.01 3.25 ) ( 8.32 3.42 ) ;
+      RECT ( 8.49 3.25 ) ( 8.8 3.42 ) ;
+      RECT ( 8.97 3.25 ) ( 9.28 3.42 ) ;
+      RECT ( 9.45 3.25 ) ( 9.76 3.42 ) ;
+      RECT ( 9.93 3.25 ) ( 10.24 3.42 ) ;
+      RECT ( 10.41 3.25 ) ( 10.72 3.42 ) ;
+      RECT ( 10.89 3.25 ) ( 11.2 3.42 ) ;
+      RECT ( 11.37 3.25 ) ( 11.68 3.42 ) ;
+      RECT ( 11.85 3.25 ) ( 12.16 3.42 ) ;
+      RECT ( 12.33 3.25 ) ( 12.64 3.42 ) ;
+      RECT ( 12.81 3.25 ) ( 12.96 3.42 ) ;
+      RECT ( 0 3.09 ) ( 12.96 3.25 ) ;
+      RECT ( 0.58 2.99 ) ( 0.87 3.09 ) ;
+      RECT ( 0.58 2.82 ) ( 0.64 2.99 ) ;
+      RECT ( 0.81 2.82 ) ( 0.87 2.99 ) ;
+      RECT ( 3.22 2.99 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.82 ) ( 3.28 2.99 ) ;
+      RECT ( 3.45 2.82 ) ( 3.51 2.99 ) ;
+      RECT ( 6.1 2.99 ) ( 6.39 3.09 ) ;
+      RECT ( 6.1 2.82 ) ( 6.16 2.99 ) ;
+      RECT ( 6.33 2.82 ) ( 6.39 2.99 ) ;
+      RECT ( 8.98 2.99 ) ( 9.27 3.09 ) ;
+      RECT ( 8.98 2.82 ) ( 9.04 2.99 ) ;
+      RECT ( 9.21 2.82 ) ( 9.27 2.99 ) ;
+      RECT ( 0.58 2.76 ) ( 0.87 2.82 ) ;
+      RECT ( 1.37 2.68 ) ( 2.95 2.82 ) ;
+      RECT ( 3.22 2.76 ) ( 3.51 2.82 ) ;
+      RECT ( 1.37 2.07 ) ( 1.51 2.68 ) ;
+      RECT ( 1.78 2.43 ) ( 2.07 2.49 ) ;
+      RECT ( 1.78 2.26 ) ( 1.84 2.43 ) ;
+      RECT ( 2.01 2.26 ) ( 2.07 2.43 ) ;
+      RECT ( 1.78 2.2 ) ( 2.07 2.26 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 1.85 1.06 ) ( 1.99 2.2 ) ;
+      RECT ( 2.81 2.07 ) ( 2.95 2.68 ) ;
+      RECT ( 4.25 2.68 ) ( 5.83 2.82 ) ;
+      RECT ( 6.1 2.76 ) ( 6.39 2.82 ) ;
+      RECT ( 4.25 2.07 ) ( 4.39 2.68 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 1.85 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 1.85 0.73 ) ( 1.99 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 1.06 ) ( 4.87 2.2 ) ;
+      RECT ( 5.69 2.07 ) ( 5.83 2.68 ) ;
+      RECT ( 7.13 2.68 ) ( 8.71 2.82 ) ;
+      RECT ( 8.98 2.76 ) ( 9.27 2.82 ) ;
+      RECT ( 11.86 2.99 ) ( 12.15 3.09 ) ;
+      RECT ( 11.86 2.82 ) ( 11.92 2.99 ) ;
+      RECT ( 12.09 2.82 ) ( 12.15 2.99 ) ;
+      RECT ( 11.86 2.76 ) ( 12.15 2.82 ) ;
+      RECT ( 7.13 2.07 ) ( 7.27 2.68 ) ;
+      RECT ( 7.54 2.43 ) ( 7.83 2.49 ) ;
+      RECT ( 7.54 2.26 ) ( 7.6 2.43 ) ;
+      RECT ( 7.77 2.26 ) ( 7.83 2.43 ) ;
+      RECT ( 7.54 2.2 ) ( 7.83 2.26 ) ;
+      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
+      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
+      RECT ( 7.06 2.01 ) ( 7.35 2.07 ) ;
+      RECT ( 7.06 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.35 2.01 ) ;
+      RECT ( 7.06 1.78 ) ( 7.35 1.84 ) ;
+      RECT ( 7.13 1.14 ) ( 7.27 1.78 ) ;
+      RECT ( 7.06 1.08 ) ( 7.35 1.14 ) ;
+      RECT ( 7.06 1.06 ) ( 7.12 1.08 ) ;
+      RECT ( 4.73 0.92 ) ( 7.12 1.06 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 0.92 ) ;
+      RECT ( 7.06 0.91 ) ( 7.12 0.92 ) ;
+      RECT ( 7.29 0.91 ) ( 7.35 1.08 ) ;
+      RECT ( 7.06 0.85 ) ( 7.35 0.91 ) ;
+      RECT ( 7.61 1.06 ) ( 7.75 2.2 ) ;
+      RECT ( 8.57 2.07 ) ( 8.71 2.68 ) ;
+      RECT ( 10.42 2.43 ) ( 10.71 2.49 ) ;
+      RECT ( 10.42 2.26 ) ( 10.48 2.43 ) ;
+      RECT ( 10.65 2.26 ) ( 10.71 2.43 ) ;
+      RECT ( 10.42 2.2 ) ( 10.71 2.26 ) ;
+      RECT ( 8.5 2.01 ) ( 8.79 2.07 ) ;
+      RECT ( 8.5 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.73 1.84 ) ( 8.79 2.01 ) ;
+      RECT ( 8.5 1.78 ) ( 8.79 1.84 ) ;
+      RECT ( 9.94 2.01 ) ( 10.23 2.07 ) ;
+      RECT ( 9.94 1.84 ) ( 10 2.01 ) ;
+      RECT ( 10.17 1.84 ) ( 10.23 2.01 ) ;
+      RECT ( 9.94 1.78 ) ( 10.23 1.84 ) ;
+      RECT ( 10.01 1.14 ) ( 10.15 1.78 ) ;
+      RECT ( 10.49 1.54 ) ( 10.63 2.2 ) ;
+      RECT ( 11.38 2.01 ) ( 11.67 2.07 ) ;
+      RECT ( 11.38 1.84 ) ( 11.44 2.01 ) ;
+      RECT ( 11.61 1.84 ) ( 11.67 2.01 ) ;
+      RECT ( 11.38 1.78 ) ( 11.67 1.84 ) ;
+      RECT ( 10.42 1.48 ) ( 10.71 1.54 ) ;
+      RECT ( 10.42 1.31 ) ( 10.48 1.48 ) ;
+      RECT ( 10.65 1.31 ) ( 10.71 1.48 ) ;
+      RECT ( 10.42 1.25 ) ( 10.71 1.31 ) ;
+      RECT ( 11.45 1.14 ) ( 11.59 1.78 ) ;
+      RECT ( 9.94 1.08 ) ( 10.23 1.14 ) ;
+      RECT ( 9.94 1.06 ) ( 10 1.08 ) ;
+      RECT ( 7.61 0.92 ) ( 10 1.06 ) ;
+      RECT ( 7.61 0.73 ) ( 7.75 0.92 ) ;
+      RECT ( 9.94 0.91 ) ( 10 0.92 ) ;
+      RECT ( 10.17 1.06 ) ( 10.23 1.08 ) ;
+      RECT ( 11.38 1.08 ) ( 11.67 1.14 ) ;
+      RECT ( 11.38 1.06 ) ( 11.44 1.08 ) ;
+      RECT ( 10.17 0.92 ) ( 11.44 1.06 ) ;
+      RECT ( 10.17 0.91 ) ( 10.23 0.92 ) ;
+      RECT ( 9.94 0.85 ) ( 10.23 0.91 ) ;
+      RECT ( 11.38 0.91 ) ( 11.44 0.92 ) ;
+      RECT ( 11.61 0.91 ) ( 11.67 1.08 ) ;
+      RECT ( 11.38 0.85 ) ( 11.67 0.91 ) ;
+      RECT ( 1.78 0.67 ) ( 2.07 0.73 ) ;
+      RECT ( 0.58 0.51 ) ( 0.87 0.57 ) ;
+      RECT ( 0.58 0.34 ) ( 0.64 0.51 ) ;
+      RECT ( 0.81 0.34 ) ( 0.87 0.51 ) ;
+      RECT ( 1.78 0.5 ) ( 1.84 0.67 ) ;
+      RECT ( 2.01 0.5 ) ( 2.07 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 1.78 0.44 ) ( 2.07 0.5 ) ;
+      RECT ( 3.22 0.51 ) ( 3.51 0.57 ) ;
+      RECT ( 0.58 0.24 ) ( 0.87 0.34 ) ;
+      RECT ( 3.22 0.34 ) ( 3.28 0.51 ) ;
+      RECT ( 3.45 0.34 ) ( 3.51 0.51 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 7.54 0.67 ) ( 7.83 0.73 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 6.1 0.51 ) ( 6.39 0.57 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.34 ) ;
+      RECT ( 6.1 0.34 ) ( 6.16 0.51 ) ;
+      RECT ( 6.33 0.34 ) ( 6.39 0.51 ) ;
+      RECT ( 7.54 0.5 ) ( 7.6 0.67 ) ;
+      RECT ( 7.77 0.5 ) ( 7.83 0.67 ) ;
+      RECT ( 7.54 0.44 ) ( 7.83 0.5 ) ;
+      RECT ( 8.98 0.51 ) ( 9.27 0.57 ) ;
+      RECT ( 6.1 0.24 ) ( 6.39 0.34 ) ;
+      RECT ( 8.98 0.34 ) ( 9.04 0.51 ) ;
+      RECT ( 9.21 0.34 ) ( 9.27 0.51 ) ;
+      RECT ( 8.98 0.24 ) ( 9.27 0.34 ) ;
+      RECT ( 11.86 0.51 ) ( 12.15 0.57 ) ;
+      RECT ( 11.86 0.34 ) ( 11.92 0.51 ) ;
+      RECT ( 12.09 0.34 ) ( 12.15 0.51 ) ;
+      RECT ( 11.86 0.24 ) ( 12.15 0.34 ) ;
+      RECT ( 0 0.09 ) ( 12.96 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.92 0.09 ) ;
+      RECT ( 6.09 -0.09 ) ( 6.4 0.09 ) ;
+      RECT ( 6.57 -0.09 ) ( 6.88 0.09 ) ;
+      RECT ( 7.05 -0.09 ) ( 7.36 0.09 ) ;
+      RECT ( 7.53 -0.09 ) ( 7.84 0.09 ) ;
+      RECT ( 8.01 -0.09 ) ( 8.32 0.09 ) ;
+      RECT ( 8.49 -0.09 ) ( 8.8 0.09 ) ;
+      RECT ( 8.97 -0.09 ) ( 9.28 0.09 ) ;
+      RECT ( 9.45 -0.09 ) ( 9.76 0.09 ) ;
+      RECT ( 9.93 -0.09 ) ( 10.24 0.09 ) ;
+      RECT ( 10.41 -0.09 ) ( 10.72 0.09 ) ;
+      RECT ( 10.89 -0.09 ) ( 11.2 0.09 ) ;
+      RECT ( 11.37 -0.09 ) ( 11.68 0.09 ) ;
+      RECT ( 11.85 -0.09 ) ( 12.16 0.09 ) ;
+      RECT ( 12.33 -0.09 ) ( 12.64 0.09 ) ;
+      RECT ( 12.81 -0.09 ) ( 12.96 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 12.96 -0.09 ) ;
+
+  end
+END CLKBUF1
diff --git a/cells/lef/CLKBUF1.lef.temp b/cells/lef/CLKBUF1.lef.temp
new file mode 100644
index 0000000..89d0d9e
--- /dev/null
+++ b/cells/lef/CLKBUF1.lef.temp
@@ -0,0 +1,64 @@
+MACRO CLKBUF1
+ CLASS CORE ;
+ FOREIGN CLKBUF1 0 0 ;
+ SIZE 12.96 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 10.41500000 1.25000000 10.70500000 1.54000000 ;
+        RECT 10.49000000 1.54000000 10.63000000 2.19500000 ;
+        RECT 10.41500000 2.19500000 10.70500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+        RECT 1.37000000 2.07000000 1.51000000 2.67500000 ;
+        RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+        RECT 1.37000000 2.67500000 2.95000000 2.81500000 ;
+    END
+  END A
+
+END CLKBUF1
diff --git a/cells/lef/INV.lef b/cells/lef/INV.lef
index 6a85050..a0e9cdf 100644
--- a/cells/lef/INV.lef
+++ b/cells/lef/INV.lef
@@ -16,18 +16,6 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 2.880 3.570 ;
-        RECT 1.780 2.990 2.070 3.090 ;
-        RECT 1.780 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.070 2.990 ;
-        RECT 1.780 2.760 2.070 2.820 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 0.000 3.090 2.880 3.570 ;
-        RECT 1.760 2.990 2.090 3.090 ;
-        RECT 1.760 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.090 2.990 ;
-        RECT 1.760 2.740 2.090 2.820 ;
     END
   END vdd
   PIN gnd
@@ -36,18 +24,6 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.510 2.070 0.570 ;
-        RECT 1.780 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.070 0.510 ;
-        RECT 1.780 0.240 2.070 0.340 ;
-        RECT 0.000 -0.240 2.880 0.240 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 1.760 0.510 2.090 0.590 ;
-        RECT 1.760 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.090 0.510 ;
-        RECT 1.760 0.240 2.090 0.340 ;
         RECT 0.000 -0.240 2.880 0.240 ;
     END
   END gnd
@@ -75,22 +51,14 @@
   END A
   OBS
       LAYER li1 ;
-        RECT 0.560 2.430 0.890 2.510 ;
-        RECT 0.560 2.260 0.640 2.430 ;
-        RECT 0.810 2.260 0.890 2.430 ;
-        RECT 0.560 2.180 0.890 2.260 ;
-        RECT 1.280 2.010 1.610 2.090 ;
-        RECT 1.280 1.840 1.360 2.010 ;
-        RECT 1.530 1.840 1.610 2.010 ;
-        RECT 1.280 1.760 1.610 1.840 ;
-        RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.910 1.360 1.080 ;
-        RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.280 0.830 1.610 0.910 ;
-        RECT 0.560 0.670 0.890 0.750 ;
-        RECT 0.560 0.500 0.640 0.670 ;
-        RECT 0.810 0.500 0.890 0.670 ;
-        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 0.000 3.090 2.880 3.570 ;
+        RECT 1.760 2.740 2.090 3.090 ;
+        RECT 0.560 2.180 0.890 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 0.560 0.420 0.890 0.750 ;
+        RECT 1.760 0.240 2.090 0.590 ;
+        RECT 0.000 -0.240 2.880 0.240 ;
   END
 END INV
 END LIBRARY
diff --git a/cells/lef/INV.lef.beforemagic b/cells/lef/INV.lef.beforemagic
index 070a322..06ac30d 100644
--- a/cells/lef/INV.lef.beforemagic
+++ b/cells/lef/INV.lef.beforemagic
@@ -59,94 +59,17 @@
 
 
   OBS
-    LAYER locali ;
-      RECT ( 0 3.42 ) ( 2.88 3.57 ) ;
-      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
-      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
-      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
-      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
-      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
-      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
-      RECT ( 2.73 3.25 ) ( 2.88 3.42 ) ;
-      RECT ( 0 3.09 ) ( 2.88 3.25 ) ;
-      RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
-      RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
-      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
-      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
-      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
-      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
-      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
-      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
-      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
-      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
-      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
-      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
-      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
-      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
-      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
-      RECT ( 1.76 0.51 ) ( 2.09 0.59 ) ;
-      RECT ( 1.76 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
-      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
-      RECT ( 0 0.09 ) ( 2.88 0.24 ) ;
-      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
-      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
-      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
-      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
-      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
-      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
-      RECT ( 2.73 -0.09 ) ( 2.88 0.09 ) ;
-      RECT ( 0 -0.24 ) ( 2.88 -0.09 ) ;
-    LAYER metal1 ;
-      RECT ( 0 3.42 ) ( 2.88 3.57 ) ;
-      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
-      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
-      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
-      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
-      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
-      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
-      RECT ( 2.73 3.25 ) ( 2.88 3.42 ) ;
-      RECT ( 0 3.09 ) ( 2.88 3.25 ) ;
-      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
-      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
-      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
-      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
-      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
-      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
-      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
-      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
-      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
-      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
-      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
-      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
-      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
-      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
-      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
-      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
-      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
-      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
-      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
-      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
-      RECT ( 0 0.09 ) ( 2.88 0.24 ) ;
-      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
-      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
-      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
-      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
-      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
-      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
-      RECT ( 2.73 -0.09 ) ( 2.88 0.09 ) ;
-      RECT ( 0 -0.24 ) ( 2.88 -0.09 ) ;
+    LAYER li1 ;
+      RECT ( 0 -0.24 ) ( 2.88 0.24 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.59 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.75 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 2.09 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.51 ) ;
+      RECT ( 1.76 2.74 ) ( 2.09 3.09 ) ;
+      RECT ( 0 3.09 ) ( 2.88 3.57 ) ;
+    LAYER li1 ;
+    LAYER li1 ;
 
   end
 END INV
diff --git a/cells/lef/INVX1.lef b/cells/lef/INVX1.lef
index 5c16f98..f37f375 100644
--- a/cells/lef/INVX1.lef
+++ b/cells/lef/INVX1.lef
@@ -16,18 +16,6 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 2.880 3.570 ;
-        RECT 1.780 2.990 2.070 3.090 ;
-        RECT 1.780 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.070 2.990 ;
-        RECT 1.780 2.760 2.070 2.820 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 0.000 3.090 2.880 3.570 ;
-        RECT 1.760 2.990 2.090 3.090 ;
-        RECT 1.760 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.090 2.990 ;
-        RECT 1.760 2.740 2.090 2.820 ;
     END
   END vdd
   PIN gnd
@@ -36,18 +24,6 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.510 2.070 0.570 ;
-        RECT 1.780 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.070 0.510 ;
-        RECT 1.780 0.240 2.070 0.340 ;
-        RECT 0.000 -0.240 2.880 0.240 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 1.760 0.510 2.090 0.590 ;
-        RECT 1.760 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.090 0.510 ;
-        RECT 1.760 0.240 2.090 0.340 ;
         RECT 0.000 -0.240 2.880 0.240 ;
     END
   END gnd
@@ -75,22 +51,14 @@
   END A
   OBS
       LAYER li1 ;
-        RECT 0.560 2.430 0.890 2.510 ;
-        RECT 0.560 2.260 0.640 2.430 ;
-        RECT 0.810 2.260 0.890 2.430 ;
-        RECT 0.560 2.180 0.890 2.260 ;
-        RECT 1.280 2.010 1.610 2.090 ;
-        RECT 1.280 1.840 1.360 2.010 ;
-        RECT 1.530 1.840 1.610 2.010 ;
-        RECT 1.280 1.760 1.610 1.840 ;
-        RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.910 1.360 1.080 ;
-        RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.280 0.830 1.610 0.910 ;
-        RECT 0.560 0.670 0.890 0.750 ;
-        RECT 0.560 0.500 0.640 0.670 ;
-        RECT 0.810 0.500 0.890 0.670 ;
-        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 0.000 3.090 2.880 3.570 ;
+        RECT 1.760 2.740 2.090 3.090 ;
+        RECT 0.560 2.180 0.890 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 0.560 0.420 0.890 0.750 ;
+        RECT 1.760 0.240 2.090 0.590 ;
+        RECT 0.000 -0.240 2.880 0.240 ;
   END
 END INVX1
 END LIBRARY
diff --git a/cells/lef/INVX1.lef.beforemagic b/cells/lef/INVX1.lef.beforemagic
index ea311b2..ced572e 100644
--- a/cells/lef/INVX1.lef.beforemagic
+++ b/cells/lef/INVX1.lef.beforemagic
@@ -59,94 +59,17 @@
 
 
   OBS
-    LAYER locali ;
-      RECT ( 0 3.42 ) ( 2.88 3.57 ) ;
-      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
-      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
-      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
-      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
-      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
-      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
-      RECT ( 2.73 3.25 ) ( 2.88 3.42 ) ;
-      RECT ( 0 3.09 ) ( 2.88 3.25 ) ;
-      RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
-      RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
-      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
-      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
-      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
-      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
-      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
-      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
-      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
-      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
-      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
-      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
-      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
-      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
-      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
-      RECT ( 1.76 0.51 ) ( 2.09 0.59 ) ;
-      RECT ( 1.76 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
-      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
-      RECT ( 0 0.09 ) ( 2.88 0.24 ) ;
-      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
-      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
-      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
-      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
-      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
-      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
-      RECT ( 2.73 -0.09 ) ( 2.88 0.09 ) ;
-      RECT ( 0 -0.24 ) ( 2.88 -0.09 ) ;
-    LAYER metal1 ;
-      RECT ( 0 3.42 ) ( 2.88 3.57 ) ;
-      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
-      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
-      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
-      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
-      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
-      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
-      RECT ( 2.73 3.25 ) ( 2.88 3.42 ) ;
-      RECT ( 0 3.09 ) ( 2.88 3.25 ) ;
-      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
-      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
-      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
-      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
-      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
-      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
-      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
-      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
-      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
-      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
-      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
-      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
-      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
-      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
-      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
-      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
-      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
-      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
-      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
-      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
-      RECT ( 0 0.09 ) ( 2.88 0.24 ) ;
-      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
-      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
-      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
-      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
-      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
-      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
-      RECT ( 2.73 -0.09 ) ( 2.88 0.09 ) ;
-      RECT ( 0 -0.24 ) ( 2.88 -0.09 ) ;
+    LAYER li1 ;
+      RECT ( 0 -0.24 ) ( 2.88 0.24 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.59 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.75 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 2.09 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.51 ) ;
+      RECT ( 1.76 2.74 ) ( 2.09 3.09 ) ;
+      RECT ( 0 3.09 ) ( 2.88 3.57 ) ;
+    LAYER li1 ;
+    LAYER li1 ;
 
   end
 END INVX1
diff --git a/cells/lef/INVX2.lef b/cells/lef/INVX2.lef
index 71d57bf..42ed925 100644
--- a/cells/lef/INVX2.lef
+++ b/cells/lef/INVX2.lef
@@ -16,18 +16,6 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 2.880 3.570 ;
-        RECT 1.780 2.990 2.070 3.090 ;
-        RECT 1.780 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.070 2.990 ;
-        RECT 1.780 2.760 2.070 2.820 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 0.000 3.090 2.880 3.570 ;
-        RECT 1.760 2.990 2.090 3.090 ;
-        RECT 1.760 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.090 2.990 ;
-        RECT 1.760 2.740 2.090 2.820 ;
     END
   END vdd
   PIN gnd
@@ -36,18 +24,6 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.510 2.070 0.570 ;
-        RECT 1.780 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.070 0.510 ;
-        RECT 1.780 0.240 2.070 0.340 ;
-        RECT 0.000 -0.240 2.880 0.240 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 1.760 0.510 2.090 0.590 ;
-        RECT 1.760 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.090 0.510 ;
-        RECT 1.760 0.240 2.090 0.340 ;
         RECT 0.000 -0.240 2.880 0.240 ;
     END
   END gnd
@@ -75,22 +51,14 @@
   END A
   OBS
       LAYER li1 ;
-        RECT 0.560 2.430 0.890 2.510 ;
-        RECT 0.560 2.260 0.640 2.430 ;
-        RECT 0.810 2.260 0.890 2.430 ;
-        RECT 0.560 2.180 0.890 2.260 ;
-        RECT 1.280 2.010 1.610 2.090 ;
-        RECT 1.280 1.840 1.360 2.010 ;
-        RECT 1.530 1.840 1.610 2.010 ;
-        RECT 1.280 1.760 1.610 1.840 ;
-        RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.910 1.360 1.080 ;
-        RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.280 0.830 1.610 0.910 ;
-        RECT 0.560 0.670 0.890 0.750 ;
-        RECT 0.560 0.500 0.640 0.670 ;
-        RECT 0.810 0.500 0.890 0.670 ;
-        RECT 0.560 0.420 0.890 0.500 ;
+        RECT 0.000 3.090 2.880 3.570 ;
+        RECT 1.760 2.740 2.090 3.090 ;
+        RECT 0.560 2.180 0.890 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 0.560 0.420 0.890 0.750 ;
+        RECT 1.760 0.240 2.090 0.590 ;
+        RECT 0.000 -0.240 2.880 0.240 ;
   END
 END INVX2
 END LIBRARY
diff --git a/cells/lef/INVX2.lef.beforemagic b/cells/lef/INVX2.lef.beforemagic
index 68ff455..3da0cab 100644
--- a/cells/lef/INVX2.lef.beforemagic
+++ b/cells/lef/INVX2.lef.beforemagic
@@ -59,94 +59,17 @@
 
 
   OBS
-    LAYER locali ;
-      RECT ( 0 3.42 ) ( 2.88 3.57 ) ;
-      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
-      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
-      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
-      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
-      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
-      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
-      RECT ( 2.73 3.25 ) ( 2.88 3.42 ) ;
-      RECT ( 0 3.09 ) ( 2.88 3.25 ) ;
-      RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
-      RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
-      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
-      RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
-      RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
-      RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
-      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
-      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
-      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
-      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
-      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
-      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
-      RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
-      RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
-      RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
-      RECT ( 1.76 0.51 ) ( 2.09 0.59 ) ;
-      RECT ( 1.76 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
-      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
-      RECT ( 0 0.09 ) ( 2.88 0.24 ) ;
-      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
-      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
-      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
-      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
-      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
-      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
-      RECT ( 2.73 -0.09 ) ( 2.88 0.09 ) ;
-      RECT ( 0 -0.24 ) ( 2.88 -0.09 ) ;
-    LAYER metal1 ;
-      RECT ( 0 3.42 ) ( 2.88 3.57 ) ;
-      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
-      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
-      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
-      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
-      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
-      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
-      RECT ( 2.73 3.25 ) ( 2.88 3.42 ) ;
-      RECT ( 0 3.09 ) ( 2.88 3.25 ) ;
-      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
-      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
-      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
-      RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
-      RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
-      RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
-      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
-      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
-      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
-      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
-      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
-      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
-      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
-      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
-      RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
-      RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
-      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
-      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
-      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
-      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
-      RECT ( 0 0.09 ) ( 2.88 0.24 ) ;
-      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
-      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
-      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
-      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
-      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
-      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
-      RECT ( 2.73 -0.09 ) ( 2.88 0.09 ) ;
-      RECT ( 0 -0.24 ) ( 2.88 -0.09 ) ;
+    LAYER li1 ;
+      RECT ( 0 -0.24 ) ( 2.88 0.24 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.59 ) ;
+      RECT ( 0.56 0.42 ) ( 0.89 0.75 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 2.09 ) ;
+      RECT ( 0.56 2.18 ) ( 0.89 2.51 ) ;
+      RECT ( 1.76 2.74 ) ( 2.09 3.09 ) ;
+      RECT ( 0 3.09 ) ( 2.88 3.57 ) ;
+    LAYER li1 ;
+    LAYER li1 ;
 
   end
 END INVX2
diff --git a/cells/lef/INVX4.lef b/cells/lef/INVX4.lef
index cea35bb..b5c4d1a 100644
--- a/cells/lef/INVX4.lef
+++ b/cells/lef/INVX4.lef
@@ -36,10 +36,6 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.780 0.510 2.070 0.570 ;
-        RECT 1.780 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.070 0.510 ;
-        RECT 1.780 0.240 2.070 0.340 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
     PORT
@@ -47,8 +43,7 @@
         RECT 1.760 0.510 2.090 0.590 ;
         RECT 1.760 0.340 1.840 0.510 ;
         RECT 2.010 0.340 2.090 0.510 ;
-        RECT 1.760 0.260 2.090 0.340 ;
-        RECT 1.590 0.240 2.260 0.260 ;
+        RECT 1.760 0.240 2.090 0.340 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
   END gnd
@@ -58,15 +53,15 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 0.580 2.410 0.870 2.490 ;
-        RECT 3.220 2.410 3.510 2.490 ;
-        RECT 0.580 2.270 3.510 2.410 ;
-        RECT 0.580 2.200 0.870 2.270 ;
-        RECT 3.220 2.200 3.510 2.270 ;
+        RECT 0.580 2.200 0.870 2.490 ;
+        RECT 3.220 2.200 3.510 2.490 ;
         RECT 0.650 0.730 0.790 2.200 ;
         RECT 3.290 0.730 3.430 2.200 ;
-        RECT 0.580 0.440 0.870 0.730 ;
-        RECT 3.220 0.440 3.510 0.730 ;
+        RECT 0.580 0.660 0.870 0.730 ;
+        RECT 3.220 0.660 3.510 0.730 ;
+        RECT 0.580 0.520 3.510 0.660 ;
+        RECT 0.580 0.440 0.870 0.520 ;
+        RECT 3.220 0.440 3.510 0.520 ;
     END
   END Y
   PIN A
@@ -75,15 +70,15 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 1.300 2.000 1.590 2.070 ;
-        RECT 2.740 2.000 3.030 2.070 ;
-        RECT 1.300 1.860 3.030 2.000 ;
-        RECT 1.300 1.780 1.590 1.860 ;
-        RECT 2.740 1.780 3.030 1.860 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 2.740 1.780 3.030 2.070 ;
         RECT 1.370 1.140 1.510 1.780 ;
         RECT 2.810 1.140 2.950 1.780 ;
-        RECT 1.300 0.850 1.590 1.140 ;
-        RECT 2.740 0.850 3.030 1.140 ;
+        RECT 1.300 1.060 1.590 1.140 ;
+        RECT 2.740 1.060 3.030 1.140 ;
+        RECT 1.300 0.920 3.030 1.060 ;
+        RECT 1.300 0.850 1.590 0.920 ;
+        RECT 2.740 0.850 3.030 0.920 ;
     END
   END A
   OBS
diff --git a/cells/lef/INVX4.lef.beforemagic b/cells/lef/INVX4.lef.beforemagic
index 8aeb0a3..4f2852e 100644
--- a/cells/lef/INVX4.lef.beforemagic
+++ b/cells/lef/INVX4.lef.beforemagic
@@ -38,15 +38,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.51500000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+        RECT 0.57500000 0.51500000 3.50500000 0.65500000 ;
+        RECT 0.57500000 0.65500000 0.86500000 0.73000000 ;
+        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
         RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
         RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
-        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
-        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
-        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
-        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
-        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
     END
   END Y
 
@@ -57,15 +57,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
         RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
         RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
-        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
-        RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
-        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
-        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
@@ -124,8 +124,7 @@
       RECT ( 3.2 0.5 ) ( 3.28 0.67 ) ;
       RECT ( 3.45 0.5 ) ( 3.53 0.67 ) ;
       RECT ( 3.2 0.42 ) ( 3.53 0.5 ) ;
-      RECT ( 1.76 0.26 ) ( 2.09 0.34 ) ;
-      RECT ( 1.59 0.24 ) ( 2.26 0.26 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
       RECT ( 0 0.09 ) ( 4.32 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
@@ -157,50 +156,46 @@
       RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
       RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
       RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
-      RECT ( 0.81 2.41 ) ( 0.87 2.43 ) ;
-      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
-      RECT ( 3.22 2.41 ) ( 3.28 2.43 ) ;
-      RECT ( 0.81 2.27 ) ( 3.28 2.41 ) ;
-      RECT ( 0.81 2.26 ) ( 0.87 2.27 ) ;
+      RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
       RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
-      RECT ( 3.22 2.26 ) ( 3.28 2.27 ) ;
+      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
+      RECT ( 3.22 2.26 ) ( 3.28 2.43 ) ;
       RECT ( 3.45 2.26 ) ( 3.51 2.43 ) ;
       RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
       RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
       RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
       RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 2 ) ( 1.59 2.01 ) ;
-      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
-      RECT ( 2.74 2 ) ( 2.8 2.01 ) ;
-      RECT ( 1.53 1.86 ) ( 2.8 2 ) ;
-      RECT ( 1.53 1.84 ) ( 1.59 1.86 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
       RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
-      RECT ( 2.74 1.84 ) ( 2.8 1.86 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
       RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
       RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
       RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
       RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
       RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
-      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 1.53 1.06 ) ( 1.59 1.08 ) ;
       RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
-      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.74 1.06 ) ( 2.8 1.08 ) ;
+      RECT ( 1.53 0.92 ) ( 2.8 1.06 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 0.92 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
       RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
       RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
       RECT ( 3.29 0.73 ) ( 3.43 2.2 ) ;
       RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
       RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
-      RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
+      RECT ( 0.81 0.66 ) ( 0.87 0.67 ) ;
       RECT ( 3.22 0.67 ) ( 3.51 0.73 ) ;
+      RECT ( 3.22 0.66 ) ( 3.28 0.67 ) ;
+      RECT ( 0.81 0.52 ) ( 3.28 0.66 ) ;
+      RECT ( 0.81 0.5 ) ( 0.87 0.52 ) ;
       RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
-      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
-      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
-      RECT ( 3.22 0.5 ) ( 3.28 0.67 ) ;
+      RECT ( 3.22 0.5 ) ( 3.28 0.52 ) ;
       RECT ( 3.45 0.5 ) ( 3.51 0.67 ) ;
       RECT ( 3.22 0.44 ) ( 3.51 0.5 ) ;
-      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
       RECT ( 0 0.09 ) ( 4.32 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
diff --git a/cells/lef/INVX4.lef.temp b/cells/lef/INVX4.lef.temp
index 2f0a182..67f9609 100644
--- a/cells/lef/INVX4.lef.temp
+++ b/cells/lef/INVX4.lef.temp
@@ -38,15 +38,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.51500000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+        RECT 0.57500000 0.51500000 3.50500000 0.65500000 ;
+        RECT 0.57500000 0.65500000 0.86500000 0.73000000 ;
+        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
         RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
         RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
-        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
-        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
-        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
-        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
-        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
     END
   END Y
 
@@ -57,15 +57,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
         RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
         RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
-        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
-        RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
-        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
-        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
diff --git a/cells/lef/INVX8.lef b/cells/lef/INVX8.lef
new file mode 100644
index 0000000..ff74ab3
--- /dev/null
+++ b/cells/lef/INVX8.lef
@@ -0,0 +1,174 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO INVX8
+  CLASS CORE ;
+  FOREIGN INVX8 ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 7.200 BY 3.330 ;
+  SYMMETRY X Y R90 ;
+  SITE unit ;
+  PIN vdd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 3.090 7.200 3.570 ;
+        RECT 1.780 2.990 2.070 3.090 ;
+        RECT 1.780 2.820 1.840 2.990 ;
+        RECT 2.010 2.820 2.070 2.990 ;
+        RECT 1.780 2.760 2.070 2.820 ;
+        RECT 4.660 2.990 4.950 3.090 ;
+        RECT 4.660 2.820 4.720 2.990 ;
+        RECT 4.890 2.820 4.950 2.990 ;
+        RECT 4.660 2.760 4.950 2.820 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.000 3.090 7.200 3.570 ;
+        RECT 1.760 2.990 2.090 3.090 ;
+        RECT 1.760 2.820 1.840 2.990 ;
+        RECT 2.010 2.820 2.090 2.990 ;
+        RECT 1.760 2.740 2.090 2.820 ;
+        RECT 4.640 2.990 4.970 3.090 ;
+        RECT 4.640 2.820 4.720 2.990 ;
+        RECT 4.890 2.820 4.970 2.990 ;
+        RECT 4.640 2.740 4.970 2.820 ;
+    END
+  END vdd
+  PIN gnd
+    DIRECTION INOUT ;
+    USE GROUND ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 -0.240 7.200 0.240 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 1.760 0.510 2.090 0.590 ;
+        RECT 1.760 0.340 1.840 0.510 ;
+        RECT 2.010 0.340 2.090 0.510 ;
+        RECT 1.760 0.240 2.090 0.340 ;
+        RECT 4.640 0.510 4.970 0.590 ;
+        RECT 4.640 0.340 4.720 0.510 ;
+        RECT 4.890 0.340 4.970 0.510 ;
+        RECT 4.640 0.240 4.970 0.340 ;
+        RECT 0.000 -0.240 7.200 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.820 2.200 1.110 2.490 ;
+        RECT 3.700 2.410 3.990 2.490 ;
+        RECT 6.100 2.410 6.390 2.490 ;
+        RECT 3.700 2.270 6.390 2.410 ;
+        RECT 3.700 2.200 3.990 2.270 ;
+        RECT 6.100 2.200 6.390 2.270 ;
+        RECT 0.890 0.730 1.030 2.200 ;
+        RECT 6.170 0.730 6.310 2.200 ;
+        RECT 0.820 0.660 1.110 0.730 ;
+        RECT 3.700 0.660 3.990 0.730 ;
+        RECT 6.100 0.660 6.390 0.730 ;
+        RECT 0.820 0.520 6.390 0.660 ;
+        RECT 0.820 0.440 1.110 0.520 ;
+        RECT 3.700 0.440 3.990 0.520 ;
+        RECT 6.100 0.440 6.390 0.520 ;
+    END
+  END Y
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 2.000 1.590 2.070 ;
+        RECT 2.740 2.000 3.030 2.070 ;
+        RECT 4.180 2.000 4.470 2.070 ;
+        RECT 5.620 2.000 5.910 2.070 ;
+        RECT 1.300 1.860 5.910 2.000 ;
+        RECT 1.300 1.780 1.590 1.860 ;
+        RECT 2.740 1.780 3.030 1.860 ;
+        RECT 4.180 1.780 4.470 1.860 ;
+        RECT 5.620 1.780 5.910 1.860 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 5.690 1.140 5.830 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+        RECT 2.740 0.850 3.030 1.140 ;
+        RECT 4.180 0.850 4.470 1.140 ;
+        RECT 5.620 0.850 5.910 1.140 ;
+    END
+  END A
+  OBS
+      LAYER li1 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 0.800 2.180 1.130 2.260 ;
+        RECT 3.680 2.430 4.010 2.510 ;
+        RECT 3.680 2.260 3.760 2.430 ;
+        RECT 3.930 2.260 4.010 2.430 ;
+        RECT 6.080 2.430 6.410 2.510 ;
+        RECT 6.080 2.260 6.160 2.430 ;
+        RECT 6.330 2.260 6.410 2.430 ;
+        RECT 3.680 2.180 3.990 2.260 ;
+        RECT 6.100 2.180 6.410 2.260 ;
+        RECT 1.300 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 5.600 1.840 5.680 2.010 ;
+        RECT 5.850 1.840 5.930 2.010 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.910 2.800 1.080 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.920 4.240 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.180 0.830 4.490 0.910 ;
+        RECT 5.600 1.080 5.930 1.160 ;
+        RECT 5.600 0.910 5.680 1.080 ;
+        RECT 5.850 0.910 5.930 1.080 ;
+        RECT 5.600 0.830 5.930 0.910 ;
+        RECT 0.800 0.670 1.110 0.750 ;
+        RECT 0.800 0.500 0.880 0.670 ;
+        RECT 1.050 0.660 1.110 0.670 ;
+        RECT 3.680 0.670 4.010 0.750 ;
+        RECT 1.050 0.500 1.130 0.660 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 3.680 0.500 3.760 0.670 ;
+        RECT 3.930 0.500 4.010 0.670 ;
+        RECT 6.100 0.670 6.410 0.750 ;
+        RECT 6.100 0.660 6.160 0.670 ;
+        RECT 3.680 0.420 4.010 0.500 ;
+        RECT 6.080 0.500 6.160 0.660 ;
+        RECT 6.330 0.500 6.410 0.670 ;
+        RECT 6.080 0.420 6.410 0.500 ;
+  END
+END INVX8
+END LIBRARY
+
diff --git a/cells/lef/INVX8.lef.beforemagic b/cells/lef/INVX8.lef.beforemagic
index 162e107..d6d38ea 100644
--- a/cells/lef/INVX8.lef.beforemagic
+++ b/cells/lef/INVX8.lef.beforemagic
@@ -11,6 +11,8 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
        LAYER met1 ;
         RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
     END
@@ -22,6 +24,8 @@
    SHAPE ABUTMENT ;
     PORT
      CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
        LAYER met1 ;
         RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
     END
@@ -35,19 +39,19 @@
      CLASS CORE ;
        LAYER met1 ;
         RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
-        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
-        RECT 0.81500000 0.51500000 3.50500000 0.65500000 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
         RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
-        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
-        RECT 6.09500000 0.44000000 6.38500000 0.73000000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
         RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
         RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
-        RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
-        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
         RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
-        RECT 0.81500000 2.27000000 6.38500000 2.41000000 ;
-        RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
-        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+        RECT 3.69500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
         RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
     END
   END Y
@@ -59,48 +63,66 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
-        RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
-        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
-        RECT 5.61500000 0.84500000 5.90500000 0.92000000 ;
-        RECT 1.29500000 0.92000000 5.90500000 1.06000000 ;
-        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
-        RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
-        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
-        RECT 5.61500000 1.06000000 5.90500000 1.13500000 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
         RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
         RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
         RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
-        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
     END
   END A
 
 
   OBS
     LAYER locali ;
-      RECT ( 1.76 3 ) ( 2.09 3.08 ) ;
-      RECT ( 1.76 2.83 ) ( 1.84 3 ) ;
-      RECT ( 2.01 2.83 ) ( 2.09 3 ) ;
-      RECT ( 1.76 2.75 ) ( 2.09 2.83 ) ;
-      RECT ( 4.64 3 ) ( 4.97 3.08 ) ;
-      RECT ( 4.64 2.83 ) ( 4.72 3 ) ;
-      RECT ( 4.89 2.83 ) ( 4.97 3 ) ;
-      RECT ( 4.64 2.75 ) ( 4.97 2.83 ) ;
+      RECT ( 0 3.42 ) ( 7.2 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.92 3.42 ) ;
+      RECT ( 6.09 3.25 ) ( 6.4 3.42 ) ;
+      RECT ( 6.57 3.25 ) ( 6.88 3.42 ) ;
+      RECT ( 7.05 3.25 ) ( 7.2 3.42 ) ;
+      RECT ( 0 3.09 ) ( 7.2 3.25 ) ;
+      RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
+      RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
+      RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
+      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
+      RECT ( 4.64 2.99 ) ( 4.97 3.09 ) ;
+      RECT ( 4.64 2.82 ) ( 4.72 2.99 ) ;
+      RECT ( 4.89 2.82 ) ( 4.97 2.99 ) ;
+      RECT ( 4.64 2.74 ) ( 4.97 2.82 ) ;
       RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
       RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
       RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
-      RECT ( 3.2 2.43 ) ( 3.53 2.51 ) ;
-      RECT ( 3.2 2.26 ) ( 3.28 2.43 ) ;
-      RECT ( 3.45 2.26 ) ( 3.53 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.13 2.26 ) ;
+      RECT ( 3.68 2.43 ) ( 4.01 2.51 ) ;
+      RECT ( 3.68 2.26 ) ( 3.76 2.43 ) ;
+      RECT ( 3.93 2.26 ) ( 4.01 2.43 ) ;
       RECT ( 6.08 2.43 ) ( 6.41 2.51 ) ;
       RECT ( 6.08 2.26 ) ( 6.16 2.43 ) ;
       RECT ( 6.33 2.26 ) ( 6.41 2.43 ) ;
-      RECT ( 0.8 2.18 ) ( 1.13 2.26 ) ;
-      RECT ( 3.22 2.18 ) ( 3.53 2.26 ) ;
+      RECT ( 3.68 2.18 ) ( 3.99 2.26 ) ;
       RECT ( 6.1 2.18 ) ( 6.41 2.26 ) ;
       RECT ( 1.3 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
@@ -124,13 +146,13 @@
       RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
       RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
       RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
-      RECT ( 2.97 0.92 ) ( 3.05 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
       RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
-      RECT ( 2.97 0.91 ) ( 3.03 0.92 ) ;
-      RECT ( 2.72 0.83 ) ( 3.03 0.91 ) ;
-      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.16 0.92 ) ( 4.24 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
       RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
-      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 4.18 0.83 ) ( 4.49 0.91 ) ;
       RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
       RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
       RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
@@ -138,70 +160,109 @@
       RECT ( 0.8 0.67 ) ( 1.11 0.75 ) ;
       RECT ( 0.8 0.5 ) ( 0.88 0.67 ) ;
       RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
-      RECT ( 3.2 0.67 ) ( 3.53 0.75 ) ;
+      RECT ( 3.68 0.67 ) ( 4.01 0.75 ) ;
       RECT ( 1.05 0.5 ) ( 1.13 0.66 ) ;
       RECT ( 0.8 0.42 ) ( 1.13 0.5 ) ;
-      RECT ( 1.76 0.5 ) ( 2.09 0.58 ) ;
-      RECT ( 1.76 0.33 ) ( 1.84 0.5 ) ;
-      RECT ( 2.01 0.33 ) ( 2.09 0.5 ) ;
-      RECT ( 3.2 0.5 ) ( 3.28 0.67 ) ;
-      RECT ( 3.45 0.5 ) ( 3.53 0.67 ) ;
+      RECT ( 1.76 0.51 ) ( 2.09 0.59 ) ;
+      RECT ( 1.76 0.34 ) ( 1.84 0.51 ) ;
+      RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
+      RECT ( 3.68 0.5 ) ( 3.76 0.67 ) ;
+      RECT ( 3.93 0.5 ) ( 4.01 0.67 ) ;
       RECT ( 6.1 0.67 ) ( 6.41 0.75 ) ;
       RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
-      RECT ( 3.2 0.42 ) ( 3.53 0.5 ) ;
-      RECT ( 4.64 0.5 ) ( 4.97 0.58 ) ;
-      RECT ( 1.76 0.27 ) ( 2.09 0.33 ) ;
-      RECT ( 1.76 0.25 ) ( 1.84 0.27 ) ;
-      RECT ( 2.01 0.25 ) ( 2.09 0.27 ) ;
-      RECT ( 4.64 0.33 ) ( 4.72 0.5 ) ;
-      RECT ( 4.89 0.33 ) ( 4.97 0.5 ) ;
+      RECT ( 3.68 0.42 ) ( 4.01 0.5 ) ;
+      RECT ( 4.64 0.51 ) ( 4.97 0.59 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
+      RECT ( 4.64 0.34 ) ( 4.72 0.51 ) ;
+      RECT ( 4.89 0.34 ) ( 4.97 0.51 ) ;
       RECT ( 6.08 0.5 ) ( 6.16 0.66 ) ;
       RECT ( 6.33 0.5 ) ( 6.41 0.67 ) ;
       RECT ( 6.08 0.42 ) ( 6.41 0.5 ) ;
-      RECT ( 4.64 0.25 ) ( 4.97 0.33 ) ;
+      RECT ( 4.64 0.24 ) ( 4.97 0.34 ) ;
+      RECT ( 0 0.09 ) ( 7.2 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.92 0.09 ) ;
+      RECT ( 6.09 -0.09 ) ( 6.4 0.09 ) ;
+      RECT ( 6.57 -0.09 ) ( 6.88 0.09 ) ;
+      RECT ( 7.05 -0.09 ) ( 7.2 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 7.2 -0.09 ) ;
     LAYER metal1 ;
-      RECT ( 0 3.09 ) ( 7.2 3.57 ) ;
-      RECT ( 1.78 3 ) ( 2.07 3.09 ) ;
-      RECT ( 1.78 2.83 ) ( 1.84 3 ) ;
-      RECT ( 2.01 2.83 ) ( 2.07 3 ) ;
-      RECT ( 1.78 2.77 ) ( 2.07 2.83 ) ;
-      RECT ( 4.66 3 ) ( 4.95 3.09 ) ;
-      RECT ( 4.66 2.83 ) ( 4.72 3 ) ;
-      RECT ( 4.89 2.83 ) ( 4.95 3 ) ;
-      RECT ( 4.66 2.77 ) ( 4.95 2.83 ) ;
+      RECT ( 0 3.42 ) ( 7.2 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.92 3.42 ) ;
+      RECT ( 6.09 3.25 ) ( 6.4 3.42 ) ;
+      RECT ( 6.57 3.25 ) ( 6.88 3.42 ) ;
+      RECT ( 7.05 3.25 ) ( 7.2 3.42 ) ;
+      RECT ( 0 3.09 ) ( 7.2 3.25 ) ;
+      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
+      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
+      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
+      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
+      RECT ( 4.66 2.99 ) ( 4.95 3.09 ) ;
+      RECT ( 4.66 2.82 ) ( 4.72 2.99 ) ;
+      RECT ( 4.89 2.82 ) ( 4.95 2.99 ) ;
+      RECT ( 4.66 2.76 ) ( 4.95 2.82 ) ;
       RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
       RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
-      RECT ( 1.05 2.41 ) ( 1.11 2.43 ) ;
-      RECT ( 3.22 2.43 ) ( 3.51 2.49 ) ;
-      RECT ( 3.22 2.41 ) ( 3.28 2.43 ) ;
-      RECT ( 1.05 2.27 ) ( 3.28 2.41 ) ;
-      RECT ( 1.05 2.26 ) ( 1.11 2.27 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.43 ) ;
       RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
-      RECT ( 3.22 2.26 ) ( 3.28 2.27 ) ;
-      RECT ( 3.45 2.41 ) ( 3.51 2.43 ) ;
+      RECT ( 3.7 2.43 ) ( 3.99 2.49 ) ;
+      RECT ( 3.7 2.26 ) ( 3.76 2.43 ) ;
+      RECT ( 3.93 2.41 ) ( 3.99 2.43 ) ;
       RECT ( 6.1 2.43 ) ( 6.39 2.49 ) ;
       RECT ( 6.1 2.41 ) ( 6.16 2.43 ) ;
-      RECT ( 3.45 2.27 ) ( 6.16 2.41 ) ;
-      RECT ( 3.45 2.26 ) ( 3.51 2.27 ) ;
-      RECT ( 3.22 2.2 ) ( 3.51 2.26 ) ;
+      RECT ( 3.93 2.27 ) ( 6.16 2.41 ) ;
+      RECT ( 3.93 2.26 ) ( 3.99 2.27 ) ;
+      RECT ( 3.7 2.2 ) ( 3.99 2.26 ) ;
       RECT ( 6.1 2.26 ) ( 6.16 2.27 ) ;
       RECT ( 6.33 2.26 ) ( 6.39 2.43 ) ;
       RECT ( 6.1 2.2 ) ( 6.39 2.26 ) ;
       RECT ( 0.89 0.73 ) ( 1.03 2.2 ) ;
       RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
       RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
-      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
-      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.53 2 ) ( 1.59 2.01 ) ;
       RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
-      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
-      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
-      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 2.74 2 ) ( 2.8 2.01 ) ;
+      RECT ( 1.53 1.86 ) ( 2.8 2 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 1.86 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 1.86 ) ;
+      RECT ( 2.97 2 ) ( 3.03 2.01 ) ;
       RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
-      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
-      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
-      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 4.18 2 ) ( 4.24 2.01 ) ;
+      RECT ( 2.97 1.86 ) ( 4.24 2 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 1.86 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 1.86 ) ;
+      RECT ( 4.41 2 ) ( 4.47 2.01 ) ;
       RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
-      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.62 2 ) ( 5.68 2.01 ) ;
+      RECT ( 4.41 1.86 ) ( 5.68 2 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 1.86 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 1.86 ) ;
       RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
       RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
       RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
@@ -210,55 +271,57 @@
       RECT ( 5.69 1.14 ) ( 5.83 1.78 ) ;
       RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
       RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
-      RECT ( 1.53 1.06 ) ( 1.59 1.08 ) ;
-      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
-      RECT ( 2.74 1.06 ) ( 2.8 1.08 ) ;
-      RECT ( 1.53 0.92 ) ( 2.8 1.06 ) ;
-      RECT ( 1.53 0.91 ) ( 1.59 0.92 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
       RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
-      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
-      RECT ( 2.97 1.06 ) ( 3.03 1.08 ) ;
-      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
-      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
-      RECT ( 2.97 0.92 ) ( 4.24 1.06 ) ;
-      RECT ( 2.97 0.91 ) ( 3.03 0.92 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
       RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
-      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
-      RECT ( 4.41 1.06 ) ( 4.47 1.08 ) ;
-      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
-      RECT ( 5.62 1.06 ) ( 5.68 1.08 ) ;
-      RECT ( 4.41 0.92 ) ( 5.68 1.06 ) ;
-      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
       RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
-      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
       RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
       RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
       RECT ( 6.17 0.73 ) ( 6.31 2.2 ) ;
       RECT ( 0.82 0.67 ) ( 1.11 0.73 ) ;
       RECT ( 0.82 0.5 ) ( 0.88 0.67 ) ;
       RECT ( 1.05 0.66 ) ( 1.11 0.67 ) ;
-      RECT ( 3.22 0.67 ) ( 3.51 0.73 ) ;
-      RECT ( 3.22 0.66 ) ( 3.28 0.67 ) ;
-      RECT ( 1.05 0.52 ) ( 3.28 0.66 ) ;
+      RECT ( 3.7 0.67 ) ( 3.99 0.73 ) ;
+      RECT ( 3.7 0.66 ) ( 3.76 0.67 ) ;
+      RECT ( 1.05 0.52 ) ( 3.76 0.66 ) ;
       RECT ( 1.05 0.5 ) ( 1.11 0.52 ) ;
       RECT ( 0.82 0.44 ) ( 1.11 0.5 ) ;
-      RECT ( 3.22 0.5 ) ( 3.28 0.52 ) ;
-      RECT ( 3.45 0.5 ) ( 3.51 0.67 ) ;
+      RECT ( 3.7 0.5 ) ( 3.76 0.52 ) ;
+      RECT ( 3.93 0.66 ) ( 3.99 0.67 ) ;
       RECT ( 6.1 0.67 ) ( 6.39 0.73 ) ;
-      RECT ( 3.22 0.44 ) ( 3.51 0.5 ) ;
-      RECT ( 4.66 0.5 ) ( 4.95 0.56 ) ;
-      RECT ( 4.66 0.33 ) ( 4.72 0.5 ) ;
-      RECT ( 4.89 0.33 ) ( 4.95 0.5 ) ;
-      RECT ( 6.1 0.5 ) ( 6.16 0.67 ) ;
+      RECT ( 6.1 0.66 ) ( 6.16 0.67 ) ;
+      RECT ( 3.93 0.52 ) ( 6.16 0.66 ) ;
+      RECT ( 3.93 0.5 ) ( 3.99 0.52 ) ;
+      RECT ( 3.7 0.44 ) ( 3.99 0.5 ) ;
+      RECT ( 6.1 0.5 ) ( 6.16 0.52 ) ;
       RECT ( 6.33 0.5 ) ( 6.39 0.67 ) ;
       RECT ( 6.1 0.44 ) ( 6.39 0.5 ) ;
-      RECT ( 1.78 0.27 ) ( 2.07 0.33 ) ;
-      RECT ( 1.78 0.24 ) ( 1.84 0.27 ) ;
-      RECT ( 0 0.1 ) ( 1.84 0.24 ) ;
-      RECT ( 2.01 0.24 ) ( 2.07 0.27 ) ;
-      RECT ( 4.66 0.24 ) ( 4.95 0.33 ) ;
-      RECT ( 2.01 0.1 ) ( 7.2 0.24 ) ;
-      RECT ( 0 -0.24 ) ( 7.2 0.1 ) ;
+      RECT ( 0 0.09 ) ( 7.2 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.92 0.09 ) ;
+      RECT ( 6.09 -0.09 ) ( 6.4 0.09 ) ;
+      RECT ( 6.57 -0.09 ) ( 6.88 0.09 ) ;
+      RECT ( 7.05 -0.09 ) ( 7.2 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 7.2 -0.09 ) ;
 
   end
 END INVX8
diff --git a/cells/lef/INVX8.lef.temp b/cells/lef/INVX8.lef.temp
new file mode 100644
index 0000000..1ac4e6a
--- /dev/null
+++ b/cells/lef/INVX8.lef.temp
@@ -0,0 +1,86 @@
+MACRO INVX8
+ CLASS CORE ;
+ FOREIGN INVX8 0 0 ;
+ SIZE 7.2 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+        RECT 3.69500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+        RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+    END
+  END A
+
+END INVX8
diff --git a/cells/lef/MUX2X1.lef b/cells/lef/MUX2X1.lef
index 679fac5..11339ab 100644
--- a/cells/lef/MUX2X1.lef
+++ b/cells/lef/MUX2X1.lef
@@ -28,13 +28,11 @@
     PORT
       LAYER li1 ;
         RECT 0.000 3.090 8.640 3.570 ;
-        RECT 1.590 3.070 2.260 3.090 ;
-        RECT 7.350 3.070 8.020 3.090 ;
-        RECT 1.760 2.990 2.090 3.070 ;
+        RECT 1.760 2.990 2.090 3.090 ;
         RECT 1.760 2.820 1.840 2.990 ;
         RECT 2.010 2.820 2.090 2.990 ;
         RECT 1.760 2.740 2.090 2.820 ;
-        RECT 7.520 2.990 7.850 3.070 ;
+        RECT 7.520 2.990 7.850 3.090 ;
         RECT 7.520 2.820 7.600 2.990 ;
         RECT 7.770 2.820 7.850 2.990 ;
         RECT 7.520 2.740 7.850 2.820 ;
@@ -65,8 +63,7 @@
         RECT 7.520 0.510 7.850 0.590 ;
         RECT 7.520 0.340 7.600 0.510 ;
         RECT 7.770 0.340 7.850 0.510 ;
-        RECT 7.520 0.260 7.850 0.340 ;
-        RECT 7.350 0.240 8.020 0.260 ;
+        RECT 7.520 0.240 7.850 0.340 ;
         RECT 0.000 -0.240 8.640 0.240 ;
     END
   END gnd
@@ -76,39 +73,15 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.660 1.780 4.950 2.490 ;
+        RECT 5.140 2.410 5.430 2.490 ;
+        RECT 5.140 2.270 6.310 2.410 ;
+        RECT 5.140 2.200 5.430 2.270 ;
+        RECT 5.140 0.660 5.430 0.730 ;
+        RECT 6.170 0.660 6.310 2.270 ;
+        RECT 5.140 0.520 6.310 0.660 ;
+        RECT 5.140 0.440 5.430 0.520 ;
     END
   END Y
-  PIN S
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 5.620 2.000 5.910 2.070 ;
-        RECT 5.620 1.860 6.310 2.000 ;
-        RECT 5.620 1.780 5.910 1.860 ;
-        RECT 1.300 1.390 1.590 1.680 ;
-        RECT 1.370 1.140 1.510 1.390 ;
-        RECT 1.300 1.060 1.590 1.140 ;
-        RECT 4.180 1.060 4.470 1.140 ;
-        RECT 1.300 0.920 4.470 1.060 ;
-        RECT 1.300 0.850 1.590 0.920 ;
-        RECT 4.180 0.850 4.470 0.920 ;
-        RECT 4.250 0.660 4.390 0.850 ;
-        RECT 6.170 0.660 6.310 1.860 ;
-        RECT 4.250 0.520 6.310 0.660 ;
-    END
-  END S
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.250 3.030 1.540 ;
-    END
-  END A
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -120,16 +93,41 @@
         RECT 7.060 0.850 7.350 1.140 ;
     END
   END B
+  PIN S
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.390 1.590 1.680 ;
+        RECT 1.370 1.140 1.510 1.390 ;
+        RECT 1.300 1.060 1.590 1.140 ;
+        RECT 3.220 1.060 3.510 1.140 ;
+        RECT 1.300 0.920 3.510 1.060 ;
+        RECT 1.300 0.850 1.590 0.920 ;
+        RECT 3.220 0.850 3.510 0.920 ;
+    END
+  END S
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.250 3.030 1.540 ;
+    END
+  END A
   OBS
       LAYER li1 ;
         RECT 0.560 2.430 0.890 2.510 ;
         RECT 0.560 2.260 0.640 2.430 ;
         RECT 0.810 2.260 0.890 2.430 ;
+        RECT 5.120 2.430 5.450 2.510 ;
+        RECT 5.120 2.260 5.200 2.430 ;
+        RECT 5.370 2.260 5.450 2.430 ;
         RECT 0.560 2.180 0.890 2.260 ;
-        RECT 4.640 2.430 4.970 2.510 ;
-        RECT 4.640 2.260 4.720 2.430 ;
-        RECT 4.890 2.260 4.970 2.430 ;
-        RECT 4.640 2.180 4.970 2.260 ;
+        RECT 1.360 2.090 1.530 2.260 ;
+        RECT 5.120 2.180 5.450 2.260 ;
         RECT 1.280 2.010 1.610 2.090 ;
         RECT 1.280 1.840 1.360 2.010 ;
         RECT 1.530 1.840 1.610 2.010 ;
@@ -138,13 +136,18 @@
         RECT 2.720 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.050 2.010 ;
         RECT 2.720 1.760 3.050 1.840 ;
-        RECT 4.160 2.010 4.470 2.090 ;
-        RECT 5.600 2.010 5.930 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 5.620 2.010 5.930 2.090 ;
         RECT 4.160 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
         RECT 5.600 1.840 5.680 2.010 ;
         RECT 5.850 1.840 5.930 2.010 ;
-        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 5.600 1.760 5.930 1.840 ;
+        RECT 7.040 2.010 7.370 2.090 ;
+        RECT 7.040 1.840 7.120 2.010 ;
+        RECT 7.290 1.840 7.370 2.010 ;
+        RECT 7.040 1.760 7.370 1.840 ;
         RECT 1.360 1.620 1.530 1.760 ;
         RECT 2.800 1.480 2.970 1.760 ;
         RECT 2.800 1.160 2.970 1.310 ;
@@ -153,24 +156,18 @@
         RECT 1.530 0.910 1.610 1.080 ;
         RECT 1.280 0.830 1.610 0.910 ;
         RECT 2.720 1.080 3.050 1.160 ;
+        RECT 4.160 1.080 4.490 1.160 ;
         RECT 2.720 0.910 2.800 1.080 ;
         RECT 2.970 0.910 3.050 1.080 ;
-        RECT 2.720 0.830 3.050 0.910 ;
-        RECT 4.160 1.080 4.490 1.160 ;
-        RECT 4.160 0.910 4.240 1.080 ;
-        RECT 4.410 0.920 4.490 1.080 ;
-        RECT 4.410 0.910 4.470 0.920 ;
-        RECT 4.160 0.830 4.470 0.910 ;
-        RECT 4.720 0.750 4.890 1.840 ;
-        RECT 5.600 1.760 5.930 1.840 ;
-        RECT 7.040 2.010 7.370 2.090 ;
-        RECT 7.040 1.840 7.120 2.010 ;
-        RECT 7.290 1.840 7.370 2.010 ;
-        RECT 7.040 1.760 7.370 1.840 ;
+        RECT 3.450 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
         RECT 5.600 1.080 5.930 1.160 ;
-        RECT 5.600 0.910 5.680 1.080 ;
+        RECT 5.600 0.920 5.680 1.080 ;
+        RECT 2.720 0.830 3.050 0.910 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 5.620 0.910 5.680 0.920 ;
         RECT 5.850 0.910 5.930 1.080 ;
-        RECT 5.600 0.830 5.930 0.910 ;
+        RECT 5.620 0.830 5.930 0.910 ;
         RECT 7.040 1.080 7.370 1.160 ;
         RECT 7.040 0.910 7.120 1.080 ;
         RECT 7.290 0.910 7.370 1.080 ;
@@ -179,15 +176,21 @@
         RECT 0.560 0.500 0.640 0.670 ;
         RECT 0.810 0.500 0.890 0.670 ;
         RECT 0.560 0.420 0.890 0.500 ;
-        RECT 4.640 0.670 4.970 0.750 ;
-        RECT 4.640 0.500 4.720 0.670 ;
-        RECT 4.890 0.500 4.970 0.670 ;
-        RECT 4.640 0.420 4.970 0.500 ;
+        RECT 5.120 0.670 5.450 0.750 ;
+        RECT 5.120 0.500 5.200 0.670 ;
+        RECT 5.370 0.500 5.450 0.670 ;
+        RECT 5.120 0.420 5.450 0.500 ;
       LAYER met1 ;
         RECT 0.580 2.430 0.870 2.490 ;
         RECT 0.580 2.260 0.640 2.430 ;
         RECT 0.810 2.260 0.870 2.430 ;
         RECT 0.580 2.200 0.870 2.260 ;
+        RECT 1.300 2.430 1.590 2.490 ;
+        RECT 1.300 2.260 1.360 2.430 ;
+        RECT 1.530 2.410 1.590 2.430 ;
+        RECT 1.530 2.270 4.870 2.410 ;
+        RECT 1.530 2.260 1.590 2.270 ;
+        RECT 1.300 2.200 1.590 2.260 ;
         RECT 0.650 2.000 0.790 2.200 ;
         RECT 4.180 2.010 4.470 2.070 ;
         RECT 4.180 2.000 4.240 2.010 ;
@@ -195,12 +198,19 @@
         RECT 0.650 0.730 0.790 1.860 ;
         RECT 4.180 1.840 4.240 1.860 ;
         RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.730 2.000 4.870 2.270 ;
+        RECT 5.620 2.010 5.910 2.070 ;
+        RECT 5.620 2.000 5.680 2.010 ;
+        RECT 4.730 1.860 5.680 2.000 ;
         RECT 4.180 1.780 4.470 1.840 ;
-        RECT 4.250 1.600 4.390 1.780 ;
-        RECT 4.250 1.460 5.830 1.600 ;
-        RECT 5.690 1.140 5.830 1.460 ;
+        RECT 5.620 1.840 5.680 1.860 ;
+        RECT 5.850 1.840 5.910 2.010 ;
+        RECT 5.620 1.780 5.910 1.840 ;
+        RECT 4.250 1.060 4.390 1.780 ;
         RECT 5.620 1.080 5.910 1.140 ;
-        RECT 5.620 0.910 5.680 1.080 ;
+        RECT 5.620 1.060 5.680 1.080 ;
+        RECT 4.250 0.920 5.680 1.060 ;
+        RECT 5.620 0.910 5.680 0.920 ;
         RECT 5.850 0.910 5.910 1.080 ;
         RECT 5.620 0.850 5.910 0.910 ;
         RECT 0.580 0.670 0.870 0.730 ;
diff --git a/cells/lef/MUX2X1.lef.beforemagic b/cells/lef/MUX2X1.lef.beforemagic
index 1de5bc9..f6fe378 100644
--- a/cells/lef/MUX2X1.lef.beforemagic
+++ b/cells/lef/MUX2X1.lef.beforemagic
@@ -38,44 +38,16 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 4.65500000 1.78000000 4.94500000 2.48500000 ;
+        RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+        RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+        RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
-  PIN S
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
-        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
-        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
-        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
-        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
-        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
-        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
-        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
-        RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
-        RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
-        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
-    END
-  END S
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -89,6 +61,34 @@
     END
   END B
 
+  PIN S
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 3.21500000 0.84500000 3.50500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.50500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 3.21500000 1.06000000 3.50500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
+        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+    END
+  END S
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+    END
+  END A
+
 
   OBS
     LAYER locali ;
@@ -113,24 +113,23 @@
       RECT ( 8.01 3.25 ) ( 8.32 3.42 ) ;
       RECT ( 8.49 3.25 ) ( 8.64 3.42 ) ;
       RECT ( 0 3.09 ) ( 8.64 3.25 ) ;
-      RECT ( 1.59 3.07 ) ( 2.26 3.09 ) ;
-      RECT ( 7.35 3.07 ) ( 8.02 3.09 ) ;
-      RECT ( 1.76 2.99 ) ( 2.09 3.07 ) ;
+      RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
       RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
       RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
       RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
-      RECT ( 7.52 2.99 ) ( 7.85 3.07 ) ;
+      RECT ( 7.52 2.99 ) ( 7.85 3.09 ) ;
       RECT ( 7.52 2.82 ) ( 7.6 2.99 ) ;
       RECT ( 7.77 2.82 ) ( 7.85 2.99 ) ;
       RECT ( 7.52 2.74 ) ( 7.85 2.82 ) ;
       RECT ( 0.56 2.43 ) ( 0.89 2.51 ) ;
+      RECT ( 5.12 2.43 ) ( 5.45 2.51 ) ;
       RECT ( 0.56 2.26 ) ( 0.64 2.43 ) ;
       RECT ( 0.81 2.26 ) ( 0.89 2.43 ) ;
       RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
-      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
-      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
-      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
-      RECT ( 4.64 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.36 2.09 ) ( 1.53 2.26 ) ;
+      RECT ( 5.12 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.26 ) ( 5.45 2.43 ) ;
+      RECT ( 5.12 2.18 ) ( 5.45 2.26 ) ;
       RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
@@ -139,11 +138,18 @@
       RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
       RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
-      RECT ( 4.16 2.01 ) ( 4.47 2.09 ) ;
-      RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 5.62 2.01 ) ( 5.93 2.09 ) ;
       RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
       RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
+      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
+      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
+      RECT ( 7.04 2.01 ) ( 7.37 2.09 ) ;
+      RECT ( 7.04 1.84 ) ( 7.12 2.01 ) ;
+      RECT ( 7.29 1.84 ) ( 7.37 2.01 ) ;
+      RECT ( 7.04 1.76 ) ( 7.37 1.84 ) ;
       RECT ( 1.36 1.62 ) ( 1.53 1.76 ) ;
       RECT ( 2.8 1.48 ) ( 2.97 1.76 ) ;
       RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
@@ -152,26 +158,18 @@
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
       RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
       RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
       RECT ( 2.72 0.91 ) ( 2.8 1.08 ) ;
       RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
-      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
-      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
-      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
-      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
-      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
-      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
-      RECT ( 4.72 0.75 ) ( 4.89 1.84 ) ;
-      RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
-      RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
-      RECT ( 5.6 1.76 ) ( 5.93 1.84 ) ;
-      RECT ( 7.04 2.01 ) ( 7.37 2.09 ) ;
-      RECT ( 7.04 1.84 ) ( 7.12 2.01 ) ;
-      RECT ( 7.29 1.84 ) ( 7.37 2.01 ) ;
-      RECT ( 7.04 1.76 ) ( 7.37 1.84 ) ;
+      RECT ( 3.45 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
       RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
-      RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.6 0.92 ) ( 5.68 1.08 ) ;
+      RECT ( 2.72 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
       RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
-      RECT ( 5.6 0.83 ) ( 5.93 0.91 ) ;
+      RECT ( 5.62 0.83 ) ( 5.93 0.91 ) ;
       RECT ( 7.04 1.08 ) ( 7.37 1.16 ) ;
       RECT ( 7.04 0.91 ) ( 7.12 1.08 ) ;
       RECT ( 7.29 0.91 ) ( 7.37 1.08 ) ;
@@ -179,20 +177,19 @@
       RECT ( 0.56 0.67 ) ( 0.89 0.75 ) ;
       RECT ( 0.56 0.5 ) ( 0.64 0.67 ) ;
       RECT ( 0.81 0.5 ) ( 0.89 0.67 ) ;
-      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 5.12 0.67 ) ( 5.45 0.75 ) ;
       RECT ( 0.56 0.42 ) ( 0.89 0.5 ) ;
       RECT ( 1.76 0.51 ) ( 2.09 0.59 ) ;
       RECT ( 1.76 0.34 ) ( 1.84 0.51 ) ;
       RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
-      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
-      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
-      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 5.12 0.5 ) ( 5.2 0.67 ) ;
+      RECT ( 5.37 0.5 ) ( 5.45 0.67 ) ;
+      RECT ( 5.12 0.42 ) ( 5.45 0.5 ) ;
       RECT ( 7.52 0.51 ) ( 7.85 0.59 ) ;
       RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
       RECT ( 7.52 0.34 ) ( 7.6 0.51 ) ;
       RECT ( 7.77 0.34 ) ( 7.85 0.51 ) ;
-      RECT ( 7.52 0.26 ) ( 7.85 0.34 ) ;
-      RECT ( 7.35 0.24 ) ( 8.02 0.26 ) ;
+      RECT ( 7.52 0.24 ) ( 7.85 0.34 ) ;
       RECT ( 0 0.09 ) ( 8.64 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
@@ -248,9 +245,13 @@
       RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
       RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
       RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
-      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
-      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
-      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 1.3 2.43 ) ( 1.59 2.49 ) ;
+      RECT ( 1.3 2.26 ) ( 1.36 2.43 ) ;
+      RECT ( 1.53 2.41 ) ( 1.59 2.43 ) ;
+      RECT ( 5.14 2.43 ) ( 5.43 2.49 ) ;
+      RECT ( 1.53 2.27 ) ( 4.87 2.41 ) ;
+      RECT ( 1.53 2.26 ) ( 1.59 2.27 ) ;
+      RECT ( 1.3 2.2 ) ( 1.59 2.26 ) ;
       RECT ( 0.65 2 ) ( 0.79 2.2 ) ;
       RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
       RECT ( 4.18 2 ) ( 4.24 2.01 ) ;
@@ -258,50 +259,58 @@
       RECT ( 0.65 0.73 ) ( 0.79 1.86 ) ;
       RECT ( 4.18 1.84 ) ( 4.24 1.86 ) ;
       RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
-      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
-      RECT ( 4.66 2.01 ) ( 4.95 2.26 ) ;
-      RECT ( 4.66 1.84 ) ( 4.72 2.01 ) ;
-      RECT ( 4.89 1.84 ) ( 4.95 2.01 ) ;
-      RECT ( 4.66 1.78 ) ( 4.95 1.84 ) ;
+      RECT ( 4.73 2 ) ( 4.87 2.27 ) ;
+      RECT ( 5.14 2.26 ) ( 5.2 2.43 ) ;
+      RECT ( 5.37 2.41 ) ( 5.43 2.43 ) ;
+      RECT ( 5.37 2.27 ) ( 6.31 2.41 ) ;
+      RECT ( 5.37 2.26 ) ( 5.43 2.27 ) ;
+      RECT ( 5.14 2.2 ) ( 5.43 2.26 ) ;
       RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
-      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
-      RECT ( 5.85 2 ) ( 5.91 2.01 ) ;
-      RECT ( 7.06 2.01 ) ( 7.35 2.07 ) ;
-      RECT ( 5.85 1.86 ) ( 6.31 2 ) ;
-      RECT ( 5.85 1.84 ) ( 5.91 1.86 ) ;
+      RECT ( 5.62 2 ) ( 5.68 2.01 ) ;
+      RECT ( 4.73 1.86 ) ( 5.68 2 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.62 1.84 ) ( 5.68 1.86 ) ;
+      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
       RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
       RECT ( 1.3 1.62 ) ( 1.59 1.68 ) ;
       RECT ( 1.3 1.45 ) ( 1.36 1.62 ) ;
       RECT ( 1.53 1.45 ) ( 1.59 1.62 ) ;
-      RECT ( 4.25 1.6 ) ( 4.39 1.78 ) ;
       RECT ( 1.3 1.39 ) ( 1.59 1.45 ) ;
       RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
       RECT ( 1.37 1.14 ) ( 1.51 1.39 ) ;
       RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
       RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
-      RECT ( 4.25 1.46 ) ( 5.83 1.6 ) ;
       RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
-      RECT ( 5.69 1.14 ) ( 5.83 1.46 ) ;
       RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
       RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 1.06 ) ( 1.59 1.08 ) ;
-      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
-      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
-      RECT ( 1.53 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 3.22 1.08 ) ( 3.51 1.14 ) ;
+      RECT ( 3.22 1.06 ) ( 3.28 1.08 ) ;
+      RECT ( 1.53 0.92 ) ( 3.28 1.06 ) ;
       RECT ( 1.53 0.91 ) ( 1.59 0.92 ) ;
       RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
-      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
-      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
-      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 3.22 0.91 ) ( 3.28 0.92 ) ;
+      RECT ( 3.45 0.91 ) ( 3.51 1.08 ) ;
+      RECT ( 4.25 1.06 ) ( 4.39 1.78 ) ;
       RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
-      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.62 1.06 ) ( 5.68 1.08 ) ;
+      RECT ( 4.25 0.92 ) ( 5.68 1.06 ) ;
+      RECT ( 3.22 0.85 ) ( 3.51 0.91 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 0.92 ) ;
       RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
       RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
       RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
       RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
       RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
-      RECT ( 4.25 0.66 ) ( 4.39 0.85 ) ;
-      RECT ( 6.17 0.66 ) ( 6.31 1.86 ) ;
+      RECT ( 5.14 0.67 ) ( 5.43 0.73 ) ;
+      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
+      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
+      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
+      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
+      RECT ( 5.14 0.5 ) ( 5.2 0.67 ) ;
+      RECT ( 5.37 0.66 ) ( 5.43 0.67 ) ;
+      RECT ( 6.17 0.66 ) ( 6.31 2.27 ) ;
+      RECT ( 7.06 2.01 ) ( 7.35 2.07 ) ;
       RECT ( 7.06 1.84 ) ( 7.12 2.01 ) ;
       RECT ( 7.29 1.84 ) ( 7.35 2.01 ) ;
       RECT ( 7.06 1.78 ) ( 7.35 1.84 ) ;
@@ -310,13 +319,11 @@
       RECT ( 7.06 0.91 ) ( 7.12 1.08 ) ;
       RECT ( 7.29 0.91 ) ( 7.35 1.08 ) ;
       RECT ( 7.06 0.85 ) ( 7.35 0.91 ) ;
-      RECT ( 0.58 0.44 ) ( 0.87 0.5 ) ;
-      RECT ( 1.78 0.51 ) ( 2.07 0.57 ) ;
-      RECT ( 4.25 0.52 ) ( 6.31 0.66 ) ;
-      RECT ( 1.78 0.34 ) ( 1.84 0.51 ) ;
-      RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
-      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
+      RECT ( 5.37 0.52 ) ( 6.31 0.66 ) ;
+      RECT ( 5.37 0.5 ) ( 5.43 0.52 ) ;
+      RECT ( 5.14 0.44 ) ( 5.43 0.5 ) ;
       RECT ( 7.54 0.51 ) ( 7.83 0.57 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
       RECT ( 7.54 0.34 ) ( 7.6 0.51 ) ;
       RECT ( 7.77 0.34 ) ( 7.83 0.51 ) ;
       RECT ( 7.54 0.24 ) ( 7.83 0.34 ) ;
diff --git a/cells/lef/MUX2X1.lef.temp b/cells/lef/MUX2X1.lef.temp
index 27bf17e..9d54f56 100644
--- a/cells/lef/MUX2X1.lef.temp
+++ b/cells/lef/MUX2X1.lef.temp
@@ -38,44 +38,16 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 4.65500000 1.78000000 4.94500000 2.48500000 ;
+        RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+        RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+        RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
-  PIN S
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
-        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
-        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
-        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
-        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
-        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
-        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
-        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
-        RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
-        RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
-        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
-    END
-  END S
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -89,4 +61,32 @@
     END
   END B
 
+  PIN S
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 3.21500000 0.84500000 3.50500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.50500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 3.21500000 1.06000000 3.50500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
+        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+    END
+  END S
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+    END
+  END A
+
 END MUX2X1
diff --git a/cells/lef/NAND2X1.lef b/cells/lef/NAND2X1.lef
index d4b4bd5..f17ec01 100644
--- a/cells/lef/NAND2X1.lef
+++ b/cells/lef/NAND2X1.lef
@@ -47,8 +47,7 @@
         RECT 3.200 0.510 3.530 0.590 ;
         RECT 3.200 0.340 3.280 0.510 ;
         RECT 3.450 0.340 3.530 0.510 ;
-        RECT 3.200 0.260 3.530 0.340 ;
-        RECT 3.030 0.240 3.700 0.260 ;
+        RECT 3.200 0.240 3.530 0.340 ;
         RECT 0.000 -0.240 4.320 0.240 ;
     END
   END gnd
@@ -67,17 +66,6 @@
         RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.780 1.590 2.070 ;
-        RECT 1.370 1.140 1.510 1.780 ;
-        RECT 1.300 0.850 1.590 1.140 ;
-    END
-  END B
   PIN A
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -89,6 +77,17 @@
         RECT 2.740 0.850 3.030 1.140 ;
     END
   END A
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END B
   OBS
       LAYER li1 ;
         RECT 0.560 2.430 0.890 2.510 ;
diff --git a/cells/lef/NAND2X1.lef.beforemagic b/cells/lef/NAND2X1.lef.beforemagic
index aeec7ce..617af91 100644
--- a/cells/lef/NAND2X1.lef.beforemagic
+++ b/cells/lef/NAND2X1.lef.beforemagic
@@ -48,19 +48,6 @@
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -74,6 +61,19 @@
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
 
   OBS
     LAYER locali ;
@@ -124,8 +124,7 @@
       RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
       RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
       RECT ( 3.45 0.34 ) ( 3.53 0.51 ) ;
-      RECT ( 3.2 0.26 ) ( 3.53 0.34 ) ;
-      RECT ( 3.03 0.24 ) ( 3.7 0.26 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
       RECT ( 0 0.09 ) ( 4.32 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
diff --git a/cells/lef/NAND2X1.lef.temp b/cells/lef/NAND2X1.lef.temp
index 6a37a4a..a6bc4c3 100644
--- a/cells/lef/NAND2X1.lef.temp
+++ b/cells/lef/NAND2X1.lef.temp
@@ -48,19 +48,6 @@
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -74,4 +61,17 @@
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
 END NAND2X1
diff --git a/cells/lef/NAND3X1.lef b/cells/lef/NAND3X1.lef
index 2a181c2..ab76953 100644
--- a/cells/lef/NAND3X1.lef
+++ b/cells/lef/NAND3X1.lef
@@ -55,8 +55,7 @@
         RECT 4.640 0.510 4.970 0.590 ;
         RECT 4.640 0.340 4.720 0.510 ;
         RECT 4.890 0.340 4.970 0.510 ;
-        RECT 4.640 0.260 4.970 0.340 ;
-        RECT 4.470 0.240 5.140 0.260 ;
+        RECT 4.640 0.240 4.970 0.340 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -75,6 +74,17 @@
         RECT 0.580 0.440 0.870 0.730 ;
     END
   END Y
+  PIN C
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END C
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -97,17 +107,6 @@
         RECT 4.180 0.850 4.470 1.140 ;
     END
   END A
-  PIN C
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.780 1.590 2.070 ;
-        RECT 1.370 1.140 1.510 1.780 ;
-        RECT 1.300 0.850 1.590 1.140 ;
-    END
-  END C
   OBS
       LAYER li1 ;
         RECT 0.560 2.430 0.890 2.510 ;
diff --git a/cells/lef/NAND3X1.lef.beforemagic b/cells/lef/NAND3X1.lef.beforemagic
index edde1b3..7752121 100644
--- a/cells/lef/NAND3X1.lef.beforemagic
+++ b/cells/lef/NAND3X1.lef.beforemagic
@@ -48,6 +48,19 @@
     END
   END Y
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
+
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -74,19 +87,6 @@
     END
   END A
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END C
-
 
   OBS
     LAYER locali ;
@@ -152,8 +152,7 @@
       RECT ( 4.64 0.51 ) ( 4.97 0.59 ) ;
       RECT ( 4.64 0.34 ) ( 4.72 0.51 ) ;
       RECT ( 4.89 0.34 ) ( 4.97 0.51 ) ;
-      RECT ( 4.64 0.26 ) ( 4.97 0.34 ) ;
-      RECT ( 4.47 0.24 ) ( 5.14 0.26 ) ;
+      RECT ( 4.64 0.24 ) ( 4.97 0.34 ) ;
       RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
diff --git a/cells/lef/NAND3X1.lef.temp b/cells/lef/NAND3X1.lef.temp
index 71c45ce..b6ba99b 100644
--- a/cells/lef/NAND3X1.lef.temp
+++ b/cells/lef/NAND3X1.lef.temp
@@ -48,6 +48,19 @@
     END
   END Y
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
+
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -74,17 +87,4 @@
     END
   END A
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END C
-
 END NAND3X1
diff --git a/cells/lef/NOR2X1.lef b/cells/lef/NOR2X1.lef
deleted file mode 100644
index 3298ea5..0000000
--- a/cells/lef/NOR2X1.lef
+++ /dev/null
@@ -1,122 +0,0 @@
-VERSION 5.7 ;
-  NOWIREEXTENSIONATPIN ON ;
-  DIVIDERCHAR "/" ;
-  BUSBITCHARS "[]" ;
-MACRO NOR2X1
-  CLASS CORE ;
-  FOREIGN NOR2X1 ;
-  ORIGIN 0.000 0.000 ;
-  SIZE 4.320 BY 3.330 ;
-  SYMMETRY X Y R90 ;
-  SITE unit ;
-  PIN vdd
-    DIRECTION INOUT ;
-    USE POWER ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 0.000 3.090 4.320 3.570 ;
-        RECT 0.580 2.990 0.870 3.090 ;
-        RECT 0.580 2.820 0.640 2.990 ;
-        RECT 0.810 2.820 0.870 2.990 ;
-        RECT 0.580 2.760 0.870 2.820 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 0.000 3.090 4.320 3.570 ;
-        RECT 0.560 2.990 0.890 3.090 ;
-        RECT 0.560 2.820 0.640 2.990 ;
-        RECT 0.810 2.820 0.890 2.990 ;
-        RECT 0.560 2.740 0.890 2.820 ;
-    END
-  END vdd
-  PIN gnd
-    DIRECTION INOUT ;
-    USE GROUND ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 0.000 -0.240 4.320 0.240 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 1.760 0.510 2.090 0.590 ;
-        RECT 1.760 0.340 1.840 0.510 ;
-        RECT 2.010 0.340 2.090 0.510 ;
-        RECT 1.760 0.240 2.090 0.340 ;
-        RECT 0.000 -0.240 4.320 0.240 ;
-    END
-  END gnd
-  PIN Y
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 3.220 2.200 3.510 2.490 ;
-        RECT 3.290 0.730 3.430 2.200 ;
-        RECT 0.820 0.660 1.110 0.730 ;
-        RECT 3.220 0.660 3.510 0.730 ;
-        RECT 0.820 0.520 3.510 0.660 ;
-        RECT 0.820 0.440 1.110 0.520 ;
-        RECT 3.220 0.440 3.510 0.520 ;
-    END
-  END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.780 1.590 2.070 ;
-        RECT 1.370 1.140 1.510 1.780 ;
-        RECT 1.300 0.850 1.590 1.140 ;
-    END
-  END A
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 2.740 1.780 3.030 2.070 ;
-        RECT 2.810 1.140 2.950 1.780 ;
-        RECT 2.740 0.850 3.030 1.140 ;
-    END
-  END B
-  OBS
-      LAYER li1 ;
-        RECT 3.200 2.430 3.530 2.510 ;
-        RECT 3.200 2.260 3.280 2.430 ;
-        RECT 3.450 2.260 3.530 2.430 ;
-        RECT 3.200 2.180 3.530 2.260 ;
-        RECT 1.280 2.010 1.610 2.090 ;
-        RECT 1.280 1.840 1.360 2.010 ;
-        RECT 1.530 1.840 1.610 2.010 ;
-        RECT 1.280 1.760 1.610 1.840 ;
-        RECT 2.720 2.010 3.030 2.090 ;
-        RECT 2.720 1.840 2.800 2.010 ;
-        RECT 2.970 1.840 3.050 2.010 ;
-        RECT 2.720 1.760 3.050 1.840 ;
-        RECT 1.280 1.080 1.610 1.160 ;
-        RECT 1.280 0.910 1.360 1.080 ;
-        RECT 1.530 0.910 1.610 1.080 ;
-        RECT 1.280 0.830 1.610 0.910 ;
-        RECT 2.720 1.080 3.050 1.160 ;
-        RECT 2.720 0.910 2.800 1.080 ;
-        RECT 2.970 0.920 3.050 1.080 ;
-        RECT 2.970 0.910 3.030 0.920 ;
-        RECT 2.720 0.830 3.030 0.910 ;
-        RECT 0.800 0.670 1.110 0.750 ;
-        RECT 0.800 0.500 0.880 0.670 ;
-        RECT 1.050 0.660 1.110 0.670 ;
-        RECT 3.200 0.670 3.530 0.750 ;
-        RECT 1.050 0.500 1.130 0.660 ;
-        RECT 0.800 0.420 1.130 0.500 ;
-        RECT 3.200 0.500 3.280 0.670 ;
-        RECT 3.450 0.500 3.530 0.670 ;
-        RECT 3.200 0.420 3.530 0.500 ;
-  END
-END NOR2X1
-END LIBRARY
-
diff --git a/cells/lef/OR2X1.lef b/cells/lef/OR2X1.lef
new file mode 100644
index 0000000..3fcb06e
--- /dev/null
+++ b/cells/lef/OR2X1.lef
@@ -0,0 +1,166 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO OR2X1
+  CLASS CORE ;
+  FOREIGN OR2X1 ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 5.760 BY 3.330 ;
+  SYMMETRY X Y R90 ;
+  SITE unit ;
+  PIN vdd
+    DIRECTION INOUT ;
+    USE POWER ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.000 3.090 5.760 3.570 ;
+        RECT 3.220 2.990 3.510 3.090 ;
+        RECT 3.220 2.820 3.280 2.990 ;
+        RECT 3.450 2.820 3.510 2.990 ;
+        RECT 3.220 2.760 3.510 2.820 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.000 3.090 5.760 3.570 ;
+        RECT 3.200 2.990 3.530 3.090 ;
+        RECT 3.200 2.820 3.280 2.990 ;
+        RECT 3.450 2.820 3.530 2.990 ;
+        RECT 3.200 2.740 3.530 2.820 ;
+    END
+  END vdd
+  PIN gnd
+    DIRECTION INOUT ;
+    USE GROUND ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 0.580 0.510 0.870 0.570 ;
+        RECT 0.580 0.340 0.640 0.510 ;
+        RECT 0.810 0.340 0.870 0.510 ;
+        RECT 0.580 0.240 0.870 0.340 ;
+        RECT 3.220 0.510 3.510 0.570 ;
+        RECT 3.220 0.340 3.280 0.510 ;
+        RECT 3.450 0.340 3.510 0.510 ;
+        RECT 3.220 0.240 3.510 0.340 ;
+        RECT 0.000 -0.240 5.760 0.240 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.560 0.510 0.890 0.590 ;
+        RECT 0.560 0.340 0.640 0.510 ;
+        RECT 0.810 0.340 0.890 0.510 ;
+        RECT 0.560 0.240 0.890 0.340 ;
+        RECT 3.200 0.510 3.530 0.590 ;
+        RECT 3.200 0.340 3.280 0.510 ;
+        RECT 3.450 0.340 3.530 0.510 ;
+        RECT 3.200 0.240 3.530 0.340 ;
+        RECT 0.000 -0.240 5.760 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 4.660 2.200 4.950 2.490 ;
+        RECT 4.730 0.730 4.870 2.200 ;
+        RECT 4.660 0.440 4.950 0.730 ;
+    END
+  END Y
+  PIN B
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 2.740 1.780 3.030 2.070 ;
+        RECT 2.810 1.540 2.950 1.780 ;
+        RECT 2.740 1.250 3.030 1.540 ;
+    END
+  END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.540 1.510 1.780 ;
+        RECT 1.300 1.250 1.590 1.540 ;
+    END
+  END A
+  OBS
+      LAYER li1 ;
+        RECT 0.800 2.430 1.130 2.510 ;
+        RECT 0.800 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.130 2.430 ;
+        RECT 4.640 2.430 4.970 2.510 ;
+        RECT 4.640 2.260 4.720 2.430 ;
+        RECT 4.890 2.260 4.970 2.430 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
+        RECT 1.280 2.010 1.610 2.090 ;
+        RECT 1.280 1.840 1.360 2.010 ;
+        RECT 1.530 1.840 1.610 2.010 ;
+        RECT 1.280 1.760 1.610 1.840 ;
+        RECT 2.720 2.010 3.050 2.090 ;
+        RECT 2.720 1.840 2.800 2.010 ;
+        RECT 2.970 1.840 3.050 2.010 ;
+        RECT 2.720 1.760 3.050 1.840 ;
+        RECT 4.160 2.010 4.490 2.090 ;
+        RECT 4.160 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.490 2.010 ;
+        RECT 4.160 1.760 4.490 1.840 ;
+        RECT 1.360 1.160 1.530 1.310 ;
+        RECT 2.800 1.160 2.970 1.310 ;
+        RECT 1.280 1.080 1.610 1.160 ;
+        RECT 1.280 0.910 1.360 1.080 ;
+        RECT 1.530 0.910 1.610 1.080 ;
+        RECT 2.720 1.080 3.050 1.160 ;
+        RECT 2.720 0.920 2.800 1.080 ;
+        RECT 1.280 0.830 1.610 0.910 ;
+        RECT 2.740 0.910 2.800 0.920 ;
+        RECT 2.970 0.910 3.050 1.080 ;
+        RECT 2.740 0.830 3.050 0.910 ;
+        RECT 4.160 1.080 4.490 1.160 ;
+        RECT 4.160 0.910 4.240 1.080 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
+        RECT 2.240 0.670 2.570 0.750 ;
+        RECT 2.240 0.500 2.320 0.670 ;
+        RECT 2.490 0.500 2.570 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
+        RECT 2.240 0.420 2.570 0.500 ;
+        RECT 4.640 0.500 4.720 0.660 ;
+        RECT 4.890 0.500 4.970 0.670 ;
+        RECT 4.640 0.420 4.970 0.500 ;
+      LAYER met1 ;
+        RECT 0.820 2.430 1.110 2.490 ;
+        RECT 0.820 2.260 0.880 2.430 ;
+        RECT 1.050 2.260 1.110 2.430 ;
+        RECT 0.820 2.200 1.110 2.260 ;
+        RECT 0.890 1.060 1.030 2.200 ;
+        RECT 4.180 2.010 4.470 2.070 ;
+        RECT 4.180 1.840 4.240 2.010 ;
+        RECT 4.410 1.840 4.470 2.010 ;
+        RECT 4.180 1.780 4.470 1.840 ;
+        RECT 4.250 1.140 4.390 1.780 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 0.890 0.920 4.240 1.060 ;
+        RECT 2.330 0.730 2.470 0.920 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 2.260 0.670 2.550 0.730 ;
+        RECT 2.260 0.500 2.320 0.670 ;
+        RECT 2.490 0.500 2.550 0.670 ;
+        RECT 2.260 0.440 2.550 0.500 ;
+  END
+END OR2X1
+END LIBRARY
+
diff --git a/cells/lef/OR2X1.lef.beforemagic b/cells/lef/OR2X1.lef.beforemagic
index f4af9dc..cec4811 100644
--- a/cells/lef/OR2X1.lef.beforemagic
+++ b/cells/lef/OR2X1.lef.beforemagic
@@ -44,19 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -64,14 +51,205 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
         RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
 
   OBS
+    LAYER locali ;
+      RECT ( 0 3.42 ) ( 5.76 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.76 3.42 ) ;
+      RECT ( 0 3.09 ) ( 5.76 3.25 ) ;
+      RECT ( 3.2 2.99 ) ( 3.53 3.09 ) ;
+      RECT ( 3.2 2.82 ) ( 3.28 2.99 ) ;
+      RECT ( 3.45 2.82 ) ( 3.53 2.99 ) ;
+      RECT ( 3.2 2.74 ) ( 3.53 2.82 ) ;
+      RECT ( 0.8 2.43 ) ( 1.13 2.51 ) ;
+      RECT ( 0.8 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.13 2.43 ) ;
+      RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
+      RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
+      RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
+      RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
+      RECT ( 1.28 1.76 ) ( 1.61 1.84 ) ;
+      RECT ( 2.72 2.01 ) ( 3.05 2.09 ) ;
+      RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
+      RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
+      RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
+      RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
+      RECT ( 1.36 1.16 ) ( 1.53 1.31 ) ;
+      RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
+      RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
+      RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
+      RECT ( 2.72 1.08 ) ( 3.05 1.16 ) ;
+      RECT ( 2.72 0.92 ) ( 2.8 1.08 ) ;
+      RECT ( 1.28 0.83 ) ( 1.61 0.91 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 0.92 ) ;
+      RECT ( 2.97 0.91 ) ( 3.05 1.08 ) ;
+      RECT ( 2.74 0.83 ) ( 3.05 0.91 ) ;
+      RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
+      RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
+      RECT ( 2.24 0.67 ) ( 2.57 0.75 ) ;
+      RECT ( 0.56 0.51 ) ( 0.89 0.59 ) ;
+      RECT ( 0.56 0.34 ) ( 0.64 0.51 ) ;
+      RECT ( 0.81 0.34 ) ( 0.89 0.51 ) ;
+      RECT ( 2.24 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.5 ) ( 2.57 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
+      RECT ( 2.24 0.42 ) ( 2.57 0.5 ) ;
+      RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
+      RECT ( 0.56 0.24 ) ( 0.89 0.34 ) ;
+      RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
+      RECT ( 3.45 0.34 ) ( 3.53 0.51 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
+      RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
+      RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
+      RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.76 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 -0.09 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.42 ) ( 5.76 3.57 ) ;
+      RECT ( 0 3.25 ) ( 0.16 3.42 ) ;
+      RECT ( 0.33 3.25 ) ( 0.64 3.42 ) ;
+      RECT ( 0.81 3.25 ) ( 1.12 3.42 ) ;
+      RECT ( 1.29 3.25 ) ( 1.6 3.42 ) ;
+      RECT ( 1.77 3.25 ) ( 2.08 3.42 ) ;
+      RECT ( 2.25 3.25 ) ( 2.56 3.42 ) ;
+      RECT ( 2.73 3.25 ) ( 3.04 3.42 ) ;
+      RECT ( 3.21 3.25 ) ( 3.52 3.42 ) ;
+      RECT ( 3.69 3.25 ) ( 4 3.42 ) ;
+      RECT ( 4.17 3.25 ) ( 4.48 3.42 ) ;
+      RECT ( 4.65 3.25 ) ( 4.96 3.42 ) ;
+      RECT ( 5.13 3.25 ) ( 5.44 3.42 ) ;
+      RECT ( 5.61 3.25 ) ( 5.76 3.42 ) ;
+      RECT ( 0 3.09 ) ( 5.76 3.25 ) ;
+      RECT ( 3.22 2.99 ) ( 3.51 3.09 ) ;
+      RECT ( 3.22 2.82 ) ( 3.28 2.99 ) ;
+      RECT ( 3.45 2.82 ) ( 3.51 2.99 ) ;
+      RECT ( 3.22 2.76 ) ( 3.51 2.82 ) ;
+      RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
+      RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.43 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
+      RECT ( 0.89 1.06 ) ( 1.03 2.2 ) ;
+      RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
+      RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
+      RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
+      RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
+      RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
+      RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 1.37 1.54 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.54 ) ( 2.95 1.78 ) ;
+      RECT ( 1.3 1.48 ) ( 1.59 1.54 ) ;
+      RECT ( 1.3 1.31 ) ( 1.36 1.48 ) ;
+      RECT ( 1.53 1.31 ) ( 1.59 1.48 ) ;
+      RECT ( 1.3 1.25 ) ( 1.59 1.31 ) ;
+      RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
+      RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
+      RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
+      RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
+      RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 0.89 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 2.33 0.73 ) ( 2.47 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
+      RECT ( 2.26 0.67 ) ( 2.55 0.73 ) ;
+      RECT ( 0.58 0.51 ) ( 0.87 0.57 ) ;
+      RECT ( 0.58 0.34 ) ( 0.64 0.51 ) ;
+      RECT ( 0.81 0.34 ) ( 0.87 0.51 ) ;
+      RECT ( 2.26 0.5 ) ( 2.32 0.67 ) ;
+      RECT ( 2.49 0.5 ) ( 2.55 0.67 ) ;
+      RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 2.26 0.44 ) ( 2.55 0.5 ) ;
+      RECT ( 3.22 0.51 ) ( 3.51 0.57 ) ;
+      RECT ( 0.58 0.24 ) ( 0.87 0.34 ) ;
+      RECT ( 3.22 0.34 ) ( 3.28 0.51 ) ;
+      RECT ( 3.45 0.34 ) ( 3.51 0.51 ) ;
+      RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 3.22 0.24 ) ( 3.51 0.34 ) ;
+      RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
+      RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
+      RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
+      RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
+      RECT ( 1.29 -0.09 ) ( 1.6 0.09 ) ;
+      RECT ( 1.77 -0.09 ) ( 2.08 0.09 ) ;
+      RECT ( 2.25 -0.09 ) ( 2.56 0.09 ) ;
+      RECT ( 2.73 -0.09 ) ( 3.04 0.09 ) ;
+      RECT ( 3.21 -0.09 ) ( 3.52 0.09 ) ;
+      RECT ( 3.69 -0.09 ) ( 4 0.09 ) ;
+      RECT ( 4.17 -0.09 ) ( 4.48 0.09 ) ;
+      RECT ( 4.65 -0.09 ) ( 4.96 0.09 ) ;
+      RECT ( 5.13 -0.09 ) ( 5.44 0.09 ) ;
+      RECT ( 5.61 -0.09 ) ( 5.76 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 5.76 -0.09 ) ;
 
   end
 END OR2X1
diff --git a/cells/lef/OR2X1.lef.temp b/cells/lef/OR2X1.lef.temp
index 95a57fd..2ed8074 100644
--- a/cells/lef/OR2X1.lef.temp
+++ b/cells/lef/OR2X1.lef.temp
@@ -44,19 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -64,10 +51,23 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
         RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
 END OR2X1
diff --git a/cells/lef/OR2X2.lef b/cells/lef/OR2X2.lef
index 4e674fa..635bc09 100644
--- a/cells/lef/OR2X2.lef
+++ b/cells/lef/OR2X2.lef
@@ -40,19 +40,18 @@
         RECT 0.580 0.340 0.640 0.510 ;
         RECT 0.810 0.340 0.870 0.510 ;
         RECT 0.580 0.240 0.870 0.340 ;
-        RECT 3.220 0.510 3.510 0.570 ;
-        RECT 3.220 0.340 3.280 0.510 ;
-        RECT 3.450 0.340 3.510 0.510 ;
-        RECT 3.220 0.240 3.510 0.340 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
     PORT
       LAYER li1 ;
+        RECT 0.560 0.510 0.890 0.590 ;
+        RECT 0.560 0.340 0.640 0.510 ;
+        RECT 0.810 0.340 0.890 0.510 ;
+        RECT 0.560 0.240 0.890 0.340 ;
         RECT 3.200 0.510 3.530 0.590 ;
         RECT 3.200 0.340 3.280 0.510 ;
         RECT 3.450 0.340 3.530 0.510 ;
-        RECT 3.200 0.260 3.530 0.340 ;
-        RECT 3.030 0.240 3.700 0.260 ;
+        RECT 3.200 0.240 3.530 0.340 ;
         RECT 0.000 -0.240 5.760 0.240 ;
     END
   END gnd
@@ -67,15 +66,6 @@
         RECT 4.660 0.440 4.950 0.730 ;
     END
   END Y
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.780 1.590 2.070 ;
-    END
-  END A
   PIN B
     DIRECTION INOUT ;
     USE SIGNAL ;
@@ -83,10 +73,21 @@
     PORT
       LAYER met1 ;
         RECT 2.740 1.780 3.030 2.070 ;
-        RECT 2.810 1.540 2.950 1.780 ;
-        RECT 2.740 1.250 3.030 1.540 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 1.300 1.780 1.590 2.070 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+    END
+  END A
   OBS
       LAYER li1 ;
         RECT 0.800 2.430 1.130 2.510 ;
@@ -96,7 +97,7 @@
         RECT 4.640 2.260 4.720 2.430 ;
         RECT 4.890 2.260 4.970 2.430 ;
         RECT 0.800 2.180 1.110 2.260 ;
-        RECT 4.640 2.180 4.970 2.260 ;
+        RECT 4.660 2.180 4.970 2.260 ;
         RECT 1.280 2.010 1.610 2.090 ;
         RECT 1.280 1.840 1.360 2.010 ;
         RECT 1.530 1.840 1.610 2.010 ;
@@ -105,12 +106,10 @@
         RECT 2.720 1.840 2.800 2.010 ;
         RECT 2.970 1.840 3.050 2.010 ;
         RECT 2.720 1.760 3.050 1.840 ;
-        RECT 4.160 2.010 4.470 2.090 ;
+        RECT 4.160 2.010 4.490 2.090 ;
         RECT 4.160 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.490 2.010 ;
         RECT 4.160 1.760 4.490 1.840 ;
-        RECT 1.360 1.160 1.530 1.760 ;
-        RECT 2.800 1.160 2.970 1.310 ;
         RECT 1.280 1.080 1.610 1.160 ;
         RECT 1.280 0.910 1.360 1.080 ;
         RECT 1.530 0.910 1.610 1.080 ;
@@ -122,42 +121,40 @@
         RECT 2.740 0.830 3.050 0.910 ;
         RECT 4.160 1.080 4.490 1.160 ;
         RECT 4.160 0.910 4.240 1.080 ;
-        RECT 4.410 0.920 4.490 1.080 ;
-        RECT 4.410 0.910 4.470 0.920 ;
-        RECT 4.160 0.830 4.470 0.910 ;
+        RECT 4.410 0.910 4.490 1.080 ;
+        RECT 4.160 0.830 4.490 0.910 ;
         RECT 2.240 0.670 2.570 0.750 ;
-        RECT 0.560 0.510 0.890 0.590 ;
-        RECT 0.560 0.340 0.640 0.510 ;
-        RECT 0.810 0.340 0.890 0.510 ;
         RECT 2.240 0.500 2.320 0.670 ;
         RECT 2.490 0.500 2.570 0.670 ;
+        RECT 4.660 0.670 4.970 0.750 ;
+        RECT 4.660 0.660 4.720 0.670 ;
         RECT 2.240 0.420 2.570 0.500 ;
-        RECT 4.640 0.670 4.970 0.750 ;
-        RECT 4.640 0.500 4.720 0.670 ;
+        RECT 4.640 0.500 4.720 0.660 ;
         RECT 4.890 0.500 4.970 0.670 ;
         RECT 4.640 0.420 4.970 0.500 ;
-        RECT 0.560 0.260 0.890 0.340 ;
       LAYER met1 ;
         RECT 0.820 2.430 1.110 2.490 ;
         RECT 0.820 2.260 0.880 2.430 ;
-        RECT 1.050 2.260 1.110 2.430 ;
+        RECT 1.050 2.410 1.110 2.430 ;
+        RECT 1.050 2.270 2.470 2.410 ;
+        RECT 1.050 2.260 1.110 2.270 ;
         RECT 0.820 2.200 1.110 2.260 ;
-        RECT 0.890 1.060 1.030 2.200 ;
+        RECT 2.330 0.730 2.470 2.270 ;
         RECT 4.180 2.010 4.470 2.070 ;
         RECT 4.180 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.470 2.010 ;
         RECT 4.180 1.780 4.470 1.840 ;
         RECT 4.250 1.140 4.390 1.780 ;
         RECT 4.180 1.080 4.470 1.140 ;
-        RECT 4.180 1.060 4.240 1.080 ;
-        RECT 0.890 0.920 4.240 1.060 ;
-        RECT 2.330 0.730 2.470 0.920 ;
-        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.180 0.910 4.240 1.080 ;
         RECT 4.410 0.910 4.470 1.080 ;
         RECT 4.180 0.850 4.470 0.910 ;
         RECT 2.260 0.670 2.550 0.730 ;
         RECT 2.260 0.500 2.320 0.670 ;
-        RECT 2.490 0.500 2.550 0.670 ;
+        RECT 2.490 0.660 2.550 0.670 ;
+        RECT 4.250 0.660 4.390 0.850 ;
+        RECT 2.490 0.520 4.390 0.660 ;
+        RECT 2.490 0.500 2.550 0.520 ;
         RECT 2.260 0.440 2.550 0.500 ;
   END
 END OR2X2
diff --git a/cells/lef/OR2X2.lef.beforemagic b/cells/lef/OR2X2.lef.beforemagic
index 0a31d2b..1f34d29 100644
--- a/cells/lef/OR2X2.lef.beforemagic
+++ b/cells/lef/OR2X2.lef.beforemagic
@@ -44,17 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -62,12 +51,25 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
 
   OBS
     LAYER locali ;
@@ -97,7 +99,7 @@
       RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
       RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
       RECT ( 0.8 2.18 ) ( 1.11 2.26 ) ;
-      RECT ( 4.64 2.18 ) ( 4.97 2.26 ) ;
+      RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
       RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
@@ -106,12 +108,10 @@
       RECT ( 2.72 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.05 2.01 ) ;
       RECT ( 2.72 1.76 ) ( 3.05 1.84 ) ;
-      RECT ( 4.16 2.01 ) ( 4.47 2.09 ) ;
+      RECT ( 4.16 2.01 ) ( 4.49 2.09 ) ;
       RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
       RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
-      RECT ( 1.36 1.16 ) ( 1.53 1.76 ) ;
-      RECT ( 2.8 1.16 ) ( 2.97 1.31 ) ;
       RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
       RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
@@ -123,28 +123,26 @@
       RECT ( 2.74 0.83 ) ( 3.05 0.91 ) ;
       RECT ( 4.16 1.08 ) ( 4.49 1.16 ) ;
       RECT ( 4.16 0.91 ) ( 4.24 1.08 ) ;
-      RECT ( 4.41 0.92 ) ( 4.49 1.08 ) ;
-      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
-      RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
+      RECT ( 4.41 0.91 ) ( 4.49 1.08 ) ;
+      RECT ( 4.16 0.83 ) ( 4.49 0.91 ) ;
       RECT ( 2.24 0.67 ) ( 2.57 0.75 ) ;
       RECT ( 0.56 0.51 ) ( 0.89 0.59 ) ;
       RECT ( 0.56 0.34 ) ( 0.64 0.51 ) ;
       RECT ( 0.81 0.34 ) ( 0.89 0.51 ) ;
       RECT ( 2.24 0.5 ) ( 2.32 0.67 ) ;
       RECT ( 2.49 0.5 ) ( 2.57 0.67 ) ;
-      RECT ( 4.64 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.67 ) ( 4.97 0.75 ) ;
+      RECT ( 4.66 0.66 ) ( 4.72 0.67 ) ;
       RECT ( 2.24 0.42 ) ( 2.57 0.5 ) ;
       RECT ( 3.2 0.51 ) ( 3.53 0.59 ) ;
-      RECT ( 0.56 0.26 ) ( 0.89 0.34 ) ;
+      RECT ( 0.56 0.24 ) ( 0.89 0.34 ) ;
       RECT ( 3.2 0.34 ) ( 3.28 0.51 ) ;
       RECT ( 3.45 0.34 ) ( 3.53 0.51 ) ;
-      RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.64 0.5 ) ( 4.72 0.66 ) ;
       RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
       RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
-      RECT ( 3.2 0.26 ) ( 3.53 0.34 ) ;
-      RECT ( 3.03 0.24 ) ( 3.7 0.26 ) ;
-      RECT ( 0 0.09 ) ( 0.39 0.24 ) ;
-      RECT ( 1.06 0.09 ) ( 5.76 0.24 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
+      RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
       RECT ( 0.81 -0.09 ) ( 1.12 0.09 ) ;
@@ -181,17 +179,24 @@
       RECT ( 3.22 2.76 ) ( 3.51 2.82 ) ;
       RECT ( 0.82 2.43 ) ( 1.11 2.49 ) ;
       RECT ( 0.82 2.26 ) ( 0.88 2.43 ) ;
-      RECT ( 1.05 2.26 ) ( 1.11 2.43 ) ;
-      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
+      RECT ( 1.05 2.41 ) ( 1.11 2.43 ) ;
       RECT ( 4.66 2.43 ) ( 4.95 2.49 ) ;
-      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
-      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
-      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
-      RECT ( 0.89 1.06 ) ( 1.03 2.2 ) ;
+      RECT ( 1.05 2.27 ) ( 2.47 2.41 ) ;
+      RECT ( 1.05 2.26 ) ( 1.11 2.27 ) ;
+      RECT ( 0.82 2.2 ) ( 1.11 2.26 ) ;
       RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
       RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.59 2.01 ) ;
       RECT ( 1.3 1.78 ) ( 1.59 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.33 0.73 ) ( 2.47 2.27 ) ;
+      RECT ( 4.66 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 4.95 2.43 ) ;
+      RECT ( 4.66 2.2 ) ( 4.95 2.26 ) ;
       RECT ( 2.74 2.01 ) ( 3.03 2.07 ) ;
       RECT ( 2.74 1.84 ) ( 2.8 2.01 ) ;
       RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
@@ -200,36 +205,32 @@
       RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.47 2.01 ) ;
       RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
-      RECT ( 2.81 1.54 ) ( 2.95 1.78 ) ;
-      RECT ( 2.74 1.48 ) ( 3.03 1.54 ) ;
-      RECT ( 2.74 1.31 ) ( 2.8 1.48 ) ;
-      RECT ( 2.97 1.31 ) ( 3.03 1.48 ) ;
-      RECT ( 2.74 1.25 ) ( 3.03 1.31 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
       RECT ( 4.25 1.14 ) ( 4.39 1.78 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
       RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
-      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
-      RECT ( 0.89 0.92 ) ( 4.24 1.06 ) ;
-      RECT ( 2.33 0.73 ) ( 2.47 0.92 ) ;
-      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 1.08 ) ;
       RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
       RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
-      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
       RECT ( 2.26 0.67 ) ( 2.55 0.73 ) ;
       RECT ( 0.58 0.51 ) ( 0.87 0.57 ) ;
       RECT ( 0.58 0.34 ) ( 0.64 0.51 ) ;
       RECT ( 0.81 0.34 ) ( 0.87 0.51 ) ;
       RECT ( 2.26 0.5 ) ( 2.32 0.67 ) ;
-      RECT ( 2.49 0.5 ) ( 2.55 0.67 ) ;
+      RECT ( 2.49 0.66 ) ( 2.55 0.67 ) ;
+      RECT ( 4.25 0.66 ) ( 4.39 0.85 ) ;
+      RECT ( 4.73 0.73 ) ( 4.87 2.2 ) ;
+      RECT ( 2.49 0.52 ) ( 4.39 0.66 ) ;
       RECT ( 4.66 0.67 ) ( 4.95 0.73 ) ;
+      RECT ( 2.49 0.5 ) ( 2.55 0.52 ) ;
       RECT ( 2.26 0.44 ) ( 2.55 0.5 ) ;
-      RECT ( 3.22 0.51 ) ( 3.51 0.57 ) ;
-      RECT ( 0.58 0.24 ) ( 0.87 0.34 ) ;
-      RECT ( 3.22 0.34 ) ( 3.28 0.51 ) ;
-      RECT ( 3.45 0.34 ) ( 3.51 0.51 ) ;
       RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
       RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
       RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
-      RECT ( 3.22 0.24 ) ( 3.51 0.34 ) ;
+      RECT ( 0.58 0.24 ) ( 0.87 0.34 ) ;
       RECT ( 0 0.09 ) ( 5.76 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
diff --git a/cells/lef/OR2X2.lef.temp b/cells/lef/OR2X2.lef.temp
index 28c3d77..cf84bf0 100644
--- a/cells/lef/OR2X2.lef.temp
+++ b/cells/lef/OR2X2.lef.temp
@@ -44,17 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -62,10 +51,23 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
 END OR2X2
diff --git a/cells/lef/XNOR2X1.lef b/cells/lef/XNOR2X1.lef
index 2a69612..f129d08 100644
--- a/cells/lef/XNOR2X1.lef
+++ b/cells/lef/XNOR2X1.lef
@@ -16,10 +16,6 @@
     PORT
       LAYER met1 ;
         RECT 0.000 3.090 10.080 3.570 ;
-        RECT 1.780 2.990 2.070 3.090 ;
-        RECT 1.780 2.820 1.840 2.990 ;
-        RECT 2.010 2.820 2.070 2.990 ;
-        RECT 1.780 2.760 2.070 2.820 ;
         RECT 7.540 2.990 7.830 3.090 ;
         RECT 7.540 2.820 7.600 2.990 ;
         RECT 7.770 2.820 7.830 2.990 ;
@@ -48,6 +44,10 @@
         RECT 1.780 0.340 1.840 0.510 ;
         RECT 2.010 0.340 2.070 0.510 ;
         RECT 1.780 0.240 2.070 0.340 ;
+        RECT 7.540 0.510 7.830 0.570 ;
+        RECT 7.540 0.340 7.600 0.510 ;
+        RECT 7.770 0.340 7.830 0.510 ;
+        RECT 7.540 0.240 7.830 0.340 ;
         RECT 0.000 -0.240 10.080 0.240 ;
     END
     PORT
@@ -55,11 +55,10 @@
         RECT 1.760 0.510 2.090 0.590 ;
         RECT 1.760 0.340 1.840 0.510 ;
         RECT 2.010 0.340 2.090 0.510 ;
-        RECT 1.760 0.260 2.090 0.340 ;
+        RECT 1.760 0.240 2.090 0.340 ;
         RECT 7.520 0.510 7.850 0.590 ;
         RECT 7.520 0.340 7.600 0.510 ;
         RECT 7.770 0.340 7.850 0.510 ;
-        RECT 1.590 0.240 2.260 0.260 ;
         RECT 7.520 0.240 7.850 0.340 ;
         RECT 0.000 -0.240 10.080 0.240 ;
     END
@@ -84,6 +83,10 @@
         RECT 1.300 1.860 3.030 2.000 ;
         RECT 1.300 1.780 1.590 1.860 ;
         RECT 2.740 1.780 3.030 1.860 ;
+        RECT 1.370 1.140 1.510 1.780 ;
+        RECT 2.810 1.140 2.950 1.780 ;
+        RECT 1.300 0.850 1.590 1.140 ;
+        RECT 2.740 0.850 3.030 1.140 ;
     END
   END B
   PIN A
@@ -92,11 +95,15 @@
     SHAPE ABUTMENT ;
     PORT
       LAYER met1 ;
-        RECT 4.180 1.870 4.470 2.070 ;
-        RECT 5.140 1.870 5.430 1.950 ;
-        RECT 4.180 1.780 5.430 1.870 ;
-        RECT 4.250 1.730 5.430 1.780 ;
-        RECT 5.140 1.660 5.430 1.730 ;
+        RECT 4.180 2.000 4.470 2.070 ;
+        RECT 8.500 2.000 8.790 2.070 ;
+        RECT 4.180 1.860 8.790 2.000 ;
+        RECT 4.180 1.780 4.470 1.860 ;
+        RECT 5.690 1.140 5.830 1.860 ;
+        RECT 8.500 1.780 8.790 1.860 ;
+        RECT 8.570 1.140 8.710 1.780 ;
+        RECT 5.620 0.850 5.910 1.140 ;
+        RECT 8.500 0.850 8.790 1.140 ;
     END
   END A
   OBS
@@ -107,12 +114,8 @@
         RECT 4.640 2.430 4.970 2.510 ;
         RECT 4.640 2.260 4.720 2.430 ;
         RECT 4.890 2.260 4.970 2.430 ;
-        RECT 8.960 2.430 9.290 2.510 ;
-        RECT 8.960 2.260 9.040 2.430 ;
-        RECT 9.210 2.260 9.290 2.430 ;
         RECT 0.560 2.180 0.890 2.260 ;
         RECT 4.660 2.180 4.970 2.260 ;
-        RECT 8.980 2.180 9.290 2.260 ;
         RECT 1.280 2.010 1.610 2.090 ;
         RECT 1.280 1.840 1.360 2.010 ;
         RECT 1.530 1.840 1.610 2.010 ;
@@ -125,9 +128,6 @@
         RECT 4.160 1.840 4.240 2.010 ;
         RECT 4.410 1.840 4.490 2.010 ;
         RECT 4.160 1.760 4.490 1.840 ;
-        RECT 1.360 1.160 1.530 1.760 ;
-        RECT 2.800 1.160 2.970 1.760 ;
-        RECT 4.240 1.160 4.410 1.310 ;
         RECT 1.280 1.080 1.610 1.160 ;
         RECT 1.280 0.910 1.360 1.080 ;
         RECT 1.530 0.910 1.610 1.080 ;
@@ -142,6 +142,12 @@
         RECT 4.410 0.910 4.470 0.920 ;
         RECT 4.160 0.830 4.470 0.910 ;
         RECT 4.720 0.750 4.890 2.180 ;
+        RECT 5.680 2.090 5.850 2.260 ;
+        RECT 7.120 2.090 7.290 2.660 ;
+        RECT 8.960 2.430 9.290 2.510 ;
+        RECT 8.960 2.260 9.040 2.430 ;
+        RECT 9.210 2.260 9.290 2.430 ;
+        RECT 8.980 2.180 9.290 2.260 ;
         RECT 5.600 2.010 5.930 2.090 ;
         RECT 5.600 1.840 5.680 2.010 ;
         RECT 5.850 1.840 5.930 2.010 ;
@@ -154,9 +160,9 @@
         RECT 8.480 1.840 8.560 2.010 ;
         RECT 8.730 1.840 8.810 2.010 ;
         RECT 8.480 1.760 8.810 1.840 ;
-        RECT 5.200 1.080 5.370 1.720 ;
+        RECT 7.120 1.160 7.290 1.760 ;
         RECT 5.600 1.080 5.930 1.160 ;
-        RECT 5.200 0.910 5.680 1.080 ;
+        RECT 5.600 0.910 5.680 1.080 ;
         RECT 5.850 0.910 5.930 1.080 ;
         RECT 5.600 0.830 5.930 0.910 ;
         RECT 7.040 1.080 7.370 1.160 ;
@@ -172,73 +178,53 @@
         RECT 0.810 0.500 0.890 0.670 ;
         RECT 0.560 0.420 0.890 0.500 ;
         RECT 4.640 0.670 4.970 0.750 ;
-        RECT 5.680 0.670 5.850 0.830 ;
-        RECT 8.980 0.670 9.290 0.750 ;
         RECT 4.640 0.500 4.720 0.670 ;
         RECT 4.890 0.500 4.970 0.670 ;
+        RECT 8.980 0.670 9.290 0.750 ;
         RECT 8.980 0.660 9.040 0.670 ;
         RECT 4.640 0.420 4.970 0.500 ;
         RECT 8.960 0.500 9.040 0.660 ;
         RECT 9.210 0.500 9.290 0.670 ;
         RECT 8.960 0.420 9.290 0.500 ;
       LAYER met1 ;
+        RECT 7.060 2.830 7.350 2.890 ;
+        RECT 7.060 2.820 7.120 2.830 ;
+        RECT 0.650 2.680 7.120 2.820 ;
+        RECT 0.650 2.490 0.790 2.680 ;
+        RECT 7.060 2.660 7.120 2.680 ;
+        RECT 7.290 2.660 7.350 2.830 ;
+        RECT 7.060 2.600 7.350 2.660 ;
         RECT 0.580 2.430 0.870 2.490 ;
         RECT 0.580 2.260 0.640 2.430 ;
         RECT 0.810 2.260 0.870 2.430 ;
+        RECT 5.620 2.430 5.910 2.490 ;
+        RECT 5.620 2.410 5.680 2.430 ;
+        RECT 0.580 2.200 0.870 2.260 ;
+        RECT 3.770 2.270 5.680 2.410 ;
+        RECT 0.650 0.730 0.790 2.200 ;
+        RECT 3.770 1.060 3.910 2.270 ;
+        RECT 5.620 2.260 5.680 2.270 ;
+        RECT 5.850 2.410 5.910 2.430 ;
         RECT 8.980 2.430 9.270 2.490 ;
         RECT 8.980 2.410 9.040 2.430 ;
-        RECT 0.580 2.200 0.870 2.260 ;
-        RECT 5.690 2.270 9.040 2.410 ;
-        RECT 0.650 1.060 0.790 2.200 ;
-        RECT 5.690 2.070 5.830 2.270 ;
+        RECT 5.850 2.270 9.040 2.410 ;
+        RECT 5.850 2.260 5.910 2.270 ;
+        RECT 5.620 2.200 5.910 2.260 ;
         RECT 8.980 2.260 9.040 2.270 ;
         RECT 9.210 2.260 9.270 2.430 ;
         RECT 8.980 2.200 9.270 2.260 ;
-        RECT 5.620 2.010 5.910 2.070 ;
-        RECT 5.620 1.840 5.680 2.010 ;
-        RECT 5.850 1.840 5.910 2.010 ;
-        RECT 5.620 1.780 5.910 1.840 ;
-        RECT 7.060 2.010 7.350 2.070 ;
-        RECT 7.060 1.840 7.120 2.010 ;
-        RECT 7.290 1.840 7.350 2.010 ;
-        RECT 7.060 1.780 7.350 1.840 ;
-        RECT 8.500 2.010 8.790 2.070 ;
-        RECT 8.500 1.840 8.560 2.010 ;
-        RECT 8.730 1.840 8.790 2.010 ;
-        RECT 8.500 1.780 8.790 1.840 ;
-        RECT 4.180 1.480 4.470 1.540 ;
-        RECT 4.180 1.310 4.240 1.480 ;
-        RECT 4.410 1.470 4.470 1.480 ;
-        RECT 5.690 1.470 5.830 1.780 ;
-        RECT 4.410 1.330 5.830 1.470 ;
-        RECT 4.410 1.310 4.470 1.330 ;
-        RECT 4.180 1.250 4.470 1.310 ;
-        RECT 7.130 1.140 7.270 1.780 ;
-        RECT 8.570 1.140 8.710 1.780 ;
-        RECT 7.060 1.080 7.350 1.140 ;
-        RECT 7.060 1.060 7.120 1.080 ;
-        RECT 0.650 0.920 7.120 1.060 ;
-        RECT 0.650 0.730 0.790 0.920 ;
-        RECT 7.060 0.910 7.120 0.920 ;
-        RECT 7.290 0.910 7.350 1.080 ;
-        RECT 7.060 0.850 7.350 0.910 ;
-        RECT 8.500 1.080 8.790 1.140 ;
-        RECT 8.500 0.910 8.560 1.080 ;
-        RECT 8.730 0.910 8.790 1.080 ;
-        RECT 8.500 0.850 8.790 0.910 ;
+        RECT 4.180 1.080 4.470 1.140 ;
+        RECT 4.180 1.060 4.240 1.080 ;
+        RECT 3.770 0.920 4.240 1.060 ;
+        RECT 4.180 0.910 4.240 0.920 ;
+        RECT 4.410 0.910 4.470 1.080 ;
+        RECT 4.180 0.850 4.470 0.910 ;
+        RECT 9.050 0.730 9.190 2.200 ;
         RECT 0.580 0.670 0.870 0.730 ;
         RECT 0.580 0.500 0.640 0.670 ;
         RECT 0.810 0.500 0.870 0.670 ;
         RECT 0.580 0.440 0.870 0.500 ;
-        RECT 5.620 0.670 5.910 0.730 ;
-        RECT 5.620 0.500 5.680 0.670 ;
-        RECT 5.850 0.660 5.910 0.670 ;
-        RECT 8.570 0.660 8.710 0.850 ;
-        RECT 9.050 0.730 9.190 2.200 ;
-        RECT 5.850 0.520 8.710 0.660 ;
         RECT 8.980 0.670 9.270 0.730 ;
-        RECT 5.850 0.500 5.910 0.520 ;
-        RECT 5.620 0.440 5.910 0.500 ;
         RECT 8.980 0.500 9.040 0.670 ;
         RECT 9.210 0.500 9.270 0.670 ;
         RECT 8.980 0.440 9.270 0.500 ;
diff --git a/cells/lef/XNOR2X1.lef.beforemagic b/cells/lef/XNOR2X1.lef.beforemagic
index 881b489..188c422 100644
--- a/cells/lef/XNOR2X1.lef.beforemagic
+++ b/cells/lef/XNOR2X1.lef.beforemagic
@@ -49,6 +49,10 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
         RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
         RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
@@ -64,11 +68,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 5.13500000 1.65500000 5.42500000 1.73000000 ;
-        RECT 4.25000000 1.73000000 5.42500000 1.78000000 ;
-        RECT 4.17500000 1.78000000 5.42500000 1.87000000 ;
-        RECT 5.13500000 1.87000000 5.42500000 1.94500000 ;
-        RECT 4.17500000 1.87000000 4.46500000 2.07000000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
+        RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.85500000 ;
+        RECT 8.49500000 1.78000000 8.78500000 1.85500000 ;
+        RECT 4.17500000 1.85500000 8.78500000 1.99500000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 8.49500000 1.99500000 8.78500000 2.07000000 ;
     END
   END A
 
@@ -102,8 +110,8 @@
       RECT ( 1.76 2.99 ) ( 2.09 3.09 ) ;
       RECT ( 1.76 2.82 ) ( 1.84 2.99 ) ;
       RECT ( 2.01 2.82 ) ( 2.09 2.99 ) ;
-      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
       RECT ( 7.52 2.99 ) ( 7.85 3.09 ) ;
+      RECT ( 1.76 2.74 ) ( 2.09 2.82 ) ;
       RECT ( 7.52 2.82 ) ( 7.6 2.99 ) ;
       RECT ( 7.77 2.82 ) ( 7.85 2.99 ) ;
       RECT ( 7.52 2.74 ) ( 7.85 2.82 ) ;
@@ -113,12 +121,8 @@
       RECT ( 4.64 2.43 ) ( 4.97 2.51 ) ;
       RECT ( 4.64 2.26 ) ( 4.72 2.43 ) ;
       RECT ( 4.89 2.26 ) ( 4.97 2.43 ) ;
-      RECT ( 8.96 2.43 ) ( 9.29 2.51 ) ;
-      RECT ( 8.96 2.26 ) ( 9.04 2.43 ) ;
-      RECT ( 9.21 2.26 ) ( 9.29 2.43 ) ;
       RECT ( 0.56 2.18 ) ( 0.89 2.26 ) ;
       RECT ( 4.66 2.18 ) ( 4.97 2.26 ) ;
-      RECT ( 8.98 2.18 ) ( 9.29 2.26 ) ;
       RECT ( 1.28 2.01 ) ( 1.61 2.09 ) ;
       RECT ( 1.28 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 1.84 ) ( 1.61 2.01 ) ;
@@ -131,9 +135,6 @@
       RECT ( 4.16 1.84 ) ( 4.24 2.01 ) ;
       RECT ( 4.41 1.84 ) ( 4.49 2.01 ) ;
       RECT ( 4.16 1.76 ) ( 4.49 1.84 ) ;
-      RECT ( 1.36 1.16 ) ( 1.53 1.76 ) ;
-      RECT ( 2.8 1.16 ) ( 2.97 1.76 ) ;
-      RECT ( 4.24 1.16 ) ( 4.41 1.31 ) ;
       RECT ( 1.28 1.08 ) ( 1.61 1.16 ) ;
       RECT ( 1.28 0.91 ) ( 1.36 1.08 ) ;
       RECT ( 1.53 0.91 ) ( 1.61 1.08 ) ;
@@ -148,6 +149,12 @@
       RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
       RECT ( 4.16 0.83 ) ( 4.47 0.91 ) ;
       RECT ( 4.72 0.75 ) ( 4.89 2.18 ) ;
+      RECT ( 5.68 2.09 ) ( 5.85 2.26 ) ;
+      RECT ( 7.12 2.09 ) ( 7.29 2.66 ) ;
+      RECT ( 8.96 2.43 ) ( 9.29 2.51 ) ;
+      RECT ( 8.96 2.26 ) ( 9.04 2.43 ) ;
+      RECT ( 9.21 2.26 ) ( 9.29 2.43 ) ;
+      RECT ( 8.98 2.18 ) ( 9.29 2.26 ) ;
       RECT ( 5.6 2.01 ) ( 5.93 2.09 ) ;
       RECT ( 5.6 1.84 ) ( 5.68 2.01 ) ;
       RECT ( 5.85 1.84 ) ( 5.93 2.01 ) ;
@@ -160,9 +167,9 @@
       RECT ( 8.48 1.84 ) ( 8.56 2.01 ) ;
       RECT ( 8.73 1.84 ) ( 8.81 2.01 ) ;
       RECT ( 8.48 1.76 ) ( 8.81 1.84 ) ;
-      RECT ( 5.2 1.08 ) ( 5.37 1.72 ) ;
+      RECT ( 7.12 1.16 ) ( 7.29 1.76 ) ;
       RECT ( 5.6 1.08 ) ( 5.93 1.16 ) ;
-      RECT ( 5.2 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.6 0.91 ) ( 5.68 1.08 ) ;
       RECT ( 5.85 0.91 ) ( 5.93 1.08 ) ;
       RECT ( 5.6 0.83 ) ( 5.93 0.91 ) ;
       RECT ( 7.04 1.08 ) ( 7.37 1.16 ) ;
@@ -183,18 +190,16 @@
       RECT ( 2.01 0.34 ) ( 2.09 0.51 ) ;
       RECT ( 4.64 0.5 ) ( 4.72 0.67 ) ;
       RECT ( 4.89 0.5 ) ( 4.97 0.67 ) ;
-      RECT ( 5.68 0.67 ) ( 5.85 0.83 ) ;
       RECT ( 8.98 0.67 ) ( 9.29 0.75 ) ;
       RECT ( 8.98 0.66 ) ( 9.04 0.67 ) ;
-      RECT ( 7.52 0.51 ) ( 7.85 0.59 ) ;
       RECT ( 4.64 0.42 ) ( 4.97 0.5 ) ;
-      RECT ( 1.76 0.26 ) ( 2.09 0.34 ) ;
+      RECT ( 7.52 0.51 ) ( 7.85 0.59 ) ;
+      RECT ( 1.76 0.24 ) ( 2.09 0.34 ) ;
       RECT ( 7.52 0.34 ) ( 7.6 0.51 ) ;
       RECT ( 7.77 0.34 ) ( 7.85 0.51 ) ;
       RECT ( 8.96 0.5 ) ( 9.04 0.66 ) ;
       RECT ( 9.21 0.5 ) ( 9.29 0.67 ) ;
       RECT ( 8.96 0.42 ) ( 9.29 0.5 ) ;
-      RECT ( 1.59 0.24 ) ( 2.26 0.26 ) ;
       RECT ( 7.52 0.24 ) ( 7.85 0.34 ) ;
       RECT ( 0 0.09 ) ( 10.08 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
@@ -245,26 +250,25 @@
       RECT ( 9.45 3.25 ) ( 9.76 3.42 ) ;
       RECT ( 9.93 3.25 ) ( 10.08 3.42 ) ;
       RECT ( 0 3.09 ) ( 10.08 3.25 ) ;
-      RECT ( 1.78 2.99 ) ( 2.07 3.09 ) ;
-      RECT ( 1.78 2.82 ) ( 1.84 2.99 ) ;
-      RECT ( 2.01 2.82 ) ( 2.07 2.99 ) ;
-      RECT ( 1.78 2.76 ) ( 2.07 2.82 ) ;
       RECT ( 7.54 2.99 ) ( 7.83 3.09 ) ;
+      RECT ( 7.06 2.83 ) ( 7.35 2.89 ) ;
+      RECT ( 7.06 2.82 ) ( 7.12 2.83 ) ;
+      RECT ( 0.65 2.68 ) ( 7.12 2.82 ) ;
+      RECT ( 0.65 2.49 ) ( 0.79 2.68 ) ;
+      RECT ( 7.06 2.66 ) ( 7.12 2.68 ) ;
+      RECT ( 7.29 2.66 ) ( 7.35 2.83 ) ;
       RECT ( 7.54 2.82 ) ( 7.6 2.99 ) ;
       RECT ( 7.77 2.82 ) ( 7.83 2.99 ) ;
       RECT ( 7.54 2.76 ) ( 7.83 2.82 ) ;
+      RECT ( 7.06 2.6 ) ( 7.35 2.66 ) ;
       RECT ( 0.58 2.43 ) ( 0.87 2.49 ) ;
       RECT ( 0.58 2.26 ) ( 0.64 2.43 ) ;
       RECT ( 0.81 2.26 ) ( 0.87 2.43 ) ;
-      RECT ( 8.98 2.43 ) ( 9.27 2.49 ) ;
-      RECT ( 8.98 2.41 ) ( 9.04 2.43 ) ;
+      RECT ( 5.62 2.43 ) ( 5.91 2.49 ) ;
+      RECT ( 5.62 2.41 ) ( 5.68 2.43 ) ;
       RECT ( 0.58 2.2 ) ( 0.87 2.26 ) ;
-      RECT ( 5.69 2.27 ) ( 9.04 2.41 ) ;
-      RECT ( 0.65 1.06 ) ( 0.79 2.2 ) ;
-      RECT ( 5.69 2.07 ) ( 5.83 2.27 ) ;
-      RECT ( 8.98 2.26 ) ( 9.04 2.27 ) ;
-      RECT ( 9.21 2.26 ) ( 9.27 2.43 ) ;
-      RECT ( 8.98 2.2 ) ( 9.27 2.26 ) ;
+      RECT ( 3.77 2.27 ) ( 5.68 2.41 ) ;
+      RECT ( 0.65 0.73 ) ( 0.79 2.2 ) ;
       RECT ( 1.3 2.01 ) ( 1.59 2.07 ) ;
       RECT ( 1.3 1.84 ) ( 1.36 2.01 ) ;
       RECT ( 1.53 2 ) ( 1.59 2.01 ) ;
@@ -276,49 +280,55 @@
       RECT ( 2.74 1.84 ) ( 2.8 1.86 ) ;
       RECT ( 2.97 1.84 ) ( 3.03 2.01 ) ;
       RECT ( 2.74 1.78 ) ( 3.03 1.84 ) ;
+      RECT ( 1.37 1.14 ) ( 1.51 1.78 ) ;
+      RECT ( 2.81 1.14 ) ( 2.95 1.78 ) ;
+      RECT ( 1.3 1.08 ) ( 1.59 1.14 ) ;
+      RECT ( 1.3 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 1.59 1.08 ) ;
+      RECT ( 1.3 0.85 ) ( 1.59 0.91 ) ;
+      RECT ( 2.74 1.08 ) ( 3.03 1.14 ) ;
+      RECT ( 2.74 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 3.03 1.08 ) ;
+      RECT ( 3.77 1.06 ) ( 3.91 2.27 ) ;
+      RECT ( 5.62 2.26 ) ( 5.68 2.27 ) ;
+      RECT ( 5.85 2.41 ) ( 5.91 2.43 ) ;
+      RECT ( 8.98 2.43 ) ( 9.27 2.49 ) ;
+      RECT ( 8.98 2.41 ) ( 9.04 2.43 ) ;
+      RECT ( 5.85 2.27 ) ( 9.04 2.41 ) ;
+      RECT ( 5.85 2.26 ) ( 5.91 2.27 ) ;
+      RECT ( 5.62 2.2 ) ( 5.91 2.26 ) ;
+      RECT ( 8.98 2.26 ) ( 9.04 2.27 ) ;
+      RECT ( 9.21 2.26 ) ( 9.27 2.43 ) ;
+      RECT ( 8.98 2.2 ) ( 9.27 2.26 ) ;
       RECT ( 4.18 2.01 ) ( 4.47 2.07 ) ;
       RECT ( 4.18 1.84 ) ( 4.24 2.01 ) ;
-      RECT ( 4.41 1.87 ) ( 4.47 2.01 ) ;
-      RECT ( 5.62 2.01 ) ( 5.91 2.07 ) ;
-      RECT ( 5.14 1.89 ) ( 5.43 1.95 ) ;
-      RECT ( 5.14 1.87 ) ( 5.2 1.89 ) ;
-      RECT ( 4.41 1.84 ) ( 5.2 1.87 ) ;
-      RECT ( 4.18 1.78 ) ( 5.2 1.84 ) ;
-      RECT ( 4.25 1.73 ) ( 5.2 1.78 ) ;
-      RECT ( 5.14 1.72 ) ( 5.2 1.73 ) ;
-      RECT ( 5.37 1.72 ) ( 5.43 1.89 ) ;
-      RECT ( 5.62 1.84 ) ( 5.68 2.01 ) ;
-      RECT ( 5.85 1.84 ) ( 5.91 2.01 ) ;
-      RECT ( 5.62 1.78 ) ( 5.91 1.84 ) ;
-      RECT ( 7.06 2.01 ) ( 7.35 2.07 ) ;
-      RECT ( 7.06 1.84 ) ( 7.12 2.01 ) ;
-      RECT ( 7.29 1.84 ) ( 7.35 2.01 ) ;
-      RECT ( 7.06 1.78 ) ( 7.35 1.84 ) ;
+      RECT ( 4.41 2 ) ( 4.47 2.01 ) ;
       RECT ( 8.5 2.01 ) ( 8.79 2.07 ) ;
-      RECT ( 8.5 1.84 ) ( 8.56 2.01 ) ;
+      RECT ( 8.5 2 ) ( 8.56 2.01 ) ;
+      RECT ( 4.41 1.86 ) ( 8.56 2 ) ;
+      RECT ( 4.41 1.84 ) ( 4.47 1.86 ) ;
+      RECT ( 4.18 1.78 ) ( 4.47 1.84 ) ;
+      RECT ( 5.69 1.14 ) ( 5.83 1.86 ) ;
+      RECT ( 8.5 1.84 ) ( 8.56 1.86 ) ;
       RECT ( 8.73 1.84 ) ( 8.79 2.01 ) ;
       RECT ( 8.5 1.78 ) ( 8.79 1.84 ) ;
-      RECT ( 5.14 1.66 ) ( 5.43 1.72 ) ;
-      RECT ( 4.18 1.48 ) ( 4.47 1.54 ) ;
-      RECT ( 4.18 1.31 ) ( 4.24 1.48 ) ;
-      RECT ( 4.41 1.47 ) ( 4.47 1.48 ) ;
-      RECT ( 5.69 1.47 ) ( 5.83 1.78 ) ;
-      RECT ( 4.41 1.33 ) ( 5.83 1.47 ) ;
-      RECT ( 4.41 1.31 ) ( 4.47 1.33 ) ;
-      RECT ( 4.18 1.25 ) ( 4.47 1.31 ) ;
-      RECT ( 7.13 1.14 ) ( 7.27 1.78 ) ;
       RECT ( 8.57 1.14 ) ( 8.71 1.78 ) ;
-      RECT ( 7.06 1.08 ) ( 7.35 1.14 ) ;
-      RECT ( 7.06 1.06 ) ( 7.12 1.08 ) ;
-      RECT ( 0.65 0.92 ) ( 7.12 1.06 ) ;
-      RECT ( 0.65 0.73 ) ( 0.79 0.92 ) ;
-      RECT ( 7.06 0.91 ) ( 7.12 0.92 ) ;
-      RECT ( 7.29 0.91 ) ( 7.35 1.08 ) ;
-      RECT ( 7.06 0.85 ) ( 7.35 0.91 ) ;
+      RECT ( 4.18 1.08 ) ( 4.47 1.14 ) ;
+      RECT ( 4.18 1.06 ) ( 4.24 1.08 ) ;
+      RECT ( 3.77 0.92 ) ( 4.24 1.06 ) ;
+      RECT ( 2.74 0.85 ) ( 3.03 0.91 ) ;
+      RECT ( 4.18 0.91 ) ( 4.24 0.92 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 1.08 ) ;
+      RECT ( 4.18 0.85 ) ( 4.47 0.91 ) ;
+      RECT ( 5.62 1.08 ) ( 5.91 1.14 ) ;
+      RECT ( 5.62 0.91 ) ( 5.68 1.08 ) ;
+      RECT ( 5.85 0.91 ) ( 5.91 1.08 ) ;
+      RECT ( 5.62 0.85 ) ( 5.91 0.91 ) ;
       RECT ( 8.5 1.08 ) ( 8.79 1.14 ) ;
       RECT ( 8.5 0.91 ) ( 8.56 1.08 ) ;
       RECT ( 8.73 0.91 ) ( 8.79 1.08 ) ;
       RECT ( 8.5 0.85 ) ( 8.79 0.91 ) ;
+      RECT ( 9.05 0.73 ) ( 9.19 2.2 ) ;
       RECT ( 0.58 0.67 ) ( 0.87 0.73 ) ;
       RECT ( 0.58 0.5 ) ( 0.64 0.67 ) ;
       RECT ( 0.81 0.5 ) ( 0.87 0.67 ) ;
@@ -329,20 +339,16 @@
       RECT ( 2.01 0.34 ) ( 2.07 0.51 ) ;
       RECT ( 4.66 0.5 ) ( 4.72 0.67 ) ;
       RECT ( 4.89 0.5 ) ( 4.95 0.67 ) ;
-      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
-      RECT ( 5.62 0.67 ) ( 5.91 0.73 ) ;
-      RECT ( 5.62 0.5 ) ( 5.68 0.67 ) ;
-      RECT ( 5.85 0.66 ) ( 5.91 0.67 ) ;
-      RECT ( 8.57 0.66 ) ( 8.71 0.85 ) ;
-      RECT ( 9.05 0.73 ) ( 9.19 2.2 ) ;
-      RECT ( 5.85 0.52 ) ( 8.71 0.66 ) ;
       RECT ( 8.98 0.67 ) ( 9.27 0.73 ) ;
-      RECT ( 5.85 0.5 ) ( 5.91 0.52 ) ;
-      RECT ( 5.62 0.44 ) ( 5.91 0.5 ) ;
+      RECT ( 4.66 0.44 ) ( 4.95 0.5 ) ;
+      RECT ( 7.54 0.51 ) ( 7.83 0.57 ) ;
+      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
+      RECT ( 7.54 0.34 ) ( 7.6 0.51 ) ;
+      RECT ( 7.77 0.34 ) ( 7.83 0.51 ) ;
       RECT ( 8.98 0.5 ) ( 9.04 0.67 ) ;
       RECT ( 9.21 0.5 ) ( 9.27 0.67 ) ;
       RECT ( 8.98 0.44 ) ( 9.27 0.5 ) ;
-      RECT ( 1.78 0.24 ) ( 2.07 0.34 ) ;
+      RECT ( 7.54 0.24 ) ( 7.83 0.34 ) ;
       RECT ( 0 0.09 ) ( 10.08 0.24 ) ;
       RECT ( 0 -0.09 ) ( 0.16 0.09 ) ;
       RECT ( 0.33 -0.09 ) ( 0.64 0.09 ) ;
diff --git a/cells/lef/XNOR2X1.lef.temp b/cells/lef/XNOR2X1.lef.temp
index 55b2640..179d901 100644
--- a/cells/lef/XNOR2X1.lef.temp
+++ b/cells/lef/XNOR2X1.lef.temp
@@ -49,6 +49,10 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
         RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
         RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
@@ -64,11 +68,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 5.13500000 1.65500000 5.42500000 1.73000000 ;
-        RECT 4.25000000 1.73000000 5.42500000 1.78000000 ;
-        RECT 4.17500000 1.78000000 5.42500000 1.87000000 ;
-        RECT 5.13500000 1.87000000 5.42500000 1.94500000 ;
-        RECT 4.17500000 1.87000000 4.46500000 2.07000000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
+        RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.85500000 ;
+        RECT 8.49500000 1.78000000 8.78500000 1.85500000 ;
+        RECT 4.17500000 1.85500000 8.78500000 1.99500000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 8.49500000 1.99500000 8.78500000 2.07000000 ;
     END
   END A
 
diff --git a/cells/lef/XOR2X1.lef b/cells/lef/XOR2X1.lef
deleted file mode 100644
index f4b7c94..0000000
--- a/cells/lef/XOR2X1.lef
+++ /dev/null
@@ -1,85 +0,0 @@
-VERSION 5.7 ;
-  NOWIREEXTENSIONATPIN ON ;
-  DIVIDERCHAR "/" ;
-  BUSBITCHARS "[]" ;
-MACRO XOR2X1
-  CLASS CORE ;
-  FOREIGN XOR2X1 ;
-  ORIGIN 0.000 0.000 ;
-  SIZE 10.080 BY 3.330 ;
-  SYMMETRY X Y R90 ;
-  SITE unit ;
-  PIN vdd
-    DIRECTION INOUT ;
-    USE POWER ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 0.000 3.090 10.080 3.570 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 0.000 3.090 10.080 3.570 ;
-    END
-  END vdd
-  PIN gnd
-    DIRECTION INOUT ;
-    USE GROUND ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 0.000 -0.240 10.080 0.240 ;
-    END
-    PORT
-      LAYER li1 ;
-        RECT 0.000 -0.240 10.080 0.240 ;
-    END
-  END gnd
-  PIN Y
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 5.140 0.660 5.430 0.730 ;
-        RECT 6.100 0.660 6.390 0.730 ;
-        RECT 5.140 0.520 6.390 0.660 ;
-        RECT 5.140 0.440 5.430 0.520 ;
-        RECT 6.100 0.440 6.390 0.520 ;
-    END
-  END Y
-  PIN B
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 8.500 1.780 8.790 2.070 ;
-        RECT 2.740 1.470 3.030 1.540 ;
-        RECT 8.570 1.470 8.710 1.780 ;
-        RECT 2.740 1.330 8.710 1.470 ;
-        RECT 2.740 1.250 3.030 1.330 ;
-        RECT 8.570 1.140 8.710 1.330 ;
-        RECT 8.500 0.850 8.790 1.140 ;
-    END
-  END B
-  PIN A
-    DIRECTION INOUT ;
-    USE SIGNAL ;
-    SHAPE ABUTMENT ;
-    PORT
-      LAYER met1 ;
-        RECT 1.300 1.390 1.590 1.680 ;
-        RECT 1.370 1.140 1.510 1.390 ;
-        RECT 1.300 0.930 1.590 1.140 ;
-        RECT 1.300 0.850 2.230 0.930 ;
-        RECT 1.370 0.790 2.230 0.850 ;
-        RECT 2.090 0.660 2.230 0.790 ;
-        RECT 4.180 0.660 4.470 0.730 ;
-        RECT 2.090 0.520 4.470 0.660 ;
-        RECT 4.180 0.440 4.470 0.520 ;
-    END
-  END A
-END XOR2X1
-END LIBRARY
-
diff --git a/cells/lef/orig/AND2X1.lef b/cells/lef/orig/AND2X1.lef
index 885ed0a..cbc8a50 100644
--- a/cells/lef/orig/AND2X1.lef
+++ b/cells/lef/orig/AND2X1.lef
@@ -64,7 +64,9 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
@@ -90,20 +92,20 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
-     RECT 3.19500000 0.26000000 3.52500000 0.59000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
      RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
      RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
-     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
-     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
      RECT 1.75500000 2.17500000 2.08500000 2.50500000 ;
      RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
-     RECT 0.55500000 2.74000000 0.88500000 3.07000000 ;
-     RECT 3.19500000 2.74000000 3.52500000 3.07000000 ;
+     RECT 0.55500000 2.74000000 0.88500000 3.09000000 ;
+     RECT 3.19500000 2.74000000 3.52500000 3.09000000 ;
      RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
 
     LAYER viali ;
@@ -123,9 +125,10 @@
      RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
      RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
-     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
      RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
      RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
      RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
      RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
      RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
@@ -147,20 +150,22 @@
     LAYER met1 ;
      RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
      RECT 3.21500000 0.24000000 3.50500000 0.57000000 ;
-     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
      RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
      RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
      RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+     RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
      RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
      RECT 0.81500000 0.51500000 1.99000000 0.65500000 ;
      RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
-     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 1.85000000 0.65500000 1.99000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 1.85000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
      RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
-     RECT 1.85000000 0.65500000 1.99000000 1.85500000 ;
-     RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
-     RECT 1.85000000 1.85500000 4.46500000 1.99500000 ;
-     RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
-     RECT 1.85000000 1.99500000 1.99000000 2.19500000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 1.85000000 1.06000000 1.99000000 2.19500000 ;
      RECT 1.77500000 2.19500000 2.06500000 2.48500000 ;
      RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
      RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
diff --git a/cells/lef/orig/AND2X2.lef b/cells/lef/orig/AND2X2.lef
index a7283d2..989ef84 100644
--- a/cells/lef/orig/AND2X2.lef
+++ b/cells/lef/orig/AND2X2.lef
@@ -44,19 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -70,6 +57,19 @@
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -92,7 +92,7 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
-     RECT 3.19500000 0.26000000 3.52500000 0.59000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
      RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
      RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
@@ -103,8 +103,8 @@
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
      RECT 1.75500000 2.17500000 2.08500000 2.50500000 ;
      RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
-     RECT 0.55500000 2.74000000 0.88500000 3.07000000 ;
-     RECT 3.19500000 2.74000000 3.52500000 3.07000000 ;
+     RECT 0.55500000 2.74000000 0.88500000 3.09000000 ;
+     RECT 3.19500000 2.74000000 3.52500000 3.09000000 ;
      RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/AOI21X1.lef b/cells/lef/orig/AOI21X1.lef
index cbce770..cba5adb 100644
--- a/cells/lef/orig/AOI21X1.lef
+++ b/cells/lef/orig/AOI21X1.lef
@@ -61,19 +61,6 @@
     END
   END C
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -87,6 +74,19 @@
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END A
+
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -121,7 +121,7 @@
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
      RECT 2.23500000 2.17500000 2.56500000 2.50500000 ;
      RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
-     RECT 3.19500000 2.74000000 3.52500000 3.07000000 ;
+     RECT 3.19500000 2.74000000 3.52500000 3.09000000 ;
      RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/AOI22X1.lef b/cells/lef/orig/AOI22X1.lef
index 65a4635..4630962 100644
--- a/cells/lef/orig/AOI22X1.lef
+++ b/cells/lef/orig/AOI22X1.lef
@@ -43,11 +43,26 @@
         RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
         RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
         RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
-        RECT 5.21000000 0.65500000 5.35000000 2.19500000 ;
-        RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+    END
+  END C
+
   PIN D
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -87,19 +102,6 @@
     END
   END B
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
-        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
-        RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
-    END
-  END C
-
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -113,7 +115,7 @@
 
     LAYER pdiffc ;
      RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
-     RECT 0.87500000 2.66000000 1.04500000 2.83000000 ;
+     RECT 0.87500000 2.39000000 1.04500000 2.56000000 ;
      RECT 3.75500000 2.66000000 3.92500000 2.83000000 ;
      RECT 6.15500000 2.66000000 6.32500000 2.83000000 ;
      RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
@@ -137,7 +139,7 @@
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
      RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
      RECT 5.11500000 2.17500000 5.44500000 2.50500000 ;
-     RECT 0.79500000 2.58000000 1.12500000 2.91000000 ;
+     RECT 0.79500000 2.31000000 1.12500000 2.64000000 ;
      RECT 3.67500000 2.58000000 4.00500000 2.91000000 ;
      RECT 6.07500000 2.58000000 6.40500000 2.91000000 ;
      RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
@@ -170,9 +172,10 @@
      RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
      RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
      RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
-     RECT 0.87500000 2.66000000 1.04500000 2.83000000 ;
+     RECT 0.87500000 2.39000000 1.04500000 2.56000000 ;
      RECT 3.75500000 2.66000000 3.92500000 2.83000000 ;
      RECT 6.15500000 2.66000000 6.32500000 2.83000000 ;
+     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
      RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
      RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
      RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
@@ -208,15 +211,20 @@
      RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
      RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
      RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
-     RECT 5.21000000 0.65500000 5.35000000 2.19500000 ;
-     RECT 5.13500000 2.19500000 5.42500000 2.48500000 ;
-     RECT 0.81500000 2.60000000 1.10500000 2.67500000 ;
+     RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+     RECT 6.17000000 0.73000000 6.31000000 2.27000000 ;
+     RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+     RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
+     RECT 0.81500000 2.33000000 1.10500000 2.40500000 ;
+     RECT 0.81500000 2.40500000 3.91000000 2.54500000 ;
+     RECT 3.69500000 2.54500000 3.91000000 2.60000000 ;
+     RECT 0.81500000 2.54500000 1.10500000 2.62000000 ;
      RECT 3.69500000 2.60000000 3.98500000 2.67500000 ;
      RECT 6.09500000 2.60000000 6.38500000 2.67500000 ;
-     RECT 0.81500000 2.67500000 6.38500000 2.81500000 ;
-     RECT 0.81500000 2.81500000 1.10500000 2.89000000 ;
+     RECT 3.69500000 2.67500000 6.38500000 2.81500000 ;
      RECT 3.69500000 2.81500000 3.98500000 2.89000000 ;
      RECT 6.09500000 2.81500000 6.38500000 2.89000000 ;
+     RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
      RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
 
  END
diff --git a/cells/lef/orig/BUFX2.lef b/cells/lef/orig/BUFX2.lef
index 73da249..ecbf6b6 100644
--- a/cells/lef/orig/BUFX2.lef
+++ b/cells/lef/orig/BUFX2.lef
@@ -51,9 +51,9 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
     END
   END A
 
@@ -76,17 +76,17 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
-     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
-     RECT 1.35500000 1.44500000 1.52500000 1.76000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.48000000 ;
      RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
      RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
      RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
 
     LAYER viali ;
@@ -102,9 +102,9 @@
      RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
      RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
      RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
-     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
      RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
-     RECT 1.35500000 1.44500000 1.52500000 1.61500000 ;
+     RECT 1.35500000 1.31000000 1.52500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
      RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
      RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
      RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
@@ -122,17 +122,17 @@
     LAYER met1 ;
      RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
      RECT 1.77500000 0.24000000 2.06500000 0.57000000 ;
-     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-     RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-     RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+     RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+     RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
      RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 0.65000000 0.73000000 0.79000000 0.92000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+     RECT 0.65000000 0.92000000 3.02500000 1.06000000 ;
+     RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
      RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-     RECT 0.65000000 0.73000000 0.79000000 1.85500000 ;
-     RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
-     RECT 0.65000000 1.85500000 3.02500000 1.99500000 ;
-     RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
-     RECT 0.65000000 1.99500000 0.79000000 2.19500000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.65000000 1.06000000 0.79000000 2.19500000 ;
      RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
      RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
      RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
diff --git a/cells/lef/orig/BUFX4.lef b/cells/lef/orig/BUFX4.lef
new file mode 100644
index 0000000..3d28e93
--- /dev/null
+++ b/cells/lef/orig/BUFX4.lef
@@ -0,0 +1,174 @@
+MACRO BUFX4
+ CLASS CORE ;
+ FOREIGN BUFX4 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 3.69500000 0.51500000 4.87000000 0.65500000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 4.73000000 0.65500000 4.87000000 2.27000000 ;
+        RECT 3.69500000 2.27000000 4.87000000 2.41000000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.75500000 2.25500000 3.92500000 2.42500000 ;
+     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
+     RECT 4.71500000 2.82000000 4.88500000 2.99000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
+     RECT 4.71500000 0.34000000 4.88500000 0.51000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 3.75500000 0.50000000 3.92500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
+     RECT 4.63500000 0.24000000 4.96500000 0.59000000 ;
+     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 3.67500000 0.42000000 4.00500000 0.75000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
+     RECT 3.67500000 2.17500000 4.00500000 2.50500000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
+     RECT 4.63500000 2.74000000 4.96500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+    LAYER viali ;
+     RECT 0.15500000 -0.08500000 0.32500000 0.08500000 ;
+     RECT 0.63500000 -0.08500000 0.80500000 0.08500000 ;
+     RECT 1.11500000 -0.08500000 1.28500000 0.08500000 ;
+     RECT 1.59500000 -0.08500000 1.76500000 0.08500000 ;
+     RECT 2.07500000 -0.08500000 2.24500000 0.08500000 ;
+     RECT 2.55500000 -0.08500000 2.72500000 0.08500000 ;
+     RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
+     RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
+     RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
+     RECT 4.47500000 -0.08500000 4.64500000 0.08500000 ;
+     RECT 4.95500000 -0.08500000 5.12500000 0.08500000 ;
+     RECT 5.43500000 -0.08500000 5.60500000 0.08500000 ;
+     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
+     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 3.75500000 0.50000000 3.92500000 0.67000000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.31000000 1.52500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 3.75500000 2.25500000 3.92500000 2.42500000 ;
+     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
+     RECT 4.71500000 2.82000000 4.88500000 2.99000000 ;
+     RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
+     RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
+     RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
+     RECT 1.59500000 3.24500000 1.76500000 3.41500000 ;
+     RECT 2.07500000 3.24500000 2.24500000 3.41500000 ;
+     RECT 2.55500000 3.24500000 2.72500000 3.41500000 ;
+     RECT 3.03500000 3.24500000 3.20500000 3.41500000 ;
+     RECT 3.51500000 3.24500000 3.68500000 3.41500000 ;
+     RECT 3.99500000 3.24500000 4.16500000 3.41500000 ;
+     RECT 4.47500000 3.24500000 4.64500000 3.41500000 ;
+     RECT 4.95500000 3.24500000 5.12500000 3.41500000 ;
+     RECT 5.43500000 3.24500000 5.60500000 3.41500000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 1.77500000 0.24000000 2.06500000 0.57000000 ;
+     RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+     RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 0.92000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 0.65000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.65000000 1.06000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+     RECT 3.69500000 0.51500000 4.87000000 0.65500000 ;
+     RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+     RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+     RECT 4.73000000 0.65500000 4.87000000 2.27000000 ;
+     RECT 3.69500000 2.27000000 4.87000000 2.41000000 ;
+     RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+     RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
+     RECT 4.65500000 2.76000000 4.94500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
+END BUFX4
diff --git a/cells/lef/orig/CLKBUF1.lef b/cells/lef/orig/CLKBUF1.lef
new file mode 100644
index 0000000..e6a17a0
--- /dev/null
+++ b/cells/lef/orig/CLKBUF1.lef
@@ -0,0 +1,298 @@
+MACRO CLKBUF1
+ CLASS CORE ;
+ FOREIGN CLKBUF1 0 0 ;
+ SIZE 12.96 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 10.41500000 1.25000000 10.70500000 1.54000000 ;
+        RECT 10.49000000 1.54000000 10.63000000 2.19500000 ;
+        RECT 10.41500000 2.19500000 10.70500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+        RECT 1.37000000 2.07000000 1.51000000 2.67500000 ;
+        RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+        RECT 1.37000000 2.67500000 2.95000000 2.81500000 ;
+    END
+  END A
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
+     RECT 9.99500000 0.90500000 10.16500000 1.07500000 ;
+     RECT 11.43500000 0.90500000 11.60500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
+     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
+     RECT 9.99500000 1.84000000 10.16500000 2.01000000 ;
+     RECT 11.43500000 1.84000000 11.60500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 7.59500000 2.25500000 7.76500000 2.42500000 ;
+     RECT 10.47500000 2.25500000 10.64500000 2.42500000 ;
+     RECT 0.63500000 2.82000000 0.80500000 2.99000000 ;
+     RECT 3.27500000 2.82000000 3.44500000 2.99000000 ;
+     RECT 6.15500000 2.82000000 6.32500000 2.99000000 ;
+     RECT 9.03500000 2.82000000 9.20500000 2.99000000 ;
+     RECT 11.91500000 2.82000000 12.08500000 2.99000000 ;
+
+    LAYER ndiffc ;
+     RECT 0.63500000 0.34000000 0.80500000 0.51000000 ;
+     RECT 3.27500000 0.34000000 3.44500000 0.51000000 ;
+     RECT 6.15500000 0.34000000 6.32500000 0.51000000 ;
+     RECT 9.03500000 0.34000000 9.20500000 0.51000000 ;
+     RECT 11.91500000 0.34000000 12.08500000 0.51000000 ;
+     RECT 1.83500000 0.50000000 2.00500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 7.59500000 0.50000000 7.76500000 0.67000000 ;
+     RECT 10.47500000 0.50000000 10.64500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+     RECT 0.55500000 0.24000000 0.88500000 0.59000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
+     RECT 6.07500000 0.24000000 6.40500000 0.59000000 ;
+     RECT 8.95500000 0.24000000 9.28500000 0.59000000 ;
+     RECT 11.83500000 0.24000000 12.16500000 0.59000000 ;
+     RECT 1.75500000 0.42000000 2.08500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 7.51500000 0.42000000 7.84500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
+     RECT 9.91500000 0.82500000 10.24500000 1.15500000 ;
+     RECT 11.35500000 0.82500000 11.68500000 1.15500000 ;
+     RECT 10.39500000 0.42000000 10.72500000 0.75000000 ;
+     RECT 10.47500000 0.75000000 10.64500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 5.67500000 1.15500000 5.84500000 1.76000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
+     RECT 8.47500000 0.82500000 8.80500000 1.15500000 ;
+     RECT 8.55500000 1.15500000 8.72500000 1.76000000 ;
+     RECT 8.47500000 1.76000000 8.80500000 2.09000000 ;
+     RECT 9.91500000 1.76000000 10.24500000 2.09000000 ;
+     RECT 11.35500000 1.76000000 11.68500000 2.09000000 ;
+     RECT 1.75500000 2.17500000 2.08500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 7.51500000 2.17500000 7.84500000 2.50500000 ;
+     RECT 10.39500000 2.17500000 10.72500000 2.50500000 ;
+     RECT 0.55500000 2.74000000 0.88500000 3.09000000 ;
+     RECT 3.19500000 2.74000000 3.52500000 3.09000000 ;
+     RECT 6.07500000 2.74000000 6.40500000 3.09000000 ;
+     RECT 8.95500000 2.74000000 9.28500000 3.09000000 ;
+     RECT 11.83500000 2.74000000 12.16500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+
+    LAYER viali ;
+     RECT 0.15500000 -0.08500000 0.32500000 0.08500000 ;
+     RECT 0.63500000 -0.08500000 0.80500000 0.08500000 ;
+     RECT 1.11500000 -0.08500000 1.28500000 0.08500000 ;
+     RECT 1.59500000 -0.08500000 1.76500000 0.08500000 ;
+     RECT 2.07500000 -0.08500000 2.24500000 0.08500000 ;
+     RECT 2.55500000 -0.08500000 2.72500000 0.08500000 ;
+     RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
+     RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
+     RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
+     RECT 4.47500000 -0.08500000 4.64500000 0.08500000 ;
+     RECT 4.95500000 -0.08500000 5.12500000 0.08500000 ;
+     RECT 5.43500000 -0.08500000 5.60500000 0.08500000 ;
+     RECT 5.91500000 -0.08500000 6.08500000 0.08500000 ;
+     RECT 6.39500000 -0.08500000 6.56500000 0.08500000 ;
+     RECT 6.87500000 -0.08500000 7.04500000 0.08500000 ;
+     RECT 7.35500000 -0.08500000 7.52500000 0.08500000 ;
+     RECT 7.83500000 -0.08500000 8.00500000 0.08500000 ;
+     RECT 8.31500000 -0.08500000 8.48500000 0.08500000 ;
+     RECT 8.79500000 -0.08500000 8.96500000 0.08500000 ;
+     RECT 9.27500000 -0.08500000 9.44500000 0.08500000 ;
+     RECT 9.75500000 -0.08500000 9.92500000 0.08500000 ;
+     RECT 10.23500000 -0.08500000 10.40500000 0.08500000 ;
+     RECT 10.71500000 -0.08500000 10.88500000 0.08500000 ;
+     RECT 11.19500000 -0.08500000 11.36500000 0.08500000 ;
+     RECT 11.67500000 -0.08500000 11.84500000 0.08500000 ;
+     RECT 12.15500000 -0.08500000 12.32500000 0.08500000 ;
+     RECT 12.63500000 -0.08500000 12.80500000 0.08500000 ;
+     RECT 0.63500000 0.34000000 0.80500000 0.51000000 ;
+     RECT 3.27500000 0.34000000 3.44500000 0.51000000 ;
+     RECT 6.15500000 0.34000000 6.32500000 0.51000000 ;
+     RECT 9.03500000 0.34000000 9.20500000 0.51000000 ;
+     RECT 11.91500000 0.34000000 12.08500000 0.51000000 ;
+     RECT 1.83500000 0.50000000 2.00500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 7.59500000 0.50000000 7.76500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 9.99500000 0.90500000 10.16500000 1.07500000 ;
+     RECT 11.43500000 0.90500000 11.60500000 1.07500000 ;
+     RECT 10.47500000 1.31000000 10.64500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
+     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
+     RECT 9.99500000 1.84000000 10.16500000 2.01000000 ;
+     RECT 11.43500000 1.84000000 11.60500000 2.01000000 ;
+     RECT 1.83500000 2.25500000 2.00500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 7.59500000 2.25500000 7.76500000 2.42500000 ;
+     RECT 10.47500000 2.25500000 10.64500000 2.42500000 ;
+     RECT 0.63500000 2.82000000 0.80500000 2.99000000 ;
+     RECT 3.27500000 2.82000000 3.44500000 2.99000000 ;
+     RECT 6.15500000 2.82000000 6.32500000 2.99000000 ;
+     RECT 9.03500000 2.82000000 9.20500000 2.99000000 ;
+     RECT 11.91500000 2.82000000 12.08500000 2.99000000 ;
+     RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
+     RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
+     RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
+     RECT 1.59500000 3.24500000 1.76500000 3.41500000 ;
+     RECT 2.07500000 3.24500000 2.24500000 3.41500000 ;
+     RECT 2.55500000 3.24500000 2.72500000 3.41500000 ;
+     RECT 3.03500000 3.24500000 3.20500000 3.41500000 ;
+     RECT 3.51500000 3.24500000 3.68500000 3.41500000 ;
+     RECT 3.99500000 3.24500000 4.16500000 3.41500000 ;
+     RECT 4.47500000 3.24500000 4.64500000 3.41500000 ;
+     RECT 4.95500000 3.24500000 5.12500000 3.41500000 ;
+     RECT 5.43500000 3.24500000 5.60500000 3.41500000 ;
+     RECT 5.91500000 3.24500000 6.08500000 3.41500000 ;
+     RECT 6.39500000 3.24500000 6.56500000 3.41500000 ;
+     RECT 6.87500000 3.24500000 7.04500000 3.41500000 ;
+     RECT 7.35500000 3.24500000 7.52500000 3.41500000 ;
+     RECT 7.83500000 3.24500000 8.00500000 3.41500000 ;
+     RECT 8.31500000 3.24500000 8.48500000 3.41500000 ;
+     RECT 8.79500000 3.24500000 8.96500000 3.41500000 ;
+     RECT 9.27500000 3.24500000 9.44500000 3.41500000 ;
+     RECT 9.75500000 3.24500000 9.92500000 3.41500000 ;
+     RECT 10.23500000 3.24500000 10.40500000 3.41500000 ;
+     RECT 10.71500000 3.24500000 10.88500000 3.41500000 ;
+     RECT 11.19500000 3.24500000 11.36500000 3.41500000 ;
+     RECT 11.67500000 3.24500000 11.84500000 3.41500000 ;
+     RECT 12.15500000 3.24500000 12.32500000 3.41500000 ;
+     RECT 12.63500000 3.24500000 12.80500000 3.41500000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 12.96000000 0.24000000 ;
+     RECT 0.57500000 0.24000000 0.86500000 0.57000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.57000000 ;
+     RECT 6.09500000 0.24000000 6.38500000 0.57000000 ;
+     RECT 8.97500000 0.24000000 9.26500000 0.57000000 ;
+     RECT 11.85500000 0.24000000 12.14500000 0.57000000 ;
+     RECT 7.53500000 0.44000000 7.82500000 0.73000000 ;
+     RECT 7.61000000 0.73000000 7.75000000 0.92000000 ;
+     RECT 9.93500000 0.84500000 10.22500000 0.92000000 ;
+     RECT 11.37500000 0.84500000 11.66500000 0.92000000 ;
+     RECT 7.61000000 0.92000000 11.66500000 1.06000000 ;
+     RECT 9.93500000 1.06000000 10.22500000 1.13500000 ;
+     RECT 11.37500000 1.06000000 11.66500000 1.13500000 ;
+     RECT 10.01000000 1.13500000 10.15000000 1.78000000 ;
+     RECT 11.45000000 1.13500000 11.59000000 1.78000000 ;
+     RECT 9.93500000 1.78000000 10.22500000 2.07000000 ;
+     RECT 11.37500000 1.78000000 11.66500000 2.07000000 ;
+     RECT 7.61000000 1.06000000 7.75000000 2.19500000 ;
+     RECT 7.53500000 2.19500000 7.82500000 2.48500000 ;
+     RECT 10.41500000 1.25000000 10.70500000 1.54000000 ;
+     RECT 10.49000000 1.54000000 10.63000000 2.19500000 ;
+     RECT 10.41500000 2.19500000 10.70500000 2.48500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 1.37000000 2.07000000 1.51000000 2.67500000 ;
+     RECT 2.81000000 2.07000000 2.95000000 2.67500000 ;
+     RECT 1.37000000 2.67500000 2.95000000 2.81500000 ;
+     RECT 1.77500000 0.44000000 2.06500000 0.73000000 ;
+     RECT 1.85000000 0.73000000 1.99000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 1.85000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+     RECT 1.85000000 1.06000000 1.99000000 2.19500000 ;
+     RECT 1.77500000 2.19500000 2.06500000 2.48500000 ;
+     RECT 4.25000000 2.07000000 4.39000000 2.67500000 ;
+     RECT 5.69000000 2.07000000 5.83000000 2.67500000 ;
+     RECT 4.25000000 2.67500000 5.83000000 2.81500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 4.73000000 0.73000000 4.87000000 0.92000000 ;
+     RECT 7.05500000 0.84500000 7.34500000 0.92000000 ;
+     RECT 4.73000000 0.92000000 7.34500000 1.06000000 ;
+     RECT 7.05500000 1.06000000 7.34500000 1.13500000 ;
+     RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
+     RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
+     RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
+     RECT 4.73000000 1.06000000 4.87000000 2.19500000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+     RECT 7.13000000 2.07000000 7.27000000 2.67500000 ;
+     RECT 8.57000000 2.07000000 8.71000000 2.67500000 ;
+     RECT 7.13000000 2.67500000 8.71000000 2.81500000 ;
+     RECT 0.57500000 2.76000000 0.86500000 3.09000000 ;
+     RECT 3.21500000 2.76000000 3.50500000 3.09000000 ;
+     RECT 6.09500000 2.76000000 6.38500000 3.09000000 ;
+     RECT 8.97500000 2.76000000 9.26500000 3.09000000 ;
+     RECT 11.85500000 2.76000000 12.14500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 12.96000000 3.57000000 ;
+
+ END
+END CLKBUF1
diff --git a/cells/lef/orig/INV.lef b/cells/lef/orig/INV.lef
index 4c12e16..7bf6f3b 100644
--- a/cells/lef/orig/INV.lef
+++ b/cells/lef/orig/INV.lef
@@ -72,12 +72,12 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
      RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/INVX1.lef b/cells/lef/orig/INVX1.lef
index 204828d..67d58e1 100644
--- a/cells/lef/orig/INVX1.lef
+++ b/cells/lef/orig/INVX1.lef
@@ -72,12 +72,12 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
      RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/INVX2.lef b/cells/lef/orig/INVX2.lef
index c38b0b2..fbe8379 100644
--- a/cells/lef/orig/INVX2.lef
+++ b/cells/lef/orig/INVX2.lef
@@ -72,12 +72,12 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
      RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/INVX4.lef b/cells/lef/orig/INVX4.lef
index 0628d18..11e024e 100644
--- a/cells/lef/orig/INVX4.lef
+++ b/cells/lef/orig/INVX4.lef
@@ -38,15 +38,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-        RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+        RECT 0.57500000 0.44000000 0.86500000 0.51500000 ;
+        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+        RECT 0.57500000 0.51500000 3.50500000 0.65500000 ;
+        RECT 0.57500000 0.65500000 0.86500000 0.73000000 ;
+        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
         RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
         RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
-        RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
-        RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
-        RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
-        RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
-        RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
     END
   END Y
 
@@ -57,15 +57,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
         RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
         RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
-        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
-        RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
-        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
-        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END A
 
@@ -88,7 +88,7 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
@@ -97,7 +97,7 @@
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
      RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
      RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
 
     LAYER viali ;
@@ -110,7 +110,6 @@
      RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
      RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
      RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
-     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
      RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
      RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -132,25 +131,24 @@
 
     LAYER met1 ;
      RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-     RECT 1.77500000 0.24000000 2.06500000 0.57000000 ;
-     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 0.92000000 ;
+     RECT 1.29500000 0.92000000 3.02500000 1.06000000 ;
+     RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+     RECT 2.73500000 1.06000000 3.02500000 1.13500000 ;
      RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
      RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-     RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
-     RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
-     RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
-     RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
-     RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
-     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-     RECT 3.21500000 0.44000000 3.50500000 0.73000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.51500000 ;
+     RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
+     RECT 0.57500000 0.51500000 3.50500000 0.65500000 ;
+     RECT 0.57500000 0.65500000 0.86500000 0.73000000 ;
+     RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
      RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
      RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
-     RECT 0.57500000 2.19500000 0.86500000 2.27000000 ;
-     RECT 3.21500000 2.19500000 3.50500000 2.27000000 ;
-     RECT 0.57500000 2.27000000 3.50500000 2.41000000 ;
-     RECT 0.57500000 2.41000000 0.86500000 2.48500000 ;
-     RECT 3.21500000 2.41000000 3.50500000 2.48500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
      RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
      RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
 
diff --git a/cells/lef/orig/INVX8.lef b/cells/lef/orig/INVX8.lef
new file mode 100644
index 0000000..b2db4d5
--- /dev/null
+++ b/cells/lef/orig/INVX8.lef
@@ -0,0 +1,220 @@
+MACRO INVX8
+ CLASS CORE ;
+ FOREIGN INVX8 0 0 ;
+ SIZE 7.2 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+        RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+        RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+        RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+        RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+        RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
+        RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+        RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+        RECT 3.69500000 2.27000000 6.38500000 2.41000000 ;
+        RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+        RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+        RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+    END
+  END Y
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+        RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+        RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+        RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+        RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+        RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+    END
+  END A
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.75500000 2.25500000 3.92500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
+     RECT 4.71500000 2.82000000 4.88500000 2.99000000 ;
+
+    LAYER ndiffc ;
+     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
+     RECT 4.71500000 0.34000000 4.88500000 0.51000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.75500000 0.50000000 3.92500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
+     RECT 4.63500000 0.24000000 4.96500000 0.59000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
+     RECT 3.67500000 0.42000000 4.00500000 0.75000000 ;
+     RECT 6.07500000 0.42000000 6.40500000 0.75000000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 3.67500000 2.17500000 4.00500000 2.50500000 ;
+     RECT 6.07500000 2.17500000 6.40500000 2.50500000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
+     RECT 4.63500000 2.74000000 4.96500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+
+    LAYER viali ;
+     RECT 0.15500000 -0.08500000 0.32500000 0.08500000 ;
+     RECT 0.63500000 -0.08500000 0.80500000 0.08500000 ;
+     RECT 1.11500000 -0.08500000 1.28500000 0.08500000 ;
+     RECT 1.59500000 -0.08500000 1.76500000 0.08500000 ;
+     RECT 2.07500000 -0.08500000 2.24500000 0.08500000 ;
+     RECT 2.55500000 -0.08500000 2.72500000 0.08500000 ;
+     RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
+     RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
+     RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
+     RECT 4.47500000 -0.08500000 4.64500000 0.08500000 ;
+     RECT 4.95500000 -0.08500000 5.12500000 0.08500000 ;
+     RECT 5.43500000 -0.08500000 5.60500000 0.08500000 ;
+     RECT 5.91500000 -0.08500000 6.08500000 0.08500000 ;
+     RECT 6.39500000 -0.08500000 6.56500000 0.08500000 ;
+     RECT 6.87500000 -0.08500000 7.04500000 0.08500000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 3.75500000 0.50000000 3.92500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 3.75500000 2.25500000 3.92500000 2.42500000 ;
+     RECT 6.15500000 2.25500000 6.32500000 2.42500000 ;
+     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
+     RECT 4.71500000 2.82000000 4.88500000 2.99000000 ;
+     RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
+     RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
+     RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
+     RECT 1.59500000 3.24500000 1.76500000 3.41500000 ;
+     RECT 2.07500000 3.24500000 2.24500000 3.41500000 ;
+     RECT 2.55500000 3.24500000 2.72500000 3.41500000 ;
+     RECT 3.03500000 3.24500000 3.20500000 3.41500000 ;
+     RECT 3.51500000 3.24500000 3.68500000 3.41500000 ;
+     RECT 3.99500000 3.24500000 4.16500000 3.41500000 ;
+     RECT 4.47500000 3.24500000 4.64500000 3.41500000 ;
+     RECT 4.95500000 3.24500000 5.12500000 3.41500000 ;
+     RECT 5.43500000 3.24500000 5.60500000 3.41500000 ;
+     RECT 5.91500000 3.24500000 6.08500000 3.41500000 ;
+     RECT 6.39500000 3.24500000 6.56500000 3.41500000 ;
+     RECT 6.87500000 3.24500000 7.04500000 3.41500000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
+     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
+     RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
+     RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+     RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+     RECT 1.29500000 1.85500000 5.90500000 1.99500000 ;
+     RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
+     RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+     RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
+     RECT 3.69500000 0.44000000 3.98500000 0.51500000 ;
+     RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
+     RECT 0.81500000 0.51500000 6.38500000 0.65500000 ;
+     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
+     RECT 3.69500000 0.65500000 3.98500000 0.73000000 ;
+     RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
+     RECT 0.89000000 0.73000000 1.03000000 2.19500000 ;
+     RECT 6.17000000 0.73000000 6.31000000 2.19500000 ;
+     RECT 3.69500000 2.19500000 3.98500000 2.27000000 ;
+     RECT 6.09500000 2.19500000 6.38500000 2.27000000 ;
+     RECT 3.69500000 2.27000000 6.38500000 2.41000000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+     RECT 3.69500000 2.41000000 3.98500000 2.48500000 ;
+     RECT 6.09500000 2.41000000 6.38500000 2.48500000 ;
+     RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
+     RECT 4.65500000 2.76000000 4.94500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+
+ END
+END INVX8
diff --git a/cells/lef/orig/MUX2X1.lef b/cells/lef/orig/MUX2X1.lef
index fbe4088..1f9006b 100644
--- a/cells/lef/orig/MUX2X1.lef
+++ b/cells/lef/orig/MUX2X1.lef
@@ -38,44 +38,16 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 4.65500000 1.78000000 4.94500000 2.48500000 ;
+        RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+        RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+        RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+        RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+        RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+        RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+        RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
     END
   END Y
 
-  PIN S
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
-        RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
-        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
-        RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
-        RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
-        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
-        RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
-        RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
-        RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
-        RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
-        RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
-    END
-  END S
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -89,6 +61,34 @@
     END
   END B
 
+  PIN S
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
+        RECT 3.21500000 0.84500000 3.50500000 0.92000000 ;
+        RECT 1.29500000 0.92000000 3.50500000 1.06000000 ;
+        RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
+        RECT 3.21500000 1.06000000 3.50500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
+        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+    END
+  END S
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+    END
+  END A
+
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -104,7 +104,7 @@
 
     LAYER pdiffc ;
      RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
-     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
      RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
      RECT 7.59500000 2.82000000 7.76500000 2.99000000 ;
 
@@ -112,31 +112,33 @@
      RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
      RECT 7.59500000 0.34000000 7.76500000 0.51000000 ;
      RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
-     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 8.64000000 0.24000000 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
-     RECT 7.51500000 0.26000000 7.84500000 0.59000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
+     RECT 7.51500000 0.24000000 7.84500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
+     RECT 5.11500000 0.42000000 5.44500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
-     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 0.90500000 ;
+     RECT 3.27500000 0.90500000 4.48500000 1.07500000 ;
+     RECT 4.15500000 1.07500000 4.48500000 1.15500000 ;
      RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
      RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
-     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
-     RECT 4.71500000 0.75000000 4.88500000 2.01000000 ;
-     RECT 1.35500000 1.44500000 1.52500000 1.76000000 ;
-     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
      RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
      RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
      RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
+     RECT 1.35500000 1.44500000 1.52500000 1.76000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 1.35500000 2.09000000 1.52500000 2.42500000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
-     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
-     RECT 7.51500000 2.74000000 7.84500000 3.07000000 ;
+     RECT 5.11500000 2.17500000 5.44500000 2.50500000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
+     RECT 7.51500000 2.74000000 7.84500000 3.09000000 ;
      RECT 0.00000000 3.09000000 8.64000000 3.57000000 ;
 
     LAYER viali ;
@@ -161,18 +163,19 @@
      RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
      RECT 7.59500000 0.34000000 7.76500000 0.51000000 ;
      RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
+     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
-     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 3.27500000 0.90500000 3.44500000 1.07500000 ;
      RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
      RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
      RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
      RECT 1.35500000 1.44500000 1.52500000 1.61500000 ;
      RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
-     RECT 4.71500000 1.84000000 4.88500000 2.01000000 ;
      RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
      RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
      RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
-     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 1.35500000 2.25500000 1.52500000 2.42500000 ;
+     RECT 5.19500000 2.25500000 5.36500000 2.42500000 ;
      RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
      RECT 7.59500000 2.82000000 7.76500000 2.99000000 ;
      RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
@@ -199,34 +202,41 @@
      RECT 1.77500000 0.24000000 2.06500000 0.57000000 ;
      RECT 7.53500000 0.24000000 7.82500000 0.57000000 ;
      RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-     RECT 4.25000000 0.51500000 6.31000000 0.65500000 ;
-     RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
      RECT 1.29500000 0.84500000 1.58500000 0.92000000 ;
-     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
-     RECT 1.29500000 0.92000000 4.46500000 1.06000000 ;
+     RECT 3.21500000 0.84500000 3.50500000 0.92000000 ;
+     RECT 1.29500000 0.92000000 3.50500000 1.06000000 ;
      RECT 1.29500000 1.06000000 1.58500000 1.13500000 ;
-     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 3.21500000 1.06000000 3.50500000 1.13500000 ;
      RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
      RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
-     RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
-     RECT 6.17000000 0.65500000 6.31000000 1.85500000 ;
-     RECT 5.61500000 1.85500000 6.31000000 1.99500000 ;
-     RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
      RECT 7.05500000 0.84500000 7.34500000 1.13500000 ;
      RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
      RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
      RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
-     RECT 5.69000000 1.13500000 5.83000000 1.46000000 ;
-     RECT 4.25000000 1.46000000 5.83000000 1.60000000 ;
-     RECT 4.25000000 1.60000000 4.39000000 1.78000000 ;
+     RECT 5.61500000 0.84500000 5.90500000 0.92000000 ;
+     RECT 4.25000000 0.92000000 5.90500000 1.06000000 ;
+     RECT 5.61500000 1.06000000 5.90500000 1.13500000 ;
+     RECT 4.25000000 1.06000000 4.39000000 1.78000000 ;
      RECT 0.65000000 0.73000000 0.79000000 1.85500000 ;
      RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
      RECT 0.65000000 1.85500000 4.46500000 1.99500000 ;
      RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
      RECT 0.65000000 1.99500000 0.79000000 2.19500000 ;
      RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
-     RECT 4.65500000 1.78000000 4.94500000 2.48500000 ;
+     RECT 5.61500000 1.78000000 5.90500000 1.85500000 ;
+     RECT 4.73000000 1.85500000 5.90500000 1.99500000 ;
+     RECT 5.61500000 1.99500000 5.90500000 2.07000000 ;
+     RECT 1.29500000 2.19500000 1.58500000 2.27000000 ;
+     RECT 4.73000000 1.99500000 4.87000000 2.27000000 ;
+     RECT 1.29500000 2.27000000 4.87000000 2.41000000 ;
+     RECT 1.29500000 2.41000000 1.58500000 2.48500000 ;
+     RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
+     RECT 5.13500000 0.51500000 6.31000000 0.65500000 ;
+     RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
+     RECT 5.13500000 2.19500000 5.42500000 2.27000000 ;
+     RECT 6.17000000 0.65500000 6.31000000 2.27000000 ;
+     RECT 5.13500000 2.27000000 6.31000000 2.41000000 ;
+     RECT 5.13500000 2.41000000 5.42500000 2.48500000 ;
      RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
      RECT 7.53500000 2.76000000 7.82500000 3.09000000 ;
      RECT 0.00000000 3.09000000 8.64000000 3.57000000 ;
diff --git a/cells/lef/orig/NAND2X1.lef b/cells/lef/orig/NAND2X1.lef
index e3ec310..ec6be55 100644
--- a/cells/lef/orig/NAND2X1.lef
+++ b/cells/lef/orig/NAND2X1.lef
@@ -48,19 +48,6 @@
     END
   END Y
 
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END B
-
   PIN A
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -74,6 +61,19 @@
     END
   END A
 
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END B
+
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -92,7 +92,7 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-     RECT 3.19500000 0.26000000 3.52500000 0.59000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
@@ -100,7 +100,7 @@
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
      RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
      RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/NAND3X1.lef b/cells/lef/orig/NAND3X1.lef
index 5299411..2541a72 100644
--- a/cells/lef/orig/NAND3X1.lef
+++ b/cells/lef/orig/NAND3X1.lef
@@ -48,6 +48,19 @@
     END
   END Y
 
+  PIN C
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END C
+
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -74,19 +87,6 @@
     END
   END A
 
-  PIN C
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END C
-
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -108,7 +108,7 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
-     RECT 4.63500000 0.26000000 4.96500000 0.59000000 ;
+     RECT 4.63500000 0.24000000 4.96500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
      RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
@@ -118,8 +118,8 @@
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
      RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
-     RECT 4.63500000 2.74000000 4.96500000 3.07000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
+     RECT 4.63500000 2.74000000 4.96500000 3.09000000 ;
      RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
 
     LAYER viali ;
diff --git a/cells/lef/orig/NOR2X1.lef b/cells/lef/orig/NOR2X1.lef
deleted file mode 100644
index 73bb9c3..0000000
--- a/cells/lef/orig/NOR2X1.lef
+++ /dev/null
@@ -1,153 +0,0 @@
-MACRO NOR2X1
- CLASS CORE ;
- FOREIGN NOR2X1 0 0 ;
- SIZE 4.32 BY 3.33 ;
- ORIGIN 0 0 ;
- SYMMETRY X Y R90 ;
- SITE unit ;
-  PIN VDD
-   DIRECTION INOUT ;
-   USE POWER ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER li1 ;
-        RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
-       LAYER met1 ;
-        RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
-    END
-  END VDD
-
-  PIN GND
-   DIRECTION INOUT ;
-   USE POWER ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER li1 ;
-        RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-       LAYER met1 ;
-        RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-    END
-  END GND
-
-  PIN Y
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
-        RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
-        RECT 0.81500000 0.51500000 3.50500000 0.65500000 ;
-        RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
-        RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
-        RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
-        RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
-    END
-  END Y
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-    END
-  END B
-
- OBS
-    LAYER polycont ;
-     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
-     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
-     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
-     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
-
-    LAYER pdiffc ;
-     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
-     RECT 0.63500000 2.82000000 0.80500000 2.99000000 ;
-
-    LAYER ndiffc ;
-     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
-     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
-     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
-
-    LAYER li1 ;
-     RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
-     RECT 0.79500000 0.42000000 1.12500000 0.75000000 ;
-     RECT 3.19500000 0.42000000 3.52500000 0.75000000 ;
-     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
-     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
-     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
-     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
-     RECT 3.19500000 2.17500000 3.52500000 2.50500000 ;
-     RECT 0.55500000 2.74000000 0.88500000 3.07000000 ;
-     RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
-
-    LAYER viali ;
-     RECT 0.15500000 -0.08500000 0.32500000 0.08500000 ;
-     RECT 0.63500000 -0.08500000 0.80500000 0.08500000 ;
-     RECT 1.11500000 -0.08500000 1.28500000 0.08500000 ;
-     RECT 1.59500000 -0.08500000 1.76500000 0.08500000 ;
-     RECT 2.07500000 -0.08500000 2.24500000 0.08500000 ;
-     RECT 2.55500000 -0.08500000 2.72500000 0.08500000 ;
-     RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
-     RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
-     RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
-     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
-     RECT 3.27500000 0.50000000 3.44500000 0.67000000 ;
-     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
-     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
-     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
-     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
-     RECT 3.27500000 2.25500000 3.44500000 2.42500000 ;
-     RECT 0.63500000 2.82000000 0.80500000 2.99000000 ;
-     RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
-     RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
-     RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
-     RECT 1.59500000 3.24500000 1.76500000 3.41500000 ;
-     RECT 2.07500000 3.24500000 2.24500000 3.41500000 ;
-     RECT 2.55500000 3.24500000 2.72500000 3.41500000 ;
-     RECT 3.03500000 3.24500000 3.20500000 3.41500000 ;
-     RECT 3.51500000 3.24500000 3.68500000 3.41500000 ;
-     RECT 3.99500000 3.24500000 4.16500000 3.41500000 ;
-
-    LAYER met1 ;
-     RECT 0.00000000 -0.24000000 4.32000000 0.24000000 ;
-     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
-     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
-     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
-     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
-     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-     RECT 0.81500000 0.44000000 1.10500000 0.51500000 ;
-     RECT 3.21500000 0.44000000 3.50500000 0.51500000 ;
-     RECT 0.81500000 0.51500000 3.50500000 0.65500000 ;
-     RECT 0.81500000 0.65500000 1.10500000 0.73000000 ;
-     RECT 3.21500000 0.65500000 3.50500000 0.73000000 ;
-     RECT 3.29000000 0.73000000 3.43000000 2.19500000 ;
-     RECT 3.21500000 2.19500000 3.50500000 2.48500000 ;
-     RECT 0.57500000 2.76000000 0.86500000 3.09000000 ;
-     RECT 0.00000000 3.09000000 4.32000000 3.57000000 ;
-
- END
-END NOR2X1
diff --git a/cells/lef/orig/OR2X1.lef b/cells/lef/orig/OR2X1.lef
new file mode 100644
index 0000000..6688562
--- /dev/null
+++ b/cells/lef/orig/OR2X1.lef
@@ -0,0 +1,177 @@
+MACRO OR2X1
+ CLASS CORE ;
+ FOREIGN OR2X1 0 0 ;
+ SIZE 5.76 BY 3.33 ;
+ ORIGIN 0 0 ;
+ SYMMETRY X Y R90 ;
+ SITE unit ;
+  PIN VDD
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+        RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+        RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+        RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
+ OBS
+    LAYER polycont ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+
+    LAYER pdiffc ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.82000000 3.44500000 2.99000000 ;
+
+    LAYER ndiffc ;
+     RECT 0.63500000 0.34000000 0.80500000 0.51000000 ;
+     RECT 3.27500000 0.34000000 3.44500000 0.51000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 0.55500000 0.24000000 0.88500000 0.59000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
+     RECT 2.23500000 0.42000000 2.56500000 0.75000000 ;
+     RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
+     RECT 1.35500000 1.15500000 1.52500000 1.48000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 2.79500000 1.15500000 2.96500000 1.48000000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
+     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
+     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
+     RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
+     RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
+     RECT 3.19500000 2.74000000 3.52500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+    LAYER viali ;
+     RECT 0.15500000 -0.08500000 0.32500000 0.08500000 ;
+     RECT 0.63500000 -0.08500000 0.80500000 0.08500000 ;
+     RECT 1.11500000 -0.08500000 1.28500000 0.08500000 ;
+     RECT 1.59500000 -0.08500000 1.76500000 0.08500000 ;
+     RECT 2.07500000 -0.08500000 2.24500000 0.08500000 ;
+     RECT 2.55500000 -0.08500000 2.72500000 0.08500000 ;
+     RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
+     RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
+     RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
+     RECT 4.47500000 -0.08500000 4.64500000 0.08500000 ;
+     RECT 4.95500000 -0.08500000 5.12500000 0.08500000 ;
+     RECT 5.43500000 -0.08500000 5.60500000 0.08500000 ;
+     RECT 0.63500000 0.34000000 0.80500000 0.51000000 ;
+     RECT 3.27500000 0.34000000 3.44500000 0.51000000 ;
+     RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
+     RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 1.35500000 1.31000000 1.52500000 1.48000000 ;
+     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
+     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
+     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
+     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
+     RECT 0.87500000 2.25500000 1.04500000 2.42500000 ;
+     RECT 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 3.27500000 2.82000000 3.44500000 2.99000000 ;
+     RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
+     RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
+     RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
+     RECT 1.59500000 3.24500000 1.76500000 3.41500000 ;
+     RECT 2.07500000 3.24500000 2.24500000 3.41500000 ;
+     RECT 2.55500000 3.24500000 2.72500000 3.41500000 ;
+     RECT 3.03500000 3.24500000 3.20500000 3.41500000 ;
+     RECT 3.51500000 3.24500000 3.68500000 3.41500000 ;
+     RECT 3.99500000 3.24500000 4.16500000 3.41500000 ;
+     RECT 4.47500000 3.24500000 4.64500000 3.41500000 ;
+     RECT 4.95500000 3.24500000 5.12500000 3.41500000 ;
+     RECT 5.43500000 3.24500000 5.60500000 3.41500000 ;
+
+    LAYER met1 ;
+     RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
+     RECT 0.57500000 0.24000000 0.86500000 0.57000000 ;
+     RECT 3.21500000 0.24000000 3.50500000 0.57000000 ;
+     RECT 1.29500000 1.25000000 1.58500000 1.54000000 ;
+     RECT 1.37000000 1.54000000 1.51000000 1.78000000 ;
+     RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+     RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
+     RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+     RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
+     RECT 2.25500000 0.44000000 2.54500000 0.73000000 ;
+     RECT 2.33000000 0.73000000 2.47000000 0.92000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 0.89000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
+     RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
+     RECT 0.89000000 1.06000000 1.03000000 2.19500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+     RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
+     RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
+     RECT 3.21500000 2.76000000 3.50500000 3.09000000 ;
+     RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
+
+ END
+END OR2X1
diff --git a/cells/lef/orig/OR2X2.lef b/cells/lef/orig/OR2X2.lef
index 5a755bc..6315fe5 100644
--- a/cells/lef/orig/OR2X2.lef
+++ b/cells/lef/orig/OR2X2.lef
@@ -44,17 +44,6 @@
     END
   END Y
 
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-    END
-  END A
-
   PIN B
    DIRECTION INOUT ;
    USE SIGNAL ;
@@ -62,12 +51,25 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-        RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
     END
   END B
 
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
+    END
+  END A
+
  OBS
     LAYER polycont ;
      RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
@@ -90,21 +92,19 @@
 
     LAYER li1 ;
      RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
-     RECT 0.55500000 0.26000000 0.88500000 0.59000000 ;
-     RECT 3.19500000 0.26000000 3.52500000 0.59000000 ;
+     RECT 0.55500000 0.24000000 0.88500000 0.59000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
      RECT 2.23500000 0.42000000 2.56500000 0.75000000 ;
      RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
-     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
-     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
-     RECT 2.79500000 1.15500000 2.96500000 1.48000000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
-     RECT 1.35500000 1.15500000 1.52500000 1.76000000 ;
+     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
      RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
      RECT 0.79500000 2.17500000 1.12500000 2.50500000 ;
      RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
-     RECT 3.19500000 2.74000000 3.52500000 3.07000000 ;
+     RECT 3.19500000 2.74000000 3.52500000 3.09000000 ;
      RECT 0.00000000 3.09000000 5.76000000 3.57000000 ;
 
     LAYER viali ;
@@ -121,11 +121,11 @@
      RECT 4.95500000 -0.08500000 5.12500000 0.08500000 ;
      RECT 5.43500000 -0.08500000 5.60500000 0.08500000 ;
      RECT 0.63500000 0.34000000 0.80500000 0.51000000 ;
-     RECT 3.27500000 0.34000000 3.44500000 0.51000000 ;
      RECT 2.31500000 0.50000000 2.48500000 0.67000000 ;
      RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
      RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
-     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
      RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
      RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
      RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
@@ -148,20 +148,23 @@
     LAYER met1 ;
      RECT 0.00000000 -0.24000000 5.76000000 0.24000000 ;
      RECT 0.57500000 0.24000000 0.86500000 0.57000000 ;
-     RECT 3.21500000 0.24000000 3.50500000 0.57000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
      RECT 1.29500000 1.78000000 1.58500000 2.07000000 ;
-     RECT 2.73500000 1.25000000 3.02500000 1.54000000 ;
-     RECT 2.81000000 1.54000000 2.95000000 1.78000000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
      RECT 2.73500000 1.78000000 3.02500000 2.07000000 ;
-     RECT 2.25500000 0.44000000 2.54500000 0.73000000 ;
-     RECT 2.33000000 0.73000000 2.47000000 0.92000000 ;
-     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
-     RECT 0.89000000 0.92000000 4.46500000 1.06000000 ;
-     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
+     RECT 2.25500000 0.44000000 2.54500000 0.51500000 ;
+     RECT 2.25500000 0.51500000 4.39000000 0.65500000 ;
+     RECT 2.25500000 0.65500000 2.54500000 0.73000000 ;
+     RECT 4.25000000 0.65500000 4.39000000 0.84500000 ;
+     RECT 4.17500000 0.84500000 4.46500000 1.13500000 ;
      RECT 4.25000000 1.13500000 4.39000000 1.78000000 ;
      RECT 4.17500000 1.78000000 4.46500000 2.07000000 ;
-     RECT 0.89000000 1.06000000 1.03000000 2.19500000 ;
-     RECT 0.81500000 2.19500000 1.10500000 2.48500000 ;
+     RECT 0.81500000 2.19500000 1.10500000 2.27000000 ;
+     RECT 2.33000000 0.73000000 2.47000000 2.27000000 ;
+     RECT 0.81500000 2.27000000 2.47000000 2.41000000 ;
+     RECT 0.81500000 2.41000000 1.10500000 2.48500000 ;
      RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
      RECT 4.73000000 0.73000000 4.87000000 2.19500000 ;
      RECT 4.65500000 2.19500000 4.94500000 2.48500000 ;
diff --git a/cells/lef/orig/XNOR2X1.lef b/cells/lef/orig/XNOR2X1.lef
index 6d23ad5..9083352 100644
--- a/cells/lef/orig/XNOR2X1.lef
+++ b/cells/lef/orig/XNOR2X1.lef
@@ -49,6 +49,10 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
+        RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+        RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+        RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+        RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
         RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
         RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
         RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
@@ -64,11 +68,15 @@
     PORT
      CLASS CORE ;
        LAYER met1 ;
-        RECT 5.13500000 1.65500000 5.42500000 1.73000000 ;
-        RECT 4.25000000 1.73000000 5.42500000 1.78000000 ;
-        RECT 4.17500000 1.78000000 5.42500000 1.87000000 ;
-        RECT 5.13500000 1.87000000 5.42500000 1.94500000 ;
-        RECT 4.17500000 1.87000000 4.46500000 2.07000000 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
+        RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
+        RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.85500000 ;
+        RECT 8.49500000 1.78000000 8.78500000 1.85500000 ;
+        RECT 4.17500000 1.85500000 8.78500000 1.99500000 ;
+        RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+        RECT 8.49500000 1.99500000 8.78500000 2.07000000 ;
     END
   END A
 
@@ -102,37 +110,33 @@
      RECT 9.03500000 0.50000000 9.20500000 0.67000000 ;
 
     LAYER li1 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
      RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
+     RECT 1.75500000 0.24000000 2.08500000 0.59000000 ;
      RECT 7.51500000 0.24000000 7.84500000 0.59000000 ;
      RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
      RECT 8.95500000 0.42000000 9.28500000 0.75000000 ;
-     RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
-     RECT 8.47500000 0.82500000 8.80500000 1.15500000 ;
-     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
-     RECT 4.23500000 1.15500000 4.40500000 1.48000000 ;
-     RECT 5.67500000 0.50000000 5.84500000 0.82500000 ;
-     RECT 5.59500000 0.82500000 5.92500000 0.90500000 ;
-     RECT 5.19500000 0.90500000 5.92500000 1.07500000 ;
-     RECT 5.59500000 1.07500000 5.92500000 1.15500000 ;
-     RECT 5.19500000 1.07500000 5.36500000 1.88500000 ;
      RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
-     RECT 1.35500000 1.15500000 1.52500000 1.76000000 ;
-     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
-     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
+     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
+     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
+     RECT 8.47500000 0.82500000 8.80500000 1.15500000 ;
+     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
      RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
      RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
-     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
-     RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
      RECT 8.47500000 1.76000000 8.80500000 2.09000000 ;
+     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
+     RECT 5.67500000 2.09000000 5.84500000 2.42500000 ;
      RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
      RECT 4.63500000 0.42000000 4.96500000 0.75000000 ;
      RECT 4.71500000 0.75000000 4.88500000 2.17500000 ;
      RECT 4.63500000 2.17500000 4.96500000 2.50500000 ;
      RECT 8.95500000 2.17500000 9.28500000 2.50500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
-     RECT 7.51500000 2.74000000 7.84500000 3.07000000 ;
+     RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
+     RECT 7.11500000 1.15500000 7.28500000 1.76000000 ;
+     RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
+     RECT 7.11500000 2.09000000 7.28500000 2.83000000 ;
+     RECT 1.75500000 2.74000000 2.08500000 3.09000000 ;
+     RECT 7.51500000 2.74000000 7.84500000 3.09000000 ;
      RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
 
     LAYER viali ;
@@ -158,23 +162,23 @@
      RECT 9.27500000 -0.08500000 9.44500000 0.08500000 ;
      RECT 9.75500000 -0.08500000 9.92500000 0.08500000 ;
      RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
+     RECT 7.59500000 0.34000000 7.76500000 0.51000000 ;
      RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
      RECT 4.71500000 0.50000000 4.88500000 0.67000000 ;
-     RECT 5.67500000 0.50000000 5.84500000 0.67000000 ;
      RECT 9.03500000 0.50000000 9.20500000 0.67000000 ;
-     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
+     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
+     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
+     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
+     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
      RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
-     RECT 4.23500000 1.31000000 4.40500000 1.48000000 ;
-     RECT 5.19500000 1.71500000 5.36500000 1.88500000 ;
      RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
      RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
      RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
-     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
-     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
      RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
      RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
+     RECT 5.67500000 2.25500000 5.84500000 2.42500000 ;
      RECT 9.03500000 2.25500000 9.20500000 2.42500000 ;
-     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
+     RECT 7.11500000 2.66000000 7.28500000 2.83000000 ;
      RECT 7.59500000 2.82000000 7.76500000 2.99000000 ;
      RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
      RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
@@ -201,45 +205,44 @@
     LAYER met1 ;
      RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
      RECT 1.77500000 0.24000000 2.06500000 0.57000000 ;
+     RECT 7.53500000 0.24000000 7.82500000 0.57000000 ;
      RECT 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     RECT 1.29500000 0.84500000 1.58500000 1.13500000 ;
+     RECT 2.73500000 0.84500000 3.02500000 1.13500000 ;
+     RECT 1.37000000 1.13500000 1.51000000 1.78000000 ;
+     RECT 2.81000000 1.13500000 2.95000000 1.78000000 ;
      RECT 1.29500000 1.78000000 1.58500000 1.85500000 ;
      RECT 2.73500000 1.78000000 3.02500000 1.85500000 ;
      RECT 1.29500000 1.85500000 3.02500000 1.99500000 ;
      RECT 1.29500000 1.99500000 1.58500000 2.07000000 ;
      RECT 2.73500000 1.99500000 3.02500000 2.07000000 ;
-     RECT 5.13500000 1.65500000 5.42500000 1.73000000 ;
-     RECT 4.25000000 1.73000000 5.42500000 1.78000000 ;
-     RECT 4.17500000 1.78000000 5.42500000 1.87000000 ;
-     RECT 5.13500000 1.87000000 5.42500000 1.94500000 ;
-     RECT 4.17500000 1.87000000 4.46500000 2.07000000 ;
-     RECT 5.61500000 0.44000000 5.90500000 0.51500000 ;
-     RECT 5.61500000 0.51500000 8.71000000 0.65500000 ;
-     RECT 5.61500000 0.65500000 5.90500000 0.73000000 ;
-     RECT 8.57000000 0.65500000 8.71000000 0.84500000 ;
+     RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
      RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
      RECT 8.57000000 1.13500000 8.71000000 1.78000000 ;
-     RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
-     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-     RECT 0.65000000 0.73000000 0.79000000 0.92000000 ;
-     RECT 7.05500000 0.84500000 7.34500000 0.92000000 ;
-     RECT 0.65000000 0.92000000 7.34500000 1.06000000 ;
-     RECT 7.05500000 1.06000000 7.34500000 1.13500000 ;
-     RECT 7.13000000 1.13500000 7.27000000 1.78000000 ;
-     RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
-     RECT 0.65000000 1.06000000 0.79000000 2.19500000 ;
-     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.85500000 ;
+     RECT 8.49500000 1.78000000 8.78500000 1.85500000 ;
+     RECT 4.17500000 1.85500000 8.78500000 1.99500000 ;
+     RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
+     RECT 8.49500000 1.99500000 8.78500000 2.07000000 ;
      RECT 8.97500000 0.44000000 9.26500000 0.73000000 ;
-     RECT 4.17500000 1.25000000 4.46500000 1.32500000 ;
-     RECT 4.17500000 1.32500000 5.83000000 1.46500000 ;
-     RECT 4.17500000 1.46500000 4.46500000 1.54000000 ;
-     RECT 5.69000000 1.46500000 5.83000000 1.78000000 ;
-     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+     RECT 4.17500000 0.84500000 4.46500000 0.92000000 ;
+     RECT 3.77000000 0.92000000 4.46500000 1.06000000 ;
+     RECT 4.17500000 1.06000000 4.46500000 1.13500000 ;
      RECT 9.05000000 0.73000000 9.19000000 2.19500000 ;
-     RECT 5.69000000 2.07000000 5.83000000 2.27000000 ;
+     RECT 3.77000000 1.06000000 3.91000000 2.27000000 ;
+     RECT 5.61500000 2.19500000 5.90500000 2.27000000 ;
      RECT 8.97500000 2.19500000 9.26500000 2.27000000 ;
-     RECT 5.69000000 2.27000000 9.26500000 2.41000000 ;
+     RECT 3.77000000 2.27000000 9.26500000 2.41000000 ;
+     RECT 5.61500000 2.41000000 5.90500000 2.48500000 ;
      RECT 8.97500000 2.41000000 9.26500000 2.48500000 ;
-     RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
+     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
+     RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+     RECT 0.65000000 2.48500000 0.79000000 2.67500000 ;
+     RECT 7.05500000 2.60000000 7.34500000 2.67500000 ;
+     RECT 0.65000000 2.67500000 7.34500000 2.81500000 ;
+     RECT 7.05500000 2.81500000 7.34500000 2.89000000 ;
      RECT 7.53500000 2.76000000 7.82500000 3.09000000 ;
      RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
 
diff --git a/cells/lef/orig/XOR2X1.lef b/cells/lef/orig/XOR2X1.lef
deleted file mode 100644
index e22fc9e..0000000
--- a/cells/lef/orig/XOR2X1.lef
+++ /dev/null
@@ -1,273 +0,0 @@
-MACRO XOR2X1
- CLASS CORE ;
- FOREIGN XOR2X1 0 0 ;
- SIZE 10.08 BY 3.33 ;
- ORIGIN 0 0 ;
- SYMMETRY X Y R90 ;
- SITE unit ;
-  PIN VDD
-   DIRECTION INOUT ;
-   USE POWER ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER li1 ;
-        RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
-       LAYER met1 ;
-        RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
-    END
-  END VDD
-
-  PIN GND
-   DIRECTION INOUT ;
-   USE POWER ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER li1 ;
-        RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
-       LAYER met1 ;
-        RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
-    END
-  END GND
-
-  PIN Y
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
-        RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
-        RECT 5.13500000 0.51500000 6.38500000 0.65500000 ;
-        RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
-        RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
-    END
-  END Y
-
-  PIN B
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
-        RECT 2.73500000 1.25000000 3.02500000 1.32500000 ;
-        RECT 8.57000000 1.13500000 8.71000000 1.32500000 ;
-        RECT 2.73500000 1.32500000 8.71000000 1.46500000 ;
-        RECT 2.73500000 1.46500000 3.02500000 1.54000000 ;
-        RECT 8.57000000 1.46500000 8.71000000 1.78000000 ;
-        RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
-    END
-  END B
-
-  PIN A
-   DIRECTION INOUT ;
-   USE SIGNAL ;
-   SHAPE ABUTMENT ;
-    PORT
-     CLASS CORE ;
-       LAYER met1 ;
-        RECT 4.17500000 0.44000000 4.46500000 0.51500000 ;
-        RECT 2.09000000 0.51500000 4.46500000 0.65500000 ;
-        RECT 4.17500000 0.65500000 4.46500000 0.73000000 ;
-        RECT 2.09000000 0.65500000 2.23000000 0.78500000 ;
-        RECT 1.37000000 0.78500000 2.23000000 0.84500000 ;
-        RECT 1.29500000 0.84500000 2.23000000 0.92500000 ;
-        RECT 1.29500000 0.92500000 1.58500000 1.13500000 ;
-        RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
-    END
-  END A
-
- OBS
-    LAYER polycont ;
-     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
-     RECT 2.79500000 0.90500000 2.96500000 1.07500000 ;
-     RECT 4.23500000 0.90500000 4.40500000 1.07500000 ;
-     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
-     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
-     RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
-     RECT 1.35500000 1.84000000 1.52500000 2.01000000 ;
-     RECT 2.79500000 1.84000000 2.96500000 2.01000000 ;
-     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
-     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
-     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
-     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
-
-    LAYER pdiffc ;
-     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
-     RECT 9.03500000 2.25500000 9.20500000 2.42500000 ;
-     RECT 5.19500000 2.79500000 5.36500000 2.96500000 ;
-     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
-     RECT 7.59500000 2.82000000 7.76500000 2.99000000 ;
-
-    LAYER ndiffc ;
-     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
-     RECT 7.59500000 0.34000000 7.76500000 0.51000000 ;
-     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
-     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
-     RECT 9.03500000 0.50000000 9.20500000 0.67000000 ;
-
-    LAYER li1 ;
-     RECT 1.75500000 0.26000000 2.08500000 0.59000000 ;
-     RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
-     RECT 7.51500000 0.24000000 7.84500000 0.59000000 ;
-     RECT 0.55500000 0.42000000 0.88500000 0.75000000 ;
-     RECT 5.11500000 0.42000000 5.44500000 0.75000000 ;
-     RECT 8.95500000 0.42000000 9.28500000 0.75000000 ;
-     RECT 1.27500000 0.82500000 1.60500000 1.15500000 ;
-     RECT 4.23500000 0.50000000 4.40500000 0.82500000 ;
-     RECT 4.15500000 0.82500000 4.48500000 1.15500000 ;
-     RECT 5.59500000 0.82500000 5.92500000 1.15500000 ;
-     RECT 7.03500000 0.82500000 7.36500000 1.15500000 ;
-     RECT 8.47500000 0.82500000 8.80500000 1.15500000 ;
-     RECT 6.15500000 0.50000000 6.32500000 1.88500000 ;
-     RECT 2.71500000 0.82500000 3.04500000 1.15500000 ;
-     RECT 2.79500000 1.15500000 2.96500000 1.76000000 ;
-     RECT 2.71500000 1.76000000 3.04500000 2.09000000 ;
-     RECT 4.15500000 1.76000000 4.48500000 2.09000000 ;
-     RECT 5.59500000 1.76000000 5.92500000 2.09000000 ;
-     RECT 7.03500000 1.76000000 7.36500000 2.09000000 ;
-     RECT 8.47500000 1.76000000 8.80500000 2.09000000 ;
-     RECT 1.35500000 1.44500000 1.52500000 1.76000000 ;
-     RECT 1.27500000 1.76000000 1.60500000 2.09000000 ;
-     RECT 1.35500000 2.09000000 1.52500000 2.42500000 ;
-     RECT 0.55500000 2.17500000 0.88500000 2.50500000 ;
-     RECT 8.95500000 2.17500000 9.28500000 2.50500000 ;
-     RECT 5.11500000 2.71500000 5.44500000 3.04500000 ;
-     RECT 1.75500000 2.74000000 2.08500000 3.07000000 ;
-     RECT 7.51500000 2.74000000 7.84500000 3.07000000 ;
-     RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
-
-    LAYER viali ;
-     RECT 0.15500000 -0.08500000 0.32500000 0.08500000 ;
-     RECT 0.63500000 -0.08500000 0.80500000 0.08500000 ;
-     RECT 1.11500000 -0.08500000 1.28500000 0.08500000 ;
-     RECT 1.59500000 -0.08500000 1.76500000 0.08500000 ;
-     RECT 2.07500000 -0.08500000 2.24500000 0.08500000 ;
-     RECT 2.55500000 -0.08500000 2.72500000 0.08500000 ;
-     RECT 3.03500000 -0.08500000 3.20500000 0.08500000 ;
-     RECT 3.51500000 -0.08500000 3.68500000 0.08500000 ;
-     RECT 3.99500000 -0.08500000 4.16500000 0.08500000 ;
-     RECT 4.47500000 -0.08500000 4.64500000 0.08500000 ;
-     RECT 4.95500000 -0.08500000 5.12500000 0.08500000 ;
-     RECT 5.43500000 -0.08500000 5.60500000 0.08500000 ;
-     RECT 5.91500000 -0.08500000 6.08500000 0.08500000 ;
-     RECT 6.39500000 -0.08500000 6.56500000 0.08500000 ;
-     RECT 6.87500000 -0.08500000 7.04500000 0.08500000 ;
-     RECT 7.35500000 -0.08500000 7.52500000 0.08500000 ;
-     RECT 7.83500000 -0.08500000 8.00500000 0.08500000 ;
-     RECT 8.31500000 -0.08500000 8.48500000 0.08500000 ;
-     RECT 8.79500000 -0.08500000 8.96500000 0.08500000 ;
-     RECT 9.27500000 -0.08500000 9.44500000 0.08500000 ;
-     RECT 9.75500000 -0.08500000 9.92500000 0.08500000 ;
-     RECT 1.83500000 0.34000000 2.00500000 0.51000000 ;
-     RECT 0.63500000 0.50000000 0.80500000 0.67000000 ;
-     RECT 4.23500000 0.50000000 4.40500000 0.67000000 ;
-     RECT 5.19500000 0.50000000 5.36500000 0.67000000 ;
-     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
-     RECT 9.03500000 0.50000000 9.20500000 0.67000000 ;
-     RECT 1.35500000 0.90500000 1.52500000 1.07500000 ;
-     RECT 5.67500000 0.90500000 5.84500000 1.07500000 ;
-     RECT 7.11500000 0.90500000 7.28500000 1.07500000 ;
-     RECT 8.55500000 0.90500000 8.72500000 1.07500000 ;
-     RECT 2.79500000 1.31000000 2.96500000 1.48000000 ;
-     RECT 1.35500000 1.44500000 1.52500000 1.61500000 ;
-     RECT 6.15500000 1.71500000 6.32500000 1.88500000 ;
-     RECT 4.23500000 1.84000000 4.40500000 2.01000000 ;
-     RECT 5.67500000 1.84000000 5.84500000 2.01000000 ;
-     RECT 7.11500000 1.84000000 7.28500000 2.01000000 ;
-     RECT 8.55500000 1.84000000 8.72500000 2.01000000 ;
-     RECT 0.63500000 2.25500000 0.80500000 2.42500000 ;
-     RECT 1.35500000 2.25500000 1.52500000 2.42500000 ;
-     RECT 9.03500000 2.25500000 9.20500000 2.42500000 ;
-     RECT 5.19500000 2.79500000 5.36500000 2.96500000 ;
-     RECT 1.83500000 2.82000000 2.00500000 2.99000000 ;
-     RECT 7.59500000 2.82000000 7.76500000 2.99000000 ;
-     RECT 0.15500000 3.24500000 0.32500000 3.41500000 ;
-     RECT 0.63500000 3.24500000 0.80500000 3.41500000 ;
-     RECT 1.11500000 3.24500000 1.28500000 3.41500000 ;
-     RECT 1.59500000 3.24500000 1.76500000 3.41500000 ;
-     RECT 2.07500000 3.24500000 2.24500000 3.41500000 ;
-     RECT 2.55500000 3.24500000 2.72500000 3.41500000 ;
-     RECT 3.03500000 3.24500000 3.20500000 3.41500000 ;
-     RECT 3.51500000 3.24500000 3.68500000 3.41500000 ;
-     RECT 3.99500000 3.24500000 4.16500000 3.41500000 ;
-     RECT 4.47500000 3.24500000 4.64500000 3.41500000 ;
-     RECT 4.95500000 3.24500000 5.12500000 3.41500000 ;
-     RECT 5.43500000 3.24500000 5.60500000 3.41500000 ;
-     RECT 5.91500000 3.24500000 6.08500000 3.41500000 ;
-     RECT 6.39500000 3.24500000 6.56500000 3.41500000 ;
-     RECT 6.87500000 3.24500000 7.04500000 3.41500000 ;
-     RECT 7.35500000 3.24500000 7.52500000 3.41500000 ;
-     RECT 7.83500000 3.24500000 8.00500000 3.41500000 ;
-     RECT 8.31500000 3.24500000 8.48500000 3.41500000 ;
-     RECT 8.79500000 3.24500000 8.96500000 3.41500000 ;
-     RECT 9.27500000 3.24500000 9.44500000 3.41500000 ;
-     RECT 9.75500000 3.24500000 9.92500000 3.41500000 ;
-
-    LAYER met1 ;
-     RECT 0.00000000 -0.24000000 10.08000000 0.24000000 ;
-     RECT 1.77500000 0.24000000 2.06500000 0.57000000 ;
-     RECT 5.13500000 0.44000000 5.42500000 0.51500000 ;
-     RECT 6.09500000 0.44000000 6.38500000 0.51500000 ;
-     RECT 5.13500000 0.51500000 6.38500000 0.65500000 ;
-     RECT 5.13500000 0.65500000 5.42500000 0.73000000 ;
-     RECT 6.09500000 0.65500000 6.38500000 0.73000000 ;
-     RECT 4.17500000 0.44000000 4.46500000 0.51500000 ;
-     RECT 2.09000000 0.51500000 4.46500000 0.65500000 ;
-     RECT 4.17500000 0.65500000 4.46500000 0.73000000 ;
-     RECT 2.09000000 0.65500000 2.23000000 0.78500000 ;
-     RECT 1.37000000 0.78500000 2.23000000 0.84500000 ;
-     RECT 1.29500000 0.84500000 2.23000000 0.92500000 ;
-     RECT 1.29500000 0.92500000 1.58500000 1.13500000 ;
-     RECT 1.37000000 1.13500000 1.51000000 1.38500000 ;
-     RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
-     RECT 8.49500000 0.84500000 8.78500000 1.13500000 ;
-     RECT 2.73500000 1.25000000 3.02500000 1.32500000 ;
-     RECT 8.57000000 1.13500000 8.71000000 1.32500000 ;
-     RECT 2.73500000 1.32500000 8.71000000 1.46500000 ;
-     RECT 2.73500000 1.46500000 3.02500000 1.54000000 ;
-     RECT 8.57000000 1.46500000 8.71000000 1.78000000 ;
-     RECT 8.49500000 1.78000000 8.78500000 2.07000000 ;
-     RECT 0.57500000 0.44000000 0.86500000 0.73000000 ;
-     RECT 5.61500000 0.84500000 5.90500000 0.92000000 ;
-     RECT 2.33000000 0.92000000 5.90500000 1.06000000 ;
-     RECT 5.61500000 1.06000000 5.90500000 1.13500000 ;
-     RECT 0.65000000 0.73000000 0.79000000 1.85500000 ;
-     RECT 2.33000000 1.06000000 2.47000000 1.85500000 ;
-     RECT 4.17500000 1.78000000 4.46500000 1.85500000 ;
-     RECT 0.65000000 1.85500000 4.46500000 1.99500000 ;
-     RECT 4.17500000 1.99500000 4.46500000 2.07000000 ;
-     RECT 0.65000000 1.99500000 0.79000000 2.19500000 ;
-     RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
-     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
-     RECT 1.29500000 2.19500000 1.58500000 2.27000000 ;
-     RECT 5.69000000 2.07000000 5.83000000 2.27000000 ;
-     RECT 1.29500000 2.27000000 5.83000000 2.41000000 ;
-     RECT 1.29500000 2.41000000 1.58500000 2.48500000 ;
-     RECT 8.97500000 0.44000000 9.26500000 0.51500000 ;
-     RECT 7.13000000 0.51500000 9.26500000 0.65500000 ;
-     RECT 8.97500000 0.65500000 9.26500000 0.73000000 ;
-     RECT 7.13000000 0.65500000 7.27000000 0.84500000 ;
-     RECT 7.05500000 0.84500000 7.34500000 1.13500000 ;
-     RECT 7.05500000 1.78000000 7.34500000 2.07000000 ;
-     RECT 9.05000000 0.73000000 9.19000000 2.19500000 ;
-     RECT 7.13000000 2.07000000 7.27000000 2.27000000 ;
-     RECT 8.97500000 2.19500000 9.26500000 2.27000000 ;
-     RECT 7.13000000 2.27000000 9.26500000 2.41000000 ;
-     RECT 8.97500000 2.41000000 9.26500000 2.48500000 ;
-     RECT 6.09500000 1.65500000 6.38500000 1.94500000 ;
-     RECT 5.13500000 2.73500000 5.42500000 2.81000000 ;
-     RECT 6.17000000 1.94500000 6.31000000 2.81000000 ;
-     RECT 5.13500000 2.81000000 6.31000000 2.95000000 ;
-     RECT 5.13500000 2.95000000 5.42500000 3.02500000 ;
-     RECT 1.77500000 2.76000000 2.06500000 3.09000000 ;
-     RECT 7.53500000 2.76000000 7.82500000 3.09000000 ;
-     RECT 0.00000000 3.09000000 10.08000000 3.57000000 ;
-
- END
-END XOR2X1
diff --git a/cells/lib/AND2X2.lib b/cells/lib/AND2X2.lib
index e4b6ce7..7e2fe1f 100644
--- a/cells/lib/AND2X2.lib
+++ b/cells/lib/AND2X2.lib
@@ -35,7 +35,7 @@
     );
   }
   cell (AND2X2) {
-    area: 1592644.0;
+    area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (B) {
       direction: input;
diff --git a/cells/lib/BUFX4.lib b/cells/lib/BUFX4.lib
new file mode 100644
index 0000000..59df0e6
--- /dev/null
+++ b/cells/lib/BUFX4.lib
@@ -0,0 +1,116 @@
+library (ls05_stdcells) {
+  delay_model: table_lookup;
+  in_place_swap_mode: match_footprint;
+  time_unit: "1ns";
+  voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
+  operating_conditions (typical) {
+    process: 1.0;
+    voltage: 5.0;
+    temperature: 25.0;
+  }
+  lu_table_template (delay_template_5x5) {
+    variable_1: total_output_net_capacitance;
+    variable_2: input_net_transition;
+    index_1 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+    index_2 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+  }
+  cell (BUFX4) {
+    area: 219456.0;
+    cell_leakage_power: 0.1173;
+    pin (A) {
+      direction: input;
+      rise_capacitance: 0.006190154742284263;
+      fall_capacitance: 0.008890580111169952;
+      capacitance: 0.007540367426727108;
+    }
+    pin (Y) {
+      direction: output;
+      function: "!(!A)";
+      function: "(A)";
+      timing () {
+        related_pin: "A";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.003332, 0.021756, 0.028208, 0.035969, 0.093993", \
+            "0.026181, 0.039174, 0.048485, 0.060878, 0.137999", \
+            "0.045221, 0.053837, 0.062262, 0.078031, 0.166608", \
+            "0.086091, 0.087685, 0.092767, 0.107223, 0.211923", \
+            "0.435684, 0.421572, 0.413289, 0.404913, 0.530577"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.019917, 0.023712, 0.027202, 0.030685, 0.008146", \
+            "0.039940, 0.042849, 0.048226, 0.055685, 0.049883", \
+            "0.059858, 0.061386, 0.065377, 0.075941, 0.084686", \
+            "0.102963, 0.102628, 0.103617, 0.111160, 0.147406", \
+            "0.459869, 0.457168, 0.453471, 0.446561, 0.530833"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.022521, 0.061092, 0.098545, 0.118668, 0.841214", \
+            "0.047803, 0.081523, 0.116519, 0.130463, 0.837645", \
+            "0.078588, 0.106772, 0.139897, 0.152839, 0.833203", \
+            "0.146398, 0.156268, 0.169785, 0.200500, 0.833117", \
+            "0.712599, 0.712588, 0.712577, 0.712845, 1.089880"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.022169, 0.034922, 0.057456, 0.109434, 0.837145", \
+            "0.053315, 0.062209, 0.079539, 0.123803, 0.839403", \
+            "0.093114, 0.098044, 0.110960, 0.148338, 0.840752", \
+            "0.177240, 0.178652, 0.185453, 0.211899, 0.851340", \
+            "0.865991, 0.865992, 0.865993, 0.866799, 1.209225"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/lib/CLKBUF1.lib b/cells/lib/CLKBUF1.lib
new file mode 100644
index 0000000..4b7e0ab
--- /dev/null
+++ b/cells/lib/CLKBUF1.lib
@@ -0,0 +1,116 @@
+library (ls05_stdcells) {
+  delay_model: table_lookup;
+  in_place_swap_mode: match_footprint;
+  time_unit: "1ns";
+  voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
+  operating_conditions (typical) {
+    process: 1.0;
+    voltage: 5.0;
+    temperature: 25.0;
+  }
+  lu_table_template (delay_template_5x5) {
+    variable_1: total_output_net_capacitance;
+    variable_2: input_net_transition;
+    index_1 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+    index_2 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+  }
+  cell (CLKBUF1) {
+    area: 493776.0;
+    cell_leakage_power: 0.1173;
+    pin (A) {
+      direction: input;
+      rise_capacitance: 0.012377692547513634;
+      fall_capacitance: 0.014507744176093367;
+      capacitance: 0.0134427183618035;
+    }
+    pin (Y) {
+      direction: output;
+      function: "!(!A)";
+      function: "(A)";
+      timing () {
+        related_pin: "A";
+        timing_sense: positive_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "-0.003460, 0.039905, 0.046929, 0.057149, 0.129195", \
+            "0.039219, 0.054860, 0.064114, 0.078186, 0.157207", \
+            "0.055285, 0.068102, 0.077098, 0.093315, 0.177192", \
+            "0.092471, 0.100229, 0.107093, 0.121807, 0.216231", \
+            "0.435605, 0.429264, 0.424902, 0.423004, 0.538823"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.032185, 0.040159, 0.044451, 0.047986, 0.023388", \
+            "0.050450, 0.056824, 0.062828, 0.071275, 0.053156", \
+            "0.068299, 0.073963, 0.079184, 0.090175, 0.079028", \
+            "0.109143, 0.112555, 0.116061, 0.124195, 0.130603", \
+            "0.463189, 0.462100, 0.460697, 0.458229, 0.520719"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.038133, 0.073853, 0.108060, 0.106379, 0.742329", \
+            "0.060385, 0.095859, 0.130135, 0.118818, 0.738152", \
+            "0.087750, 0.120648, 0.154819, 0.142636, 0.732318", \
+            "0.148631, 0.165728, 0.177042, 0.190178, 0.740928", \
+            "0.712222, 0.712217, 0.712215, 0.712236, 0.974750"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.042002, 0.068064, 0.055378, 0.096450, 0.738499", \
+            "0.070257, 0.097122, 0.081847, 0.113407, 0.740126", \
+            "0.100976, 0.109877, 0.115079, 0.140310, 0.740118", \
+            "0.178532, 0.181261, 0.187084, 0.204804, 0.747643", \
+            "0.865667, 0.865654, 0.865705, 0.865803, 1.087674"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/lib/INVX4.lib b/cells/lib/INVX4.lib
index 1561a7e..9a533d4 100644
--- a/cells/lib/INVX4.lib
+++ b/cells/lib/INVX4.lib
@@ -35,7 +35,7 @@
     );
   }
   cell (INVX4) {
-    area: 1592644.0;
+    area: 164592.0;
     cell_leakage_power: 0.1173;
     pin (A) {
       direction: input;
diff --git a/cells/lib/INVX8.lib b/cells/lib/INVX8.lib
new file mode 100644
index 0000000..62e1f00
--- /dev/null
+++ b/cells/lib/INVX8.lib
@@ -0,0 +1,116 @@
+library (ls05_stdcells) {
+  delay_model: table_lookup;
+  in_place_swap_mode: match_footprint;
+  time_unit: "1ns";
+  voltage_unit: "1V";
+  current_unit: "1uA";
+  pulling_resistance_unit: "1kohm";
+  leakage_power_unit: "1nW";
+  capacitive_load_unit (1.0, pf);
+  slew_upper_threshold_pct_rise: 80.0;
+  slew_lower_threshold_pct_rise: 20.0;
+  slew_upper_threshold_pct_fall: 80.0;
+  slew_lower_threshold_pct_fall: 20.0;
+  input_threshold_pct_rise: 50.0;
+  input_threshold_pct_fall: 50.0;
+  output_threshold_pct_rise: 50.0;
+  output_threshold_pct_fall: 50.0;
+  nom_process: 1.0;
+  nom_voltage: 5.0;
+  nom_temperature: 25.0;
+  default_operating_conditions: typical;
+  operating_conditions (typical) {
+    process: 1.0;
+    voltage: 5.0;
+    temperature: 25.0;
+  }
+  lu_table_template (delay_template_5x5) {
+    variable_1: total_output_net_capacitance;
+    variable_2: input_net_transition;
+    index_1 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+    index_2 (
+      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
+    );
+  }
+  cell (INVX8) {
+    area: 274320.0;
+    cell_leakage_power: 0.1173;
+    pin (A) {
+      direction: input;
+      rise_capacitance: 0.02475357794277478;
+      fall_capacitance: 0.025715030488090873;
+      capacitance: 0.025234304215432823;
+    }
+    pin (Y) {
+      direction: output;
+      function: "!(A)";
+      function: "(!A)";
+      timing () {
+        related_pin: "A";
+        timing_sense: negative_unate;
+        cell_rise (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.004711, 0.003669, 0.002920, -0.001273, -0.067235", \
+            "0.013476, 0.016314, 0.018100, 0.018126, -0.031065", \
+            "0.023686, 0.025560, 0.029154, 0.032104, -0.003570", \
+            "0.045002, 0.042834, 0.047470, 0.054715, 0.040967", \
+            "0.220836, 0.210041, 0.201832, 0.197811, 0.273718"
+          );
+        }
+        cell_fall (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.005356, 0.008225, 0.012119, 0.018287, 0.088886", \
+            "0.014445, 0.019534, 0.025707, 0.035382, 0.118985", \
+            "0.025056, 0.028778, 0.035903, 0.047954, 0.142358", \
+            "0.046837, 0.047773, 0.053764, 0.068471, 0.181014", \
+            "0.225616, 0.222601, 0.219861, 0.220213, 0.388011"
+          );
+        }
+        rise_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.007647, 0.028925, 0.057669, 0.115805, 0.870247", \
+            "0.022139, 0.037257, 0.061628, 0.115441, 0.868805", \
+            "0.039229, 0.050143, 0.071107, 0.121043, 0.867453", \
+            "0.074441, 0.080027, 0.096405, 0.138670, 0.864852", \
+            "0.357732, 0.357697, 0.358023, 0.371638, 0.931800"
+          );
+        }
+        fall_transition (delay_template_5x5) {
+          index_1 (
+            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
+          );
+          index_2 (
+            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
+          );
+          values (
+            "0.008160, 0.030148, 0.056531, 0.115506, 0.870109", \
+            "0.026793, 0.041830, 0.067077, 0.120590, 0.871621", \
+            "0.047212, 0.057977, 0.079852, 0.130476, 0.873241", \
+            "0.089918, 0.095810, 0.111953, 0.155870, 0.877226", \
+            "0.434491, 0.434491, 0.435448, 0.448752, 1.014657"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/lib/NAND2X1.lib b/cells/lib/NAND2X1.lib
index 37bbdca..159a940 100644
--- a/cells/lib/NAND2X1.lib
+++ b/cells/lib/NAND2X1.lib
@@ -35,7 +35,7 @@
     );
   }
   cell (NAND2X1) {
-    area: 1592644.0;
+    area: 164592.0;
     cell_leakage_power: 0.1173;
     pin (B) {
       direction: input;
diff --git a/cells/lib/NAND3X1.lib b/cells/lib/NAND3X1.lib
index 2c201a2..43f44c1 100644
--- a/cells/lib/NAND3X1.lib
+++ b/cells/lib/NAND3X1.lib
@@ -35,7 +35,7 @@
     );
   }
   cell (NAND3X1) {
-    area: 1592644.0;
+    area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (C) {
       direction: input;
diff --git a/cells/lib/NOR2X1.lib b/cells/lib/NOR2X1.lib
deleted file mode 100644
index 0f4c958..0000000
--- a/cells/lib/NOR2X1.lib
+++ /dev/null
@@ -1,186 +0,0 @@
-library (ls05_stdcells) {
-  delay_model: table_lookup;
-  in_place_swap_mode: match_footprint;
-  time_unit: "1ns";
-  voltage_unit: "1V";
-  current_unit: "1uA";
-  pulling_resistance_unit: "1kohm";
-  leakage_power_unit: "1nW";
-  capacitive_load_unit (1.0, pf);
-  slew_upper_threshold_pct_rise: 80.0;
-  slew_lower_threshold_pct_rise: 20.0;
-  slew_upper_threshold_pct_fall: 80.0;
-  slew_lower_threshold_pct_fall: 20.0;
-  input_threshold_pct_rise: 50.0;
-  input_threshold_pct_fall: 50.0;
-  output_threshold_pct_rise: 50.0;
-  output_threshold_pct_fall: 50.0;
-  nom_process: 1.0;
-  nom_voltage: 5.0;
-  nom_temperature: 25.0;
-  default_operating_conditions: typical;
-  operating_conditions (typical) {
-    process: 1.0;
-    voltage: 5.0;
-    temperature: 25.0;
-  }
-  lu_table_template (delay_template_5x5) {
-    variable_1: total_output_net_capacitance;
-    variable_2: input_net_transition;
-    index_1 (
-      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
-    );
-    index_2 (
-      "1000.000000, 1001.000000, 1002.000000, 1003.000000, 1004.000000"
-    );
-  }
-  cell (NOR2X1) {
-    area: 164592.0;
-    cell_leakage_power: 0.1173;
-    pin (B) {
-      direction: input;
-      rise_capacitance: 0.006307384837439927;
-      fall_capacitance: 0.006306324454300684;
-      capacitance: 0.006306854645870306;
-    }
-    pin (A) {
-      direction: input;
-      rise_capacitance: 0.006299781364172542;
-      fall_capacitance: 0.00890124516010798;
-      capacitance: 0.0076005132621402615;
-    }
-    pin (Y) {
-      direction: output;
-      function: "(!B&!A)";
-      function: "(!A & !B)";
-      timing () {
-        related_pin: "A";
-        timing_sense: negative_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.012986, 0.016464, 0.018922, 0.020204, -0.010487", \
-            "0.090855, 0.091382, 0.094616, 0.104989, 0.165835", \
-            "0.168403, 0.168290, 0.169983, 0.177071, 0.280870", \
-            "0.323463, 0.322901, 0.323243, 0.327021, 0.459948", \
-            "1.563457, 1.562468, 1.561029, 1.559260, 1.617628"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.008571, 0.012834, 0.016940, 0.022901, 0.073370", \
-            "0.050719, 0.051182, 0.056436, 0.070039, 0.161587", \
-            "0.095157, 0.093369, 0.094430, 0.105159, 0.223878", \
-            "0.184573, 0.181502, 0.179079, 0.180864, 0.324736", \
-            "0.900731, 0.896739, 0.891685, 0.882327, 0.915214"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011911, 0.020251, 0.035631, 0.075894, 0.632098", \
-            "0.122227, 0.122198, 0.122986, 0.131826, 0.572943", \
-            "0.234847, 0.234841, 0.234770, 0.236394, 0.551555", \
-            "0.460142, 0.460167, 0.460168, 0.460147, 0.626352", \
-            "2.263162, 2.263157, 2.263162, 2.263162, 2.264768"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.019230, 0.038878, 0.062210, 0.109873, 0.677222", \
-            "0.098886, 0.105335, 0.122576, 0.168308, 0.823551", \
-            "0.184754, 0.186734, 0.196898, 0.231670, 0.903883", \
-            "0.357145, 0.357371, 0.360113, 0.379939, 1.013582", \
-            "1.735540, 1.735518, 1.735519, 1.735512, 2.002056"
-          );
-        }
-      }
-      timing () {
-        related_pin: "B";
-        timing_sense: negative_unate;
-        cell_rise (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011806, 0.014164, 0.016660, 0.020318, 0.038325", \
-            "0.090368, 0.085510, 0.088212, 0.100612, 0.196917", \
-            "0.168063, 0.161173, 0.160440, 0.166991, 0.301135", \
-            "0.323155, 0.314877, 0.310973, 0.310624, 0.465942", \
-            "1.563209, 1.553438, 1.545230, 1.532397, 1.541763"
-          );
-        }
-        cell_fall (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.005936, 0.007167, 0.008315, 0.008939, 0.000169", \
-            "0.046963, 0.047411, 0.052229, 0.062557, 0.098027", \
-            "0.091434, 0.089675, 0.090367, 0.099822, 0.165924", \
-            "0.180891, 0.177906, 0.175243, 0.176092, 0.276079", \
-            "0.897089, 0.893154, 0.888102, 0.878617, 0.897368"
-          );
-        }
-        rise_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011999, 0.022468, 0.042650, 0.089129, 0.702921", \
-            "0.122129, 0.122235, 0.124548, 0.142036, 0.672456", \
-            "0.234809, 0.234839, 0.234788, 0.239948, 0.663642", \
-            "0.460173, 0.460149, 0.460147, 0.460142, 0.740712", \
-            "2.263154, 2.263159, 2.263157, 2.263162, 2.274281"
-          );
-        }
-        fall_transition (delay_template_5x5) {
-          index_1 (
-            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
-          );
-          index_2 (
-            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
-          );
-          values (
-            "0.011676, 0.031135, 0.054847, 0.101688, 0.713699", \
-            "0.091257, 0.097211, 0.113947, 0.158466, 0.799171", \
-            "0.177241, 0.178967, 0.188549, 0.222057, 0.874832", \
-            "0.349616, 0.349773, 0.352334, 0.371118, 0.982630", \
-            "1.727951, 1.727928, 1.727929, 1.727925, 1.982101"
-          );
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/cells/lib/OR2X1.lib b/cells/lib/OR2X1.lib
index 059d56e..497c2fe 100644
--- a/cells/lib/OR2X1.lib
+++ b/cells/lib/OR2X1.lib
@@ -35,7 +35,7 @@
     );
   }
   cell (OR2X1) {
-    area: 1619236.0;
+    area: 219456.0;
     cell_leakage_power: 0.1173;
     pin (B) {
       direction: input;
diff --git a/cells/lib/XNOR2X1.lib b/cells/lib/XNOR2X1.lib
index ca43a6f..ac556dd 100644
--- a/cells/lib/XNOR2X1.lib
+++ b/cells/lib/XNOR2X1.lib
@@ -35,7 +35,7 @@
     );
   }
   cell (XNOR2X1) {
-    area: 1592644.0;
+    area: 384048.0;
     cell_leakage_power: 0.1173;
     pin (B) {
       direction: input;
diff --git a/cells/lib/libresilicon.lib b/cells/lib/libresilicon.lib
index 9f22045..a9d1c9b 100644
--- a/cells/lib/libresilicon.lib
+++ b/cells/lib/libresilicon.lib
@@ -1 +1 @@
-library (ls05_stdcells) {  delay_model: table_lookup;  in_place_swap_mode: match_footprint;  time_unit: "1ns";  voltage_unit: "1V";  current_unit: "1uA";  pulling_resistance_unit: "1kohm";  leakage_power_unit: "1nW";  capacitive_load_unit (1.0, pf);  slew_upper_threshold_pct_rise: 80.0;  slew_lower_threshold_pct_rise: 20.0;  slew_upper_threshold_pct_fall: 80.0;  slew_lower_threshold_pct_fall: 20.0;  input_threshold_pct_rise: 50.0;  input_threshold_pct_fall: 50.0;  output_threshold_pct_rise: 50.0;  output_threshold_pct_fall: 50.0;  nom_process: 1.0;  nom_voltage: 5.0;  nom_temperature: 25.0;  default_operating_conditions: typical;  operating_conditions (typical) {    process: 1.0;    voltage: 5.0;    temperature: 25.0;  }  lu_table_template (delay_template_5x1) {    variable_1: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (delay_template_5x5) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (delay_template_5x6) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (delay_template_6x1) {    variable_1: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (delay_template_6x6) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (energy_template_5x5) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  power_lut_template (energy_template_5x6) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (energy_template_6x6) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (hold_template_3x5) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (hold_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (passive_energy_template_5x1) {    variable_1: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  power_lut_template (passive_energy_template_6x1) {    variable_1: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (recovery_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (recovery_template_6x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (removal_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (setup_template_3x5) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (setup_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  cell (AND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004935475891367477;      fall_capacitance: 0.007858406695085389;      capacitance: 0.006396941293226433;    }    pin (A) {      direction: input;      rise_capacitance: 0.004150891096654475;      fall_capacitance: 0.005776428708787616;      capacitance: 0.004963659902721045;    }    pin (Y) {      direction: output;      function: "(B&A)";      function: "(A & B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749",             "0.048098, 0.064059, 0.074620, 0.093597, 0.252448",             "0.087865, 0.098559, 0.108152, 0.125156, 0.300811",             "0.172721, 0.177015, 0.184227, 0.196165, 0.394456",             "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696",             "0.056135, 0.056445, 0.057308, 0.057768, -0.014818",             "0.099933, 0.098214, 0.096071, 0.094474, 0.031563",             "0.189088, 0.185938, 0.181261, 0.173387, 0.117548",             "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792",             "0.080791, 0.094490, 0.092269, 0.111832, 0.588352",             "0.147163, 0.151582, 0.153943, 0.167618, 0.594475",             "0.287657, 0.288087, 0.288559, 0.294676, 0.639075",             "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971",             "0.091168, 0.096623, 0.108594, 0.140442, 0.624323",             "0.176540, 0.177904, 0.183856, 0.205552, 0.674111",             "0.348626, 0.348716, 0.349898, 0.359158, 0.778703",             "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628",             "0.046736, 0.065667, 0.079697, 0.098261, 0.233471",             "0.087052, 0.099648, 0.114524, 0.132001, 0.286132",             "0.172376, 0.177352, 0.192051, 0.206645, 0.390972",             "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337",             "0.058079, 0.058865, 0.060249, 0.060930, 0.021381",             "0.101524, 0.100223, 0.098824, 0.096634, 0.056583",             "0.190472, 0.187661, 0.183754, 0.176080, 0.122194",             "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913",             "0.080000, 0.118312, 0.085490, 0.095978, 0.447397",             "0.146991, 0.152360, 0.150326, 0.156871, 0.457664",             "0.287629, 0.288180, 0.288056, 0.290376, 0.519847",             "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070",             "0.091909, 0.097885, 0.110175, 0.140770, 0.556828",             "0.176533, 0.178340, 0.184385, 0.205074, 0.605254",             "0.348727, 0.348732, 0.349910, 0.357567, 0.705589",             "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"          );        }      }    }  }  cell (AND2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1592644.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004935475891367477;      fall_capacitance: 0.007858406695085389;      capacitance: 0.006396941293226433;    }    pin (A) {      direction: input;      rise_capacitance: 0.004150891096654475;      fall_capacitance: 0.005776428708787616;      capacitance: 0.004963659902721045;    }    pin (Y) {      direction: output;      function: "(B&A)";      function: "(A & B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749",             "0.048098, 0.064059, 0.074620, 0.093597, 0.252448",             "0.087865, 0.098559, 0.108152, 0.125156, 0.300811",             "0.172721, 0.177015, 0.184227, 0.196165, 0.394456",             "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696",             "0.056135, 0.056445, 0.057308, 0.057768, -0.014818",             "0.099933, 0.098214, 0.096071, 0.094474, 0.031563",             "0.189088, 0.185938, 0.181261, 0.173387, 0.117548",             "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792",             "0.080791, 0.094490, 0.092269, 0.111832, 0.588352",             "0.147163, 0.151582, 0.153943, 0.167618, 0.594475",             "0.287657, 0.288087, 0.288559, 0.294676, 0.639075",             "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971",             "0.091168, 0.096623, 0.108594, 0.140442, 0.624323",             "0.176540, 0.177904, 0.183856, 0.205552, 0.674111",             "0.348626, 0.348716, 0.349898, 0.359158, 0.778703",             "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628",             "0.046736, 0.065667, 0.079697, 0.098261, 0.233471",             "0.087052, 0.099648, 0.114524, 0.132001, 0.286132",             "0.172376, 0.177352, 0.192051, 0.206645, 0.390972",             "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337",             "0.058079, 0.058865, 0.060249, 0.060930, 0.021381",             "0.101524, 0.100223, 0.098824, 0.096634, 0.056583",             "0.190472, 0.187661, 0.183754, 0.176080, 0.122194",             "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913",             "0.080000, 0.118312, 0.085490, 0.095978, 0.447397",             "0.146991, 0.152360, 0.150326, 0.156871, 0.457664",             "0.287629, 0.288180, 0.288056, 0.290376, 0.519847",             "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070",             "0.091909, 0.097885, 0.110175, 0.140770, 0.556828",             "0.176533, 0.178340, 0.184385, 0.205074, 0.605254",             "0.348727, 0.348732, 0.349910, 0.357567, 0.705589",             "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"          );        }      }    }  }  cell (AOI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.006296176741869404;      fall_capacitance: 0.006101450811807844;      capacitance: 0.006198813776838624;    }    pin (B) {      direction: input;      rise_capacitance: 0.004150897383251567;      fall_capacitance: 0.005762494885719812;      capacitance: 0.00495669613448569;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935476111367993;      fall_capacitance: 0.007850019508283936;      capacitance: 0.006392747809825965;    }    pin (Y) {      direction: output;      function: "(!C&!B&!A|!C&B&!A|!C&!B&A)";      function: "((A & !B & !C + B & !A & !C + !A & !B & !C))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018081, 0.020447, 0.022456, 0.023296, -0.023076",             "0.095512, 0.095564, 0.097577, 0.105665, 0.139556",             "0.173079, 0.172613, 0.173245, 0.177966, 0.251687",             "0.328092, 0.327325, 0.326934, 0.328569, 0.431362",             "1.568078, 1.567023, 1.565399, 1.562764, 1.593146"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011083, 0.027112, 0.034806, 0.046174, 0.138537",             "0.106126, 0.110980, 0.117817, 0.132662, 0.298423",             "0.200686, 0.203305, 0.207787, 0.219052, 0.408583",             "0.389684, 0.390741, 0.393128, 0.400447, 0.586557",             "1.901409, 1.900881, 1.900582, 1.901419, 1.980303"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017400, 0.024998, 0.038610, 0.061076, 0.316134",             "0.127638, 0.127551, 0.128643, 0.138963, 0.448630",             "0.240290, 0.240260, 0.240283, 0.242298, 0.547010",             "0.465607, 0.465635, 0.465599, 0.465632, 0.673379",             "2.268621, 2.268618, 2.268620, 2.268621, 2.271276"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029014, 0.032057, 0.039965, 0.063854, 0.320917",             "0.155270, 0.155388, 0.155812, 0.163213, 0.464067",             "0.286240, 0.286177, 0.286189, 0.286907, 0.549050",             "0.547857, 0.547835, 0.547859, 0.547862, 0.703410",             "2.640589, 2.640589, 2.640586, 2.640585, 2.640586"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015335, 0.016945, 0.017387, 0.015057, -0.070130",             "0.093269, 0.093163, 0.094810, 0.101980, 0.105211",             "0.170827, 0.170332, 0.170780, 0.174845, 0.222749",             "0.325869, 0.325151, 0.324630, 0.325908, 0.409344",             "1.565863, 1.564927, 1.563288, 1.560589, 1.585799"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013287, 0.024590, 0.032135, 0.044683, 0.169986",             "0.106631, 0.105383, 0.107181, 0.118863, 0.301183",             "0.201084, 0.196904, 0.194332, 0.196987, 0.392495",             "0.390038, 0.383879, 0.377817, 0.371491, 0.543659",             "1.901742, 1.893615, 1.883483, 1.864976, 1.785407"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013635, 0.021335, 0.036352, 0.066782, 0.514064",             "0.122731, 0.122740, 0.123665, 0.133972, 0.500371",             "0.235316, 0.235334, 0.235297, 0.237378, 0.556421",             "0.460654, 0.460640, 0.460666, 0.460646, 0.664867",             "2.263652, 2.263652, 2.263651, 2.263650, 2.266535"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029990, 0.038199, 0.056237, 0.095398, 0.544902",             "0.155321, 0.155296, 0.158206, 0.179362, 0.704360",             "0.286222, 0.286226, 0.286240, 0.291364, 0.780438",             "0.547837, 0.547857, 0.547852, 0.547862, 0.901566",             "2.640589, 2.640588, 2.640588, 2.640589, 2.647331"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012884, 0.013824, 0.016369, 0.019083, 0.025408",             "0.085533, 0.079788, 0.082111, 0.094024, 0.172908",             "0.157410, 0.149628, 0.148170, 0.154670, 0.271254",             "0.300946, 0.291744, 0.286795, 0.285855, 0.427654",             "1.448498, 1.437802, 1.428280, 1.413900, 1.417542"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005708, 0.008623, 0.010235, 0.012288, 0.017616",             "0.047043, 0.047780, 0.052874, 0.064024, 0.113032",             "0.091536, 0.089929, 0.090900, 0.100815, 0.179742",             "0.181015, 0.178070, 0.175614, 0.176901, 0.288000",             "0.897237, 0.893242, 0.888241, 0.878918, 0.902547"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012755, 0.024831, 0.044968, 0.093110, 0.730524",             "0.115219, 0.115342, 0.119381, 0.140592, 0.704120",             "0.219879, 0.219898, 0.220189, 0.229051, 0.695466",             "0.429271, 0.429272, 0.429268, 0.429957, 0.760003",             "2.104581, 2.104581, 2.104580, 2.104582, 2.138119"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013144, 0.039574, 0.064113, 0.105179, 0.740810",             "0.092532, 0.098951, 0.115649, 0.159781, 0.811024",             "0.178514, 0.180443, 0.190086, 0.223562, 0.880935",             "0.350931, 0.351086, 0.353728, 0.372580, 0.983884",             "1.729228, 1.729222, 1.729222, 1.729215, 1.983340"          );        }      }    }  }  cell (AOI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (D) {      direction: input;      rise_capacitance: 0.004150836637055694;      fall_capacitance: 4.293461827055451e-05;      capacitance: 0.0020968856276631243;    }    pin (C) {      direction: input;      rise_capacitance: 0.004935392181405116;      fall_capacitance: 0.004717183954380674;      capacitance: 0.004826288067892895;    }    pin (B) {      direction: input;      rise_capacitance: 0.004150898468773608;      fall_capacitance: 0.005752203124409789;      capacitance: 0.004951550796591699;    }    pin (A) {      direction: input;      rise_capacitance: 0.00493547941452175;      fall_capacitance: 0.007832228421315403;      capacitance: 0.006383853917918576;    }    pin (Y) {      direction: output;      function: "!(D&C&!B&!A|D&C&B&!A|!D&!C&B&A|D&!C&B&A|D&C&B&A|!D&C&B&A|D&C&!B&A)";      function: "(!(A & B & C & D + A & B & C & !D + A & B & D & !C + A & C & D & !B + B & C & D & !A + A & B & !C & !D + C & D & !A & !B))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022453, 0.024534, 0.027322, 0.029301, -0.013605",             "0.094099, 0.094146, 0.096422, 0.104923, 0.133468",             "0.165999, 0.165576, 0.166553, 0.171933, 0.239819",             "0.309709, 0.308987, 0.308926, 0.311303, 0.412228",             "1.459135, 1.458114, 1.456788, 1.454769, 1.495149"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010762, 0.031215, 0.042613, 0.056720, 0.163173",             "0.106795, 0.114659, 0.123175, 0.139761, 0.315494",             "0.201577, 0.206563, 0.212378, 0.225460, 0.423829",             "0.390704, 0.393586, 0.396927, 0.405778, 0.599884",             "1.902537, 1.903178, 1.903203, 1.904622, 1.991405"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023524, 0.029914, 0.043867, 0.071865, 0.348115",             "0.124790, 0.124832, 0.126119, 0.138292, 0.474155",             "0.228743, 0.228744, 0.228751, 0.231812, 0.561135",             "0.436738, 0.436734, 0.436738, 0.436740, 0.675654",             "2.100895, 2.100896, 2.100897, 2.100896, 2.108562"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034663, 0.063510, 0.047967, 0.068994, 0.335936",             "0.166389, 0.166412, 0.166844, 0.173304, 0.460327",             "0.297251, 0.297251, 0.297255, 0.297868, 0.539773",             "0.558920, 0.558909, 0.558922, 0.558921, 0.702122",             "2.651676, 2.651678, 2.651676, 2.651675, 2.651676"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019651, 0.021446, 0.022931, 0.021898, -0.058654",             "0.091977, 0.091918, 0.093938, 0.101438, 0.098787",             "0.163917, 0.163487, 0.164267, 0.169031, 0.210590",             "0.307654, 0.306986, 0.306812, 0.308826, 0.390145",             "1.457089, 1.456195, 1.454848, 1.452765, 1.487992"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013313, 0.029492, 0.038920, 0.053701, 0.189828",             "0.107559, 0.109470, 0.112797, 0.125324, 0.314605",             "0.202143, 0.200386, 0.199276, 0.203456, 0.404946",             "0.391163, 0.386838, 0.381869, 0.377141, 0.555274",             "1.902923, 1.895945, 1.886158, 1.868337, 1.797664"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019077, 0.026325, 0.041095, 0.072960, 0.515154",             "0.120223, 0.120250, 0.121709, 0.133832, 0.515903",             "0.224169, 0.224172, 0.224205, 0.227354, 0.569826",             "0.432139, 0.432141, 0.432149, 0.432153, 0.667848",             "2.096306, 2.096306, 2.096306, 2.096307, 2.104382"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.036269, 0.063193, 0.062392, 0.098967, 0.551553",             "0.166373, 0.166389, 0.169112, 0.187994, 0.688610",             "0.297276, 0.297267, 0.297275, 0.302013, 0.760566",             "0.558916, 0.558919, 0.558917, 0.558918, 0.890221",             "2.651678, 2.651678, 2.651674, 2.651677, 2.657773"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020200, 0.018794, 0.020910, 0.023798, 0.017569",             "0.092119, 0.084321, 0.084972, 0.095024, 0.157181",             "0.163930, 0.154431, 0.151294, 0.155481, 0.252498",             "0.307422, 0.296784, 0.290296, 0.286804, 0.407284",             "1.454937, 1.443187, 1.432682, 1.416494, 1.394586"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010498, 0.021541, 0.028604, 0.036531, 0.082739",             "0.101264, 0.104773, 0.111902, 0.126711, 0.261658",             "0.195526, 0.196677, 0.201528, 0.213170, 0.380207",             "0.384366, 0.383767, 0.386473, 0.394329, 0.568488",             "1.895957, 1.893533, 1.893309, 1.894383, 1.975065"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020633, 0.030682, 0.050793, 0.085135, 0.465687",             "0.123409, 0.123499, 0.127912, 0.152623, 0.625796",             "0.228067, 0.228069, 0.228437, 0.238660, 0.715340",             "0.437443, 0.437449, 0.437446, 0.438286, 0.825117",             "2.112769, 2.112769, 2.112771, 2.112769, 2.154781"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021627, 0.033850, 0.033202, 0.057903, 0.432542",             "0.146054, 0.146118, 0.146677, 0.153711, 0.456404",             "0.276800, 0.276784, 0.276786, 0.277558, 0.525056",             "0.538347, 0.538333, 0.538346, 0.538344, 0.682865",             "2.630986, 2.630987, 2.630989, 2.630987, 2.630987"          );        }      }      timing () {        related_pin: "D";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016935, 0.015243, 0.015695, 0.014740, -0.033455",             "0.089882, 0.081949, 0.082234, 0.090924, 0.115190",             "0.161756, 0.152189, 0.148795, 0.152107, 0.216277",             "0.305276, 0.294641, 0.288008, 0.283956, 0.379732",             "1.452819, 1.441160, 1.430652, 1.414354, 1.384946"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011131, 0.019163, 0.024855, 0.033370, 0.110590",             "0.101703, 0.099111, 0.101250, 0.112517, 0.253820",             "0.195929, 0.190278, 0.188100, 0.190853, 0.353274",             "0.384754, 0.376936, 0.371227, 0.365324, 0.516649",             "1.896340, 1.886290, 1.876220, 1.858031, 1.777651"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016198, 0.026696, 0.047157, 0.087412, 0.629442",             "0.118843, 0.118871, 0.123371, 0.147773, 0.655892",             "0.223461, 0.223424, 0.223842, 0.234191, 0.716081",             "0.432839, 0.432831, 0.432841, 0.433715, 0.813736",             "2.108153, 2.108150, 2.108150, 2.108152, 2.151140"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019318, 0.037477, 0.046391, 0.085342, 0.625357",             "0.146062, 0.146061, 0.148782, 0.168097, 0.675212",             "0.276795, 0.276788, 0.276812, 0.281783, 0.738328",             "0.538338, 0.538332, 0.538332, 0.538345, 0.865002",             "2.630987, 2.630990, 2.630986, 2.630986, 2.638001"          );        }      }    }  }  cell (BUFX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006189356217773286;      fall_capacitance: 0.008913012740210141;      capacitance: 0.007551184478991714;    }    pin (Y) {      direction: output;      function: "!(!A)";      function: "(A)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003161, 0.018284, 0.022862, 0.029597, 0.082449",             "0.045168, 0.050118, 0.057399, 0.071712, 0.153721",             "0.086116, 0.085817, 0.089463, 0.102695, 0.199215",             "0.172383, 0.166439, 0.164531, 0.169815, 0.284515",             "0.876891, 0.864252, 0.852323, 0.833869, 0.853010"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014482, 0.018379, 0.020768, 0.022068, -0.009140",             "0.054683, 0.055959, 0.059876, 0.069706, 0.071632",             "0.098664, 0.097948, 0.098411, 0.105829, 0.136458",             "0.187943, 0.185797, 0.183424, 0.183072, 0.249186",             "0.903989, 0.900540, 0.895789, 0.885878, 0.887209"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021141, 0.053490, 0.059672, 0.113073, 0.840389",             "0.077202, 0.091911, 0.106094, 0.141454, 0.832516",             "0.145621, 0.149491, 0.160179, 0.190218, 0.830936",             "0.287250, 0.287270, 0.289142, 0.305563, 0.867895",             "1.420515, 1.420519, 1.420516, 1.420515, 1.614647"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015821, 0.031534, 0.054604, 0.109725, 0.838134",             "0.090618, 0.095897, 0.108850, 0.147026, 0.841931",             "0.176061, 0.177617, 0.184255, 0.210648, 0.851578",             "0.348673, 0.348740, 0.350198, 0.363180, 0.905512",             "1.726970, 1.726967, 1.726971, 1.726970, 1.912266"          );        }      }    }  }  cell (BUFX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1625609.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(!A)";    }  }  cell (CLKBUF1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1746608.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(!A)";    }  }  cell (HAX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 2122570.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (YS) {      direction: output;      function: "!(!B&!A|B&A)";    }    pin (YC) {      direction: output;      function: "(B&A)";    }  }  cell (INV) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1592644.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.012376891490235522;      fall_capacitance: 0.014525173100391225;      capacitance: 0.013451032295313373;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004836, 0.003911, 0.003113, -0.000947, -0.066781",             "0.023782, 0.025438, 0.029154, 0.032024, -0.003570",             "0.045059, 0.042825, 0.047513, 0.054773, 0.040967",             "0.088711, 0.082075, 0.082140, 0.091166, 0.111791",             "0.441430, 0.429084, 0.416141, 0.399464, 0.483388"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005423, 0.008343, 0.012279, 0.018588, 0.089288",             "0.025056, 0.028778, 0.035903, 0.047954, 0.142358",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.449471, 0.445891, 0.441675, 0.435947, 0.579373"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007775, 0.029000, 0.057625, 0.115801, 0.870234",             "0.039447, 0.049978, 0.071107, 0.121251, 0.867453",             "0.074397, 0.079871, 0.096343, 0.138754, 0.864852",             "0.145174, 0.146264, 0.155787, 0.188826, 0.863750",             "0.711874, 0.711865, 0.711868, 0.712356, 1.131446"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008278, 0.030236, 0.056581, 0.115515, 0.870125",             "0.047212, 0.057977, 0.079852, 0.130476, 0.873241",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.865308, 0.865247, 0.865250, 0.866773, 1.291412"          );        }      }    }  }  cell (INVX8) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1592644.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(A)";    }  }  cell (MUX2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 329184.0;    cell_leakage_power: 0.1173;    pin (S) {      direction: input;      rise_capacitance: 0.010338610799344835;      fall_capacitance: 0.008212780453515003;      capacitance: 0.009275695626429919;    }    pin (B) {      direction: input;      rise_capacitance: 0.006397490498320098;      fall_capacitance: 0.008895353965965845;      capacitance: 0.007646422232142972;    }    pin (A) {      direction: input;      rise_capacitance: 0.004937389414015676;      fall_capacitance: 0.007864001795670731;      capacitance: 0.006400695604843204;    }    pin (Y) {      direction: output;      function: "!(!S&B&!A|!S&B&A|S&B&A|S&!B&A)";      function: "(!(A & B & S + A & B & !S + A & S & !B + B & !A & !S))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019428, 0.021747, 0.023821, 0.024885, -0.020070",             "0.096776, 0.096705, 0.098699, 0.106638, 0.141139",             "0.174325, 0.173758, 0.174373, 0.179031, 0.252974",             "0.329331, 0.328462, 0.328043, 0.329638, 0.432416",             "1.569307, 1.568155, 1.566435, 1.563733, 1.594086"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015958, 0.027807, 0.035343, 0.047135, 0.140744",             "0.109318, 0.113175, 0.119175, 0.133278, 0.299017",             "0.203682, 0.205651, 0.209577, 0.220207, 0.408863",             "0.392584, 0.393181, 0.395219, 0.402088, 0.586689",             "1.904228, 1.903421, 1.903075, 1.903731, 1.981518"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020411, 0.026763, 0.039961, 0.063425, 0.317670",             "0.130948, 0.130915, 0.131768, 0.141947, 0.451197",             "0.243567, 0.243583, 0.243517, 0.245528, 0.549507",             "0.468902, 0.468912, 0.468912, 0.468919, 0.675777",             "2.271917, 2.271914, 2.271917, 2.271916, 2.274560"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034547, 0.032700, 0.040748, 0.064546, 0.323227",             "0.155499, 0.155537, 0.155799, 0.162945, 0.464800",             "0.286354, 0.286330, 0.286313, 0.286918, 0.548668",             "0.547917, 0.547919, 0.547900, 0.547926, 0.702513",             "2.640604, 2.640603, 2.640602, 2.640603, 2.640599"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012479, 0.020519, 0.023592, 0.024838, -0.020037",             "0.088439, 0.091403, 0.095223, 0.104973, 0.140988",             "0.165879, 0.167485, 0.169565, 0.175932, 0.252738",             "0.320839, 0.321506, 0.322081, 0.325051, 0.431811",             "1.560766, 1.560490, 1.559111, 1.556910, 1.590657"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023985, 0.029348, 0.035865, 0.047430, 0.140831",             "0.115535, 0.117784, 0.122066, 0.134594, 0.299174",             "0.209718, 0.210748, 0.213291, 0.222435, 0.409049",             "0.398509, 0.398634, 0.399621, 0.405195, 0.587049",             "1.910075, 1.909263, 1.908276, 1.908150, 1.983766"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021856, 0.028909, 0.040295, 0.063869, 0.317858",             "0.130661, 0.130662, 0.132045, 0.142857, 0.451367",             "0.243245, 0.243252, 0.243275, 0.245652, 0.549740",             "0.468595, 0.468585, 0.468603, 0.468582, 0.676414",             "2.271590, 2.271590, 2.271589, 2.271591, 2.274367"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026595, 0.030491, 0.040269, 0.064145, 0.322768",             "0.155850, 0.155839, 0.155924, 0.162605, 0.464668",             "0.286633, 0.286644, 0.286657, 0.287110, 0.548624",             "0.548248, 0.548238, 0.548248, 0.548232, 0.702345",             "2.641009, 2.640987, 2.640985, 2.640985, 2.640985"          );        }      }      timing () {        related_pin: "S";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015477, 0.019632, 0.023785, 0.028539, 0.047003",             "0.089791, 0.086977, 0.089938, 0.101079, 0.177000",             "0.166627, 0.161655, 0.161408, 0.167180, 0.272033",             "0.321166, 0.314571, 0.311301, 0.310607, 0.436604",             "1.560695, 1.552272, 1.545023, 1.533295, 1.520465"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009379, 0.017143, 0.022831, 0.029415, 0.049506",             "0.098224, 0.096461, 0.098086, 0.107381, 0.189678",             "0.191790, 0.187334, 0.185018, 0.186251, 0.294384",             "0.380119, 0.373656, 0.367998, 0.361115, 0.471759",             "1.891175, 1.882501, 1.872694, 1.854265, 1.753057"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025135, 0.032734, 0.048051, 0.084704, 0.566326",             "0.130733, 0.130708, 0.132826, 0.150233, 0.602446",             "0.243422, 0.243393, 0.243371, 0.247979, 0.662237",             "0.468752, 0.468761, 0.468758, 0.468739, 0.756824",             "2.271751, 2.271754, 2.271754, 2.271752, 2.282476"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022469, 0.035382, 0.052960, 0.089711, 0.571861",             "0.155713, 0.155428, 0.156540, 0.173483, 0.639442",             "0.286482, 0.286497, 0.286481, 0.290082, 0.712770",             "0.548075, 0.548076, 0.548073, 0.548087, 0.844708",             "2.640769, 2.640767, 2.640766, 2.640768, 2.646447"          );        }      }    }  }  cell (NAND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1592644.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004150889506161318;      fall_capacitance: 0.0057806089303857715;      capacitance: 0.004965749218273544;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935475394936947;      fall_capacitance: 0.007870695939137575;      capacitance: 0.0064030856670372616;    }    pin (Y) {      direction: output;      function: "!(B&A)";      function: "(!A & B)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007196, 0.007595, 0.006535, 0.002335, -0.081701",             "0.048131, 0.045109, 0.049226, 0.055554, 0.023149",             "0.091843, 0.084555, 0.083952, 0.092035, 0.093853",             "0.179911, 0.169368, 0.162474, 0.161292, 0.207503",             "0.885821, 0.872458, 0.856675, 0.829540, 0.814241"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015633, 0.021476, 0.028398, 0.039896, 0.146774",             "0.107818, 0.110541, 0.116624, 0.131991, 0.322868",             "0.202142, 0.203338, 0.207611, 0.219924, 0.436789",             "0.391020, 0.391118, 0.393477, 0.402003, 0.616285",             "1.902651, 1.901546, 1.901261, 1.902664, 2.012825"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012945, 0.032109, 0.051696, 0.088446, 0.524049",             "0.079676, 0.085046, 0.101926, 0.145349, 0.674950",             "0.150526, 0.151440, 0.161506, 0.195645, 0.761149",             "0.292156, 0.292210, 0.293910, 0.314078, 0.887525",             "1.425456, 1.425453, 1.425463, 1.425463, 1.693531"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013964, 0.019082, 0.028092, 0.057082, 0.488461",             "0.142119, 0.142058, 0.142068, 0.146714, 0.440570",             "0.272785, 0.272844, 0.272830, 0.273049, 0.465710",             "0.534379, 0.534395, 0.534370, 0.534368, 0.637728",             "2.627044, 2.627042, 2.627042, 2.627043, 2.627043"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005849, 0.004862, 0.001953, -0.005765, -0.126919",             "0.046431, 0.043395, 0.046993, 0.051015, -0.016988",             "0.090143, 0.082837, 0.081976, 0.088941, 0.057037",             "0.178220, 0.167700, 0.160608, 0.158752, 0.176347",             "0.884156, 0.870837, 0.855034, 0.827713, 0.802365"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013792, 0.018689, 0.025506, 0.038065, 0.175360",             "0.107725, 0.103637, 0.104869, 0.117440, 0.315940",             "0.202285, 0.196217, 0.193422, 0.197331, 0.412055",             "0.391293, 0.383864, 0.377831, 0.373134, 0.567831",             "1.903042, 1.894202, 1.884122, 1.866559, 1.824766"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009695, 0.029176, 0.049614, 0.090169, 0.630637",             "0.076701, 0.082090, 0.098427, 0.140823, 0.690595",             "0.147420, 0.148384, 0.158014, 0.191352, 0.764094",             "0.289054, 0.289045, 0.290759, 0.310455, 0.877521",             "1.422334, 1.422325, 1.422328, 1.422326, 1.682986"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014142, 0.022429, 0.038545, 0.077748, 0.619421",             "0.142113, 0.142115, 0.143140, 0.157535, 0.605736",             "0.272824, 0.272791, 0.272803, 0.275498, 0.636002",             "0.534396, 0.534363, 0.534379, 0.534395, 0.781620",             "2.627039, 2.627044, 2.627041, 2.627039, 2.630177"          );        }      }    }  }  cell (NAND3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1592644.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.004149650005143659;      fall_capacitance: 0.005781505198438881;      capacitance: 0.00496557760179127;    }    pin (B) {      direction: input;      rise_capacitance: 0.004830629997798454;      fall_capacitance: 0.0065460190151835455;      capacitance: 0.005688324506490999;    }    pin (A) {      direction: input;      rise_capacitance: 0.0049353598856550955;      fall_capacitance: 0.007870869195042688;      capacitance: 0.006403114540348892;    }    pin (Y) {      direction: output;      function: "!(C&B&A)";      function: "(!A & B & C)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008972, 0.009457, 0.008503, 0.002962, -0.100701",             "0.051333, 0.047529, 0.050994, 0.056259, 0.000383",             "0.095086, 0.087278, 0.086059, 0.093123, 0.071594",             "0.183200, 0.172294, 0.164894, 0.162676, 0.188303",             "0.889127, 0.875625, 0.859595, 0.831781, 0.805945"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020769, 0.029603, 0.037436, 0.051718, 0.185550",             "0.137563, 0.140846, 0.146094, 0.159442, 0.367674",             "0.257454, 0.258396, 0.261172, 0.270635, 0.491854",             "0.497675, 0.496765, 0.496908, 0.501401, 0.695984",             "2.420799, 2.417810, 2.414180, 2.409069, 2.461911"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017292, 0.035367, 0.056139, 0.094266, 0.548119",             "0.084992, 0.090373, 0.107178, 0.150243, 0.683940",             "0.155780, 0.156840, 0.166974, 0.201316, 0.764246",             "0.297431, 0.297423, 0.299270, 0.320137, 0.888634",             "1.430747, 1.430744, 1.430744, 1.430744, 1.704785"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023922, 0.025750, 0.032068, 0.055931, 0.495161",             "0.188089, 0.188153, 0.188154, 0.189888, 0.453757",             "0.355339, 0.355334, 0.355344, 0.355344, 0.505262",             "0.689777, 0.689789, 0.689794, 0.689787, 0.761388",             "3.365704, 3.365704, 3.365703, 3.365700, 3.365703"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008334, 0.007999, 0.005426, -0.001872, -0.134533",             "0.049592, 0.045886, 0.049021, 0.052517, -0.029801",             "0.093307, 0.085588, 0.084148, 0.090357, 0.043619",             "0.181419, 0.170558, 0.163034, 0.160347, 0.164016",             "0.887312, 0.873890, 0.857871, 0.829951, 0.796345"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023592, 0.029466, 0.038594, 0.055239, 0.219385",             "0.141155, 0.143057, 0.148603, 0.163867, 0.404481",             "0.261171, 0.261449, 0.264802, 0.276119, 0.527468",             "0.501476, 0.500497, 0.501691, 0.508419, 0.732132",             "2.424678, 2.422318, 2.420551, 2.419097, 2.507900"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014708, 0.032973, 0.052387, 0.088064, 0.507153",             "0.081875, 0.087345, 0.103349, 0.145759, 0.652137",             "0.152726, 0.153620, 0.163460, 0.196949, 0.738027",             "0.294293, 0.294378, 0.296116, 0.316174, 0.868979",             "1.427621, 1.427628, 1.427634, 1.427631, 1.694351"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023614, 0.026398, 0.032949, 0.053238, 0.454307",             "0.188147, 0.188117, 0.188099, 0.189875, 0.415502",             "0.355311, 0.355293, 0.355317, 0.355295, 0.485465",             "0.689798, 0.689798, 0.689789, 0.689787, 0.751303",             "3.365699, 3.365700, 3.365702, 3.365700, 3.365698"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.006743, 0.005507, 0.001409, -0.008755, -0.170135",             "0.047762, 0.044106, 0.046936, 0.048789, -0.060209",             "0.091478, 0.083801, 0.082253, 0.087681, 0.016317",             "0.179569, 0.168817, 0.161183, 0.158074, 0.141274",             "0.885505, 0.872150, 0.856133, 0.828109, 0.787687"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021221, 0.026912, 0.036046, 0.053704, 0.240197",             "0.140988, 0.137908, 0.140081, 0.153521, 0.407328",             "0.261329, 0.256442, 0.255023, 0.261001, 0.520047",             "0.501821, 0.495706, 0.491228, 0.489434, 0.706541",             "2.425190, 2.417843, 2.409583, 2.395522, 2.391247"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011465, 0.029918, 0.048625, 0.083915, 0.522973",             "0.078783, 0.083779, 0.099962, 0.141527, 0.642500",             "0.149540, 0.150478, 0.160020, 0.192902, 0.728158",             "0.291212, 0.291252, 0.292980, 0.312574, 0.856649",             "1.424500, 1.424495, 1.424506, 1.424500, 1.685213"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023566, 0.027391, 0.036715, 0.061844, 0.502475",             "0.188148, 0.188141, 0.188149, 0.192359, 0.487219",             "0.355298, 0.355308, 0.355319, 0.355322, 0.560090",             "0.689793, 0.689798, 0.689798, 0.689793, 0.809696",             "3.365702, 3.365700, 3.365703, 3.365699, 3.365703"          );        }      }    }  }  cell (NOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006307384837439927;      fall_capacitance: 0.006306324454300684;      capacitance: 0.006306854645870306;    }    pin (A) {      direction: input;      rise_capacitance: 0.006299781364172542;      fall_capacitance: 0.00890124516010798;      capacitance: 0.0076005132621402615;    }    pin (Y) {      direction: output;      function: "(!B&!A)";      function: "(!A & !B)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012986, 0.016464, 0.018922, 0.020204, -0.010487",             "0.090855, 0.091382, 0.094616, 0.104989, 0.165835",             "0.168403, 0.168290, 0.169983, 0.177071, 0.280870",             "0.323463, 0.322901, 0.323243, 0.327021, 0.459948",             "1.563457, 1.562468, 1.561029, 1.559260, 1.617628"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008571, 0.012834, 0.016940, 0.022901, 0.073370",             "0.050719, 0.051182, 0.056436, 0.070039, 0.161587",             "0.095157, 0.093369, 0.094430, 0.105159, 0.223878",             "0.184573, 0.181502, 0.179079, 0.180864, 0.324736",             "0.900731, 0.896739, 0.891685, 0.882327, 0.915214"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011911, 0.020251, 0.035631, 0.075894, 0.632098",             "0.122227, 0.122198, 0.122986, 0.131826, 0.572943",             "0.234847, 0.234841, 0.234770, 0.236394, 0.551555",             "0.460142, 0.460167, 0.460168, 0.460147, 0.626352",             "2.263162, 2.263157, 2.263162, 2.263162, 2.264768"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019230, 0.038878, 0.062210, 0.109873, 0.677222",             "0.098886, 0.105335, 0.122576, 0.168308, 0.823551",             "0.184754, 0.186734, 0.196898, 0.231670, 0.903883",             "0.357145, 0.357371, 0.360113, 0.379939, 1.013582",             "1.735540, 1.735518, 1.735519, 1.735512, 2.002056"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011806, 0.014164, 0.016660, 0.020318, 0.038325",             "0.090368, 0.085510, 0.088212, 0.100612, 0.196917",             "0.168063, 0.161173, 0.160440, 0.166991, 0.301135",             "0.323155, 0.314877, 0.310973, 0.310624, 0.465942",             "1.563209, 1.553438, 1.545230, 1.532397, 1.541763"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005936, 0.007167, 0.008315, 0.008939, 0.000169",             "0.046963, 0.047411, 0.052229, 0.062557, 0.098027",             "0.091434, 0.089675, 0.090367, 0.099822, 0.165924",             "0.180891, 0.177906, 0.175243, 0.176092, 0.276079",             "0.897089, 0.893154, 0.888102, 0.878617, 0.897368"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011999, 0.022468, 0.042650, 0.089129, 0.702921",             "0.122129, 0.122235, 0.124548, 0.142036, 0.672456",             "0.234809, 0.234839, 0.234788, 0.239948, 0.663642",             "0.460173, 0.460149, 0.460147, 0.460142, 0.740712",             "2.263154, 2.263159, 2.263157, 2.263162, 2.274281"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011676, 0.031135, 0.054847, 0.101688, 0.713699",             "0.091257, 0.097211, 0.113947, 0.158466, 0.799171",             "0.177241, 0.178967, 0.188549, 0.222057, 0.874832",             "0.349616, 0.349773, 0.352334, 0.371118, 0.982630",             "1.727951, 1.727928, 1.727929, 1.727925, 1.982101"          );        }      }    }  }  cell (NOR3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1956387.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "(!C&!B&!A)";    }  }  cell (OAI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(C&B&!A|C&B&A|C&!B&A)";    }  }  cell (OAI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1867491.0;    cell_leakage_power: 0.1173;    pin (D) {      direction: input;    }    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "(!D&!C&!B&!A|D&!C&!B&!A|D&C&!B&!A|!D&C&!B&!A|!D&!C&B&!A|!D&!C&B&A|!D&!C&!B&A)";    }  }  cell (OR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1619236.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006299305363616857;      fall_capacitance: 0.008885220124112183;      capacitance: 0.007592262743864521;    }    pin (A) {      direction: input;      rise_capacitance: 0.006309610190379141;      fall_capacitance: 0.00630283867340493;      capacitance: 0.006306224431892035;    }    pin (Y) {      direction: output;      function: "!(!B&!A)";      function: "(!!A & !B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410",             "0.041854, 0.043329, 0.051603, 0.059323, 0.062560",             "0.084916, 0.078410, 0.082038, 0.088448, 0.103720",             "0.172611, 0.158216, 0.154751, 0.153103, 0.172991",             "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228",             "0.069115, 0.070143, 0.075842, 0.091793, 0.184877",             "0.111955, 0.111797, 0.115439, 0.127845, 0.254311",             "0.200493, 0.199357, 0.201189, 0.207941, 0.374505",             "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675",             "0.075475, 0.097421, 0.130787, 0.191718, 0.688979",             "0.145593, 0.155613, 0.179062, 0.217295, 0.718675",             "0.287207, 0.287428, 0.292736, 0.315169, 0.792432",             "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641",             "0.093953, 0.096473, 0.103565, 0.127433, 0.668426",             "0.177647, 0.178545, 0.181992, 0.198197, 0.680919",             "0.349306, 0.349321, 0.350007, 0.357523, 0.740411",             "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827",             "0.042995, 0.049240, 0.058421, 0.069922, 0.132870",             "0.085418, 0.083324, 0.088199, 0.097150, 0.172762",             "0.172559, 0.161472, 0.159668, 0.160671, 0.230240",             "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818",             "0.070126, 0.072893, 0.078115, 0.092691, 0.135288",             "0.112911, 0.114897, 0.118672, 0.129875, 0.209498",             "0.201393, 0.202758, 0.205335, 0.211918, 0.341264",             "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235",             "0.076858, 0.103458, 0.137895, 0.200949, 0.702148",             "0.145825, 0.159732, 0.185528, 0.227910, 0.724008",             "0.287314, 0.288184, 0.294861, 0.320599, 0.788394",             "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658",             "0.094505, 0.095669, 0.100243, 0.118924, 0.616317",             "0.177929, 0.178313, 0.180338, 0.192868, 0.629773",             "0.349160, 0.349206, 0.349675, 0.355201, 0.694984",             "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"          );        }      }    }  }  cell (OR2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006299305363616857;      fall_capacitance: 0.008885220124112183;      capacitance: 0.007592262743864521;    }    pin (A) {      direction: input;      rise_capacitance: 0.006309610190379141;      fall_capacitance: 0.00630283867340493;      capacitance: 0.006306224431892035;    }    pin (Y) {      direction: output;      function: "!(!B&!A)";      function: "(!!A & !B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410",             "0.041854, 0.043329, 0.051603, 0.059323, 0.062560",             "0.084916, 0.078410, 0.082038, 0.088448, 0.103720",             "0.172611, 0.158216, 0.154751, 0.153103, 0.172991",             "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228",             "0.069115, 0.070143, 0.075842, 0.091793, 0.184877",             "0.111955, 0.111797, 0.115439, 0.127845, 0.254311",             "0.200493, 0.199357, 0.201189, 0.207941, 0.374505",             "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675",             "0.075475, 0.097421, 0.130787, 0.191718, 0.688979",             "0.145593, 0.155613, 0.179062, 0.217295, 0.718675",             "0.287207, 0.287428, 0.292736, 0.315169, 0.792432",             "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641",             "0.093953, 0.096473, 0.103565, 0.127433, 0.668426",             "0.177647, 0.178545, 0.181992, 0.198197, 0.680919",             "0.349306, 0.349321, 0.350007, 0.357523, 0.740411",             "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827",             "0.042995, 0.049240, 0.058421, 0.069922, 0.132870",             "0.085418, 0.083324, 0.088199, 0.097150, 0.172762",             "0.172559, 0.161472, 0.159668, 0.160671, 0.230240",             "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818",             "0.070126, 0.072893, 0.078115, 0.092691, 0.135288",             "0.112911, 0.114897, 0.118672, 0.129875, 0.209498",             "0.201393, 0.202758, 0.205335, 0.211918, 0.341264",             "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235",             "0.076858, 0.103458, 0.137895, 0.200949, 0.702148",             "0.145825, 0.159732, 0.185528, 0.227910, 0.724008",             "0.287314, 0.288184, 0.294861, 0.320599, 0.788394",             "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658",             "0.094505, 0.095669, 0.100243, 0.118924, 0.616317",             "0.177929, 0.178313, 0.180338, 0.192868, 0.629773",             "0.349160, 0.349206, 0.349675, 0.355201, 0.694984",             "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"          );        }      }    }  }  cell (XNOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1592644.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.01258592702529086;      fall_capacitance: 0.01450190121076146;      capacitance: 0.01354391411802616;    }    pin (A) {      direction: input;      rise_capacitance: 0.012735641153553287;      fall_capacitance: 0.011631625278500075;      capacitance: 0.012183633216026682;    }    pin (Y) {      direction: output;      function: "!(B&!A|!B&A)";      function: "(!(A & !B + B & !A))";      timing () {        related_pin: "A";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013989, 0.018024, 0.023608, 0.028544, 0.046990",             "0.086886, 0.083890, 0.087944, 0.100115, 0.176994",             "0.163666, 0.158058, 0.158583, 0.165414, 0.272018",             "0.318190, 0.310552, 0.307716, 0.307846, 0.436394",             "1.557671, 1.547810, 1.540413, 1.528732, 1.518482"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013397, 0.018391, 0.023707, 0.029700, 0.049560",             "0.104554, 0.099267, 0.099516, 0.107893, 0.189692",             "0.198104, 0.190587, 0.187032, 0.187249, 0.294404",             "0.386428, 0.377203, 0.370471, 0.362665, 0.471845",             "1.897500, 1.886363, 1.875729, 1.856653, 1.754002"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023920, 0.038475, 0.061455, 0.084755, 0.566336",             "0.130811, 0.130539, 0.133792, 0.151736, 0.602473",             "0.243429, 0.243459, 0.243317, 0.248917, 0.662479",             "0.468797, 0.468798, 0.468793, 0.468774, 0.757658",             "2.271785, 2.271788, 2.271788, 2.271786, 2.282952"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025980, 0.034386, 0.051179, 0.088206, 0.570375",             "0.155775, 0.156006, 0.156492, 0.172986, 0.639449",             "0.286528, 0.286545, 0.286577, 0.289826, 0.712632",             "0.548141, 0.548132, 0.548123, 0.548137, 0.844311",             "2.640825, 2.640828, 2.640826, 2.640825, 2.646410"          );        }      }      timing () {        related_pin: "B";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016690, 0.026445, 0.031880, 0.037261, 0.048616",             "0.091051, 0.095514, 0.100621, 0.112158, 0.182377",             "0.168213, 0.171079, 0.174250, 0.182514, 0.282866",             "0.322976, 0.324677, 0.326168, 0.330961, 0.454972",             "1.562706, 1.563167, 1.562488, 1.561803, 1.609286"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026885, 0.032811, 0.038875, 0.047403, 0.087933",             "0.117282, 0.120145, 0.124314, 0.135271, 0.246516",             "0.211168, 0.212784, 0.215279, 0.223230, 0.363714",             "0.399743, 0.400411, 0.401407, 0.406048, 0.555385",             "1.911052, 1.910726, 1.909802, 1.909023, 1.963658"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024789, 0.028839, 0.037807, 0.058878, 0.265656",             "0.130769, 0.130753, 0.131666, 0.140183, 0.394222",             "0.243431, 0.243415, 0.243392, 0.244961, 0.496125",             "0.468744, 0.468748, 0.468759, 0.468730, 0.635129",             "2.271767, 2.271764, 2.271765, 2.271763, 2.273192"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028716, 0.030099, 0.037985, 0.059222, 0.254230",             "0.155712, 0.155759, 0.155806, 0.162226, 0.429522",             "0.286550, 0.286491, 0.286518, 0.286872, 0.538319",             "0.548133, 0.548105, 0.548127, 0.548107, 0.702960",             "2.640815, 2.640815, 2.640812, 2.640812, 2.640812"          );        }      }    }  }  cell (XOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1928336.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(!B&!A|B&A)";    }  }}
\ No newline at end of file
+library (ls05_stdcells) {  delay_model: table_lookup;  in_place_swap_mode: match_footprint;  time_unit: "1ns";  voltage_unit: "1V";  current_unit: "1uA";  pulling_resistance_unit: "1kohm";  leakage_power_unit: "1nW";  capacitive_load_unit (1.0, pf);  slew_upper_threshold_pct_rise: 80.0;  slew_lower_threshold_pct_rise: 20.0;  slew_upper_threshold_pct_fall: 80.0;  slew_lower_threshold_pct_fall: 20.0;  input_threshold_pct_rise: 50.0;  input_threshold_pct_fall: 50.0;  output_threshold_pct_rise: 50.0;  output_threshold_pct_fall: 50.0;  nom_process: 1.0;  nom_voltage: 5.0;  nom_temperature: 25.0;  default_operating_conditions: typical;  operating_conditions (typical) {    process: 1.0;    voltage: 5.0;    temperature: 25.0;  }  lu_table_template (delay_template_5x1) {    variable_1: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (delay_template_5x5) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (delay_template_5x6) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (delay_template_6x1) {    variable_1: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (delay_template_6x6) {    variable_1: total_output_net_capacitance;    variable_2: input_net_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (energy_template_5x5) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  power_lut_template (energy_template_5x6) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (energy_template_6x6) {    variable_1: total_output_net_capacitance;    variable_2: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (hold_template_3x5) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (hold_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  power_lut_template (passive_energy_template_5x1) {    variable_1: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  power_lut_template (passive_energy_template_6x1) {    variable_1: input_transition_time;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (recovery_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (recovery_template_6x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (removal_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  lu_table_template (setup_template_3x5) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"    );  }  lu_table_template (setup_template_3x6) {    variable_1: related_pin_transition;    variable_2: constrained_pin_transition;    index_1 (      "1000.0, 1001.0, 1002.0"    );    index_2 (      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"    );  }  cell (AND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004935475891367477;      fall_capacitance: 0.007858406695085389;      capacitance: 0.006396941293226433;    }    pin (A) {      direction: input;      rise_capacitance: 0.004150891096654475;      fall_capacitance: 0.005776428708787616;      capacitance: 0.004963659902721045;    }    pin (Y) {      direction: output;      function: "(B&A)";      function: "(A & B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749",             "0.048098, 0.064059, 0.074620, 0.093597, 0.252448",             "0.087865, 0.098559, 0.108152, 0.125156, 0.300811",             "0.172721, 0.177015, 0.184227, 0.196165, 0.394456",             "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696",             "0.056135, 0.056445, 0.057308, 0.057768, -0.014818",             "0.099933, 0.098214, 0.096071, 0.094474, 0.031563",             "0.189088, 0.185938, 0.181261, 0.173387, 0.117548",             "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792",             "0.080791, 0.094490, 0.092269, 0.111832, 0.588352",             "0.147163, 0.151582, 0.153943, 0.167618, 0.594475",             "0.287657, 0.288087, 0.288559, 0.294676, 0.639075",             "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971",             "0.091168, 0.096623, 0.108594, 0.140442, 0.624323",             "0.176540, 0.177904, 0.183856, 0.205552, 0.674111",             "0.348626, 0.348716, 0.349898, 0.359158, 0.778703",             "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628",             "0.046736, 0.065667, 0.079697, 0.098261, 0.233471",             "0.087052, 0.099648, 0.114524, 0.132001, 0.286132",             "0.172376, 0.177352, 0.192051, 0.206645, 0.390972",             "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337",             "0.058079, 0.058865, 0.060249, 0.060930, 0.021381",             "0.101524, 0.100223, 0.098824, 0.096634, 0.056583",             "0.190472, 0.187661, 0.183754, 0.176080, 0.122194",             "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913",             "0.080000, 0.118312, 0.085490, 0.095978, 0.447397",             "0.146991, 0.152360, 0.150326, 0.156871, 0.457664",             "0.287629, 0.288180, 0.288056, 0.290376, 0.519847",             "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070",             "0.091909, 0.097885, 0.110175, 0.140770, 0.556828",             "0.176533, 0.178340, 0.184385, 0.205074, 0.605254",             "0.348727, 0.348732, 0.349910, 0.357567, 0.705589",             "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"          );        }      }    }  }  cell (AND2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004935475891367477;      fall_capacitance: 0.007858406695085389;      capacitance: 0.006396941293226433;    }    pin (A) {      direction: input;      rise_capacitance: 0.004150891096654475;      fall_capacitance: 0.005776428708787616;      capacitance: 0.004963659902721045;    }    pin (Y) {      direction: output;      function: "(B&A)";      function: "(A & B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003054, 0.030498, 0.039878, 0.053343, 0.188749",             "0.048098, 0.064059, 0.074620, 0.093597, 0.252448",             "0.087865, 0.098559, 0.108152, 0.125156, 0.300811",             "0.172721, 0.177015, 0.184227, 0.196165, 0.394456",             "0.875756, 0.870760, 0.872299, 0.869455, 0.975392"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015977, 0.018737, 0.019304, 0.016191, -0.074696",             "0.056135, 0.056445, 0.057308, 0.057768, -0.014818",             "0.099933, 0.098214, 0.096071, 0.094474, 0.031563",             "0.189088, 0.185938, 0.181261, 0.173387, 0.117548",             "0.905025, 0.900630, 0.893784, 0.878306, 0.755396"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026432, 0.038218, 0.045398, 0.077143, 0.593792",             "0.080791, 0.094490, 0.092269, 0.111832, 0.588352",             "0.147163, 0.151582, 0.153943, 0.167618, 0.594475",             "0.287657, 0.288087, 0.288559, 0.294676, 0.639075",             "1.420873, 1.420869, 1.420872, 1.420876, 1.523193"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017097, 0.032947, 0.054213, 0.094807, 0.609971",             "0.091168, 0.096623, 0.108594, 0.140442, 0.624323",             "0.176540, 0.177904, 0.183856, 0.205552, 0.674111",             "0.348626, 0.348716, 0.349898, 0.359158, 0.778703",             "1.726993, 1.726969, 1.726997, 1.726970, 1.840952"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002948, 0.031842, 0.043871, 0.058431, 0.170628",             "0.046736, 0.065667, 0.079697, 0.098261, 0.233471",             "0.087052, 0.099648, 0.114524, 0.132001, 0.286132",             "0.172376, 0.177352, 0.192051, 0.206645, 0.390972",             "0.875894, 0.869785, 0.881810, 0.887018, 1.014535"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018316, 0.021069, 0.023194, 0.023536, -0.031337",             "0.058079, 0.058865, 0.060249, 0.060930, 0.021381",             "0.101524, 0.100223, 0.098824, 0.096634, 0.056583",             "0.190472, 0.187661, 0.183754, 0.176080, 0.122194",             "0.906272, 0.902147, 0.895946, 0.881308, 0.736220"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023782, 0.069151, 0.034982, 0.054052, 0.449913",             "0.080000, 0.118312, 0.085490, 0.095978, 0.447397",             "0.146991, 0.152360, 0.150326, 0.156871, 0.457664",             "0.287629, 0.288180, 0.288056, 0.290376, 0.519847",             "1.420875, 1.420869, 1.420872, 1.420868, 1.491447"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020252, 0.035538, 0.056873, 0.095129, 0.521070",             "0.091909, 0.097885, 0.110175, 0.140770, 0.556828",             "0.176533, 0.178340, 0.184385, 0.205074, 0.605254",             "0.348727, 0.348732, 0.349910, 0.357567, 0.705589",             "1.727017, 1.726977, 1.726979, 1.727007, 1.795626"          );        }      }    }  }  cell (AOI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.006296176741869404;      fall_capacitance: 0.006101450811807844;      capacitance: 0.006198813776838624;    }    pin (B) {      direction: input;      rise_capacitance: 0.004150897383251567;      fall_capacitance: 0.005762494885719812;      capacitance: 0.00495669613448569;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935476111367993;      fall_capacitance: 0.007850019508283936;      capacitance: 0.006392747809825965;    }    pin (Y) {      direction: output;      function: "(!C&!B&!A|!C&B&!A|!C&!B&A)";      function: "((A & !B & !C + B & !A & !C + !A & !B & !C))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.018081, 0.020447, 0.022456, 0.023296, -0.023076",             "0.095512, 0.095564, 0.097577, 0.105665, 0.139556",             "0.173079, 0.172613, 0.173245, 0.177966, 0.251687",             "0.328092, 0.327325, 0.326934, 0.328569, 0.431362",             "1.568078, 1.567023, 1.565399, 1.562764, 1.593146"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011083, 0.027112, 0.034806, 0.046174, 0.138537",             "0.106126, 0.110980, 0.117817, 0.132662, 0.298423",             "0.200686, 0.203305, 0.207787, 0.219052, 0.408583",             "0.389684, 0.390741, 0.393128, 0.400447, 0.586557",             "1.901409, 1.900881, 1.900582, 1.901419, 1.980303"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017400, 0.024998, 0.038610, 0.061076, 0.316134",             "0.127638, 0.127551, 0.128643, 0.138963, 0.448630",             "0.240290, 0.240260, 0.240283, 0.242298, 0.547010",             "0.465607, 0.465635, 0.465599, 0.465632, 0.673379",             "2.268621, 2.268618, 2.268620, 2.268621, 2.271276"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029014, 0.032057, 0.039965, 0.063854, 0.320917",             "0.155270, 0.155388, 0.155812, 0.163213, 0.464067",             "0.286240, 0.286177, 0.286189, 0.286907, 0.549050",             "0.547857, 0.547835, 0.547859, 0.547862, 0.703410",             "2.640589, 2.640589, 2.640586, 2.640585, 2.640586"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015335, 0.016945, 0.017387, 0.015057, -0.070130",             "0.093269, 0.093163, 0.094810, 0.101980, 0.105211",             "0.170827, 0.170332, 0.170780, 0.174845, 0.222749",             "0.325869, 0.325151, 0.324630, 0.325908, 0.409344",             "1.565863, 1.564927, 1.563288, 1.560589, 1.585799"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013287, 0.024590, 0.032135, 0.044683, 0.169986",             "0.106631, 0.105383, 0.107181, 0.118863, 0.301183",             "0.201084, 0.196904, 0.194332, 0.196987, 0.392495",             "0.390038, 0.383879, 0.377817, 0.371491, 0.543659",             "1.901742, 1.893615, 1.883483, 1.864976, 1.785407"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013635, 0.021335, 0.036352, 0.066782, 0.514064",             "0.122731, 0.122740, 0.123665, 0.133972, 0.500371",             "0.235316, 0.235334, 0.235297, 0.237378, 0.556421",             "0.460654, 0.460640, 0.460666, 0.460646, 0.664867",             "2.263652, 2.263652, 2.263651, 2.263650, 2.266535"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029990, 0.038199, 0.056237, 0.095398, 0.544902",             "0.155321, 0.155296, 0.158206, 0.179362, 0.704360",             "0.286222, 0.286226, 0.286240, 0.291364, 0.780438",             "0.547837, 0.547857, 0.547852, 0.547862, 0.901566",             "2.640589, 2.640588, 2.640588, 2.640589, 2.647331"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012884, 0.013824, 0.016369, 0.019083, 0.025408",             "0.085533, 0.079788, 0.082111, 0.094024, 0.172908",             "0.157410, 0.149628, 0.148170, 0.154670, 0.271254",             "0.300946, 0.291744, 0.286795, 0.285855, 0.427654",             "1.448498, 1.437802, 1.428280, 1.413900, 1.417542"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005708, 0.008623, 0.010235, 0.012288, 0.017616",             "0.047043, 0.047780, 0.052874, 0.064024, 0.113032",             "0.091536, 0.089929, 0.090900, 0.100815, 0.179742",             "0.181015, 0.178070, 0.175614, 0.176901, 0.288000",             "0.897237, 0.893242, 0.888241, 0.878918, 0.902547"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012755, 0.024831, 0.044968, 0.093110, 0.730524",             "0.115219, 0.115342, 0.119381, 0.140592, 0.704120",             "0.219879, 0.219898, 0.220189, 0.229051, 0.695466",             "0.429271, 0.429272, 0.429268, 0.429957, 0.760003",             "2.104581, 2.104581, 2.104580, 2.104582, 2.138119"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013144, 0.039574, 0.064113, 0.105179, 0.740810",             "0.092532, 0.098951, 0.115649, 0.159781, 0.811024",             "0.178514, 0.180443, 0.190086, 0.223562, 0.880935",             "0.350931, 0.351086, 0.353728, 0.372580, 0.983884",             "1.729228, 1.729222, 1.729222, 1.729215, 1.983340"          );        }      }    }  }  cell (AOI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (D) {      direction: input;      rise_capacitance: 0.004150836637055694;      fall_capacitance: 4.293461827055451e-05;      capacitance: 0.0020968856276631243;    }    pin (C) {      direction: input;      rise_capacitance: 0.004935392181405116;      fall_capacitance: 0.004717183954380674;      capacitance: 0.004826288067892895;    }    pin (B) {      direction: input;      rise_capacitance: 0.004150898468773608;      fall_capacitance: 0.005752203124409789;      capacitance: 0.004951550796591699;    }    pin (A) {      direction: input;      rise_capacitance: 0.00493547941452175;      fall_capacitance: 0.007832228421315403;      capacitance: 0.006383853917918576;    }    pin (Y) {      direction: output;      function: "!(D&C&!B&!A|D&C&B&!A|!D&!C&B&A|D&!C&B&A|D&C&B&A|!D&C&B&A|D&C&!B&A)";      function: "(!(A & B & C & D + A & B & C & !D + A & B & D & !C + A & C & D & !B + B & C & D & !A + A & B & !C & !D + C & D & !A & !B))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022453, 0.024534, 0.027322, 0.029301, -0.013605",             "0.094099, 0.094146, 0.096422, 0.104923, 0.133468",             "0.165999, 0.165576, 0.166553, 0.171933, 0.239819",             "0.309709, 0.308987, 0.308926, 0.311303, 0.412228",             "1.459135, 1.458114, 1.456788, 1.454769, 1.495149"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010762, 0.031215, 0.042613, 0.056720, 0.163173",             "0.106795, 0.114659, 0.123175, 0.139761, 0.315494",             "0.201577, 0.206563, 0.212378, 0.225460, 0.423829",             "0.390704, 0.393586, 0.396927, 0.405778, 0.599884",             "1.902537, 1.903178, 1.903203, 1.904622, 1.991405"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023524, 0.029914, 0.043867, 0.071865, 0.348115",             "0.124790, 0.124832, 0.126119, 0.138292, 0.474155",             "0.228743, 0.228744, 0.228751, 0.231812, 0.561135",             "0.436738, 0.436734, 0.436738, 0.436740, 0.675654",             "2.100895, 2.100896, 2.100897, 2.100896, 2.108562"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034663, 0.063510, 0.047967, 0.068994, 0.335936",             "0.166389, 0.166412, 0.166844, 0.173304, 0.460327",             "0.297251, 0.297251, 0.297255, 0.297868, 0.539773",             "0.558920, 0.558909, 0.558922, 0.558921, 0.702122",             "2.651676, 2.651678, 2.651676, 2.651675, 2.651676"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019651, 0.021446, 0.022931, 0.021898, -0.058654",             "0.091977, 0.091918, 0.093938, 0.101438, 0.098787",             "0.163917, 0.163487, 0.164267, 0.169031, 0.210590",             "0.307654, 0.306986, 0.306812, 0.308826, 0.390145",             "1.457089, 1.456195, 1.454848, 1.452765, 1.487992"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013313, 0.029492, 0.038920, 0.053701, 0.189828",             "0.107559, 0.109470, 0.112797, 0.125324, 0.314605",             "0.202143, 0.200386, 0.199276, 0.203456, 0.404946",             "0.391163, 0.386838, 0.381869, 0.377141, 0.555274",             "1.902923, 1.895945, 1.886158, 1.868337, 1.797664"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019077, 0.026325, 0.041095, 0.072960, 0.515154",             "0.120223, 0.120250, 0.121709, 0.133832, 0.515903",             "0.224169, 0.224172, 0.224205, 0.227354, 0.569826",             "0.432139, 0.432141, 0.432149, 0.432153, 0.667848",             "2.096306, 2.096306, 2.096306, 2.096307, 2.104382"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.036269, 0.063193, 0.062392, 0.098967, 0.551553",             "0.166373, 0.166389, 0.169112, 0.187994, 0.688610",             "0.297276, 0.297267, 0.297275, 0.302013, 0.760566",             "0.558916, 0.558919, 0.558917, 0.558918, 0.890221",             "2.651678, 2.651678, 2.651674, 2.651677, 2.657773"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020200, 0.018794, 0.020910, 0.023798, 0.017569",             "0.092119, 0.084321, 0.084972, 0.095024, 0.157181",             "0.163930, 0.154431, 0.151294, 0.155481, 0.252498",             "0.307422, 0.296784, 0.290296, 0.286804, 0.407284",             "1.454937, 1.443187, 1.432682, 1.416494, 1.394586"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.010498, 0.021541, 0.028604, 0.036531, 0.082739",             "0.101264, 0.104773, 0.111902, 0.126711, 0.261658",             "0.195526, 0.196677, 0.201528, 0.213170, 0.380207",             "0.384366, 0.383767, 0.386473, 0.394329, 0.568488",             "1.895957, 1.893533, 1.893309, 1.894383, 1.975065"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020633, 0.030682, 0.050793, 0.085135, 0.465687",             "0.123409, 0.123499, 0.127912, 0.152623, 0.625796",             "0.228067, 0.228069, 0.228437, 0.238660, 0.715340",             "0.437443, 0.437449, 0.437446, 0.438286, 0.825117",             "2.112769, 2.112769, 2.112771, 2.112769, 2.154781"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021627, 0.033850, 0.033202, 0.057903, 0.432542",             "0.146054, 0.146118, 0.146677, 0.153711, 0.456404",             "0.276800, 0.276784, 0.276786, 0.277558, 0.525056",             "0.538347, 0.538333, 0.538346, 0.538344, 0.682865",             "2.630986, 2.630987, 2.630989, 2.630987, 2.630987"          );        }      }      timing () {        related_pin: "D";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016935, 0.015243, 0.015695, 0.014740, -0.033455",             "0.089882, 0.081949, 0.082234, 0.090924, 0.115190",             "0.161756, 0.152189, 0.148795, 0.152107, 0.216277",             "0.305276, 0.294641, 0.288008, 0.283956, 0.379732",             "1.452819, 1.441160, 1.430652, 1.414354, 1.384946"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011131, 0.019163, 0.024855, 0.033370, 0.110590",             "0.101703, 0.099111, 0.101250, 0.112517, 0.253820",             "0.195929, 0.190278, 0.188100, 0.190853, 0.353274",             "0.384754, 0.376936, 0.371227, 0.365324, 0.516649",             "1.896340, 1.886290, 1.876220, 1.858031, 1.777651"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016198, 0.026696, 0.047157, 0.087412, 0.629442",             "0.118843, 0.118871, 0.123371, 0.147773, 0.655892",             "0.223461, 0.223424, 0.223842, 0.234191, 0.716081",             "0.432839, 0.432831, 0.432841, 0.433715, 0.813736",             "2.108153, 2.108150, 2.108150, 2.108152, 2.151140"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019318, 0.037477, 0.046391, 0.085342, 0.625357",             "0.146062, 0.146061, 0.148782, 0.168097, 0.675212",             "0.276795, 0.276788, 0.276812, 0.281783, 0.738328",             "0.538338, 0.538332, 0.538332, 0.538345, 0.865002",             "2.630987, 2.630990, 2.630986, 2.630986, 2.638001"          );        }      }    }  }  cell (BUFX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006189356217773286;      fall_capacitance: 0.008913012740210141;      capacitance: 0.007551184478991714;    }    pin (Y) {      direction: output;      function: "!(!A)";      function: "(A)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003161, 0.018284, 0.022862, 0.029597, 0.082449",             "0.045168, 0.050118, 0.057399, 0.071712, 0.153721",             "0.086116, 0.085817, 0.089463, 0.102695, 0.199215",             "0.172383, 0.166439, 0.164531, 0.169815, 0.284515",             "0.876891, 0.864252, 0.852323, 0.833869, 0.853010"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014482, 0.018379, 0.020768, 0.022068, -0.009140",             "0.054683, 0.055959, 0.059876, 0.069706, 0.071632",             "0.098664, 0.097948, 0.098411, 0.105829, 0.136458",             "0.187943, 0.185797, 0.183424, 0.183072, 0.249186",             "0.903989, 0.900540, 0.895789, 0.885878, 0.887209"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021141, 0.053490, 0.059672, 0.113073, 0.840389",             "0.077202, 0.091911, 0.106094, 0.141454, 0.832516",             "0.145621, 0.149491, 0.160179, 0.190218, 0.830936",             "0.287250, 0.287270, 0.289142, 0.305563, 0.867895",             "1.420515, 1.420519, 1.420516, 1.420515, 1.614647"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015821, 0.031534, 0.054604, 0.109725, 0.838134",             "0.090618, 0.095897, 0.108850, 0.147026, 0.841931",             "0.176061, 0.177617, 0.184255, 0.210648, 0.851578",             "0.348673, 0.348740, 0.350198, 0.363180, 0.905512",             "1.726970, 1.726967, 1.726971, 1.726970, 1.912266"          );        }      }    }  }  cell (BUFX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006190154742284263;      fall_capacitance: 0.008890580111169952;      capacitance: 0.007540367426727108;    }    pin (Y) {      direction: output;      function: "!(!A)";      function: "(A)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003332, 0.021756, 0.028208, 0.035969, 0.093993",             "0.026181, 0.039174, 0.048485, 0.060878, 0.137999",             "0.045221, 0.053837, 0.062262, 0.078031, 0.166608",             "0.086091, 0.087685, 0.092767, 0.107223, 0.211923",             "0.435684, 0.421572, 0.413289, 0.404913, 0.530577"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019917, 0.023712, 0.027202, 0.030685, 0.008146",             "0.039940, 0.042849, 0.048226, 0.055685, 0.049883",             "0.059858, 0.061386, 0.065377, 0.075941, 0.084686",             "0.102963, 0.102628, 0.103617, 0.111160, 0.147406",             "0.459869, 0.457168, 0.453471, 0.446561, 0.530833"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022521, 0.061092, 0.098545, 0.118668, 0.841214",             "0.047803, 0.081523, 0.116519, 0.130463, 0.837645",             "0.078588, 0.106772, 0.139897, 0.152839, 0.833203",             "0.146398, 0.156268, 0.169785, 0.200500, 0.833117",             "0.712599, 0.712588, 0.712577, 0.712845, 1.089880"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022169, 0.034922, 0.057456, 0.109434, 0.837145",             "0.053315, 0.062209, 0.079539, 0.123803, 0.839403",             "0.093114, 0.098044, 0.110960, 0.148338, 0.840752",             "0.177240, 0.178652, 0.185453, 0.211899, 0.851340",             "0.865991, 0.865992, 0.865993, 0.866799, 1.209225"          );        }      }    }  }  cell (CLKBUF1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 493776.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.012377692547513634;      fall_capacitance: 0.014507744176093367;      capacitance: 0.0134427183618035;    }    pin (Y) {      direction: output;      function: "!(!A)";      function: "(A)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.003460, 0.039905, 0.046929, 0.057149, 0.129195",             "0.039219, 0.054860, 0.064114, 0.078186, 0.157207",             "0.055285, 0.068102, 0.077098, 0.093315, 0.177192",             "0.092471, 0.100229, 0.107093, 0.121807, 0.216231",             "0.435605, 0.429264, 0.424902, 0.423004, 0.538823"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.032185, 0.040159, 0.044451, 0.047986, 0.023388",             "0.050450, 0.056824, 0.062828, 0.071275, 0.053156",             "0.068299, 0.073963, 0.079184, 0.090175, 0.079028",             "0.109143, 0.112555, 0.116061, 0.124195, 0.130603",             "0.463189, 0.462100, 0.460697, 0.458229, 0.520719"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.038133, 0.073853, 0.108060, 0.106379, 0.742329",             "0.060385, 0.095859, 0.130135, 0.118818, 0.738152",             "0.087750, 0.120648, 0.154819, 0.142636, 0.732318",             "0.148631, 0.165728, 0.177042, 0.190178, 0.740928",             "0.712222, 0.712217, 0.712215, 0.712236, 0.974750"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.042002, 0.068064, 0.055378, 0.096450, 0.738499",             "0.070257, 0.097122, 0.081847, 0.113407, 0.740126",             "0.100976, 0.109877, 0.115079, 0.140310, 0.740118",             "0.178532, 0.181261, 0.187084, 0.204804, 0.747643",             "0.865667, 0.865654, 0.865705, 0.865803, 1.087674"          );        }      }    }  }  cell (HAX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 2289268.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (YS) {      direction: output;      function: "!(!B&!A|B&A)";    }    pin (YC) {      direction: output;      function: "(B&A)";    }  }  cell (INV) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 109728.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.006188556324394764;      fall_capacitance: 0.008930247677472391;      capacitance: 0.007559402000933578;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005045, 0.004409, 0.003488, -0.000307, -0.065884",             "0.045060, 0.042762, 0.047513, 0.054699, 0.040967",             "0.088722, 0.082033, 0.082140, 0.091178, 0.111791",             "0.176767, 0.166715, 0.160456, 0.160380, 0.224564",             "0.882682, 0.869493, 0.854103, 0.828028, 0.824714"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005563, 0.008580, 0.012595, 0.019184, 0.090037",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.180850, 0.178100, 0.176154, 0.179192, 0.343968",             "0.897064, 0.893202, 0.888379, 0.879811, 0.928891"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008037, 0.029159, 0.057520, 0.115796, 0.870209",             "0.074565, 0.079799, 0.096343, 0.138761, 0.864852",             "0.145329, 0.146192, 0.155787, 0.188759, 0.863750",             "0.286862, 0.286915, 0.288453, 0.307678, 0.903487",             "1.420162, 1.420160, 1.420161, 1.420161, 1.674200"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008767, 0.030412, 0.056701, 0.115566, 0.870158",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.348403, 0.348491, 0.350746, 0.368988, 0.971736",             "1.726613, 1.726603, 1.726598, 1.726608, 1.975691"          );        }      }    }  }  cell (INVX4) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.012376891490235522;      fall_capacitance: 0.014525173100391225;      capacitance: 0.013451032295313373;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004836, 0.003911, 0.003113, -0.000947, -0.066781",             "0.023782, 0.025438, 0.029154, 0.032024, -0.003570",             "0.045059, 0.042825, 0.047513, 0.054773, 0.040967",             "0.088711, 0.082075, 0.082140, 0.091166, 0.111791",             "0.441430, 0.429084, 0.416141, 0.399464, 0.483388"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005423, 0.008343, 0.012279, 0.018588, 0.089288",             "0.025056, 0.028778, 0.035903, 0.047954, 0.142358",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.091353, 0.089965, 0.091587, 0.103620, 0.243501",             "0.449471, 0.445891, 0.441675, 0.435947, 0.579373"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007775, 0.029000, 0.057625, 0.115801, 0.870234",             "0.039447, 0.049978, 0.071107, 0.121251, 0.867453",             "0.074397, 0.079871, 0.096343, 0.138754, 0.864852",             "0.145174, 0.146264, 0.155787, 0.188826, 0.863750",             "0.711874, 0.711865, 0.711868, 0.712356, 1.131446"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008278, 0.030236, 0.056581, 0.115515, 0.870125",             "0.047212, 0.057977, 0.079852, 0.130476, 0.873241",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.175658, 0.177628, 0.186680, 0.219666, 0.900539",             "0.865308, 0.865247, 0.865250, 0.866773, 1.291412"          );        }      }    }  }  cell (INVX8) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 274320.0;    cell_leakage_power: 0.1173;    pin (A) {      direction: input;      rise_capacitance: 0.02475357794277478;      fall_capacitance: 0.025715030488090873;      capacitance: 0.025234304215432823;    }    pin (Y) {      direction: output;      function: "!(A)";      function: "(!A)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.004711, 0.003669, 0.002920, -0.001273, -0.067235",             "0.013476, 0.016314, 0.018100, 0.018126, -0.031065",             "0.023686, 0.025560, 0.029154, 0.032104, -0.003570",             "0.045002, 0.042834, 0.047470, 0.054715, 0.040967",             "0.220836, 0.210041, 0.201832, 0.197811, 0.273718"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005356, 0.008225, 0.012119, 0.018287, 0.088886",             "0.014445, 0.019534, 0.025707, 0.035382, 0.118985",             "0.025056, 0.028778, 0.035903, 0.047954, 0.142358",             "0.046837, 0.047773, 0.053764, 0.068471, 0.181014",             "0.225616, 0.222601, 0.219861, 0.220213, 0.388011"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007647, 0.028925, 0.057669, 0.115805, 0.870247",             "0.022139, 0.037257, 0.061628, 0.115441, 0.868805",             "0.039229, 0.050143, 0.071107, 0.121043, 0.867453",             "0.074441, 0.080027, 0.096405, 0.138670, 0.864852",             "0.357732, 0.357697, 0.358023, 0.371638, 0.931800"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008160, 0.030148, 0.056531, 0.115506, 0.870109",             "0.026793, 0.041830, 0.067077, 0.120590, 0.871621",             "0.047212, 0.057977, 0.079852, 0.130476, 0.873241",             "0.089918, 0.095810, 0.111953, 0.155870, 0.877226",             "0.434491, 0.434491, 0.435448, 0.448752, 1.014657"          );        }      }    }  }  cell (MUX2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 329184.0;    cell_leakage_power: 0.1173;    pin (S) {      direction: input;      rise_capacitance: 0.010338610799344835;      fall_capacitance: 0.008212780453515003;      capacitance: 0.009275695626429919;    }    pin (B) {      direction: input;      rise_capacitance: 0.006397490498320098;      fall_capacitance: 0.008895353965965845;      capacitance: 0.007646422232142972;    }    pin (A) {      direction: input;      rise_capacitance: 0.004937389414015676;      fall_capacitance: 0.007864001795670731;      capacitance: 0.006400695604843204;    }    pin (Y) {      direction: output;      function: "!(!S&B&!A|!S&B&A|S&B&A|S&!B&A)";      function: "(!(A & B & S + A & B & !S + A & S & !B + B & !A & !S))";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.019428, 0.021747, 0.023821, 0.024885, -0.020070",             "0.096776, 0.096705, 0.098699, 0.106638, 0.141139",             "0.174325, 0.173758, 0.174373, 0.179031, 0.252974",             "0.329331, 0.328462, 0.328043, 0.329638, 0.432416",             "1.569307, 1.568155, 1.566435, 1.563733, 1.594086"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015958, 0.027807, 0.035343, 0.047135, 0.140744",             "0.109318, 0.113175, 0.119175, 0.133278, 0.299017",             "0.203682, 0.205651, 0.209577, 0.220207, 0.408863",             "0.392584, 0.393181, 0.395219, 0.402088, 0.586689",             "1.904228, 1.903421, 1.903075, 1.903731, 1.981518"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020411, 0.026763, 0.039961, 0.063425, 0.317670",             "0.130948, 0.130915, 0.131768, 0.141947, 0.451197",             "0.243567, 0.243583, 0.243517, 0.245528, 0.549507",             "0.468902, 0.468912, 0.468912, 0.468919, 0.675777",             "2.271917, 2.271914, 2.271917, 2.271916, 2.274560"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.034547, 0.032700, 0.040748, 0.064546, 0.323227",             "0.155499, 0.155537, 0.155799, 0.162945, 0.464800",             "0.286354, 0.286330, 0.286313, 0.286918, 0.548668",             "0.547917, 0.547919, 0.547900, 0.547926, 0.702513",             "2.640604, 2.640603, 2.640602, 2.640603, 2.640599"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012479, 0.020519, 0.023592, 0.024838, -0.020037",             "0.088439, 0.091403, 0.095223, 0.104973, 0.140988",             "0.165879, 0.167485, 0.169565, 0.175932, 0.252738",             "0.320839, 0.321506, 0.322081, 0.325051, 0.431811",             "1.560766, 1.560490, 1.559111, 1.556910, 1.590657"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023985, 0.029348, 0.035865, 0.047430, 0.140831",             "0.115535, 0.117784, 0.122066, 0.134594, 0.299174",             "0.209718, 0.210748, 0.213291, 0.222435, 0.409049",             "0.398509, 0.398634, 0.399621, 0.405195, 0.587049",             "1.910075, 1.909263, 1.908276, 1.908150, 1.983766"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021856, 0.028909, 0.040295, 0.063869, 0.317858",             "0.130661, 0.130662, 0.132045, 0.142857, 0.451367",             "0.243245, 0.243252, 0.243275, 0.245652, 0.549740",             "0.468595, 0.468585, 0.468603, 0.468582, 0.676414",             "2.271590, 2.271590, 2.271589, 2.271591, 2.274367"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026595, 0.030491, 0.040269, 0.064145, 0.322768",             "0.155850, 0.155839, 0.155924, 0.162605, 0.464668",             "0.286633, 0.286644, 0.286657, 0.287110, 0.548624",             "0.548248, 0.548238, 0.548248, 0.548232, 0.702345",             "2.641009, 2.640987, 2.640985, 2.640985, 2.640985"          );        }      }      timing () {        related_pin: "S";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015477, 0.019632, 0.023785, 0.028539, 0.047003",             "0.089791, 0.086977, 0.089938, 0.101079, 0.177000",             "0.166627, 0.161655, 0.161408, 0.167180, 0.272033",             "0.321166, 0.314571, 0.311301, 0.310607, 0.436604",             "1.560695, 1.552272, 1.545023, 1.533295, 1.520465"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009379, 0.017143, 0.022831, 0.029415, 0.049506",             "0.098224, 0.096461, 0.098086, 0.107381, 0.189678",             "0.191790, 0.187334, 0.185018, 0.186251, 0.294384",             "0.380119, 0.373656, 0.367998, 0.361115, 0.471759",             "1.891175, 1.882501, 1.872694, 1.854265, 1.753057"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025135, 0.032734, 0.048051, 0.084704, 0.566326",             "0.130733, 0.130708, 0.132826, 0.150233, 0.602446",             "0.243422, 0.243393, 0.243371, 0.247979, 0.662237",             "0.468752, 0.468761, 0.468758, 0.468739, 0.756824",             "2.271751, 2.271754, 2.271754, 2.271752, 2.282476"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.022469, 0.035382, 0.052960, 0.089711, 0.571861",             "0.155713, 0.155428, 0.156540, 0.173483, 0.639442",             "0.286482, 0.286497, 0.286481, 0.290082, 0.712770",             "0.548075, 0.548076, 0.548073, 0.548087, 0.844708",             "2.640769, 2.640767, 2.640766, 2.640768, 2.646447"          );        }      }    }  }  cell (NAND2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.004150889506161318;      fall_capacitance: 0.0057806089303857715;      capacitance: 0.004965749218273544;    }    pin (A) {      direction: input;      rise_capacitance: 0.004935475394936947;      fall_capacitance: 0.007870695939137575;      capacitance: 0.0064030856670372616;    }    pin (Y) {      direction: output;      function: "!(B&A)";      function: "(!A & B)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.007196, 0.007595, 0.006535, 0.002335, -0.081701",             "0.048131, 0.045109, 0.049226, 0.055554, 0.023149",             "0.091843, 0.084555, 0.083952, 0.092035, 0.093853",             "0.179911, 0.169368, 0.162474, 0.161292, 0.207503",             "0.885821, 0.872458, 0.856675, 0.829540, 0.814241"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.015633, 0.021476, 0.028398, 0.039896, 0.146774",             "0.107818, 0.110541, 0.116624, 0.131991, 0.322868",             "0.202142, 0.203338, 0.207611, 0.219924, 0.436789",             "0.391020, 0.391118, 0.393477, 0.402003, 0.616285",             "1.902651, 1.901546, 1.901261, 1.902664, 2.012825"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.012945, 0.032109, 0.051696, 0.088446, 0.524049",             "0.079676, 0.085046, 0.101926, 0.145349, 0.674950",             "0.150526, 0.151440, 0.161506, 0.195645, 0.761149",             "0.292156, 0.292210, 0.293910, 0.314078, 0.887525",             "1.425456, 1.425453, 1.425463, 1.425463, 1.693531"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013964, 0.019082, 0.028092, 0.057082, 0.488461",             "0.142119, 0.142058, 0.142068, 0.146714, 0.440570",             "0.272785, 0.272844, 0.272830, 0.273049, 0.465710",             "0.534379, 0.534395, 0.534370, 0.534368, 0.637728",             "2.627044, 2.627042, 2.627042, 2.627043, 2.627043"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.005849, 0.004862, 0.001953, -0.005765, -0.126919",             "0.046431, 0.043395, 0.046993, 0.051015, -0.016988",             "0.090143, 0.082837, 0.081976, 0.088941, 0.057037",             "0.178220, 0.167700, 0.160608, 0.158752, 0.176347",             "0.884156, 0.870837, 0.855034, 0.827713, 0.802365"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013792, 0.018689, 0.025506, 0.038065, 0.175360",             "0.107725, 0.103637, 0.104869, 0.117440, 0.315940",             "0.202285, 0.196217, 0.193422, 0.197331, 0.412055",             "0.391293, 0.383864, 0.377831, 0.373134, 0.567831",             "1.903042, 1.894202, 1.884122, 1.866559, 1.824766"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.009695, 0.029176, 0.049614, 0.090169, 0.630637",             "0.076701, 0.082090, 0.098427, 0.140823, 0.690595",             "0.147420, 0.148384, 0.158014, 0.191352, 0.764094",             "0.289054, 0.289045, 0.290759, 0.310455, 0.877521",             "1.422334, 1.422325, 1.422328, 1.422326, 1.682986"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014142, 0.022429, 0.038545, 0.077748, 0.619421",             "0.142113, 0.142115, 0.143140, 0.157535, 0.605736",             "0.272824, 0.272791, 0.272803, 0.275498, 0.636002",             "0.534396, 0.534363, 0.534379, 0.534395, 0.781620",             "2.627039, 2.627044, 2.627041, 2.627039, 2.630177"          );        }      }    }  }  cell (NAND3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;      rise_capacitance: 0.004149650005143659;      fall_capacitance: 0.005781505198438881;      capacitance: 0.00496557760179127;    }    pin (B) {      direction: input;      rise_capacitance: 0.004830629997798454;      fall_capacitance: 0.0065460190151835455;      capacitance: 0.005688324506490999;    }    pin (A) {      direction: input;      rise_capacitance: 0.0049353598856550955;      fall_capacitance: 0.007870869195042688;      capacitance: 0.006403114540348892;    }    pin (Y) {      direction: output;      function: "!(C&B&A)";      function: "(!A & B & C)";      timing () {        related_pin: "A";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008972, 0.009457, 0.008503, 0.002962, -0.100701",             "0.051333, 0.047529, 0.050994, 0.056259, 0.000383",             "0.095086, 0.087278, 0.086059, 0.093123, 0.071594",             "0.183200, 0.172294, 0.164894, 0.162676, 0.188303",             "0.889127, 0.875625, 0.859595, 0.831781, 0.805945"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.020769, 0.029603, 0.037436, 0.051718, 0.185550",             "0.137563, 0.140846, 0.146094, 0.159442, 0.367674",             "0.257454, 0.258396, 0.261172, 0.270635, 0.491854",             "0.497675, 0.496765, 0.496908, 0.501401, 0.695984",             "2.420799, 2.417810, 2.414180, 2.409069, 2.461911"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.017292, 0.035367, 0.056139, 0.094266, 0.548119",             "0.084992, 0.090373, 0.107178, 0.150243, 0.683940",             "0.155780, 0.156840, 0.166974, 0.201316, 0.764246",             "0.297431, 0.297423, 0.299270, 0.320137, 0.888634",             "1.430747, 1.430744, 1.430744, 1.430744, 1.704785"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023922, 0.025750, 0.032068, 0.055931, 0.495161",             "0.188089, 0.188153, 0.188154, 0.189888, 0.453757",             "0.355339, 0.355334, 0.355344, 0.355344, 0.505262",             "0.689777, 0.689789, 0.689794, 0.689787, 0.761388",             "3.365704, 3.365704, 3.365703, 3.365700, 3.365703"          );        }      }      timing () {        related_pin: "B";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.008334, 0.007999, 0.005426, -0.001872, -0.134533",             "0.049592, 0.045886, 0.049021, 0.052517, -0.029801",             "0.093307, 0.085588, 0.084148, 0.090357, 0.043619",             "0.181419, 0.170558, 0.163034, 0.160347, 0.164016",             "0.887312, 0.873890, 0.857871, 0.829951, 0.796345"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023592, 0.029466, 0.038594, 0.055239, 0.219385",             "0.141155, 0.143057, 0.148603, 0.163867, 0.404481",             "0.261171, 0.261449, 0.264802, 0.276119, 0.527468",             "0.501476, 0.500497, 0.501691, 0.508419, 0.732132",             "2.424678, 2.422318, 2.420551, 2.419097, 2.507900"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.014708, 0.032973, 0.052387, 0.088064, 0.507153",             "0.081875, 0.087345, 0.103349, 0.145759, 0.652137",             "0.152726, 0.153620, 0.163460, 0.196949, 0.738027",             "0.294293, 0.294378, 0.296116, 0.316174, 0.868979",             "1.427621, 1.427628, 1.427634, 1.427631, 1.694351"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023614, 0.026398, 0.032949, 0.053238, 0.454307",             "0.188147, 0.188117, 0.188099, 0.189875, 0.415502",             "0.355311, 0.355293, 0.355317, 0.355295, 0.485465",             "0.689798, 0.689798, 0.689789, 0.689787, 0.751303",             "3.365699, 3.365700, 3.365702, 3.365700, 3.365698"          );        }      }      timing () {        related_pin: "C";        timing_sense: negative_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.006743, 0.005507, 0.001409, -0.008755, -0.170135",             "0.047762, 0.044106, 0.046936, 0.048789, -0.060209",             "0.091478, 0.083801, 0.082253, 0.087681, 0.016317",             "0.179569, 0.168817, 0.161183, 0.158074, 0.141274",             "0.885505, 0.872150, 0.856133, 0.828109, 0.787687"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.021221, 0.026912, 0.036046, 0.053704, 0.240197",             "0.140988, 0.137908, 0.140081, 0.153521, 0.407328",             "0.261329, 0.256442, 0.255023, 0.261001, 0.520047",             "0.501821, 0.495706, 0.491228, 0.489434, 0.706541",             "2.425190, 2.417843, 2.409583, 2.395522, 2.391247"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.011465, 0.029918, 0.048625, 0.083915, 0.522973",             "0.078783, 0.083779, 0.099962, 0.141527, 0.642500",             "0.149540, 0.150478, 0.160020, 0.192902, 0.728158",             "0.291212, 0.291252, 0.292980, 0.312574, 0.856649",             "1.424500, 1.424495, 1.424506, 1.424500, 1.685213"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023566, 0.027391, 0.036715, 0.061844, 0.502475",             "0.188148, 0.188141, 0.188149, 0.192359, 0.487219",             "0.355298, 0.355308, 0.355319, 0.355322, 0.560090",             "0.689793, 0.689798, 0.689798, 0.689793, 0.809696",             "3.365702, 3.365700, 3.365703, 3.365699, 3.365703"          );        }      }    }  }  cell (NOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 164592.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "(!B&!A)";    }  }  cell (NOR3X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 2823984.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "(!C&!B&!A)";    }  }  cell (OAI21X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(C&B&!A|C&B&A|C&!B&A)";    }  }  cell (OAI22X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 1660737.0;    cell_leakage_power: 0.1173;    pin (D) {      direction: input;    }    pin (C) {      direction: input;    }    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "(!D&!C&!B&!A|D&!C&!B&!A|D&C&!B&!A|!D&C&!B&!A|!D&!C&B&!A|!D&!C&B&A|!D&!C&!B&A)";    }  }  cell (OR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006299305363616857;      fall_capacitance: 0.008885220124112183;      capacitance: 0.007592262743864521;    }    pin (A) {      direction: input;      rise_capacitance: 0.006309610190379141;      fall_capacitance: 0.00630283867340493;      capacitance: 0.006306224431892035;    }    pin (Y) {      direction: output;      function: "!(!B&!A)";      function: "(!!A & !B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410",             "0.041854, 0.043329, 0.051603, 0.059323, 0.062560",             "0.084916, 0.078410, 0.082038, 0.088448, 0.103720",             "0.172611, 0.158216, 0.154751, 0.153103, 0.172991",             "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228",             "0.069115, 0.070143, 0.075842, 0.091793, 0.184877",             "0.111955, 0.111797, 0.115439, 0.127845, 0.254311",             "0.200493, 0.199357, 0.201189, 0.207941, 0.374505",             "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675",             "0.075475, 0.097421, 0.130787, 0.191718, 0.688979",             "0.145593, 0.155613, 0.179062, 0.217295, 0.718675",             "0.287207, 0.287428, 0.292736, 0.315169, 0.792432",             "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641",             "0.093953, 0.096473, 0.103565, 0.127433, 0.668426",             "0.177647, 0.178545, 0.181992, 0.198197, 0.680919",             "0.349306, 0.349321, 0.350007, 0.357523, 0.740411",             "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827",             "0.042995, 0.049240, 0.058421, 0.069922, 0.132870",             "0.085418, 0.083324, 0.088199, 0.097150, 0.172762",             "0.172559, 0.161472, 0.159668, 0.160671, 0.230240",             "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818",             "0.070126, 0.072893, 0.078115, 0.092691, 0.135288",             "0.112911, 0.114897, 0.118672, 0.129875, 0.209498",             "0.201393, 0.202758, 0.205335, 0.211918, 0.341264",             "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235",             "0.076858, 0.103458, 0.137895, 0.200949, 0.702148",             "0.145825, 0.159732, 0.185528, 0.227910, 0.724008",             "0.287314, 0.288184, 0.294861, 0.320599, 0.788394",             "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658",             "0.094505, 0.095669, 0.100243, 0.118924, 0.616317",             "0.177929, 0.178313, 0.180338, 0.192868, 0.629773",             "0.349160, 0.349206, 0.349675, 0.355201, 0.694984",             "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"          );        }      }    }  }  cell (OR2X2) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 219456.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.006299305363616857;      fall_capacitance: 0.008885220124112183;      capacitance: 0.007592262743864521;    }    pin (A) {      direction: input;      rise_capacitance: 0.006309610190379141;      fall_capacitance: 0.00630283867340493;      capacitance: 0.006306224431892035;    }    pin (Y) {      direction: output;      function: "!(!B&!A)";      function: "(!!A & !B)";      timing () {        related_pin: "A";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002786, -0.022732, 0.019161, 0.019580, -0.011410",             "0.041854, 0.043329, 0.051603, 0.059323, 0.062560",             "0.084916, 0.078410, 0.082038, 0.088448, 0.103720",             "0.172611, 0.158216, 0.154751, 0.153103, 0.172991",             "0.878301, 0.855095, 0.838016, 0.810227, 0.720418"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028540, 0.031368, 0.036819, 0.045426, 0.100228",             "0.069115, 0.070143, 0.075842, 0.091793, 0.184877",             "0.111955, 0.111797, 0.115439, 0.127845, 0.254311",             "0.200493, 0.199357, 0.201189, 0.207941, 0.374505",             "0.915994, 0.913985, 0.914073, 0.914386, 1.007881"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013392, 0.051401, 0.087406, 0.152742, 0.687675",             "0.075475, 0.097421, 0.130787, 0.191718, 0.688979",             "0.145593, 0.155613, 0.179062, 0.217295, 0.718675",             "0.287207, 0.287428, 0.292736, 0.315169, 0.792432",             "1.420518, 1.420518, 1.420514, 1.420518, 1.582675"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024927, 0.029452, 0.042786, 0.080200, 0.663641",             "0.093953, 0.096473, 0.103565, 0.127433, 0.668426",             "0.177647, 0.178545, 0.181992, 0.198197, 0.680919",             "0.349306, 0.349321, 0.350007, 0.357523, 0.740411",             "1.727348, 1.727346, 1.727366, 1.727370, 1.864145"          );        }      }      timing () {        related_pin: "B";        timing_sense: positive_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "-0.002737, 0.015129, 0.026339, 0.031155, 0.057827",             "0.042995, 0.049240, 0.058421, 0.069922, 0.132870",             "0.085418, 0.083324, 0.088199, 0.097150, 0.172762",             "0.172559, 0.161472, 0.159668, 0.160671, 0.230240",             "0.877741, 0.855521, 0.839844, 0.814300, 0.732001"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.029469, 0.033740, 0.039244, 0.045782, 0.049818",             "0.070126, 0.072893, 0.078115, 0.092691, 0.135288",             "0.112911, 0.114897, 0.118672, 0.129875, 0.209498",             "0.201393, 0.202758, 0.205335, 0.211918, 0.341264",             "0.916880, 0.917687, 0.919165, 0.921192, 1.006897"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016092, 0.057562, 0.095169, 0.162177, 0.699235",             "0.076858, 0.103458, 0.137895, 0.200949, 0.702148",             "0.145825, 0.159732, 0.185528, 0.227910, 0.724008",             "0.287314, 0.288184, 0.294861, 0.320599, 0.788394",             "1.420530, 1.420534, 1.420537, 1.420539, 1.574668"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024627, 0.027679, 0.036375, 0.067524, 0.609658",             "0.094505, 0.095669, 0.100243, 0.118924, 0.616317",             "0.177929, 0.178313, 0.180338, 0.192868, 0.629773",             "0.349160, 0.349206, 0.349675, 0.355201, 0.694984",             "1.727366, 1.727352, 1.727345, 1.727367, 1.855198"          );        }      }    }  }  cell (XNOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 384048.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;      rise_capacitance: 0.01258592702529086;      fall_capacitance: 0.01450190121076146;      capacitance: 0.01354391411802616;    }    pin (A) {      direction: input;      rise_capacitance: 0.012735641153553287;      fall_capacitance: 0.011631625278500075;      capacitance: 0.012183633216026682;    }    pin (Y) {      direction: output;      function: "!(B&!A|!B&A)";      function: "(!(A & !B + B & !A))";      timing () {        related_pin: "A";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013989, 0.018024, 0.023608, 0.028544, 0.046990",             "0.086886, 0.083890, 0.087944, 0.100115, 0.176994",             "0.163666, 0.158058, 0.158583, 0.165414, 0.272018",             "0.318190, 0.310552, 0.307716, 0.307846, 0.436394",             "1.557671, 1.547810, 1.540413, 1.528732, 1.518482"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.013397, 0.018391, 0.023707, 0.029700, 0.049560",             "0.104554, 0.099267, 0.099516, 0.107893, 0.189692",             "0.198104, 0.190587, 0.187032, 0.187249, 0.294404",             "0.386428, 0.377203, 0.370471, 0.362665, 0.471845",             "1.897500, 1.886363, 1.875729, 1.856653, 1.754002"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.023920, 0.038475, 0.061455, 0.084755, 0.566336",             "0.130811, 0.130539, 0.133792, 0.151736, 0.602473",             "0.243429, 0.243459, 0.243317, 0.248917, 0.662479",             "0.468797, 0.468798, 0.468793, 0.468774, 0.757658",             "2.271785, 2.271788, 2.271788, 2.271786, 2.282952"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.025980, 0.034386, 0.051179, 0.088206, 0.570375",             "0.155775, 0.156006, 0.156492, 0.172986, 0.639449",             "0.286528, 0.286545, 0.286577, 0.289826, 0.712632",             "0.548141, 0.548132, 0.548123, 0.548137, 0.844311",             "2.640825, 2.640828, 2.640826, 2.640825, 2.646410"          );        }      }      timing () {        related_pin: "B";        timing_sense: non_unate;        cell_rise (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.016690, 0.026445, 0.031880, 0.037261, 0.048616",             "0.091051, 0.095514, 0.100621, 0.112158, 0.182377",             "0.168213, 0.171079, 0.174250, 0.182514, 0.282866",             "0.322976, 0.324677, 0.326168, 0.330961, 0.454972",             "1.562706, 1.563167, 1.562488, 1.561803, 1.609286"          );        }        cell_fall (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.026885, 0.032811, 0.038875, 0.047403, 0.087933",             "0.117282, 0.120145, 0.124314, 0.135271, 0.246516",             "0.211168, 0.212784, 0.215279, 0.223230, 0.363714",             "0.399743, 0.400411, 0.401407, 0.406048, 0.555385",             "1.911052, 1.910726, 1.909802, 1.909023, 1.963658"          );        }        rise_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.024789, 0.028839, 0.037807, 0.058878, 0.265656",             "0.130769, 0.130753, 0.131666, 0.140183, 0.394222",             "0.243431, 0.243415, 0.243392, 0.244961, 0.496125",             "0.468744, 0.468748, 0.468759, 0.468730, 0.635129",             "2.271767, 2.271764, 2.271765, 2.271763, 2.273192"          );        }        fall_transition (delay_template_5x5) {          index_1 (            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"          );          index_2 (            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"          );          values (            "0.028716, 0.030099, 0.037985, 0.059222, 0.254230",             "0.155712, 0.155759, 0.155806, 0.162226, 0.429522",             "0.286550, 0.286491, 0.286518, 0.286872, 0.538319",             "0.548133, 0.548105, 0.548127, 0.548107, 0.702960",             "2.640815, 2.640815, 2.640812, 2.640812, 2.640812"          );        }      }    }  }  cell (XOR2X1) {    pg_pin (vdd) { voltage_name : "vdd"; pg_type : "primary_power"; } pg_pin (gnd) { voltage_name : "gnd"; pg_type : "primary_ground"; } area: 384048.0;    cell_leakage_power: 0.1173;    pin (B) {      direction: input;    }    pin (A) {      direction: input;    }    pin (Y) {      direction: output;      function: "!(!B&!A|B&A)";    }  }}
\ No newline at end of file
diff --git a/cells/mag/AND2X1.mag b/cells/mag/AND2X1.mag
index 9b2ed06..f7c2896 100644
--- a/cells/mag/AND2X1.mag
+++ b/cells/mag/AND2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624574541
+timestamp 1624702434
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -128,47 +128,47 @@
 rect 176 243 209 251
 rect 176 226 184 243
 rect 201 226 209 243
-rect 176 218 209 226
 rect 464 243 497 251
 rect 464 226 472 243
 rect 489 226 497 243
-rect 464 218 497 226
-rect 128 201 159 209
-rect 272 201 305 209
+rect 178 218 209 226
+rect 466 218 497 226
+rect 128 201 161 209
 rect 128 184 136 201
 rect 153 184 161 201
 rect 128 176 161 184
+rect 272 201 305 209
 rect 272 184 280 201
 rect 297 184 305 201
 rect 272 176 305 184
-rect 416 201 447 209
+rect 416 201 449 209
 rect 416 184 424 201
 rect 441 184 449 201
 rect 416 176 449 184
-rect 280 116 297 176
+rect 280 116 297 131
 rect 128 108 161 116
-rect 128 91 136 108
+rect 128 92 136 108
+rect 130 91 136 92
 rect 153 91 161 108
-rect 128 83 161 91
+rect 130 83 161 91
 rect 272 108 305 116
 rect 272 91 280 108
 rect 297 91 305 108
 rect 272 83 305 91
 rect 416 108 449 116
 rect 416 91 424 108
-rect 441 92 449 108
-rect 441 91 447 92
-rect 416 83 447 91
-rect 80 67 111 75
+rect 441 91 449 108
+rect 416 83 449 91
+rect 80 67 113 75
 rect 80 50 88 67
-rect 105 66 111 67
-rect 464 67 497 75
-rect 105 50 113 66
+rect 105 50 113 67
+rect 466 67 497 75
+rect 466 66 472 67
 rect 80 42 113 50
 rect 320 51 353 59
 rect 320 34 328 51
 rect 345 34 353 51
-rect 464 50 472 67
+rect 464 50 472 66
 rect 489 50 497 67
 rect 464 42 497 50
 rect 320 24 353 34
@@ -205,9 +205,10 @@
 rect 184 226 201 243
 rect 472 226 489 243
 rect 136 184 153 201
+rect 280 184 297 201
 rect 424 184 441 201
+rect 280 131 297 148
 rect 136 91 153 108
-rect 280 91 297 108
 rect 424 91 441 108
 rect 88 50 105 67
 rect 328 34 345 51
@@ -260,29 +261,34 @@
 rect 130 184 136 201
 rect 153 184 159 201
 rect 130 178 159 184
-rect 185 200 199 220
-rect 418 201 447 207
-rect 418 200 424 201
-rect 185 186 424 200
 rect 137 114 151 178
 rect 130 108 159 114
 rect 130 91 136 108
 rect 153 91 159 108
 rect 130 85 159 91
+rect 185 106 199 220
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 281 154 295 178
+rect 274 148 303 154
+rect 274 131 280 148
+rect 297 131 303 148
+rect 274 125 303 131
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 185 92 424 106
 rect 82 67 111 73
 rect 82 50 88 67
 rect 105 66 111 67
-rect 185 66 199 186
-rect 418 184 424 186
-rect 441 184 447 201
-rect 418 178 447 184
-rect 425 114 439 178
-rect 274 108 303 114
-rect 274 91 280 108
-rect 297 91 303 108
-rect 274 85 303 91
-rect 418 108 447 114
-rect 418 91 424 108
+rect 185 66 199 92
+rect 418 91 424 92
 rect 441 91 447 108
 rect 418 85 447 91
 rect 473 73 487 220
@@ -313,10 +319,6 @@
 rect 561 -9 576 9
 rect 0 -24 576 -9
 << labels >>
-rlabel metal1 473 73 487 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 178 0 A
-port 9 se
 rlabel locali 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 309 576 357 0 VDD
@@ -327,14 +329,22 @@
 port 4 se
 rlabel metal1 466 44 495 73 0 Y
 port 5 se
+rlabel metal1 473 73 487 220 0 Y
+port 6 se
 rlabel metal1 466 220 495 249 0 Y
 port 7 se
 rlabel metal1 130 85 159 114 0 A
 port 8 se
+rlabel metal1 137 114 151 178 0 A
+port 9 se
 rlabel metal1 130 178 159 207 0 A
 port 10 se
-rlabel metal1 274 85 303 114 0 B
+rlabel metal1 274 125 303 154 0 B
 port 11 se
+rlabel metal1 281 154 295 178 0 B
+port 12 se
+rlabel metal1 274 178 303 207 0 B
+port 13 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
 << end >>
diff --git a/cells/mag/AND2X2.mag b/cells/mag/AND2X2.mag
index b68a432..c747170 100644
--- a/cells/mag/AND2X2.mag
+++ b/cells/mag/AND2X2.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624575376
+timestamp 1624702476
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -128,46 +128,46 @@
 rect 176 243 209 251
 rect 176 226 184 243
 rect 201 226 209 243
-rect 176 218 209 226
 rect 464 243 497 251
 rect 464 226 472 243
 rect 489 226 497 243
-rect 464 218 497 226
-rect 128 201 159 209
-rect 272 201 305 209
+rect 178 218 209 226
+rect 466 218 497 226
+rect 128 201 161 209
 rect 128 184 136 201
 rect 153 184 161 201
 rect 128 176 161 184
+rect 272 201 305 209
 rect 272 184 280 201
 rect 297 184 305 201
 rect 272 176 305 184
-rect 416 201 447 209
+rect 416 201 449 209
 rect 416 184 424 201
 rect 441 184 449 201
 rect 416 176 449 184
 rect 128 108 161 116
-rect 128 91 136 108
+rect 128 92 136 108
+rect 130 91 136 92
 rect 153 91 161 108
-rect 128 83 161 91
+rect 130 83 161 91
 rect 272 108 305 116
 rect 272 91 280 108
 rect 297 91 305 108
 rect 272 83 305 91
 rect 416 108 449 116
 rect 416 91 424 108
-rect 441 92 449 108
-rect 441 91 447 92
-rect 416 83 447 91
-rect 80 67 111 75
+rect 441 91 449 108
+rect 416 83 449 91
+rect 80 67 113 75
 rect 80 50 88 67
-rect 105 66 111 67
-rect 464 67 497 75
-rect 105 50 113 66
+rect 105 50 113 67
+rect 466 67 497 75
+rect 466 66 472 67
 rect 80 42 113 50
 rect 320 51 353 59
 rect 320 34 328 51
 rect 345 34 353 51
-rect 464 50 472 67
+rect 464 50 472 66
 rect 489 50 497 67
 rect 464 42 497 50
 rect 320 24 353 34
@@ -318,12 +318,6 @@
 rect 561 -9 576 9
 rect 0 -24 576 -9
 << labels >>
-rlabel metal1 473 73 487 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 178 0 A
-port 9 se
-rlabel metal1 281 114 295 178 0 B
-port 12 se
 rlabel locali 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 309 576 357 0 VDD
@@ -334,15 +328,21 @@
 port 4 se
 rlabel metal1 466 44 495 73 0 Y
 port 5 se
+rlabel metal1 473 73 487 220 0 Y
+port 6 se
 rlabel metal1 466 220 495 249 0 Y
 port 7 se
-rlabel metal1 130 85 159 114 0 A
-port 8 se
-rlabel metal1 130 178 159 207 0 A
-port 10 se
 rlabel metal1 274 85 303 114 0 B
-port 11 se
+port 8 se
+rlabel metal1 281 114 295 178 0 B
+port 9 se
 rlabel metal1 274 178 303 207 0 B
+port 10 se
+rlabel metal1 130 85 159 114 0 A
+port 11 se
+rlabel metal1 137 114 151 178 0 A
+port 12 se
+rlabel metal1 130 178 159 207 0 A
 port 13 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/AOI21X1.mag b/cells/mag/AOI21X1.mag
index d0b859a..53821ac 100644
--- a/cells/mag/AOI21X1.mag
+++ b/cells/mag/AOI21X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624575380
+timestamp 1624702520
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -132,7 +132,7 @@
 rect 464 226 472 243
 rect 489 226 497 243
 rect 224 218 255 226
-rect 464 218 497 226
+rect 466 218 497 226
 rect 128 201 161 209
 rect 128 184 136 201
 rect 153 184 161 201
@@ -141,7 +141,7 @@
 rect 272 184 280 201
 rect 297 184 305 201
 rect 272 176 305 184
-rect 416 201 447 209
+rect 416 201 449 209
 rect 416 184 424 201
 rect 441 184 449 201
 rect 416 176 449 184
@@ -340,17 +340,17 @@
 port 13 se
 rlabel metal1 130 178 159 207 0 C
 port 14 se
-rlabel metal1 274 85 303 114 0 A
-port 15 se
-rlabel metal1 281 114 295 178 0 A
-port 16 se
-rlabel metal1 274 178 303 207 0 A
-port 17 se
 rlabel metal1 418 85 447 114 0 B
-port 18 se
+port 15 se
 rlabel metal1 425 114 439 178 0 B
-port 19 se
+port 16 se
 rlabel metal1 418 178 447 207 0 B
+port 17 se
+rlabel metal1 274 85 303 114 0 A
+port 18 se
+rlabel metal1 281 114 295 178 0 A
+port 19 se
+rlabel metal1 274 178 303 207 0 A
 port 20 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/AOI22X1.mag b/cells/mag/AOI22X1.mag
index d5f9e94..4f1ae57 100644
--- a/cells/mag/AOI22X1.mag
+++ b/cells/mag/AOI22X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624575385
+timestamp 1624702590
 << nwell >>
 rect 0 179 720 333
 << nmos >>
@@ -33,10 +33,10 @@
 rect 633 50 663 66
 rect 584 24 663 50
 << pdiff >>
-rect 58 283 137 309
-rect 58 266 88 283
-rect 105 266 137 283
-rect 58 225 137 266
+rect 58 256 137 309
+rect 58 239 88 256
+rect 105 239 137 256
+rect 58 225 137 239
 rect 152 299 281 309
 rect 152 282 184 299
 rect 201 282 281 299
@@ -59,7 +59,7 @@
 rect 328 34 345 51
 rect 616 50 633 67
 << pdiffc >>
-rect 88 266 105 283
+rect 88 239 105 256
 rect 184 282 201 299
 rect 376 266 393 283
 rect 520 226 537 243
@@ -142,21 +142,21 @@
 rect 705 325 720 342
 rect 0 309 720 325
 rect 176 299 209 309
-rect 80 283 113 291
-rect 80 266 88 283
-rect 105 266 113 283
 rect 176 282 184 299
 rect 201 282 209 299
 rect 176 274 209 282
 rect 368 283 401 291
-rect 80 258 113 266
 rect 368 266 376 283
 rect 393 266 401 283
+rect 80 256 113 264
 rect 368 258 401 266
 rect 608 283 641 291
 rect 608 266 616 283
 rect 633 266 641 283
 rect 608 258 641 266
+rect 80 239 88 256
+rect 105 239 113 256
+rect 80 231 113 239
 rect 512 243 545 251
 rect 512 226 520 243
 rect 537 226 545 243
@@ -178,10 +178,9 @@
 rect 585 184 593 201
 rect 560 176 593 184
 rect 128 108 161 116
-rect 128 92 136 108
-rect 130 91 136 92
+rect 128 91 136 108
 rect 153 91 161 108
-rect 130 83 161 91
+rect 128 83 161 91
 rect 272 108 305 116
 rect 272 91 280 108
 rect 297 91 305 108
@@ -195,10 +194,11 @@
 rect 585 92 593 108
 rect 585 91 591 92
 rect 560 83 591 91
-rect 80 67 113 75
+rect 80 67 111 75
 rect 80 50 88 67
-rect 105 50 113 67
+rect 105 66 111 67
 rect 608 67 641 75
+rect 105 50 113 66
 rect 80 42 113 50
 rect 320 51 353 59
 rect 320 34 328 51
@@ -241,9 +241,10 @@
 rect 592 325 609 342
 rect 640 325 657 342
 rect 688 325 705 342
-rect 88 266 105 283
+rect 184 282 201 299
 rect 376 266 393 283
 rect 616 266 633 283
+rect 88 239 105 256
 rect 520 226 537 243
 rect 136 184 153 201
 rect 280 184 297 201
@@ -289,27 +290,33 @@
 rect 657 325 688 342
 rect 705 325 720 342
 rect 0 309 720 325
-rect 82 283 111 289
-rect 82 266 88 283
-rect 105 282 111 283
+rect 178 299 207 309
+rect 178 282 184 299
+rect 201 282 207 299
+rect 178 276 207 282
 rect 370 283 399 289
-rect 370 282 376 283
-rect 105 268 376 282
-rect 105 266 111 268
-rect 82 260 111 266
-rect 370 266 376 268
+rect 370 266 376 283
 rect 393 282 399 283
 rect 610 283 639 289
 rect 610 282 616 283
 rect 393 268 616 282
 rect 393 266 399 268
+rect 82 256 111 262
+rect 82 239 88 256
+rect 105 255 111 256
 rect 370 260 399 266
 rect 610 266 616 268
 rect 633 266 639 283
 rect 610 260 639 266
+rect 370 255 391 260
+rect 105 241 391 255
 rect 514 243 543 249
+rect 105 239 111 241
+rect 82 233 111 239
 rect 514 226 520 243
-rect 537 226 543 243
+rect 537 241 543 243
+rect 537 227 631 241
+rect 537 226 543 227
 rect 514 220 543 226
 rect 130 201 159 207
 rect 130 184 136 201
@@ -323,9 +330,14 @@
 rect 418 184 424 201
 rect 441 184 447 201
 rect 418 178 447 184
+rect 562 201 591 207
+rect 562 184 568 201
+rect 585 184 591 201
+rect 562 178 591 184
 rect 137 114 151 178
 rect 281 114 295 178
 rect 425 114 439 178
+rect 569 114 583 178
 rect 130 108 159 114
 rect 130 91 136 108
 rect 153 91 159 108
@@ -338,19 +350,14 @@
 rect 418 91 424 108
 rect 441 91 447 108
 rect 418 85 447 91
-rect 82 67 111 73
-rect 82 50 88 67
-rect 105 66 111 67
-rect 521 66 535 220
-rect 562 201 591 207
-rect 562 184 568 201
-rect 585 184 591 201
-rect 562 178 591 184
-rect 569 114 583 178
 rect 562 108 591 114
 rect 562 91 568 108
 rect 585 91 591 108
 rect 562 85 591 91
+rect 617 73 631 227
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
 rect 610 67 639 73
 rect 610 66 616 67
 rect 105 52 616 66
@@ -396,34 +403,38 @@
 port 8 se
 rlabel metal1 610 66 639 73 0 Y
 port 9 se
-rlabel metal1 521 66 535 220 0 Y
+rlabel metal1 514 220 543 227 0 Y
 port 10 se
-rlabel metal1 514 220 543 249 0 Y
+rlabel metal1 617 73 631 227 0 Y
 port 11 se
-rlabel metal1 562 85 591 114 0 D
+rlabel metal1 514 227 631 241 0 Y
 port 12 se
-rlabel metal1 569 114 583 178 0 D
+rlabel metal1 514 241 543 249 0 Y
 port 13 se
-rlabel metal1 562 178 591 207 0 D
-port 14 se
-rlabel metal1 274 85 303 114 0 A
-port 15 se
-rlabel metal1 281 114 295 178 0 A
-port 16 se
-rlabel metal1 274 178 303 207 0 A
-port 17 se
-rlabel metal1 130 85 159 114 0 B
-port 18 se
-rlabel metal1 137 114 151 178 0 B
-port 19 se
-rlabel metal1 130 178 159 207 0 B
-port 20 se
 rlabel metal1 418 85 447 114 0 C
-port 21 se
+port 14 se
 rlabel metal1 425 114 439 178 0 C
-port 22 se
+port 15 se
 rlabel metal1 418 178 447 207 0 C
+port 16 se
+rlabel metal1 562 85 591 114 0 D
+port 17 se
+rlabel metal1 569 114 583 178 0 D
+port 18 se
+rlabel metal1 562 178 591 207 0 D
+port 19 se
+rlabel metal1 274 85 303 114 0 A
+port 20 se
+rlabel metal1 281 114 295 178 0 A
+port 21 se
+rlabel metal1 274 178 303 207 0 A
+port 22 se
+rlabel metal1 130 85 159 114 0 B
 port 23 se
+rlabel metal1 137 114 151 178 0 B
+port 24 se
+rlabel metal1 130 178 159 207 0 B
+port 25 se
 << properties >>
 string FIXED_BBOX 0 0 720 333
 << end >>
diff --git a/cells/mag/BUFX2.mag b/cells/mag/BUFX2.mag
index 4534d9c..7cf17ed 100644
--- a/cells/mag/BUFX2.mag
+++ b/cells/mag/BUFX2.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624570822
+timestamp 1624702717
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -111,7 +111,7 @@
 rect 272 184 280 201
 rect 297 184 305 201
 rect 272 176 305 184
-rect 136 162 153 176
+rect 136 116 153 131
 rect 128 108 161 116
 rect 128 91 136 108
 rect 153 91 161 108
@@ -158,9 +158,9 @@
 rect 184 282 201 299
 rect 64 226 81 243
 rect 328 226 345 243
+rect 136 184 153 201
 rect 280 184 297 201
-rect 136 145 153 162
-rect 136 91 153 108
+rect 136 131 153 148
 rect 280 91 297 108
 rect 64 50 81 67
 rect 184 34 201 51
@@ -199,26 +199,26 @@
 rect 322 226 328 243
 rect 345 226 351 243
 rect 322 220 351 226
-rect 65 200 79 220
+rect 65 106 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
 rect 274 201 303 207
-rect 274 200 280 201
-rect 65 186 280 200
-rect 65 73 79 186
-rect 274 184 280 186
+rect 274 184 280 201
 rect 297 184 303 201
 rect 274 178 303 184
-rect 130 162 159 168
-rect 130 145 136 162
-rect 153 145 159 162
-rect 130 139 159 145
-rect 137 114 151 139
+rect 137 154 151 178
+rect 130 148 159 154
+rect 130 131 136 148
+rect 153 131 159 148
+rect 130 125 159 131
 rect 281 114 295 178
-rect 130 108 159 114
-rect 130 91 136 108
-rect 153 91 159 108
-rect 130 85 159 91
 rect 274 108 303 114
-rect 274 91 280 108
+rect 274 106 280 108
+rect 65 92 280 106
+rect 65 73 79 92
+rect 274 91 280 92
 rect 297 91 303 108
 rect 274 85 303 91
 rect 329 73 343 220
@@ -247,10 +247,6 @@
 rect 417 -9 432 9
 rect 0 -24 432 -9
 << labels >>
-rlabel metal1 329 73 343 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 139 0 A
-port 9 se
 rlabel locali 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 309 432 357 0 VDD
@@ -261,11 +257,15 @@
 port 4 se
 rlabel metal1 322 44 351 73 0 Y
 port 5 se
+rlabel metal1 329 73 343 220 0 Y
+port 6 se
 rlabel metal1 322 220 351 249 0 Y
 port 7 se
-rlabel metal1 130 85 159 114 0 A
+rlabel metal1 130 125 159 154 0 A
 port 8 se
-rlabel metal1 130 139 159 168 0 A
+rlabel metal1 137 154 151 178 0 A
+port 9 se
+rlabel metal1 130 178 159 207 0 A
 port 10 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
diff --git a/cells/mag/BUFX4.mag b/cells/mag/BUFX4.mag
new file mode 100644
index 0000000..48f30af
--- /dev/null
+++ b/cells/mag/BUFX4.mag
@@ -0,0 +1,363 @@
+magic
+tech sky130A
+timestamp 1624702806
+<< nwell >>
+rect 0 179 576 333
+<< nmos >>
+rect 137 24 152 66
+rect 281 24 296 66
+rect 425 24 440 66
+<< pmos >>
+rect 137 225 152 309
+rect 281 225 296 309
+rect 425 225 440 309
+<< ndiff >>
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 66 87 67
+rect 370 67 399 73
+rect 370 66 376 67
+rect 81 50 137 66
+rect 58 24 137 50
+rect 152 51 281 66
+rect 152 34 184 51
+rect 201 34 281 51
+rect 152 24 281 34
+rect 296 50 376 66
+rect 393 66 399 67
+rect 393 50 425 66
+rect 296 24 425 50
+rect 440 51 519 66
+rect 440 34 472 51
+rect 489 34 519 51
+rect 440 24 519 34
+<< pdiff >>
+rect 58 243 137 309
+rect 58 226 64 243
+rect 81 226 137 243
+rect 58 225 137 226
+rect 152 299 281 309
+rect 152 282 184 299
+rect 201 282 281 299
+rect 152 225 281 282
+rect 296 243 425 309
+rect 296 226 376 243
+rect 393 226 425 243
+rect 296 225 425 226
+rect 440 299 519 309
+rect 440 282 472 299
+rect 489 282 519 299
+rect 440 225 519 282
+rect 58 220 87 225
+rect 370 220 399 225
+<< ndiffc >>
+rect 64 50 81 67
+rect 184 34 201 51
+rect 376 50 393 67
+rect 472 34 489 51
+<< pdiffc >>
+rect 64 226 81 243
+rect 184 282 201 299
+rect 376 226 393 243
+rect 472 282 489 299
+<< poly >>
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 137 11 152 24
+rect 281 11 296 24
+rect 425 11 440 24
+<< polycont >>
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+<< locali >>
+rect 0 342 576 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 576 342
+rect 0 309 576 325
+rect 176 299 209 309
+rect 176 282 184 299
+rect 201 282 209 299
+rect 176 274 209 282
+rect 464 299 497 309
+rect 464 282 472 299
+rect 489 282 497 299
+rect 464 274 497 282
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+rect 56 218 89 226
+rect 368 243 401 251
+rect 368 226 376 243
+rect 393 226 401 243
+rect 368 218 401 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 418 201 449 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 136 116 153 131
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 416 108 449 116
+rect 416 92 424 108
+rect 272 83 305 91
+rect 418 91 424 92
+rect 441 91 449 108
+rect 418 83 449 91
+rect 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 368 67 401 75
+rect 56 42 89 50
+rect 176 51 209 59
+rect 176 34 184 51
+rect 201 34 209 51
+rect 368 50 376 67
+rect 393 50 401 67
+rect 368 42 401 50
+rect 464 51 497 59
+rect 176 24 209 34
+rect 464 34 472 51
+rect 489 34 497 51
+rect 464 24 497 34
+rect 0 9 576 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 576 9
+rect 0 -24 576 -9
+<< viali >>
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+rect 304 325 321 342
+rect 352 325 369 342
+rect 400 325 417 342
+rect 448 325 465 342
+rect 496 325 513 342
+rect 544 325 561 342
+rect 184 282 201 299
+rect 472 282 489 299
+rect 64 226 81 243
+rect 376 226 393 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 131 153 148
+rect 280 91 297 108
+rect 424 91 441 108
+rect 64 50 81 67
+rect 184 34 201 51
+rect 376 50 393 67
+rect 16 -9 33 9
+rect 64 -9 81 9
+rect 112 -9 129 9
+rect 160 -9 177 9
+rect 208 -9 225 9
+rect 256 -9 273 9
+rect 304 -9 321 9
+rect 352 -9 369 9
+rect 400 -9 417 9
+rect 448 -9 465 9
+rect 496 -9 513 9
+rect 544 -9 561 9
+<< metal1 >>
+rect 0 342 576 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 576 342
+rect 0 309 576 325
+rect 178 299 207 309
+rect 178 282 184 299
+rect 201 282 207 299
+rect 178 276 207 282
+rect 466 299 495 309
+rect 466 282 472 299
+rect 489 282 495 299
+rect 466 276 495 282
+rect 58 243 87 249
+rect 58 226 64 243
+rect 81 226 87 243
+rect 58 220 87 226
+rect 370 243 399 249
+rect 370 226 376 243
+rect 393 241 399 243
+rect 393 227 487 241
+rect 393 226 399 227
+rect 370 220 399 226
+rect 65 106 79 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 154 151 178
+rect 130 148 159 154
+rect 130 131 136 148
+rect 153 131 159 148
+rect 130 125 159 131
+rect 281 114 295 178
+rect 425 114 439 178
+rect 274 108 303 114
+rect 274 106 280 108
+rect 65 92 280 106
+rect 65 73 79 92
+rect 274 91 280 92
+rect 297 106 303 108
+rect 418 108 447 114
+rect 418 106 424 108
+rect 297 92 424 106
+rect 297 91 303 92
+rect 274 85 303 91
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 370 67 399 73
+rect 58 44 87 50
+rect 178 51 207 57
+rect 178 34 184 51
+rect 201 34 207 51
+rect 370 50 376 67
+rect 393 66 399 67
+rect 473 66 487 227
+rect 393 52 487 66
+rect 393 50 399 52
+rect 370 44 399 50
+rect 178 24 207 34
+rect 0 9 576 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 576 9
+rect 0 -24 576 -9
+<< labels >>
+rlabel locali 0 309 576 357 0 VDD
+port 1 se
+rlabel metal1 0 309 576 357 0 VDD
+port 2 se
+rlabel locali 0 -24 576 24 0 GND
+port 3 se
+rlabel metal1 0 -24 576 24 0 GND
+port 4 se
+rlabel metal1 370 44 399 52 0 Y
+port 5 se
+rlabel metal1 370 52 487 66 0 Y
+port 6 se
+rlabel metal1 370 66 399 73 0 Y
+port 7 se
+rlabel metal1 370 220 399 227 0 Y
+port 8 se
+rlabel metal1 473 66 487 227 0 Y
+port 9 se
+rlabel metal1 370 227 487 241 0 Y
+port 10 se
+rlabel metal1 370 241 399 249 0 Y
+port 11 se
+rlabel metal1 130 125 159 154 0 A
+port 12 se
+rlabel metal1 137 154 151 178 0 A
+port 13 se
+rlabel metal1 130 178 159 207 0 A
+port 14 se
+<< properties >>
+string FIXED_BBOX 0 0 576 333
+<< end >>
diff --git a/cells/mag/CLKBUF1.mag b/cells/mag/CLKBUF1.mag
new file mode 100644
index 0000000..0f26eb5
--- /dev/null
+++ b/cells/mag/CLKBUF1.mag
@@ -0,0 +1,781 @@
+magic
+tech sky130A
+timestamp 1624702890
+<< nwell >>
+rect 0 179 1296 333
+<< nmos >>
+rect 137 24 152 66
+rect 281 24 296 66
+rect 425 24 440 66
+rect 569 24 584 66
+rect 713 24 728 66
+rect 857 24 872 66
+rect 1001 24 1016 66
+rect 1145 24 1160 66
+<< pmos >>
+rect 137 225 152 309
+rect 281 225 296 309
+rect 425 225 440 309
+rect 569 225 584 309
+rect 713 225 728 309
+rect 857 225 872 309
+rect 1001 225 1016 309
+rect 1145 225 1160 309
+<< ndiff >>
+rect 178 67 207 73
+rect 178 66 184 67
+rect 58 51 137 66
+rect 58 34 64 51
+rect 81 34 137 51
+rect 58 24 137 34
+rect 152 50 184 66
+rect 201 66 207 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 201 50 281 66
+rect 152 24 281 50
+rect 296 51 425 66
+rect 296 34 328 51
+rect 345 34 425 51
+rect 296 24 425 34
+rect 440 50 472 66
+rect 489 66 495 67
+rect 754 67 783 73
+rect 754 66 760 67
+rect 489 50 569 66
+rect 440 24 569 50
+rect 584 51 713 66
+rect 584 34 616 51
+rect 633 34 713 51
+rect 584 24 713 34
+rect 728 50 760 66
+rect 777 66 783 67
+rect 1042 67 1071 73
+rect 1042 66 1048 67
+rect 777 50 857 66
+rect 728 24 857 50
+rect 872 51 1001 66
+rect 872 34 904 51
+rect 921 34 1001 51
+rect 872 24 1001 34
+rect 1016 50 1048 66
+rect 1065 66 1071 67
+rect 1065 50 1145 66
+rect 1016 24 1145 50
+rect 1160 51 1239 66
+rect 1160 34 1192 51
+rect 1209 34 1239 51
+rect 1160 24 1239 34
+<< pdiff >>
+rect 58 299 137 309
+rect 58 282 64 299
+rect 81 282 137 299
+rect 58 225 137 282
+rect 152 243 281 309
+rect 152 226 184 243
+rect 201 226 281 243
+rect 152 225 281 226
+rect 296 299 425 309
+rect 296 282 328 299
+rect 345 282 425 299
+rect 296 225 425 282
+rect 440 243 569 309
+rect 440 226 472 243
+rect 489 226 569 243
+rect 440 225 569 226
+rect 584 299 713 309
+rect 584 282 616 299
+rect 633 282 713 299
+rect 584 225 713 282
+rect 728 243 857 309
+rect 728 226 760 243
+rect 777 226 857 243
+rect 728 225 857 226
+rect 872 299 1001 309
+rect 872 282 904 299
+rect 921 282 1001 299
+rect 872 225 1001 282
+rect 1016 243 1145 309
+rect 1016 226 1048 243
+rect 1065 226 1145 243
+rect 1016 225 1145 226
+rect 1160 299 1239 309
+rect 1160 282 1192 299
+rect 1209 282 1239 299
+rect 1160 225 1239 282
+rect 178 220 207 225
+rect 466 220 495 225
+rect 754 220 783 225
+rect 1042 220 1071 225
+<< ndiffc >>
+rect 64 34 81 51
+rect 184 50 201 67
+rect 328 34 345 51
+rect 472 50 489 67
+rect 616 34 633 51
+rect 760 50 777 67
+rect 904 34 921 51
+rect 1048 50 1065 67
+rect 1192 34 1209 51
+<< pdiffc >>
+rect 64 282 81 299
+rect 184 226 201 243
+rect 328 282 345 299
+rect 472 226 489 243
+rect 616 282 633 299
+rect 760 226 777 243
+rect 904 282 921 299
+rect 1048 226 1065 243
+rect 1192 282 1209 299
+<< poly >>
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 713 309 728 322
+rect 857 309 872 322
+rect 1001 309 1016 322
+rect 1145 309 1160 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 713 209 728 225
+rect 857 209 872 225
+rect 1001 209 1016 225
+rect 1145 209 1160 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 737 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
+rect 848 201 881 209
+rect 848 184 856 201
+rect 873 184 881 201
+rect 848 176 881 184
+rect 992 201 1025 209
+rect 992 184 1000 201
+rect 1017 184 1025 201
+rect 992 176 1025 184
+rect 1136 201 1169 209
+rect 1136 184 1144 201
+rect 1161 184 1169 201
+rect 1136 176 1169 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 704 108 737 116
+rect 704 91 712 108
+rect 729 91 737 108
+rect 704 83 737 91
+rect 848 108 881 116
+rect 848 91 856 108
+rect 873 91 881 108
+rect 848 83 881 91
+rect 992 108 1025 116
+rect 992 91 1000 108
+rect 1017 91 1025 108
+rect 992 83 1025 91
+rect 1136 108 1169 116
+rect 1136 91 1144 108
+rect 1161 91 1169 108
+rect 1136 83 1169 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
+rect 713 66 728 83
+rect 857 66 872 83
+rect 1001 66 1016 83
+rect 1145 66 1160 83
+rect 137 11 152 24
+rect 281 11 296 24
+rect 425 11 440 24
+rect 569 11 584 24
+rect 713 11 728 24
+rect 857 11 872 24
+rect 1001 11 1016 24
+rect 1145 11 1160 24
+<< polycont >>
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 712 184 729 201
+rect 856 184 873 201
+rect 1000 184 1017 201
+rect 1144 184 1161 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 712 91 729 108
+rect 856 91 873 108
+rect 1000 91 1017 108
+rect 1144 91 1161 108
+<< locali >>
+rect 0 342 1296 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 592 342
+rect 609 325 640 342
+rect 657 325 688 342
+rect 705 325 736 342
+rect 753 325 784 342
+rect 801 325 832 342
+rect 849 325 880 342
+rect 897 325 928 342
+rect 945 325 976 342
+rect 993 325 1024 342
+rect 1041 325 1072 342
+rect 1089 325 1120 342
+rect 1137 325 1168 342
+rect 1185 325 1216 342
+rect 1233 325 1264 342
+rect 1281 325 1296 342
+rect 0 309 1296 325
+rect 56 299 89 309
+rect 56 282 64 299
+rect 81 282 89 299
+rect 56 274 89 282
+rect 320 299 353 309
+rect 320 282 328 299
+rect 345 282 353 299
+rect 320 274 353 282
+rect 608 299 641 309
+rect 608 282 616 299
+rect 633 282 641 299
+rect 608 274 641 282
+rect 896 299 929 309
+rect 896 282 904 299
+rect 921 282 929 299
+rect 896 274 929 282
+rect 1184 299 1217 309
+rect 1184 282 1192 299
+rect 1209 282 1217 299
+rect 1184 274 1217 282
+rect 176 243 209 251
+rect 176 226 184 243
+rect 201 226 209 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 178 218 209 226
+rect 466 218 497 226
+rect 752 243 785 251
+rect 752 226 760 243
+rect 777 226 785 243
+rect 1040 243 1073 251
+rect 1040 226 1048 243
+rect 1065 226 1073 243
+rect 752 218 785 226
+rect 1042 218 1073 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 735 209
+rect 848 201 881 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
+rect 848 184 856 201
+rect 873 184 881 201
+rect 848 176 881 184
+rect 992 201 1025 209
+rect 992 184 1000 201
+rect 1017 184 1025 201
+rect 992 176 1025 184
+rect 1136 201 1169 209
+rect 1136 184 1144 201
+rect 1161 184 1169 201
+rect 1136 176 1169 184
+rect 280 116 297 176
+rect 568 116 585 176
+rect 856 116 873 176
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 92 449 108
+rect 560 108 593 116
+rect 441 91 447 92
+rect 416 83 447 91
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 704 108 737 116
+rect 704 91 712 108
+rect 729 92 737 108
+rect 848 108 881 116
+rect 729 91 735 92
+rect 704 83 735 91
+rect 848 91 856 108
+rect 873 91 881 108
+rect 848 83 881 91
+rect 992 108 1025 116
+rect 992 91 1000 108
+rect 1017 92 1025 108
+rect 1017 91 1023 92
+rect 992 83 1023 91
+rect 1048 75 1065 131
+rect 1136 108 1169 116
+rect 1136 91 1144 108
+rect 1161 91 1169 108
+rect 1136 83 1169 91
+rect 178 67 209 75
+rect 178 66 184 67
+rect 56 51 89 59
+rect 56 34 64 51
+rect 81 34 89 51
+rect 176 50 184 66
+rect 201 50 209 67
+rect 464 67 497 75
+rect 176 42 209 50
+rect 320 51 353 59
+rect 56 24 89 34
+rect 320 34 328 51
+rect 345 34 353 51
+rect 464 50 472 67
+rect 489 50 497 67
+rect 752 67 785 75
+rect 464 42 497 50
+rect 608 51 641 59
+rect 320 24 353 34
+rect 608 34 616 51
+rect 633 34 641 51
+rect 752 50 760 67
+rect 777 50 785 67
+rect 1040 67 1073 75
+rect 752 42 785 50
+rect 896 51 929 59
+rect 608 24 641 34
+rect 896 34 904 51
+rect 921 34 929 51
+rect 1040 50 1048 67
+rect 1065 50 1073 67
+rect 1040 42 1073 50
+rect 1184 51 1217 59
+rect 896 24 929 34
+rect 1184 34 1192 51
+rect 1209 34 1217 51
+rect 1184 24 1217 34
+rect 0 9 1296 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 592 9
+rect 609 -9 640 9
+rect 657 -9 688 9
+rect 705 -9 736 9
+rect 753 -9 784 9
+rect 801 -9 832 9
+rect 849 -9 880 9
+rect 897 -9 928 9
+rect 945 -9 976 9
+rect 993 -9 1024 9
+rect 1041 -9 1072 9
+rect 1089 -9 1120 9
+rect 1137 -9 1168 9
+rect 1185 -9 1216 9
+rect 1233 -9 1264 9
+rect 1281 -9 1296 9
+rect 0 -24 1296 -9
+<< viali >>
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+rect 304 325 321 342
+rect 352 325 369 342
+rect 400 325 417 342
+rect 448 325 465 342
+rect 496 325 513 342
+rect 544 325 561 342
+rect 592 325 609 342
+rect 640 325 657 342
+rect 688 325 705 342
+rect 736 325 753 342
+rect 784 325 801 342
+rect 832 325 849 342
+rect 880 325 897 342
+rect 928 325 945 342
+rect 976 325 993 342
+rect 1024 325 1041 342
+rect 1072 325 1089 342
+rect 1120 325 1137 342
+rect 1168 325 1185 342
+rect 1216 325 1233 342
+rect 1264 325 1281 342
+rect 64 282 81 299
+rect 328 282 345 299
+rect 616 282 633 299
+rect 904 282 921 299
+rect 1192 282 1209 299
+rect 184 226 201 243
+rect 472 226 489 243
+rect 760 226 777 243
+rect 1048 226 1065 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 712 184 729 201
+rect 856 184 873 201
+rect 1000 184 1017 201
+rect 1144 184 1161 201
+rect 1048 131 1065 148
+rect 136 91 153 108
+rect 424 91 441 108
+rect 712 91 729 108
+rect 1000 91 1017 108
+rect 1144 91 1161 108
+rect 64 34 81 51
+rect 184 50 201 67
+rect 328 34 345 51
+rect 472 50 489 67
+rect 616 34 633 51
+rect 760 50 777 67
+rect 904 34 921 51
+rect 1192 34 1209 51
+rect 16 -9 33 9
+rect 64 -9 81 9
+rect 112 -9 129 9
+rect 160 -9 177 9
+rect 208 -9 225 9
+rect 256 -9 273 9
+rect 304 -9 321 9
+rect 352 -9 369 9
+rect 400 -9 417 9
+rect 448 -9 465 9
+rect 496 -9 513 9
+rect 544 -9 561 9
+rect 592 -9 609 9
+rect 640 -9 657 9
+rect 688 -9 705 9
+rect 736 -9 753 9
+rect 784 -9 801 9
+rect 832 -9 849 9
+rect 880 -9 897 9
+rect 928 -9 945 9
+rect 976 -9 993 9
+rect 1024 -9 1041 9
+rect 1072 -9 1089 9
+rect 1120 -9 1137 9
+rect 1168 -9 1185 9
+rect 1216 -9 1233 9
+rect 1264 -9 1281 9
+<< metal1 >>
+rect 0 342 1296 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 592 342
+rect 609 325 640 342
+rect 657 325 688 342
+rect 705 325 736 342
+rect 753 325 784 342
+rect 801 325 832 342
+rect 849 325 880 342
+rect 897 325 928 342
+rect 945 325 976 342
+rect 993 325 1024 342
+rect 1041 325 1072 342
+rect 1089 325 1120 342
+rect 1137 325 1168 342
+rect 1185 325 1216 342
+rect 1233 325 1264 342
+rect 1281 325 1296 342
+rect 0 309 1296 325
+rect 58 299 87 309
+rect 58 282 64 299
+rect 81 282 87 299
+rect 322 299 351 309
+rect 322 282 328 299
+rect 345 282 351 299
+rect 610 299 639 309
+rect 610 282 616 299
+rect 633 282 639 299
+rect 898 299 927 309
+rect 898 282 904 299
+rect 921 282 927 299
+rect 58 276 87 282
+rect 137 268 295 282
+rect 322 276 351 282
+rect 137 207 151 268
+rect 178 243 207 249
+rect 178 226 184 243
+rect 201 226 207 243
+rect 178 220 207 226
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 137 114 151 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 185 106 199 220
+rect 281 207 295 268
+rect 425 268 583 282
+rect 610 276 639 282
+rect 425 207 439 268
+rect 466 243 495 249
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 185 92 424 106
+rect 185 73 199 92
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 473 106 487 220
+rect 569 207 583 268
+rect 713 268 871 282
+rect 898 276 927 282
+rect 1186 299 1215 309
+rect 1186 282 1192 299
+rect 1209 282 1215 299
+rect 1186 276 1215 282
+rect 713 207 727 268
+rect 754 243 783 249
+rect 754 226 760 243
+rect 777 226 783 243
+rect 754 220 783 226
+rect 562 201 591 207
+rect 562 184 568 201
+rect 585 184 591 201
+rect 562 178 591 184
+rect 706 201 735 207
+rect 706 184 712 201
+rect 729 184 735 201
+rect 706 178 735 184
+rect 713 114 727 178
+rect 706 108 735 114
+rect 706 106 712 108
+rect 473 92 712 106
+rect 473 73 487 92
+rect 706 91 712 92
+rect 729 91 735 108
+rect 706 85 735 91
+rect 761 106 775 220
+rect 857 207 871 268
+rect 1042 243 1071 249
+rect 1042 226 1048 243
+rect 1065 226 1071 243
+rect 1042 220 1071 226
+rect 850 201 879 207
+rect 850 184 856 201
+rect 873 184 879 201
+rect 850 178 879 184
+rect 994 201 1023 207
+rect 994 184 1000 201
+rect 1017 184 1023 201
+rect 994 178 1023 184
+rect 1001 114 1015 178
+rect 1049 154 1063 220
+rect 1138 201 1167 207
+rect 1138 184 1144 201
+rect 1161 184 1167 201
+rect 1138 178 1167 184
+rect 1042 148 1071 154
+rect 1042 131 1048 148
+rect 1065 131 1071 148
+rect 1042 125 1071 131
+rect 1145 114 1159 178
+rect 994 108 1023 114
+rect 994 106 1000 108
+rect 761 92 1000 106
+rect 761 73 775 92
+rect 994 91 1000 92
+rect 1017 106 1023 108
+rect 1138 108 1167 114
+rect 1138 106 1144 108
+rect 1017 92 1144 106
+rect 1017 91 1023 92
+rect 994 85 1023 91
+rect 1138 91 1144 92
+rect 1161 91 1167 108
+rect 1138 85 1167 91
+rect 178 67 207 73
+rect 58 51 87 57
+rect 58 34 64 51
+rect 81 34 87 51
+rect 178 50 184 67
+rect 201 50 207 67
+rect 466 67 495 73
+rect 178 44 207 50
+rect 322 51 351 57
+rect 58 24 87 34
+rect 322 34 328 51
+rect 345 34 351 51
+rect 466 50 472 67
+rect 489 50 495 67
+rect 754 67 783 73
+rect 466 44 495 50
+rect 610 51 639 57
+rect 322 24 351 34
+rect 610 34 616 51
+rect 633 34 639 51
+rect 754 50 760 67
+rect 777 50 783 67
+rect 754 44 783 50
+rect 898 51 927 57
+rect 610 24 639 34
+rect 898 34 904 51
+rect 921 34 927 51
+rect 898 24 927 34
+rect 1186 51 1215 57
+rect 1186 34 1192 51
+rect 1209 34 1215 51
+rect 1186 24 1215 34
+rect 0 9 1296 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 592 9
+rect 609 -9 640 9
+rect 657 -9 688 9
+rect 705 -9 736 9
+rect 753 -9 784 9
+rect 801 -9 832 9
+rect 849 -9 880 9
+rect 897 -9 928 9
+rect 945 -9 976 9
+rect 993 -9 1024 9
+rect 1041 -9 1072 9
+rect 1089 -9 1120 9
+rect 1137 -9 1168 9
+rect 1185 -9 1216 9
+rect 1233 -9 1264 9
+rect 1281 -9 1296 9
+rect 0 -24 1296 -9
+<< labels >>
+rlabel locali 0 309 1296 357 0 VDD
+port 1 se
+rlabel metal1 0 309 1296 357 0 VDD
+port 2 se
+rlabel locali 0 -24 1296 24 0 GND
+port 3 se
+rlabel metal1 0 -24 1296 24 0 GND
+port 4 se
+rlabel metal1 1042 125 1071 154 0 Y
+port 5 se
+rlabel metal1 1049 154 1063 220 0 Y
+port 6 se
+rlabel metal1 1042 220 1071 249 0 Y
+port 7 se
+rlabel metal1 130 85 159 114 0 A
+port 8 se
+rlabel metal1 137 114 151 178 0 A
+port 9 se
+rlabel metal1 130 178 159 207 0 A
+port 10 se
+rlabel metal1 274 178 303 207 0 A
+port 11 se
+rlabel metal1 137 207 151 268 0 A
+port 12 se
+rlabel metal1 281 207 295 268 0 A
+port 13 se
+rlabel metal1 137 268 295 282 0 A
+port 14 se
+<< properties >>
+string FIXED_BBOX 0 0 1296 333
+<< end >>
diff --git a/cells/mag/INV.mag b/cells/mag/INV.mag
index 8fb5f9d..e2560ce 100644
--- a/cells/mag/INV.mag
+++ b/cells/mag/INV.mag
@@ -1,182 +1,103 @@
 magic
+# Generated by librecell
 tech sky130A
-timestamp 1624567840
+timestamp 1624703027
 << nwell >>
 rect 0 179 288 333
-<< nmos >>
-rect 137 24 152 66
-<< pmos >>
-rect 137 225 152 309
-<< ndiff >>
-rect 58 67 87 73
-rect 58 50 64 67
-rect 81 66 87 67
-rect 81 50 137 66
-rect 58 24 137 50
-rect 152 51 231 66
-rect 152 34 184 51
-rect 201 34 231 51
-rect 152 24 231 34
-<< pdiff >>
-rect 58 243 137 309
-rect 58 226 64 243
-rect 81 226 137 243
-rect 58 225 137 226
-rect 152 299 231 309
-rect 152 282 184 299
-rect 201 282 231 299
-rect 152 225 231 282
-rect 58 220 87 225
-<< ndiffc >>
-rect 64 50 81 67
-rect 184 34 201 51
-<< pdiffc >>
-rect 64 226 81 243
-rect 184 282 201 299
-<< poly >>
-rect 137 309 152 322
-rect 137 209 152 225
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 137 66 152 83
-rect 137 11 152 24
-<< polycont >>
-rect 136 184 153 201
-rect 136 91 153 108
-<< locali >>
-rect 0 342 288 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 288 342
-rect 0 309 288 325
-rect 176 299 209 309
-rect 176 282 184 299
-rect 201 282 209 299
-rect 176 274 209 282
-rect 56 243 89 251
-rect 56 226 64 243
-rect 81 226 89 243
-rect 56 218 89 226
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 56 67 89 75
-rect 56 50 64 67
-rect 81 50 89 67
-rect 56 42 89 50
-rect 176 51 209 59
-rect 176 34 184 51
-rect 201 34 209 51
-rect 176 24 209 34
-rect 0 9 288 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 288 9
-rect 0 -24 288 -9
 << viali >>
-rect 16 325 33 342
-rect 64 325 81 342
-rect 112 325 129 342
-rect 160 325 177 342
-rect 208 325 225 342
-rect 256 325 273 342
-rect 184 282 201 299
-rect 64 226 81 243
-rect 136 184 153 201
-rect 136 91 153 108
-rect 64 50 81 67
-rect 184 34 201 51
 rect 16 -9 33 9
 rect 64 -9 81 9
 rect 112 -9 129 9
 rect 160 -9 177 9
 rect 208 -9 225 9
 rect 256 -9 273 9
-<< metal1 >>
-rect 0 342 288 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 288 342
-rect 0 309 288 325
-rect 178 299 207 309
-rect 178 282 184 299
-rect 201 282 207 299
-rect 178 276 207 282
-rect 58 243 87 249
-rect 58 226 64 243
-rect 81 226 87 243
-rect 58 220 87 226
-rect 65 73 79 220
-rect 130 201 159 207
-rect 130 184 136 201
-rect 153 184 159 201
-rect 130 178 159 184
-rect 137 114 151 178
-rect 130 108 159 114
-rect 130 91 136 108
-rect 153 91 159 108
-rect 130 85 159 91
-rect 58 67 87 73
-rect 58 50 64 67
-rect 81 50 87 67
-rect 58 44 87 50
-rect 178 51 207 57
-rect 178 34 184 51
-rect 201 34 207 51
-rect 178 24 207 34
-rect 0 9 288 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 288 9
-rect 0 -24 288 -9
-<< labels >>
-rlabel metal1 65 73 79 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 178 0 A
-port 9 se
-rlabel locali 0 309 288 357 0 VDD
-port 1 se
-rlabel metal1 0 309 288 357 0 VDD
-port 2 se
-rlabel locali 0 -24 288 24 0 GND
-port 3 se
-rlabel metal1 0 -24 288 24 0 GND
-port 4 se
-rlabel metal1 58 44 87 73 0 Y
-port 5 se
-rlabel metal1 58 220 87 249 0 Y
-port 7 se
-rlabel metal1 130 85 159 114 0 A
-port 8 se
-rlabel metal1 130 178 159 207 0 A
-port 10 se
+rect 184 34 201 51
+rect 64 50 81 67
+rect 136 91 153 108
+rect 136 184 153 201
+rect 64 226 81 243
+rect 184 282 201 299
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+<< poly >>
+rect 137 11 152 83
+rect 128 83 161 116
+rect 128 176 161 209
+rect 137 209 152 322
 << properties >>
 string FIXED_BBOX 0 0 288 333
+<< li1 >>
+rect 0 -24 288 24
+rect 176 24 209 59
+rect 56 42 89 75
+rect 128 83 161 116
+rect 128 176 161 209
+rect 56 218 89 251
+rect 176 274 209 309
+rect 0 309 288 357
+<< met1 >>
+rect 0 -24 288 24
+rect 178 24 207 57
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 178 276 207 309
+rect 0 309 288 357
+<< li1 >>
+<< met1 >>
+<< li1 >>
+<< met1 >>
+rect 0 -24 288 24
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 0 309 288 357
+<< ndiffusion >>
+rect 58 24 231 66
+rect 58 66 87 73
+<< pdiffusion >>
+rect 58 220 87 225
+rect 58 225 231 309
+<< polycont >>
+rect 136 91 153 108
+rect 136 184 153 201
+<< pdiffc >>
+rect 64 226 81 243
+rect 184 282 201 299
+<< ndiffc >>
+rect 184 34 201 51
+rect 64 50 81 67
+<< allnactivetap >>
+<< allpactivetap >>
+<< labels >>
+rlabel li1 0 309 288 357 0 VDD
+port 1 se
+rlabel met1 0 309 288 357 0 VDD
+port 2 se
+rlabel li1 0 -24 288 24 0 GND
+port 3 se
+rlabel met1 0 -24 288 24 0 GND
+port 4 se
+rlabel met1 58 44 87 73 0 Y
+port 5 se
+rlabel met1 65 73 79 220 0 Y
+port 6 se
+rlabel met1 58 220 87 249 0 Y
+port 7 se
+rlabel met1 130 85 159 114 0 A
+port 8 se
+rlabel met1 137 114 151 178 0 A
+port 9 se
+rlabel met1 130 178 159 207 0 A
+port 10 se
 << end >>
diff --git a/cells/mag/INVX1.mag b/cells/mag/INVX1.mag
index 139936e..e20d8da 100644
--- a/cells/mag/INVX1.mag
+++ b/cells/mag/INVX1.mag
@@ -1,182 +1,103 @@
 magic
+# Generated by librecell
 tech sky130A
-timestamp 1624566215
+timestamp 1624703053
 << nwell >>
 rect 0 179 288 333
-<< nmos >>
-rect 137 24 152 66
-<< pmos >>
-rect 137 225 152 309
-<< ndiff >>
-rect 58 67 87 73
-rect 58 50 64 67
-rect 81 66 87 67
-rect 81 50 137 66
-rect 58 24 137 50
-rect 152 51 231 66
-rect 152 34 184 51
-rect 201 34 231 51
-rect 152 24 231 34
-<< pdiff >>
-rect 58 243 137 309
-rect 58 226 64 243
-rect 81 226 137 243
-rect 58 225 137 226
-rect 152 299 231 309
-rect 152 282 184 299
-rect 201 282 231 299
-rect 152 225 231 282
-rect 58 220 87 225
-<< ndiffc >>
-rect 64 50 81 67
-rect 184 34 201 51
-<< pdiffc >>
-rect 64 226 81 243
-rect 184 282 201 299
-<< poly >>
-rect 137 309 152 322
-rect 137 209 152 225
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 137 66 152 83
-rect 137 11 152 24
-<< polycont >>
-rect 136 184 153 201
-rect 136 91 153 108
-<< locali >>
-rect 0 342 288 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 288 342
-rect 0 309 288 325
-rect 176 299 209 309
-rect 176 282 184 299
-rect 201 282 209 299
-rect 176 274 209 282
-rect 56 243 89 251
-rect 56 226 64 243
-rect 81 226 89 243
-rect 56 218 89 226
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 56 67 89 75
-rect 56 50 64 67
-rect 81 50 89 67
-rect 56 42 89 50
-rect 176 51 209 59
-rect 176 34 184 51
-rect 201 34 209 51
-rect 176 24 209 34
-rect 0 9 288 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 288 9
-rect 0 -24 288 -9
 << viali >>
-rect 16 325 33 342
-rect 64 325 81 342
-rect 112 325 129 342
-rect 160 325 177 342
-rect 208 325 225 342
-rect 256 325 273 342
-rect 184 282 201 299
-rect 64 226 81 243
-rect 136 184 153 201
-rect 136 91 153 108
-rect 64 50 81 67
-rect 184 34 201 51
 rect 16 -9 33 9
 rect 64 -9 81 9
 rect 112 -9 129 9
 rect 160 -9 177 9
 rect 208 -9 225 9
 rect 256 -9 273 9
-<< metal1 >>
-rect 0 342 288 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 288 342
-rect 0 309 288 325
-rect 178 299 207 309
-rect 178 282 184 299
-rect 201 282 207 299
-rect 178 276 207 282
-rect 58 243 87 249
-rect 58 226 64 243
-rect 81 226 87 243
-rect 58 220 87 226
-rect 65 73 79 220
-rect 130 201 159 207
-rect 130 184 136 201
-rect 153 184 159 201
-rect 130 178 159 184
-rect 137 114 151 178
-rect 130 108 159 114
-rect 130 91 136 108
-rect 153 91 159 108
-rect 130 85 159 91
-rect 58 67 87 73
-rect 58 50 64 67
-rect 81 50 87 67
-rect 58 44 87 50
-rect 178 51 207 57
-rect 178 34 184 51
-rect 201 34 207 51
-rect 178 24 207 34
-rect 0 9 288 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 288 9
-rect 0 -24 288 -9
-<< labels >>
-rlabel metal1 65 73 79 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 178 0 A
-port 9 se
-rlabel locali 0 309 288 357 0 VDD
-port 1 se
-rlabel metal1 0 309 288 357 0 VDD
-port 2 se
-rlabel locali 0 -24 288 24 0 GND
-port 3 se
-rlabel metal1 0 -24 288 24 0 GND
-port 4 se
-rlabel metal1 58 44 87 73 0 Y
-port 5 se
-rlabel metal1 58 220 87 249 0 Y
-port 7 se
-rlabel metal1 130 85 159 114 0 A
-port 8 se
-rlabel metal1 130 178 159 207 0 A
-port 10 se
+rect 184 34 201 51
+rect 64 50 81 67
+rect 136 91 153 108
+rect 136 184 153 201
+rect 64 226 81 243
+rect 184 282 201 299
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+<< poly >>
+rect 137 11 152 83
+rect 128 83 161 116
+rect 128 176 161 209
+rect 137 209 152 322
 << properties >>
 string FIXED_BBOX 0 0 288 333
+<< li1 >>
+rect 0 -24 288 24
+rect 176 24 209 59
+rect 56 42 89 75
+rect 128 83 161 116
+rect 128 176 161 209
+rect 56 218 89 251
+rect 176 274 209 309
+rect 0 309 288 357
+<< met1 >>
+rect 0 -24 288 24
+rect 178 24 207 57
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 178 276 207 309
+rect 0 309 288 357
+<< li1 >>
+<< met1 >>
+<< li1 >>
+<< met1 >>
+rect 0 -24 288 24
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 0 309 288 357
+<< ndiffusion >>
+rect 58 24 231 66
+rect 58 66 87 73
+<< pdiffusion >>
+rect 58 220 87 225
+rect 58 225 231 309
+<< polycont >>
+rect 136 91 153 108
+rect 136 184 153 201
+<< pdiffc >>
+rect 64 226 81 243
+rect 184 282 201 299
+<< ndiffc >>
+rect 184 34 201 51
+rect 64 50 81 67
+<< allnactivetap >>
+<< allpactivetap >>
+<< labels >>
+rlabel li1 0 309 288 357 0 VDD
+port 1 se
+rlabel met1 0 309 288 357 0 VDD
+port 2 se
+rlabel li1 0 -24 288 24 0 GND
+port 3 se
+rlabel met1 0 -24 288 24 0 GND
+port 4 se
+rlabel met1 58 44 87 73 0 Y
+port 5 se
+rlabel met1 65 73 79 220 0 Y
+port 6 se
+rlabel met1 58 220 87 249 0 Y
+port 7 se
+rlabel met1 130 85 159 114 0 A
+port 8 se
+rlabel met1 137 114 151 178 0 A
+port 9 se
+rlabel met1 130 178 159 207 0 A
+port 10 se
 << end >>
diff --git a/cells/mag/INVX2.mag b/cells/mag/INVX2.mag
index 15cfb0a..fd003ab 100644
--- a/cells/mag/INVX2.mag
+++ b/cells/mag/INVX2.mag
@@ -1,182 +1,103 @@
 magic
+# Generated by librecell
 tech sky130A
-timestamp 1624567880
+timestamp 1624703079
 << nwell >>
 rect 0 179 288 333
-<< nmos >>
-rect 137 24 152 66
-<< pmos >>
-rect 137 225 152 309
-<< ndiff >>
-rect 58 67 87 73
-rect 58 50 64 67
-rect 81 66 87 67
-rect 81 50 137 66
-rect 58 24 137 50
-rect 152 51 231 66
-rect 152 34 184 51
-rect 201 34 231 51
-rect 152 24 231 34
-<< pdiff >>
-rect 58 243 137 309
-rect 58 226 64 243
-rect 81 226 137 243
-rect 58 225 137 226
-rect 152 299 231 309
-rect 152 282 184 299
-rect 201 282 231 299
-rect 152 225 231 282
-rect 58 220 87 225
-<< ndiffc >>
-rect 64 50 81 67
-rect 184 34 201 51
-<< pdiffc >>
-rect 64 226 81 243
-rect 184 282 201 299
-<< poly >>
-rect 137 309 152 322
-rect 137 209 152 225
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 137 66 152 83
-rect 137 11 152 24
-<< polycont >>
-rect 136 184 153 201
-rect 136 91 153 108
-<< locali >>
-rect 0 342 288 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 288 342
-rect 0 309 288 325
-rect 176 299 209 309
-rect 176 282 184 299
-rect 201 282 209 299
-rect 176 274 209 282
-rect 56 243 89 251
-rect 56 226 64 243
-rect 81 226 89 243
-rect 56 218 89 226
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 56 67 89 75
-rect 56 50 64 67
-rect 81 50 89 67
-rect 56 42 89 50
-rect 176 51 209 59
-rect 176 34 184 51
-rect 201 34 209 51
-rect 176 24 209 34
-rect 0 9 288 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 288 9
-rect 0 -24 288 -9
 << viali >>
-rect 16 325 33 342
-rect 64 325 81 342
-rect 112 325 129 342
-rect 160 325 177 342
-rect 208 325 225 342
-rect 256 325 273 342
-rect 184 282 201 299
-rect 64 226 81 243
-rect 136 184 153 201
-rect 136 91 153 108
-rect 64 50 81 67
-rect 184 34 201 51
 rect 16 -9 33 9
 rect 64 -9 81 9
 rect 112 -9 129 9
 rect 160 -9 177 9
 rect 208 -9 225 9
 rect 256 -9 273 9
-<< metal1 >>
-rect 0 342 288 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 288 342
-rect 0 309 288 325
-rect 178 299 207 309
-rect 178 282 184 299
-rect 201 282 207 299
-rect 178 276 207 282
-rect 58 243 87 249
-rect 58 226 64 243
-rect 81 226 87 243
-rect 58 220 87 226
-rect 65 73 79 220
-rect 130 201 159 207
-rect 130 184 136 201
-rect 153 184 159 201
-rect 130 178 159 184
-rect 137 114 151 178
-rect 130 108 159 114
-rect 130 91 136 108
-rect 153 91 159 108
-rect 130 85 159 91
-rect 58 67 87 73
-rect 58 50 64 67
-rect 81 50 87 67
-rect 58 44 87 50
-rect 178 51 207 57
-rect 178 34 184 51
-rect 201 34 207 51
-rect 178 24 207 34
-rect 0 9 288 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 288 9
-rect 0 -24 288 -9
-<< labels >>
-rlabel metal1 65 73 79 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 178 0 A
-port 9 se
-rlabel locali 0 309 288 357 0 VDD
-port 1 se
-rlabel metal1 0 309 288 357 0 VDD
-port 2 se
-rlabel locali 0 -24 288 24 0 GND
-port 3 se
-rlabel metal1 0 -24 288 24 0 GND
-port 4 se
-rlabel metal1 58 44 87 73 0 Y
-port 5 se
-rlabel metal1 58 220 87 249 0 Y
-port 7 se
-rlabel metal1 130 85 159 114 0 A
-port 8 se
-rlabel metal1 130 178 159 207 0 A
-port 10 se
+rect 184 34 201 51
+rect 64 50 81 67
+rect 136 91 153 108
+rect 136 184 153 201
+rect 64 226 81 243
+rect 184 282 201 299
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+<< poly >>
+rect 137 11 152 83
+rect 128 83 161 116
+rect 128 176 161 209
+rect 137 209 152 322
 << properties >>
 string FIXED_BBOX 0 0 288 333
+<< li1 >>
+rect 0 -24 288 24
+rect 176 24 209 59
+rect 56 42 89 75
+rect 128 83 161 116
+rect 128 176 161 209
+rect 56 218 89 251
+rect 176 274 209 309
+rect 0 309 288 357
+<< met1 >>
+rect 0 -24 288 24
+rect 178 24 207 57
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 178 276 207 309
+rect 0 309 288 357
+<< li1 >>
+<< met1 >>
+<< li1 >>
+<< met1 >>
+rect 0 -24 288 24
+rect 130 85 159 114
+rect 137 114 151 178
+rect 130 178 159 207
+rect 58 44 87 73
+rect 65 73 79 220
+rect 58 220 87 249
+rect 0 309 288 357
+<< ndiffusion >>
+rect 58 24 231 66
+rect 58 66 87 73
+<< pdiffusion >>
+rect 58 220 87 225
+rect 58 225 231 309
+<< polycont >>
+rect 136 91 153 108
+rect 136 184 153 201
+<< pdiffc >>
+rect 64 226 81 243
+rect 184 282 201 299
+<< ndiffc >>
+rect 184 34 201 51
+rect 64 50 81 67
+<< allnactivetap >>
+<< allpactivetap >>
+<< labels >>
+rlabel li1 0 309 288 357 0 VDD
+port 1 se
+rlabel met1 0 309 288 357 0 VDD
+port 2 se
+rlabel li1 0 -24 288 24 0 GND
+port 3 se
+rlabel met1 0 -24 288 24 0 GND
+port 4 se
+rlabel met1 58 44 87 73 0 Y
+port 5 se
+rlabel met1 65 73 79 220 0 Y
+port 6 se
+rlabel met1 58 220 87 249 0 Y
+port 7 se
+rlabel met1 130 85 159 114 0 A
+port 8 se
+rlabel met1 137 114 151 178 0 A
+port 9 se
+rlabel met1 130 178 159 207 0 A
+port 10 se
 << end >>
diff --git a/cells/mag/INVX4.mag b/cells/mag/INVX4.mag
index 3583de7..9b44b5b 100644
--- a/cells/mag/INVX4.mag
+++ b/cells/mag/INVX4.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624571010
+timestamp 1624703114
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -131,8 +131,7 @@
 rect 320 50 328 67
 rect 345 50 353 67
 rect 320 42 353 50
-rect 176 26 209 34
-rect 159 24 226 26
+rect 176 24 209 34
 rect 0 9 432 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -163,7 +162,6 @@
 rect 136 91 153 108
 rect 280 91 297 108
 rect 64 50 81 67
-rect 184 34 201 51
 rect 328 50 345 67
 rect 16 -9 33 9
 rect 64 -9 81 9
@@ -193,50 +191,46 @@
 rect 178 276 207 282
 rect 58 243 87 249
 rect 58 226 64 243
-rect 81 241 87 243
-rect 322 243 351 249
-rect 322 241 328 243
-rect 81 227 328 241
-rect 81 226 87 227
+rect 81 226 87 243
 rect 58 220 87 226
-rect 322 226 328 227
+rect 322 243 351 249
+rect 322 226 328 243
 rect 345 226 351 243
 rect 322 220 351 226
 rect 65 73 79 220
 rect 130 201 159 207
 rect 130 184 136 201
-rect 153 200 159 201
-rect 274 201 303 207
-rect 274 200 280 201
-rect 153 186 280 200
-rect 153 184 159 186
+rect 153 184 159 201
 rect 130 178 159 184
-rect 274 184 280 186
+rect 274 201 303 207
+rect 274 184 280 201
 rect 297 184 303 201
 rect 274 178 303 184
 rect 137 114 151 178
 rect 281 114 295 178
 rect 130 108 159 114
 rect 130 91 136 108
-rect 153 91 159 108
-rect 130 85 159 91
+rect 153 106 159 108
 rect 274 108 303 114
-rect 274 91 280 108
+rect 274 106 280 108
+rect 153 92 280 106
+rect 153 91 159 92
+rect 130 85 159 91
+rect 274 91 280 92
 rect 297 91 303 108
 rect 274 85 303 91
 rect 329 73 343 220
 rect 58 67 87 73
 rect 58 50 64 67
-rect 81 50 87 67
+rect 81 66 87 67
 rect 322 67 351 73
+rect 322 66 328 67
+rect 81 52 328 66
+rect 81 50 87 52
 rect 58 44 87 50
-rect 178 51 207 57
-rect 178 34 184 51
-rect 201 34 207 51
-rect 322 50 328 67
+rect 322 50 328 52
 rect 345 50 351 67
 rect 322 44 351 50
-rect 178 24 207 34
 rect 0 9 432 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -250,14 +244,6 @@
 rect 417 -9 432 9
 rect 0 -24 432 -9
 << labels >>
-rlabel metal1 65 73 79 220 0 Y
-port 7 se
-rlabel metal1 329 73 343 220 0 Y
-port 8 se
-rlabel metal1 137 114 151 178 0 A
-port 16 se
-rlabel metal1 281 114 295 178 0 A
-port 17 se
 rlabel locali 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 309 432 357 0 VDD
@@ -266,33 +252,41 @@
 port 3 se
 rlabel metal1 0 -24 432 24 0 GND
 port 4 se
-rlabel metal1 58 44 87 73 0 Y
+rlabel metal1 58 44 87 52 0 Y
 port 5 se
-rlabel metal1 322 44 351 73 0 Y
+rlabel metal1 322 44 351 52 0 Y
 port 6 se
-rlabel metal1 58 220 87 227 0 Y
+rlabel metal1 58 52 351 66 0 Y
+port 7 se
+rlabel metal1 58 66 87 73 0 Y
+port 8 se
+rlabel metal1 322 66 351 73 0 Y
 port 9 se
-rlabel metal1 322 220 351 227 0 Y
+rlabel metal1 65 73 79 220 0 Y
 port 10 se
-rlabel metal1 58 227 351 241 0 Y
+rlabel metal1 329 73 343 220 0 Y
 port 11 se
-rlabel metal1 58 241 87 249 0 Y
+rlabel metal1 58 220 87 249 0 Y
 port 12 se
-rlabel metal1 322 241 351 249 0 Y
+rlabel metal1 322 220 351 249 0 Y
 port 13 se
-rlabel metal1 130 85 159 114 0 A
+rlabel metal1 130 85 159 92 0 A
 port 14 se
-rlabel metal1 274 85 303 114 0 A
+rlabel metal1 274 85 303 92 0 A
 port 15 se
-rlabel metal1 130 178 159 186 0 A
+rlabel metal1 130 92 303 106 0 A
+port 16 se
+rlabel metal1 130 106 159 114 0 A
+port 17 se
+rlabel metal1 274 106 303 114 0 A
 port 18 se
-rlabel metal1 274 178 303 186 0 A
+rlabel metal1 137 114 151 178 0 A
 port 19 se
-rlabel metal1 130 186 303 200 0 A
+rlabel metal1 281 114 295 178 0 A
 port 20 se
-rlabel metal1 130 200 159 207 0 A
+rlabel metal1 130 178 159 207 0 A
 port 21 se
-rlabel metal1 274 200 303 207 0 A
+rlabel metal1 274 178 303 207 0 A
 port 22 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
diff --git a/cells/mag/INVX8.mag b/cells/mag/INVX8.mag
new file mode 100644
index 0000000..c7f2e69
--- /dev/null
+++ b/cells/mag/INVX8.mag
@@ -0,0 +1,496 @@
+magic
+tech sky130A
+timestamp 1624703162
+<< nwell >>
+rect 0 179 720 333
+<< nmos >>
+rect 137 24 152 66
+rect 281 24 296 66
+rect 425 24 440 66
+rect 569 24 584 66
+<< pmos >>
+rect 137 225 152 309
+rect 281 225 296 309
+rect 425 225 440 309
+rect 569 225 584 309
+<< ndiff >>
+rect 82 67 111 73
+rect 82 66 88 67
+rect 58 50 88 66
+rect 105 66 111 67
+rect 370 67 399 73
+rect 370 66 376 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 51 281 66
+rect 152 34 184 51
+rect 201 34 281 51
+rect 152 24 281 34
+rect 296 50 376 66
+rect 393 66 399 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 393 50 425 66
+rect 296 24 425 50
+rect 440 51 569 66
+rect 440 34 472 51
+rect 489 34 569 51
+rect 440 24 569 34
+rect 584 50 616 66
+rect 633 66 639 67
+rect 633 50 663 66
+rect 584 24 663 50
+<< pdiff >>
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 299 281 309
+rect 152 282 184 299
+rect 201 282 281 299
+rect 152 225 281 282
+rect 296 243 425 309
+rect 296 226 376 243
+rect 393 226 425 243
+rect 296 225 425 226
+rect 440 299 569 309
+rect 440 282 472 299
+rect 489 282 569 299
+rect 440 225 569 282
+rect 584 243 663 309
+rect 584 226 616 243
+rect 633 226 663 243
+rect 584 225 663 226
+rect 82 220 111 225
+rect 370 220 399 225
+rect 610 220 639 225
+<< ndiffc >>
+rect 88 50 105 67
+rect 184 34 201 51
+rect 376 50 393 67
+rect 472 34 489 51
+rect 616 50 633 67
+<< pdiffc >>
+rect 88 226 105 243
+rect 184 282 201 299
+rect 376 226 393 243
+rect 472 282 489 299
+rect 616 226 633 243
+<< poly >>
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 569 309 584 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 569 209 584 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 569 66 584 83
+rect 137 11 152 24
+rect 281 11 296 24
+rect 425 11 440 24
+rect 569 11 584 24
+<< polycont >>
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+<< locali >>
+rect 0 342 720 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 592 342
+rect 609 325 640 342
+rect 657 325 688 342
+rect 705 325 720 342
+rect 0 309 720 325
+rect 176 299 209 309
+rect 176 282 184 299
+rect 201 282 209 299
+rect 176 274 209 282
+rect 464 299 497 309
+rect 464 282 472 299
+rect 489 282 497 299
+rect 464 274 497 282
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 80 218 113 226
+rect 368 243 401 251
+rect 368 226 376 243
+rect 393 226 401 243
+rect 608 243 641 251
+rect 608 226 616 243
+rect 633 226 641 243
+rect 368 218 399 226
+rect 610 218 641 226
+rect 130 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 560 201 593 209
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 416 108 449 116
+rect 416 92 424 108
+rect 272 83 305 91
+rect 418 91 424 92
+rect 441 91 449 108
+rect 418 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 91 593 108
+rect 560 83 593 91
+rect 80 67 111 75
+rect 80 50 88 67
+rect 105 66 111 67
+rect 368 67 401 75
+rect 105 50 113 66
+rect 80 42 113 50
+rect 176 51 209 59
+rect 176 34 184 51
+rect 201 34 209 51
+rect 368 50 376 67
+rect 393 50 401 67
+rect 610 67 641 75
+rect 610 66 616 67
+rect 368 42 401 50
+rect 464 51 497 59
+rect 176 24 209 34
+rect 464 34 472 51
+rect 489 34 497 51
+rect 608 50 616 66
+rect 633 50 641 67
+rect 608 42 641 50
+rect 464 24 497 34
+rect 0 9 720 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 592 9
+rect 609 -9 640 9
+rect 657 -9 688 9
+rect 705 -9 720 9
+rect 0 -24 720 -9
+<< viali >>
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+rect 304 325 321 342
+rect 352 325 369 342
+rect 400 325 417 342
+rect 448 325 465 342
+rect 496 325 513 342
+rect 544 325 561 342
+rect 592 325 609 342
+rect 640 325 657 342
+rect 688 325 705 342
+rect 184 282 201 299
+rect 472 282 489 299
+rect 88 226 105 243
+rect 376 226 393 243
+rect 616 226 633 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 568 184 585 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 568 91 585 108
+rect 88 50 105 67
+rect 376 50 393 67
+rect 616 50 633 67
+rect 16 -9 33 9
+rect 64 -9 81 9
+rect 112 -9 129 9
+rect 160 -9 177 9
+rect 208 -9 225 9
+rect 256 -9 273 9
+rect 304 -9 321 9
+rect 352 -9 369 9
+rect 400 -9 417 9
+rect 448 -9 465 9
+rect 496 -9 513 9
+rect 544 -9 561 9
+rect 592 -9 609 9
+rect 640 -9 657 9
+rect 688 -9 705 9
+<< metal1 >>
+rect 0 342 720 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 592 342
+rect 609 325 640 342
+rect 657 325 688 342
+rect 705 325 720 342
+rect 0 309 720 325
+rect 178 299 207 309
+rect 178 282 184 299
+rect 201 282 207 299
+rect 178 276 207 282
+rect 466 299 495 309
+rect 466 282 472 299
+rect 489 282 495 299
+rect 466 276 495 282
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 226 111 243
+rect 82 220 111 226
+rect 370 243 399 249
+rect 370 226 376 243
+rect 393 241 399 243
+rect 610 243 639 249
+rect 610 241 616 243
+rect 393 227 616 241
+rect 393 226 399 227
+rect 370 220 399 226
+rect 610 226 616 227
+rect 633 226 639 243
+rect 610 220 639 226
+rect 89 73 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 200 159 201
+rect 274 201 303 207
+rect 274 200 280 201
+rect 153 186 280 200
+rect 153 184 159 186
+rect 130 178 159 184
+rect 274 184 280 186
+rect 297 200 303 201
+rect 418 201 447 207
+rect 418 200 424 201
+rect 297 186 424 200
+rect 297 184 303 186
+rect 274 178 303 184
+rect 418 184 424 186
+rect 441 200 447 201
+rect 562 201 591 207
+rect 562 200 568 201
+rect 441 186 568 200
+rect 441 184 447 186
+rect 418 178 447 184
+rect 562 184 568 186
+rect 585 184 591 201
+rect 562 178 591 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 178
+rect 569 114 583 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
+rect 418 108 447 114
+rect 418 91 424 108
+rect 441 91 447 108
+rect 418 85 447 91
+rect 562 108 591 114
+rect 562 91 568 108
+rect 585 91 591 108
+rect 562 85 591 91
+rect 617 73 631 220
+rect 82 67 111 73
+rect 82 50 88 67
+rect 105 66 111 67
+rect 370 67 399 73
+rect 370 66 376 67
+rect 105 52 376 66
+rect 105 50 111 52
+rect 82 44 111 50
+rect 370 50 376 52
+rect 393 66 399 67
+rect 610 67 639 73
+rect 610 66 616 67
+rect 393 52 616 66
+rect 393 50 399 52
+rect 370 44 399 50
+rect 610 50 616 52
+rect 633 50 639 67
+rect 610 44 639 50
+rect 0 9 720 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 592 9
+rect 609 -9 640 9
+rect 657 -9 688 9
+rect 705 -9 720 9
+rect 0 -24 720 -9
+<< labels >>
+rlabel locali 0 309 720 357 0 VDD
+port 1 se
+rlabel metal1 0 309 720 357 0 VDD
+port 2 se
+rlabel locali 0 -24 720 24 0 GND
+port 3 se
+rlabel metal1 0 -24 720 24 0 GND
+port 4 se
+rlabel metal1 82 44 111 52 0 Y
+port 5 se
+rlabel metal1 370 44 399 52 0 Y
+port 6 se
+rlabel metal1 610 44 639 52 0 Y
+port 7 se
+rlabel metal1 82 52 639 66 0 Y
+port 8 se
+rlabel metal1 82 66 111 73 0 Y
+port 9 se
+rlabel metal1 370 66 399 73 0 Y
+port 10 se
+rlabel metal1 610 66 639 73 0 Y
+port 11 se
+rlabel metal1 89 73 103 220 0 Y
+port 12 se
+rlabel metal1 617 73 631 220 0 Y
+port 13 se
+rlabel metal1 370 220 399 227 0 Y
+port 14 se
+rlabel metal1 610 220 639 227 0 Y
+port 15 se
+rlabel metal1 370 227 639 241 0 Y
+port 16 se
+rlabel metal1 82 220 111 249 0 Y
+port 17 se
+rlabel metal1 370 241 399 249 0 Y
+port 18 se
+rlabel metal1 610 241 639 249 0 Y
+port 19 se
+rlabel metal1 130 85 159 114 0 A
+port 20 se
+rlabel metal1 274 85 303 114 0 A
+port 21 se
+rlabel metal1 418 85 447 114 0 A
+port 22 se
+rlabel metal1 562 85 591 114 0 A
+port 23 se
+rlabel metal1 137 114 151 178 0 A
+port 24 se
+rlabel metal1 281 114 295 178 0 A
+port 25 se
+rlabel metal1 425 114 439 178 0 A
+port 26 se
+rlabel metal1 569 114 583 178 0 A
+port 27 se
+rlabel metal1 130 178 159 186 0 A
+port 28 se
+rlabel metal1 274 178 303 186 0 A
+port 29 se
+rlabel metal1 418 178 447 186 0 A
+port 30 se
+rlabel metal1 562 178 591 186 0 A
+port 31 se
+rlabel metal1 130 186 591 200 0 A
+port 32 se
+rlabel metal1 130 200 159 207 0 A
+port 33 se
+rlabel metal1 274 200 303 207 0 A
+port 34 se
+rlabel metal1 418 200 447 207 0 A
+port 35 se
+rlabel metal1 562 200 591 207 0 A
+port 36 se
+<< properties >>
+string FIXED_BBOX 0 0 720 333
+<< end >>
diff --git a/cells/mag/MUX2X1.mag b/cells/mag/MUX2X1.mag
index 67b7cef..3a99413 100644
--- a/cells/mag/MUX2X1.mag
+++ b/cells/mag/MUX2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624575530
+timestamp 1624703219
 << nwell >>
 rect 0 179 864 333
 << nmos >>
@@ -19,8 +19,8 @@
 rect 58 67 87 73
 rect 58 50 64 67
 rect 81 66 87 67
-rect 466 67 495 73
-rect 466 66 472 67
+rect 514 67 543 73
+rect 514 66 520 67
 rect 81 50 137 66
 rect 58 24 137 50
 rect 152 51 281 66
@@ -28,9 +28,9 @@
 rect 201 34 281 51
 rect 152 24 281 34
 rect 296 24 425 66
-rect 440 50 472 66
-rect 489 66 495 67
-rect 489 50 569 66
+rect 440 50 520 66
+rect 537 66 543 67
+rect 537 50 569 66
 rect 440 24 569 50
 rect 584 24 713 66
 rect 728 51 807 66
@@ -48,8 +48,8 @@
 rect 152 225 281 282
 rect 296 225 425 309
 rect 440 243 569 309
-rect 440 226 472 243
-rect 489 226 569 243
+rect 440 226 520 243
+rect 537 226 569 243
 rect 440 225 569 226
 rect 584 225 713 309
 rect 728 299 807 309
@@ -57,16 +57,16 @@
 rect 777 282 807 299
 rect 728 225 807 282
 rect 58 220 87 225
-rect 466 220 495 225
+rect 514 220 543 225
 << ndiffc >>
 rect 64 50 81 67
 rect 184 34 201 51
-rect 472 50 489 67
+rect 520 50 537 67
 rect 760 34 777 51
 << pdiffc >>
 rect 64 226 81 243
 rect 184 282 201 299
-rect 472 226 489 243
+rect 520 226 537 243
 rect 760 282 777 299
 << poly >>
 rect 137 309 152 322
@@ -162,24 +162,23 @@
 rect 801 325 832 342
 rect 849 325 864 342
 rect 0 309 864 325
-rect 159 307 226 309
-rect 735 307 802 309
-rect 176 299 209 307
+rect 176 299 209 309
 rect 176 282 184 299
 rect 201 282 209 299
 rect 176 274 209 282
-rect 752 299 785 307
+rect 752 299 785 309
 rect 752 282 760 299
 rect 777 282 785 299
 rect 752 274 785 282
 rect 56 243 89 251
+rect 512 243 545 251
 rect 56 226 64 243
 rect 81 226 89 243
 rect 56 218 89 226
-rect 464 243 497 251
-rect 464 226 472 243
-rect 489 226 497 243
-rect 464 218 497 226
+rect 136 209 153 226
+rect 512 226 520 243
+rect 537 226 545 243
+rect 512 218 545 226
 rect 128 201 161 209
 rect 128 184 136 201
 rect 153 184 161 201
@@ -188,11 +187,18 @@
 rect 272 184 280 201
 rect 297 184 305 201
 rect 272 176 305 184
-rect 416 201 447 209
-rect 560 201 593 209
+rect 416 201 449 209
+rect 562 201 593 209
 rect 416 184 424 201
 rect 441 184 449 201
 rect 416 176 449 184
+rect 560 184 568 201
+rect 585 184 593 201
+rect 560 176 593 184
+rect 704 201 737 209
+rect 704 184 712 201
+rect 729 184 737 201
+rect 704 176 737 184
 rect 136 162 153 176
 rect 280 148 297 176
 rect 280 116 297 131
@@ -201,26 +207,18 @@
 rect 153 91 161 108
 rect 128 83 161 91
 rect 272 108 305 116
+rect 416 108 449 116
 rect 272 91 280 108
 rect 297 91 305 108
-rect 272 83 305 91
-rect 416 108 449 116
-rect 416 91 424 108
-rect 441 92 449 108
-rect 441 91 447 92
-rect 416 83 447 91
-rect 472 75 489 184
-rect 560 184 568 201
-rect 585 184 593 201
-rect 560 176 593 184
-rect 704 201 737 209
-rect 704 184 712 201
-rect 729 184 737 201
-rect 704 176 737 184
+rect 345 91 424 108
+rect 441 91 449 108
 rect 560 108 593 116
-rect 560 91 568 108
+rect 560 92 568 108
+rect 272 83 305 91
+rect 416 83 449 91
+rect 562 91 568 92
 rect 585 91 593 108
-rect 560 83 593 91
+rect 562 83 593 91
 rect 704 108 737 116
 rect 704 91 712 108
 rect 729 91 737 108
@@ -228,20 +226,19 @@
 rect 56 67 89 75
 rect 56 50 64 67
 rect 81 50 89 67
-rect 464 67 497 75
+rect 512 67 545 75
 rect 56 42 89 50
 rect 176 51 209 59
 rect 176 34 184 51
 rect 201 34 209 51
-rect 464 50 472 67
-rect 489 50 497 67
-rect 464 42 497 50
+rect 512 50 520 67
+rect 537 50 545 67
+rect 512 42 545 50
 rect 752 51 785 59
 rect 176 24 209 34
 rect 752 34 760 51
 rect 777 34 785 51
-rect 752 26 785 34
-rect 735 24 802 26
+rect 752 24 785 34
 rect 0 9 864 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -285,19 +282,20 @@
 rect 184 282 201 299
 rect 760 282 777 299
 rect 64 226 81 243
-rect 472 226 489 243
+rect 136 226 153 243
+rect 520 226 537 243
 rect 424 184 441 201
-rect 472 184 489 201
+rect 568 184 585 201
+rect 712 184 729 201
 rect 136 145 153 162
 rect 280 131 297 148
 rect 136 91 153 108
-rect 424 91 441 108
-rect 568 184 585 201
-rect 712 184 729 201
+rect 328 91 345 108
 rect 568 91 585 108
 rect 712 91 729 108
 rect 64 50 81 67
 rect 184 34 201 51
+rect 520 50 537 67
 rect 760 34 777 51
 rect 16 -9 33 9
 rect 64 -9 81 9
@@ -351,9 +349,13 @@
 rect 58 226 64 243
 rect 81 226 87 243
 rect 58 220 87 226
-rect 466 243 495 249
-rect 466 226 472 243
-rect 489 226 495 243
+rect 130 243 159 249
+rect 130 226 136 243
+rect 153 241 159 243
+rect 514 243 543 249
+rect 153 227 487 241
+rect 153 226 159 227
+rect 130 220 159 226
 rect 65 200 79 220
 rect 418 201 447 207
 rect 418 200 424 201
@@ -361,50 +363,58 @@
 rect 65 73 79 186
 rect 418 184 424 186
 rect 441 184 447 201
-rect 418 178 447 184
-rect 466 201 495 226
-rect 466 184 472 201
-rect 489 184 495 201
-rect 466 178 495 184
+rect 473 200 487 227
+rect 514 226 520 243
+rect 537 241 543 243
+rect 537 227 631 241
+rect 537 226 543 227
+rect 514 220 543 226
 rect 562 201 591 207
-rect 562 184 568 201
-rect 585 200 591 201
-rect 706 201 735 207
-rect 585 186 631 200
-rect 585 184 591 186
+rect 562 200 568 201
+rect 473 186 568 200
+rect 418 178 447 184
+rect 562 184 568 186
+rect 585 184 591 201
 rect 562 178 591 184
 rect 130 162 159 168
 rect 130 145 136 162
 rect 153 145 159 162
-rect 425 160 439 178
 rect 130 139 159 145
 rect 274 148 303 154
 rect 137 114 151 139
 rect 274 131 280 148
 rect 297 131 303 148
-rect 425 146 583 160
 rect 274 125 303 131
-rect 569 114 583 146
 rect 130 108 159 114
 rect 130 91 136 108
 rect 153 106 159 108
-rect 418 108 447 114
-rect 418 106 424 108
-rect 153 92 424 106
+rect 322 108 351 114
+rect 322 106 328 108
+rect 153 92 328 106
 rect 153 91 159 92
 rect 130 85 159 91
-rect 418 91 424 92
-rect 441 91 447 108
-rect 418 85 447 91
+rect 322 91 328 92
+rect 345 91 351 108
+rect 425 106 439 178
 rect 562 108 591 114
-rect 562 91 568 108
+rect 562 106 568 108
+rect 425 92 568 106
+rect 322 85 351 91
+rect 562 91 568 92
 rect 585 91 591 108
 rect 562 85 591 91
 rect 58 67 87 73
 rect 58 50 64 67
 rect 81 50 87 67
-rect 425 66 439 85
-rect 617 66 631 186
+rect 514 67 543 73
+rect 58 44 87 50
+rect 178 51 207 57
+rect 178 34 184 51
+rect 201 34 207 51
+rect 514 50 520 67
+rect 537 66 543 67
+rect 617 66 631 227
+rect 706 201 735 207
 rect 706 184 712 201
 rect 729 184 735 201
 rect 706 178 735 184
@@ -413,13 +423,11 @@
 rect 706 91 712 108
 rect 729 91 735 108
 rect 706 85 735 91
-rect 58 44 87 50
-rect 178 51 207 57
-rect 425 52 631 66
-rect 178 34 184 51
-rect 201 34 207 51
-rect 178 24 207 34
+rect 537 52 631 66
+rect 537 50 543 52
+rect 514 44 543 50
 rect 754 51 783 57
+rect 178 24 207 34
 rect 754 34 760 51
 rect 777 34 783 51
 rect 754 24 783 34
@@ -445,16 +453,6 @@
 rect 849 -9 864 9
 rect 0 -24 864 -9
 << labels >>
-rlabel metal1 425 52 631 66 0 S
-port 6 se
-rlabel metal1 425 66 439 85 0 S
-port 7 se
-rlabel metal1 137 114 151 139 0 S
-port 13 se
-rlabel metal1 617 66 631 186 0 S
-port 16 se
-rlabel metal1 713 114 727 178 0 B
-port 21 se
 rlabel locali 0 309 864 357 0 VDD
 port 1 se
 rlabel metal1 0 309 864 357 0 VDD
@@ -463,31 +461,41 @@
 port 3 se
 rlabel metal1 0 -24 864 24 0 GND
 port 4 se
-rlabel metal1 466 178 495 249 0 Y
+rlabel metal1 514 44 543 52 0 Y
 port 5 se
-rlabel metal1 130 85 159 92 0 S
+rlabel metal1 514 52 631 66 0 Y
+port 6 se
+rlabel metal1 514 66 543 73 0 Y
+port 7 se
+rlabel metal1 514 220 543 227 0 Y
 port 8 se
-rlabel metal1 418 85 447 92 0 S
+rlabel metal1 617 66 631 227 0 Y
 port 9 se
-rlabel metal1 130 92 447 106 0 S
+rlabel metal1 514 227 631 241 0 Y
 port 10 se
-rlabel metal1 130 106 159 114 0 S
+rlabel metal1 514 241 543 249 0 Y
 port 11 se
-rlabel metal1 418 106 447 114 0 S
-port 12 se
-rlabel metal1 130 139 159 168 0 S
-port 14 se
-rlabel metal1 562 178 591 186 0 S
-port 15 se
-rlabel metal1 562 186 631 200 0 S
-port 17 se
-rlabel metal1 562 200 591 207 0 S
-port 18 se
-rlabel metal1 274 125 303 154 0 A
-port 19 se
 rlabel metal1 706 85 735 114 0 B
-port 20 se
+port 12 se
+rlabel metal1 713 114 727 178 0 B
+port 13 se
 rlabel metal1 706 178 735 207 0 B
+port 14 se
+rlabel metal1 130 85 159 92 0 S
+port 15 se
+rlabel metal1 322 85 351 92 0 S
+port 16 se
+rlabel metal1 130 92 351 106 0 S
+port 17 se
+rlabel metal1 130 106 159 114 0 S
+port 18 se
+rlabel metal1 322 106 351 114 0 S
+port 19 se
+rlabel metal1 137 114 151 139 0 S
+port 20 se
+rlabel metal1 130 139 159 168 0 S
+port 21 se
+rlabel metal1 274 125 303 154 0 A
 port 22 se
 << properties >>
 string FIXED_BBOX 0 0 864 333
diff --git a/cells/mag/NAND2X1.mag b/cells/mag/NAND2X1.mag
index d957396..3e9e38c 100644
--- a/cells/mag/NAND2X1.mag
+++ b/cells/mag/NAND2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624571031
+timestamp 1624703275
 << nwell >>
 rect 0 179 432 333
 << nmos >>
@@ -120,8 +120,7 @@
 rect 320 51 353 59
 rect 320 34 328 51
 rect 345 34 353 51
-rect 320 26 353 34
-rect 303 24 370 26
+rect 320 24 353 34
 rect 0 9 432 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -230,12 +229,6 @@
 rect 417 -9 432 9
 rect 0 -24 432 -9
 << labels >>
-rlabel metal1 65 73 79 220 0 Y
-port 6 se
-rlabel metal1 137 114 151 178 0 B
-port 13 se
-rlabel metal1 281 114 295 178 0 A
-port 16 se
 rlabel locali 0 309 432 357 0 VDD
 port 1 se
 rlabel metal1 0 309 432 357 0 VDD
@@ -246,6 +239,8 @@
 port 4 se
 rlabel metal1 58 44 87 73 0 Y
 port 5 se
+rlabel metal1 65 73 79 220 0 Y
+port 6 se
 rlabel metal1 58 220 87 227 0 Y
 port 7 se
 rlabel metal1 322 220 351 227 0 Y
@@ -256,13 +251,17 @@
 port 10 se
 rlabel metal1 322 241 351 249 0 Y
 port 11 se
-rlabel metal1 130 85 159 114 0 B
-port 12 se
-rlabel metal1 130 178 159 207 0 B
-port 14 se
 rlabel metal1 274 85 303 114 0 A
-port 15 se
+port 12 se
+rlabel metal1 281 114 295 178 0 A
+port 13 se
 rlabel metal1 274 178 303 207 0 A
+port 14 se
+rlabel metal1 130 85 159 114 0 B
+port 15 se
+rlabel metal1 137 114 151 178 0 B
+port 16 se
+rlabel metal1 130 178 159 207 0 B
 port 17 se
 << properties >>
 string FIXED_BBOX 0 0 432 333
diff --git a/cells/mag/NAND3X1.mag b/cells/mag/NAND3X1.mag
index 759ea12..9a86b62 100644
--- a/cells/mag/NAND3X1.mag
+++ b/cells/mag/NAND3X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624571037
+timestamp 1624703321
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -157,8 +157,7 @@
 rect 464 51 497 59
 rect 464 34 472 51
 rect 489 34 497 51
-rect 464 26 497 34
-rect 447 24 514 26
+rect 464 24 497 34
 rect 0 9 576 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -298,14 +297,6 @@
 rect 561 -9 576 9
 rect 0 -24 576 -9
 << labels >>
-rlabel metal1 65 73 79 220 0 Y
-port 6 se
-rlabel metal1 281 114 295 178 0 B
-port 13 se
-rlabel metal1 425 114 439 178 0 A
-port 16 se
-rlabel metal1 137 114 151 178 0 C
-port 19 se
 rlabel locali 0 309 576 357 0 VDD
 port 1 se
 rlabel metal1 0 309 576 357 0 VDD
@@ -316,6 +307,8 @@
 port 4 se
 rlabel metal1 58 44 87 73 0 Y
 port 5 se
+rlabel metal1 65 73 79 220 0 Y
+port 6 se
 rlabel metal1 58 220 87 227 0 Y
 port 7 se
 rlabel metal1 322 220 351 227 0 Y
@@ -326,17 +319,23 @@
 port 10 se
 rlabel metal1 322 241 351 249 0 Y
 port 11 se
-rlabel metal1 274 85 303 114 0 B
-port 12 se
-rlabel metal1 274 178 303 207 0 B
-port 14 se
-rlabel metal1 418 85 447 114 0 A
-port 15 se
-rlabel metal1 418 178 447 207 0 A
-port 17 se
 rlabel metal1 130 85 159 114 0 C
-port 18 se
+port 12 se
+rlabel metal1 137 114 151 178 0 C
+port 13 se
 rlabel metal1 130 178 159 207 0 C
+port 14 se
+rlabel metal1 274 85 303 114 0 B
+port 15 se
+rlabel metal1 281 114 295 178 0 B
+port 16 se
+rlabel metal1 274 178 303 207 0 B
+port 17 se
+rlabel metal1 418 85 447 114 0 A
+port 18 se
+rlabel metal1 425 114 439 178 0 A
+port 19 se
+rlabel metal1 418 178 447 207 0 A
 port 20 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
diff --git a/cells/mag/NOR2X1.mag b/cells/mag/NOR2X1.mag
deleted file mode 100644
index f880dcf..0000000
--- a/cells/mag/NOR2X1.mag
+++ /dev/null
@@ -1,267 +0,0 @@
-magic
-tech sky130A
-timestamp 1624571042
-<< nwell >>
-rect 0 179 432 333
-<< nmos >>
-rect 137 24 152 66
-rect 281 24 296 66
-<< pmos >>
-rect 137 225 152 309
-rect 281 225 296 309
-<< ndiff >>
-rect 82 67 111 73
-rect 82 66 88 67
-rect 58 50 88 66
-rect 105 66 111 67
-rect 322 67 351 73
-rect 322 66 328 67
-rect 105 50 137 66
-rect 58 24 137 50
-rect 152 51 281 66
-rect 152 34 184 51
-rect 201 34 281 51
-rect 152 24 281 34
-rect 296 50 328 66
-rect 345 66 351 67
-rect 345 50 375 66
-rect 296 24 375 50
-<< pdiff >>
-rect 58 299 137 309
-rect 58 282 64 299
-rect 81 282 137 299
-rect 58 225 137 282
-rect 152 225 281 309
-rect 296 243 375 309
-rect 296 226 328 243
-rect 345 226 375 243
-rect 296 225 375 226
-rect 322 220 351 225
-<< ndiffc >>
-rect 88 50 105 67
-rect 184 34 201 51
-rect 328 50 345 67
-<< pdiffc >>
-rect 64 282 81 299
-rect 328 226 345 243
-<< poly >>
-rect 137 309 152 322
-rect 281 309 296 322
-rect 137 209 152 225
-rect 281 209 296 225
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 272 201 305 209
-rect 272 184 280 201
-rect 297 184 305 201
-rect 272 176 305 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 272 108 305 116
-rect 272 91 280 108
-rect 297 91 305 108
-rect 272 83 305 91
-rect 137 66 152 83
-rect 281 66 296 83
-rect 137 11 152 24
-rect 281 11 296 24
-<< polycont >>
-rect 136 184 153 201
-rect 280 184 297 201
-rect 136 91 153 108
-rect 280 91 297 108
-<< locali >>
-rect 0 342 432 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 304 342
-rect 321 325 352 342
-rect 369 325 400 342
-rect 417 325 432 342
-rect 0 309 432 325
-rect 56 299 89 309
-rect 56 282 64 299
-rect 81 282 89 299
-rect 56 274 89 282
-rect 320 243 353 251
-rect 320 226 328 243
-rect 345 226 353 243
-rect 320 218 353 226
-rect 128 201 161 209
-rect 128 184 136 201
-rect 153 184 161 201
-rect 128 176 161 184
-rect 272 201 303 209
-rect 272 184 280 201
-rect 297 184 305 201
-rect 272 176 305 184
-rect 128 108 161 116
-rect 128 91 136 108
-rect 153 91 161 108
-rect 128 83 161 91
-rect 272 108 305 116
-rect 272 91 280 108
-rect 297 92 305 108
-rect 297 91 303 92
-rect 272 83 303 91
-rect 80 67 111 75
-rect 80 50 88 67
-rect 105 66 111 67
-rect 320 67 353 75
-rect 105 50 113 66
-rect 80 42 113 50
-rect 176 51 209 59
-rect 176 34 184 51
-rect 201 34 209 51
-rect 320 50 328 67
-rect 345 50 353 67
-rect 320 42 353 50
-rect 176 24 209 34
-rect 0 9 432 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 304 9
-rect 321 -9 352 9
-rect 369 -9 400 9
-rect 417 -9 432 9
-rect 0 -24 432 -9
-<< viali >>
-rect 16 325 33 342
-rect 64 325 81 342
-rect 112 325 129 342
-rect 160 325 177 342
-rect 208 325 225 342
-rect 256 325 273 342
-rect 304 325 321 342
-rect 352 325 369 342
-rect 400 325 417 342
-rect 64 282 81 299
-rect 328 226 345 243
-rect 136 184 153 201
-rect 280 184 297 201
-rect 136 91 153 108
-rect 280 91 297 108
-rect 88 50 105 67
-rect 328 50 345 67
-rect 16 -9 33 9
-rect 64 -9 81 9
-rect 112 -9 129 9
-rect 160 -9 177 9
-rect 208 -9 225 9
-rect 256 -9 273 9
-rect 304 -9 321 9
-rect 352 -9 369 9
-rect 400 -9 417 9
-<< metal1 >>
-rect 0 342 432 357
-rect 0 325 16 342
-rect 33 325 64 342
-rect 81 325 112 342
-rect 129 325 160 342
-rect 177 325 208 342
-rect 225 325 256 342
-rect 273 325 304 342
-rect 321 325 352 342
-rect 369 325 400 342
-rect 417 325 432 342
-rect 0 309 432 325
-rect 58 299 87 309
-rect 58 282 64 299
-rect 81 282 87 299
-rect 58 276 87 282
-rect 322 243 351 249
-rect 322 226 328 243
-rect 345 226 351 243
-rect 322 220 351 226
-rect 130 201 159 207
-rect 130 184 136 201
-rect 153 184 159 201
-rect 130 178 159 184
-rect 274 201 303 207
-rect 274 184 280 201
-rect 297 184 303 201
-rect 274 178 303 184
-rect 137 114 151 178
-rect 281 114 295 178
-rect 130 108 159 114
-rect 130 91 136 108
-rect 153 91 159 108
-rect 130 85 159 91
-rect 274 108 303 114
-rect 274 91 280 108
-rect 297 91 303 108
-rect 274 85 303 91
-rect 329 73 343 220
-rect 82 67 111 73
-rect 82 50 88 67
-rect 105 66 111 67
-rect 322 67 351 73
-rect 322 66 328 67
-rect 105 52 328 66
-rect 105 50 111 52
-rect 82 44 111 50
-rect 322 50 328 52
-rect 345 50 351 67
-rect 322 44 351 50
-rect 0 9 432 24
-rect 0 -9 16 9
-rect 33 -9 64 9
-rect 81 -9 112 9
-rect 129 -9 160 9
-rect 177 -9 208 9
-rect 225 -9 256 9
-rect 273 -9 304 9
-rect 321 -9 352 9
-rect 369 -9 400 9
-rect 417 -9 432 9
-rect 0 -24 432 -9
-<< labels >>
-rlabel metal1 329 73 343 220 0 Y
-port 10 se
-rlabel metal1 137 114 151 178 0 A
-port 13 se
-rlabel metal1 281 114 295 178 0 B
-port 16 se
-rlabel locali 0 309 432 357 0 VDD
-port 1 se
-rlabel metal1 0 309 432 357 0 VDD
-port 2 se
-rlabel locali 0 -24 432 24 0 GND
-port 3 se
-rlabel metal1 0 -24 432 24 0 GND
-port 4 se
-rlabel metal1 82 44 111 52 0 Y
-port 5 se
-rlabel metal1 322 44 351 52 0 Y
-port 6 se
-rlabel metal1 82 52 351 66 0 Y
-port 7 se
-rlabel metal1 82 66 111 73 0 Y
-port 8 se
-rlabel metal1 322 66 351 73 0 Y
-port 9 se
-rlabel metal1 322 220 351 249 0 Y
-port 11 se
-rlabel metal1 130 85 159 114 0 A
-port 12 se
-rlabel metal1 130 178 159 207 0 A
-port 14 se
-rlabel metal1 274 85 303 114 0 B
-port 15 se
-rlabel metal1 274 178 303 207 0 B
-port 17 se
-<< properties >>
-string FIXED_BBOX 0 0 432 333
-<< end >>
diff --git a/cells/mag/OR2X1.mag b/cells/mag/OR2X1.mag
new file mode 100644
index 0000000..fcff2a8
--- /dev/null
+++ b/cells/mag/OR2X1.mag
@@ -0,0 +1,349 @@
+magic
+tech sky130A
+timestamp 1624703695
+<< nwell >>
+rect 0 179 576 333
+<< nmos >>
+rect 137 24 152 66
+rect 281 24 296 66
+rect 425 24 440 66
+<< pmos >>
+rect 137 225 152 309
+rect 281 225 296 309
+rect 425 225 440 309
+<< ndiff >>
+rect 226 67 255 73
+rect 226 66 232 67
+rect 58 51 137 66
+rect 58 34 64 51
+rect 81 34 137 51
+rect 58 24 137 34
+rect 152 50 232 66
+rect 249 66 255 67
+rect 466 67 495 73
+rect 466 66 472 67
+rect 249 50 281 66
+rect 152 24 281 50
+rect 296 51 425 66
+rect 296 34 328 51
+rect 345 34 425 51
+rect 296 24 425 34
+rect 440 50 472 66
+rect 489 66 495 67
+rect 489 50 519 66
+rect 440 24 519 50
+<< pdiff >>
+rect 58 243 137 309
+rect 58 226 88 243
+rect 105 226 137 243
+rect 58 225 137 226
+rect 152 225 281 309
+rect 296 299 425 309
+rect 296 282 328 299
+rect 345 282 425 299
+rect 296 225 425 282
+rect 440 243 519 309
+rect 440 226 472 243
+rect 489 226 519 243
+rect 440 225 519 226
+rect 82 220 111 225
+rect 466 220 495 225
+<< ndiffc >>
+rect 64 34 81 51
+rect 232 50 249 67
+rect 328 34 345 51
+rect 472 50 489 67
+<< pdiffc >>
+rect 88 226 105 243
+rect 328 282 345 299
+rect 472 226 489 243
+<< poly >>
+rect 137 309 152 322
+rect 281 309 296 322
+rect 425 309 440 322
+rect 137 209 152 225
+rect 281 209 296 225
+rect 425 209 440 225
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 128 83 161 91
+rect 272 108 305 116
+rect 272 91 280 108
+rect 297 91 305 108
+rect 272 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 137 66 152 83
+rect 281 66 296 83
+rect 425 66 440 83
+rect 137 11 152 24
+rect 281 11 296 24
+rect 425 11 440 24
+<< polycont >>
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+<< locali >>
+rect 0 342 576 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 576 342
+rect 0 309 576 325
+rect 320 299 353 309
+rect 320 282 328 299
+rect 345 282 353 299
+rect 320 274 353 282
+rect 80 243 113 251
+rect 80 226 88 243
+rect 105 226 113 243
+rect 464 243 497 251
+rect 464 226 472 243
+rect 489 226 497 243
+rect 80 218 111 226
+rect 466 218 497 226
+rect 128 201 161 209
+rect 128 184 136 201
+rect 153 184 161 201
+rect 128 176 161 184
+rect 272 201 305 209
+rect 272 184 280 201
+rect 297 184 305 201
+rect 272 176 305 184
+rect 416 201 449 209
+rect 416 184 424 201
+rect 441 184 449 201
+rect 416 176 449 184
+rect 136 116 153 131
+rect 280 116 297 131
+rect 128 108 161 116
+rect 128 91 136 108
+rect 153 91 161 108
+rect 272 108 305 116
+rect 272 92 280 108
+rect 128 83 161 91
+rect 274 91 280 92
+rect 297 91 305 108
+rect 274 83 305 91
+rect 416 108 449 116
+rect 416 91 424 108
+rect 441 91 449 108
+rect 416 83 449 91
+rect 224 67 257 75
+rect 56 51 89 59
+rect 56 34 64 51
+rect 81 34 89 51
+rect 224 50 232 67
+rect 249 50 257 67
+rect 466 67 497 75
+rect 466 66 472 67
+rect 224 42 257 50
+rect 320 51 353 59
+rect 56 24 89 34
+rect 320 34 328 51
+rect 345 34 353 51
+rect 464 50 472 66
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 24 353 34
+rect 0 9 576 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 576 9
+rect 0 -24 576 -9
+<< viali >>
+rect 16 325 33 342
+rect 64 325 81 342
+rect 112 325 129 342
+rect 160 325 177 342
+rect 208 325 225 342
+rect 256 325 273 342
+rect 304 325 321 342
+rect 352 325 369 342
+rect 400 325 417 342
+rect 448 325 465 342
+rect 496 325 513 342
+rect 544 325 561 342
+rect 328 282 345 299
+rect 88 226 105 243
+rect 472 226 489 243
+rect 136 184 153 201
+rect 280 184 297 201
+rect 424 184 441 201
+rect 136 131 153 148
+rect 280 131 297 148
+rect 424 91 441 108
+rect 64 34 81 51
+rect 232 50 249 67
+rect 328 34 345 51
+rect 472 50 489 67
+rect 16 -9 33 9
+rect 64 -9 81 9
+rect 112 -9 129 9
+rect 160 -9 177 9
+rect 208 -9 225 9
+rect 256 -9 273 9
+rect 304 -9 321 9
+rect 352 -9 369 9
+rect 400 -9 417 9
+rect 448 -9 465 9
+rect 496 -9 513 9
+rect 544 -9 561 9
+<< metal1 >>
+rect 0 342 576 357
+rect 0 325 16 342
+rect 33 325 64 342
+rect 81 325 112 342
+rect 129 325 160 342
+rect 177 325 208 342
+rect 225 325 256 342
+rect 273 325 304 342
+rect 321 325 352 342
+rect 369 325 400 342
+rect 417 325 448 342
+rect 465 325 496 342
+rect 513 325 544 342
+rect 561 325 576 342
+rect 0 309 576 325
+rect 322 299 351 309
+rect 322 282 328 299
+rect 345 282 351 299
+rect 322 276 351 282
+rect 82 243 111 249
+rect 82 226 88 243
+rect 105 226 111 243
+rect 82 220 111 226
+rect 466 243 495 249
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
+rect 89 106 103 220
+rect 130 201 159 207
+rect 130 184 136 201
+rect 153 184 159 201
+rect 130 178 159 184
+rect 274 201 303 207
+rect 274 184 280 201
+rect 297 184 303 201
+rect 274 178 303 184
+rect 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 154 151 178
+rect 281 154 295 178
+rect 130 148 159 154
+rect 130 131 136 148
+rect 153 131 159 148
+rect 130 125 159 131
+rect 274 148 303 154
+rect 274 131 280 148
+rect 297 131 303 148
+rect 274 125 303 131
+rect 425 114 439 178
+rect 418 108 447 114
+rect 418 106 424 108
+rect 89 92 424 106
+rect 233 73 247 92
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 473 73 487 220
+rect 226 67 255 73
+rect 58 51 87 57
+rect 58 34 64 51
+rect 81 34 87 51
+rect 226 50 232 67
+rect 249 50 255 67
+rect 466 67 495 73
+rect 226 44 255 50
+rect 322 51 351 57
+rect 58 24 87 34
+rect 322 34 328 51
+rect 345 34 351 51
+rect 466 50 472 67
+rect 489 50 495 67
+rect 466 44 495 50
+rect 322 24 351 34
+rect 0 9 576 24
+rect 0 -9 16 9
+rect 33 -9 64 9
+rect 81 -9 112 9
+rect 129 -9 160 9
+rect 177 -9 208 9
+rect 225 -9 256 9
+rect 273 -9 304 9
+rect 321 -9 352 9
+rect 369 -9 400 9
+rect 417 -9 448 9
+rect 465 -9 496 9
+rect 513 -9 544 9
+rect 561 -9 576 9
+rect 0 -24 576 -9
+<< labels >>
+rlabel locali 0 309 576 357 0 VDD
+port 1 se
+rlabel metal1 0 309 576 357 0 VDD
+port 2 se
+rlabel locali 0 -24 576 24 0 GND
+port 3 se
+rlabel metal1 0 -24 576 24 0 GND
+port 4 se
+rlabel metal1 466 44 495 73 0 Y
+port 5 se
+rlabel metal1 473 73 487 220 0 Y
+port 6 se
+rlabel metal1 466 220 495 249 0 Y
+port 7 se
+rlabel metal1 274 125 303 154 0 B
+port 8 se
+rlabel metal1 281 154 295 178 0 B
+port 9 se
+rlabel metal1 274 178 303 207 0 B
+port 10 se
+rlabel metal1 130 125 159 154 0 A
+port 11 se
+rlabel metal1 137 154 151 178 0 A
+port 12 se
+rlabel metal1 130 178 159 207 0 A
+port 13 se
+<< properties >>
+string FIXED_BBOX 0 0 576 333
+<< end >>
diff --git a/cells/mag/OR2X2.mag b/cells/mag/OR2X2.mag
index fd784a3..9585b22 100644
--- a/cells/mag/OR2X2.mag
+++ b/cells/mag/OR2X2.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624575563
+timestamp 1624703741
 << nwell >>
 rect 0 179 576 333
 << nmos >>
@@ -128,7 +128,7 @@
 rect 464 226 472 243
 rect 489 226 497 243
 rect 80 218 111 226
-rect 464 218 497 226
+rect 466 218 497 226
 rect 128 201 161 209
 rect 128 184 136 201
 rect 153 184 161 201
@@ -137,12 +137,10 @@
 rect 272 184 280 201
 rect 297 184 305 201
 rect 272 176 305 184
-rect 416 201 447 209
+rect 416 201 449 209
 rect 416 184 424 201
 rect 441 184 449 201
 rect 416 176 449 184
-rect 136 116 153 176
-rect 280 116 297 131
 rect 128 108 161 116
 rect 128 91 136 108
 rect 153 91 161 108
@@ -154,28 +152,26 @@
 rect 274 83 305 91
 rect 416 108 449 116
 rect 416 91 424 108
-rect 441 92 449 108
-rect 441 91 447 92
-rect 416 83 447 91
+rect 441 91 449 108
+rect 416 83 449 91
 rect 224 67 257 75
 rect 56 51 89 59
 rect 56 34 64 51
 rect 81 34 89 51
 rect 224 50 232 67
 rect 249 50 257 67
-rect 464 67 497 75
+rect 466 67 497 75
+rect 466 66 472 67
 rect 224 42 257 50
 rect 320 51 353 59
-rect 56 26 89 34
+rect 56 24 89 34
 rect 320 34 328 51
 rect 345 34 353 51
-rect 464 50 472 67
+rect 464 50 472 66
 rect 489 50 497 67
 rect 464 42 497 50
-rect 320 26 353 34
-rect 303 24 370 26
-rect 0 9 39 24
-rect 106 9 576 24
+rect 320 24 353 34
+rect 0 9 576 24
 rect 0 -9 16 9
 rect 33 -9 64 9
 rect 81 -9 112 9
@@ -209,11 +205,11 @@
 rect 136 184 153 201
 rect 280 184 297 201
 rect 424 184 441 201
-rect 280 131 297 148
+rect 136 91 153 108
+rect 280 91 297 108
 rect 424 91 441 108
 rect 64 34 81 51
 rect 232 50 249 67
-rect 328 34 345 51
 rect 472 50 489 67
 rect 16 -9 33 9
 rect 64 -9 81 9
@@ -249,17 +245,24 @@
 rect 322 276 351 282
 rect 82 243 111 249
 rect 82 226 88 243
-rect 105 226 111 243
-rect 82 220 111 226
+rect 105 241 111 243
 rect 466 243 495 249
-rect 466 226 472 243
-rect 489 226 495 243
-rect 466 220 495 226
-rect 89 106 103 220
+rect 105 227 247 241
+rect 105 226 111 227
+rect 82 220 111 226
 rect 130 201 159 207
 rect 130 184 136 201
 rect 153 184 159 201
 rect 130 178 159 184
+rect 137 114 151 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 233 73 247 227
+rect 466 226 472 243
+rect 489 226 495 243
+rect 466 220 495 226
 rect 274 201 303 207
 rect 274 184 280 201
 rect 297 184 303 201
@@ -268,36 +271,32 @@
 rect 418 184 424 201
 rect 441 184 447 201
 rect 418 178 447 184
-rect 281 154 295 178
-rect 274 148 303 154
-rect 274 131 280 148
-rect 297 131 303 148
-rect 274 125 303 131
+rect 281 114 295 178
 rect 425 114 439 178
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 274 85 303 91
 rect 418 108 447 114
-rect 418 106 424 108
-rect 89 92 424 106
-rect 233 73 247 92
-rect 418 91 424 92
+rect 418 91 424 108
 rect 441 91 447 108
 rect 418 85 447 91
-rect 473 73 487 220
 rect 226 67 255 73
 rect 58 51 87 57
 rect 58 34 64 51
 rect 81 34 87 51
 rect 226 50 232 67
-rect 249 50 255 67
+rect 249 66 255 67
+rect 425 66 439 85
+rect 473 73 487 220
+rect 249 52 439 66
 rect 466 67 495 73
+rect 249 50 255 52
 rect 226 44 255 50
-rect 322 51 351 57
-rect 58 24 87 34
-rect 322 34 328 51
-rect 345 34 351 51
 rect 466 50 472 67
 rect 489 50 495 67
 rect 466 44 495 50
-rect 322 24 351 34
+rect 58 24 87 34
 rect 0 9 576 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -318,7 +317,7 @@
 port 1 se
 rlabel metal1 0 309 576 357 0 VDD
 port 2 se
-rlabel metal1 0 -24 576 24 0 GND
+rlabel locali 0 -24 576 24 0 GND
 port 3 se
 rlabel metal1 0 -24 576 24 0 GND
 port 4 se
@@ -328,14 +327,18 @@
 port 6 se
 rlabel metal1 466 220 495 249 0 Y
 port 7 se
-rlabel metal1 130 178 159 207 0 A
+rlabel metal1 274 85 303 114 0 B
 port 8 se
-rlabel metal1 274 125 303 154 0 B
+rlabel metal1 281 114 295 178 0 B
 port 9 se
-rlabel metal1 281 154 295 178 0 B
-port 10 se
 rlabel metal1 274 178 303 207 0 B
+port 10 se
+rlabel metal1 130 85 159 114 0 A
 port 11 se
+rlabel metal1 137 114 151 178 0 A
+port 12 se
+rlabel metal1 130 178 159 207 0 A
+port 13 se
 << properties >>
 string FIXED_BBOX 0 0 576 333
 << end >>
diff --git a/cells/mag/XNOR2X1.mag b/cells/mag/XNOR2X1.mag
index 168ad55..2623762 100644
--- a/cells/mag/XNOR2X1.mag
+++ b/cells/mag/XNOR2X1.mag
@@ -1,6 +1,6 @@
 magic
 tech sky130A
-timestamp 1624575626
+timestamp 1624703817
 << nwell >>
 rect 0 179 1008 333
 << nmos >>
@@ -197,8 +197,8 @@
 rect 176 299 209 309
 rect 176 282 184 299
 rect 201 282 209 299
-rect 176 274 209 282
 rect 752 299 785 309
+rect 176 274 209 282
 rect 752 282 760 299
 rect 777 282 785 299
 rect 752 274 785 282
@@ -208,12 +208,8 @@
 rect 464 243 497 251
 rect 464 226 472 243
 rect 489 226 497 243
-rect 896 243 929 251
-rect 896 226 904 243
-rect 921 226 929 243
 rect 56 218 89 226
 rect 466 218 497 226
-rect 898 218 929 226
 rect 128 201 161 209
 rect 128 184 136 201
 rect 153 184 161 201
@@ -226,9 +222,6 @@
 rect 416 184 424 201
 rect 441 184 449 201
 rect 416 176 449 184
-rect 136 116 153 176
-rect 280 116 297 176
-rect 424 116 441 131
 rect 128 108 161 116
 rect 128 91 136 108
 rect 153 91 161 108
@@ -243,6 +236,12 @@
 rect 441 91 447 92
 rect 416 83 447 91
 rect 472 75 489 218
+rect 568 209 585 226
+rect 712 209 729 266
+rect 896 243 929 251
+rect 896 226 904 243
+rect 921 226 929 243
+rect 898 218 929 226
 rect 560 201 593 209
 rect 560 184 568 201
 rect 585 184 593 201
@@ -255,9 +254,9 @@
 rect 848 184 856 201
 rect 873 184 881 201
 rect 848 176 881 184
-rect 520 108 537 172
+rect 712 116 729 176
 rect 560 108 593 116
-rect 520 91 568 108
+rect 560 91 568 108
 rect 585 91 593 108
 rect 560 83 593 91
 rect 704 108 737 116
@@ -278,18 +277,16 @@
 rect 201 34 209 51
 rect 464 50 472 67
 rect 489 50 497 67
-rect 568 67 585 83
 rect 898 67 929 75
 rect 898 66 904 67
-rect 752 51 785 59
 rect 464 42 497 50
-rect 176 26 209 34
+rect 752 51 785 59
+rect 176 24 209 34
 rect 752 34 760 51
 rect 777 34 785 51
 rect 896 50 904 66
 rect 921 50 929 67
 rect 896 42 929 50
-rect 159 24 226 26
 rect 752 24 785 34
 rect 0 9 1008 24
 rect 0 -9 16 9
@@ -337,24 +334,24 @@
 rect 880 325 897 342
 rect 928 325 945 342
 rect 976 325 993 342
-rect 184 282 201 299
+rect 712 266 729 283
 rect 760 282 777 299
 rect 64 226 81 243
-rect 904 226 921 243
+rect 568 226 585 243
 rect 136 184 153 201
 rect 280 184 297 201
 rect 424 184 441 201
-rect 424 131 441 148
-rect 520 172 537 189
-rect 568 184 585 201
-rect 712 184 729 201
+rect 136 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 904 226 921 243
 rect 856 184 873 201
-rect 712 91 729 108
+rect 568 91 585 108
 rect 856 91 873 108
 rect 64 50 81 67
 rect 184 34 201 51
 rect 472 50 489 67
-rect 568 50 585 67
+rect 760 34 777 51
 rect 904 50 921 67
 rect 16 -9 33 9
 rect 64 -9 81 9
@@ -402,26 +399,25 @@
 rect 945 325 976 342
 rect 993 325 1008 342
 rect 0 309 1008 325
-rect 178 299 207 309
-rect 178 282 184 299
-rect 201 282 207 299
-rect 178 276 207 282
 rect 754 299 783 309
+rect 706 283 735 289
+rect 706 282 712 283
+rect 65 268 712 282
+rect 65 249 79 268
+rect 706 266 712 268
+rect 729 266 735 283
 rect 754 282 760 299
 rect 777 282 783 299
 rect 754 276 783 282
+rect 706 260 735 266
 rect 58 243 87 249
 rect 58 226 64 243
 rect 81 226 87 243
-rect 898 243 927 249
-rect 898 241 904 243
+rect 562 243 591 249
+rect 562 241 568 243
 rect 58 220 87 226
-rect 569 227 904 241
-rect 65 106 79 220
-rect 569 207 583 227
-rect 898 226 904 227
-rect 921 226 927 243
-rect 898 220 927 226
+rect 377 227 568 241
+rect 65 73 79 220
 rect 130 201 159 207
 rect 130 184 136 201
 rect 153 200 159 201
@@ -433,49 +429,55 @@
 rect 274 184 280 186
 rect 297 184 303 201
 rect 274 178 303 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 130 108 159 114
+rect 130 91 136 108
+rect 153 91 159 108
+rect 130 85 159 91
+rect 274 108 303 114
+rect 274 91 280 108
+rect 297 91 303 108
+rect 377 106 391 227
+rect 562 226 568 227
+rect 585 241 591 243
+rect 898 243 927 249
+rect 898 241 904 243
+rect 585 227 904 241
+rect 585 226 591 227
+rect 562 220 591 226
+rect 898 226 904 227
+rect 921 226 927 243
+rect 898 220 927 226
 rect 418 201 447 207
 rect 418 184 424 201
-rect 441 187 447 201
-rect 562 201 591 207
-rect 514 189 543 195
-rect 514 187 520 189
-rect 441 184 520 187
-rect 418 178 520 184
-rect 425 173 520 178
-rect 514 172 520 173
-rect 537 172 543 189
-rect 562 184 568 201
-rect 585 184 591 201
-rect 562 178 591 184
-rect 706 201 735 207
-rect 706 184 712 201
-rect 729 184 735 201
-rect 706 178 735 184
+rect 441 200 447 201
 rect 850 201 879 207
-rect 850 184 856 201
+rect 850 200 856 201
+rect 441 186 856 200
+rect 441 184 447 186
+rect 418 178 447 184
+rect 569 114 583 186
+rect 850 184 856 186
 rect 873 184 879 201
 rect 850 178 879 184
-rect 514 166 543 172
-rect 418 148 447 154
-rect 418 131 424 148
-rect 441 147 447 148
-rect 569 147 583 178
-rect 441 133 583 147
-rect 441 131 447 133
-rect 418 125 447 131
-rect 713 114 727 178
 rect 857 114 871 178
-rect 706 108 735 114
-rect 706 106 712 108
-rect 65 92 712 106
-rect 65 73 79 92
-rect 706 91 712 92
-rect 729 91 735 108
-rect 706 85 735 91
+rect 418 108 447 114
+rect 418 106 424 108
+rect 377 92 424 106
+rect 274 85 303 91
+rect 418 91 424 92
+rect 441 91 447 108
+rect 418 85 447 91
+rect 562 108 591 114
+rect 562 91 568 108
+rect 585 91 591 108
+rect 562 85 591 91
 rect 850 108 879 114
 rect 850 91 856 108
 rect 873 91 879 108
 rect 850 85 879 91
+rect 905 73 919 220
 rect 58 67 87 73
 rect 58 50 64 67
 rect 81 50 87 67
@@ -486,20 +488,16 @@
 rect 201 34 207 51
 rect 466 50 472 67
 rect 489 50 495 67
-rect 466 44 495 50
-rect 562 67 591 73
-rect 562 50 568 67
-rect 585 66 591 67
-rect 857 66 871 85
-rect 905 73 919 220
-rect 585 52 871 66
 rect 898 67 927 73
-rect 585 50 591 52
-rect 562 44 591 50
+rect 466 44 495 50
+rect 754 51 783 57
+rect 178 24 207 34
+rect 754 34 760 51
+rect 777 34 783 51
 rect 898 50 904 67
 rect 921 50 927 67
 rect 898 44 927 50
-rect 178 24 207 34
+rect 754 24 783 34
 rect 0 9 1008 24
 rect 0 -9 16 9
 rect 33 -9 64 9
@@ -535,26 +533,42 @@
 port 4 se
 rlabel metal1 466 44 495 73 0 Y
 port 5 se
-rlabel metal1 130 178 159 186 0 B
+rlabel metal1 130 85 159 114 0 B
 port 6 se
-rlabel metal1 274 178 303 186 0 B
+rlabel metal1 274 85 303 114 0 B
 port 7 se
-rlabel metal1 130 186 303 200 0 B
+rlabel metal1 137 114 151 178 0 B
 port 8 se
-rlabel metal1 130 200 159 207 0 B
+rlabel metal1 281 114 295 178 0 B
 port 9 se
-rlabel metal1 274 200 303 207 0 B
+rlabel metal1 130 178 159 186 0 B
 port 10 se
-rlabel metal1 514 166 543 173 0 A
+rlabel metal1 274 178 303 186 0 B
 port 11 se
-rlabel metal1 425 173 543 178 0 A
+rlabel metal1 130 186 303 200 0 B
 port 12 se
-rlabel metal1 418 178 543 187 0 A
+rlabel metal1 130 200 159 207 0 B
 port 13 se
-rlabel metal1 514 187 543 195 0 A
+rlabel metal1 274 200 303 207 0 B
 port 14 se
-rlabel metal1 418 187 447 207 0 A
+rlabel metal1 562 85 591 114 0 A
 port 15 se
+rlabel metal1 850 85 879 114 0 A
+port 16 se
+rlabel metal1 857 114 871 178 0 A
+port 17 se
+rlabel metal1 418 178 447 186 0 A
+port 18 se
+rlabel metal1 569 114 583 186 0 A
+port 19 se
+rlabel metal1 850 178 879 186 0 A
+port 20 se
+rlabel metal1 418 186 879 200 0 A
+port 21 se
+rlabel metal1 418 200 447 207 0 A
+port 22 se
+rlabel metal1 850 200 879 207 0 A
+port 23 se
 << properties >>
 string FIXED_BBOX 0 0 1008 333
 << end >>
diff --git a/cells/sp/BUFX4.sp b/cells/sp/BUFX4.sp
new file mode 100644
index 0000000..362a55f
--- /dev/null
+++ b/cells/sp/BUFX4.sp
@@ -0,0 +1,11 @@
+*** Spice netlist generated by cell2spice.pl from cell file BUFX4.cell ***
+
+.subckt BUFX4 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M2 Y 1 vdd vdd pmos w=0.840u l=0.150u
+M3 1 A gnd gnd nmos w=0.420u l=0.150u
+M4 Y 1 gnd gnd nmos w=0.420u l=0.150u
+M5 Y 1 gnd gnd nmos w=0.420u l=0.150u
+.ends BUFX4
+
diff --git a/cells/sp/CLKBUF1.sp b/cells/sp/CLKBUF1.sp
new file mode 100644
index 0000000..6148a61
--- /dev/null
+++ b/cells/sp/CLKBUF1.sp
@@ -0,0 +1,21 @@
+*** Spice netlist generated by cell2spice.pl from cell file CLKBUF1.cell ***
+
+.subckt CLKBUF1 vdd gnd A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 A vdd vdd pmos w=0.840u l=0.150u
+M2 2 1 vdd vdd pmos w=0.840u l=0.150u
+M3 2 1 vdd vdd pmos w=0.840u l=0.150u
+M4 3 2 vdd vdd pmos w=0.840u l=0.150u
+M5 3 2 vdd vdd pmos w=0.840u l=0.150u
+M6 Y 3 vdd vdd pmos w=0.840u l=0.150u
+M7 Y 3 vdd vdd pmos w=0.840u l=0.150u
+M8 1 A gnd gnd nmos w=0.420u l=0.150u
+M9 1 A gnd gnd nmos w=0.420u l=0.150u
+M10 2 1 gnd gnd nmos w=0.420u l=0.150u
+M11 2 1 gnd gnd nmos w=0.420u l=0.150u
+M12 3 2 gnd gnd nmos w=0.420u l=0.150u
+M13 3 2 gnd gnd nmos w=0.420u l=0.150u
+M14 Y 3 gnd gnd nmos w=0.420u l=0.150u
+M15 Y 3 gnd gnd nmos w=0.420u l=0.150u
+.ends CLKBUF1
+
diff --git a/cells/sp/INVX8.sp b/cells/sp/INVX8.sp
new file mode 100644
index 0000000..2831028
--- /dev/null
+++ b/cells/sp/INVX8.sp
@@ -0,0 +1,13 @@
+*** Spice netlist generated by cell2spice.pl from cell file INVX8.cell ***
+
+.subckt INVX8 vdd gnd A Y
+M0 Y A vdd vdd pmos w=0.840u l=0.150u
+M1 Y A vdd vdd pmos w=0.840u l=0.150u
+M2 Y A vdd vdd pmos w=0.840u l=0.150u
+M3 Y A vdd vdd pmos w=0.840u l=0.150u
+M4 Y A gnd gnd nmos w=0.420u l=0.150u
+M5 Y A gnd gnd nmos w=0.420u l=0.150u
+M6 Y A gnd gnd nmos w=0.420u l=0.150u
+M7 Y A gnd gnd nmos w=0.420u l=0.150u
+.ends INVX8
+
diff --git a/cells/sp/NOR2X1.sp b/cells/sp/NOR2X1.sp
deleted file mode 100644
index f4b92a9..0000000
--- a/cells/sp/NOR2X1.sp
+++ /dev/null
@@ -1,9 +0,0 @@
-*** Spice netlist generated by cell2spice.pl from cell file NOR2X1.cell ***
-
-.subckt NOR2X1 vdd gnd B A Y
-M0 1 A vdd vdd pmos w=0.840u l=0.150u
-M1 Y B 1 vdd pmos w=0.840u l=0.150u
-M2 Y A gnd gnd nmos w=0.420u l=0.150u
-M3 Y B gnd gnd nmos w=0.420u l=0.150u
-.ends NOR2X1
-
diff --git a/cells/sp/XOR2X1.sp b/cells/sp/XOR2X1.sp
deleted file mode 100644
index b33f108..0000000
--- a/cells/sp/XOR2X1.sp
+++ /dev/null
@@ -1,17 +0,0 @@
-*** Spice netlist generated by cell2spice.pl from cell file XOR2X1.cell ***
-
-.subckt XOR2X1 vdd gnd B A Y
-M0 1 A vdd vdd pmos w=0.840u l=0.150u
-M1 3 2 vdd vdd pmos w=0.840u l=0.150u
-M2 Y A 3 vdd pmos w=0.840u l=0.150u
-M3 4 1 Y vdd pmos w=0.840u l=0.150u
-M4 4 B vdd vdd pmos w=0.840u l=0.150u
-M5 2 B vdd vdd pmos w=0.840u l=0.150u
-M6 1 A gnd gnd nmos w=0.420u l=0.150u
-M7 5 2 gnd gnd nmos w=0.420u l=0.150u
-M8 Y 1 5 gnd nmos w=0.420u l=0.150u
-M9 6 A Y gnd nmos w=0.420u l=0.150u
-M10 6 B gnd gnd nmos w=0.420u l=0.150u
-M11 2 B gnd gnd nmos w=0.420u l=0.150u
-.ends XOR2X1
-
diff --git a/openlane/user_proj_example/macro_placement.cfg b/openlane/user_proj_example/macro_placement.cfg
index 689e749..3bf1e9a 100644
--- a/openlane/user_proj_example/macro_placement.cfg
+++ b/openlane/user_proj_example/macro_placement.cfg
@@ -3,13 +3,16 @@
 AOI21X1 38.4 36.63 N
 AOI22X1 38.4 43.29 N
 BUFX2 38.4 49.95 N
-INV 38.4 56.61 N
-INVX1 38.4 63.27 N
-INVX2 38.4 69.93 N
-INVX4 38.4 76.59 N
-MUX2X1 38.4 83.25 N
-NAND2X1 38.4 89.91 N
-NAND3X1 38.4 96.57 N
-NOR2X1 38.4 103.23 N
-OR2X2 38.4 109.89 N
-XNOR2X1 38.4 116.55 N
+BUFX4 38.4 56.61 N
+CLKBUF1 38.4 63.27 N
+INV 38.4 69.93 N
+INVX1 38.4 76.59 N
+INVX2 38.4 83.25 N
+INVX4 38.4 89.91 N
+INVX8 38.4 96.57 N
+MUX2X1 38.4 103.23 N
+NAND2X1 38.4 109.89 N
+NAND3X1 38.4 116.55 N
+OR2X1 38.4 123.21 N
+OR2X2 38.4 129.87 N
+XNOR2X1 38.4 136.53 N
diff --git a/verilog/rtl/user_proj_cells.v b/verilog/rtl/user_proj_cells.v
index 0dcb0dc..54af4c7 100644
--- a/verilog/rtl/user_proj_cells.v
+++ b/verilog/rtl/user_proj_cells.v
@@ -64,6 +64,26 @@
 );
 endmodule
 
+module BUFX4(
+  inout A, // input
+  inout Y, // output
+     `ifdef USE_POWER_PINS
+	inout vdd, // cell power supply
+	inout gnd  // cell ground supply
+     `endif
+);
+endmodule
+
+module CLKBUF1(
+  inout A, // input
+  inout Y, // output
+     `ifdef USE_POWER_PINS
+	inout vdd, // cell power supply
+	inout gnd  // cell ground supply
+     `endif
+);
+endmodule
+
 module INV(
   inout A, // input
   inout Y, // output
@@ -104,6 +124,16 @@
 );
 endmodule
 
+module INVX8(
+  inout A, // input
+  inout Y, // output
+     `ifdef USE_POWER_PINS
+	inout vdd, // cell power supply
+	inout gnd  // cell ground supply
+     `endif
+);
+endmodule
+
 module MUX2X1(
   inout A, // input
   inout B, // input
@@ -139,7 +169,7 @@
 );
 endmodule
 
-module NOR2X1(
+module OR2X1(
   inout A, // input
   inout B, // input
   inout Y, // output
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index b50334b..12d9d6d 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -91,7 +91,7 @@
   .A(io_in[15]),
   .Y(io_out[16]),
 );
-INV INV(
+BUFX4 BUFX4(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
@@ -99,7 +99,7 @@
   .A(io_in[17]),
   .Y(io_out[18]),
 );
-INVX1 INVX1(
+CLKBUF1 CLKBUF1(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
@@ -107,7 +107,7 @@
   .A(io_in[19]),
   .Y(io_out[20]),
 );
-INVX2 INVX2(
+INV INV(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
@@ -115,7 +115,7 @@
   .A(io_in[21]),
   .Y(io_out[22]),
 );
-INVX4 INVX4(
+INVX1 INVX1(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
@@ -123,54 +123,60 @@
   .A(io_in[23]),
   .Y(io_out[24]),
 );
-MUX2X1 MUX2X1(
+INVX2 INVX2(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
  `endif
   .A(io_in[25]),
-  .B(io_in[26]),
-  .S(io_in[27]),
+  .Y(io_out[26]),
+);
+INVX4 INVX4(
+ `ifdef USE_POWER_PINS
+  .vdd(vccd1),
+  .gnd(vssd1),
+ `endif
+  .A(io_in[27]),
   .Y(io_out[28]),
 );
+INVX8 INVX8(
+ `ifdef USE_POWER_PINS
+  .vdd(vccd1),
+  .gnd(vssd1),
+ `endif
+  .A(io_in[29]),
+  .Y(io_out[30]),
+);
+MUX2X1 MUX2X1(
+ `ifdef USE_POWER_PINS
+  .vdd(vccd1),
+  .gnd(vssd1),
+ `endif
+  .A(io_in[31]),
+  .B(io_in[32]),
+  .S(io_in[33]),
+  .Y(io_out[34]),
+);
 NAND2X1 NAND2X1(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
  `endif
-  .A(io_in[29]),
-  .B(io_in[30]),
-  .Y(io_out[31]),
+  .A(io_in[35]),
+  .B(io_in[36]),
+  .Y(io_out[37]),
 );
 NAND3X1 NAND3X1(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
  `endif
-  .A(io_in[32]),
-  .B(io_in[33]),
-  .C(io_in[34]),
-  .Y(io_out[35]),
-);
-NOR2X1 NOR2X1(
- `ifdef USE_POWER_PINS
-  .vdd(vccd1),
-  .gnd(vssd1),
- `endif
-  .A(io_in[36]),
-  .B(io_in[37]),
-  .Y(la_data_out[0]),
-);
-OR2X2 OR2X2(
- `ifdef USE_POWER_PINS
-  .vdd(vccd1),
-  .gnd(vssd1),
- `endif
-  .A(la_data_in[1]),
-  .B(la_data_in[2]),
+  .A(la_data_in[0]),
+  .B(la_data_in[1]),
+  .C(la_data_in[2]),
   .Y(la_data_out[3]),
 );
-XNOR2X1 XNOR2X1(
+OR2X1 OR2X1(
  `ifdef USE_POWER_PINS
   .vdd(vccd1),
   .gnd(vssd1),
@@ -179,6 +185,24 @@
   .B(la_data_in[5]),
   .Y(la_data_out[6]),
 );
+OR2X2 OR2X2(
+ `ifdef USE_POWER_PINS
+  .vdd(vccd1),
+  .gnd(vssd1),
+ `endif
+  .A(la_data_in[7]),
+  .B(la_data_in[8]),
+  .Y(la_data_out[9]),
+);
+XNOR2X1 XNOR2X1(
+ `ifdef USE_POWER_PINS
+  .vdd(vccd1),
+  .gnd(vssd1),
+ `endif
+  .A(la_data_in[10]),
+  .B(la_data_in[11]),
+  .Y(la_data_out[12]),
+);
 assign io_oeb[0] = 1'b1;
 assign io_oeb[1] = 1'b1;
 assign io_oeb[2] = 1'b0;
@@ -205,16 +229,16 @@
 assign io_oeb[23] = 1'b1;
 assign io_oeb[24] = 1'b0;
 assign io_oeb[25] = 1'b1;
-assign io_oeb[26] = 1'b1;
+assign io_oeb[26] = 1'b0;
 assign io_oeb[27] = 1'b1;
 assign io_oeb[28] = 1'b0;
 assign io_oeb[29] = 1'b1;
-assign io_oeb[30] = 1'b1;
-assign io_oeb[31] = 1'b0;
+assign io_oeb[30] = 1'b0;
+assign io_oeb[31] = 1'b1;
 assign io_oeb[32] = 1'b1;
 assign io_oeb[33] = 1'b1;
-assign io_oeb[34] = 1'b1;
-assign io_oeb[35] = 1'b0;
+assign io_oeb[34] = 1'b0;
+assign io_oeb[35] = 1'b1;
 assign io_oeb[36] = 1'b1;
-assign io_oeb[37] = 1'b1;
+assign io_oeb[37] = 1'b0;
 endmodule