New cells
diff --git a/cells/cell/AOI22X1.cell b/cells/cell/AOI22X1.cell
new file mode 100644
index 0000000..7d10c30
--- /dev/null
+++ b/cells/cell/AOI22X1.cell
@@ -0,0 +1,12 @@
+.AUTOGENERATED by spice2cell script from /usr/share/qflow/tech/osu050/osu050_stdcells.sp
+.inputs D C B A
+.outputs Y
+.ORDER "MOSFET Gate Drain Source"
+pmos A 1 vdd
+pmos B 1 vdd
+pmos D Y 1
+pmos C 1 Y
+nmos A 2 gnd
+nmos B Y 2
+nmos D 3 Y
+nmos C 3 gnd
diff --git a/cells/cell/NOR2X1.cell b/cells/cell/NOR2X1.cell
new file mode 100644
index 0000000..32d5a8a
--- /dev/null
+++ b/cells/cell/NOR2X1.cell
@@ -0,0 +1,8 @@
+.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 B Y 1
+nmos A Y gnd
+nmos B Y gnd
diff --git a/cells/cell/XNOR2X1.cell b/cells/cell/XNOR2X1.cell
new file mode 100644
index 0000000..28e9f24
--- /dev/null
+++ b/cells/cell/XNOR2X1.cell
@@ -0,0 +1,16 @@
+.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 1 Y 3
+pmos A 4 Y
+pmos B 4 vdd
+pmos B 2 vdd
+nmos A 1 gnd
+nmos 2 5 gnd
+nmos A Y 5
+nmos 1 6 Y
+nmos B 6 gnd
+nmos B 2 gnd
diff --git a/cells/gds/AOI22X1.gds b/cells/gds/AOI22X1.gds
new file mode 100644
index 0000000..170f5f4
--- /dev/null
+++ b/cells/gds/AOI22X1.gds
Binary files differ
diff --git a/cells/gds/NOR2X1.gds b/cells/gds/NOR2X1.gds
new file mode 100644
index 0000000..7a2a3d5
--- /dev/null
+++ b/cells/gds/NOR2X1.gds
Binary files differ
diff --git a/cells/lef/AND2X1.lef.temp b/cells/lef/AND2X1.lef.temp
new file mode 100644
index 0000000..b12c7ac
--- /dev/null
+++ b/cells/lef/AND2X1.lef.temp
@@ -0,0 +1,71 @@
+MACRO AND2X1
+ CLASS CORE ;
+ FOREIGN AND2X1 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 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 ;
+    END
+  END B
+
+END AND2X1
diff --git a/cells/lef/AND2X2.lef.temp b/cells/lef/AND2X2.lef.temp
new file mode 100644
index 0000000..9e5af4c
--- /dev/null
+++ b/cells/lef/AND2X2.lef.temp
@@ -0,0 +1,73 @@
+MACRO AND2X2
+ CLASS CORE ;
+ FOREIGN AND2X2 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 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
+
+END AND2X2
diff --git a/cells/lef/AOI21X1.lef.temp b/cells/lef/AOI21X1.lef.temp
new file mode 100644
index 0000000..277b5f1
--- /dev/null
+++ b/cells/lef/AOI21X1.lef.temp
@@ -0,0 +1,90 @@
+MACRO AOI21X1
+ CLASS CORE ;
+ FOREIGN AOI21X1 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 0.57500000 0.44000000 0.86500000 0.51500000 ;
+        RECT 4.65500000 0.44000000 4.94500000 0.51500000 ;
+        RECT 0.57500000 0.51500000 4.94500000 0.65500000 ;
+        RECT 0.57500000 0.65500000 0.86500000 0.73000000 ;
+        RECT 4.65500000 0.65500000 4.94500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 2.19500000 ;
+        RECT 0.57500000 2.19500000 0.86500000 2.48500000 ;
+    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 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 ;
+   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 B
+
+END AOI21X1
diff --git a/cells/lef/AOI22X1.lef b/cells/lef/AOI22X1.lef
new file mode 100644
index 0000000..3c05133
--- /dev/null
+++ b/cells/lef/AOI22X1.lef
@@ -0,0 +1,187 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO AOI22X1
+  CLASS CORE ;
+  FOREIGN AOI22X1 ;
+  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 ;
+    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 ;
+    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 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 7.200 0.240 ;
+    END
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 5.140 2.200 5.430 2.490 ;
+        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 D
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 5.620 1.780 5.910 2.070 ;
+        RECT 5.690 1.140 5.830 1.780 ;
+        RECT 5.620 0.850 5.910 1.140 ;
+    END
+  END D
+  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 ;
+    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 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 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 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 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 ;
+        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 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 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.530 0.910 1.610 1.080 ;
+        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.910 4.490 1.080 ;
+        RECT 4.160 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.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.500 0.880 0.670 ;
+        RECT 1.050 0.500 1.130 0.670 ;
+        RECT 0.800 0.420 1.130 0.500 ;
+        RECT 6.080 0.670 6.410 0.750 ;
+        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.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 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 ;
+  END
+END AOI22X1
+END LIBRARY
+
diff --git a/cells/lef/AOI22X1.lef.temp b/cells/lef/AOI22X1.lef.temp
new file mode 100644
index 0000000..2c000ed
--- /dev/null
+++ b/cells/lef/AOI22X1.lef.temp
@@ -0,0 +1,103 @@
+MACRO AOI22X1
+ CLASS CORE ;
+ FOREIGN AOI22X1 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 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 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 ;
+    END
+  END Y
+
+  PIN D
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+    END
+  END D
+
+  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 ;
+   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 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.temp b/cells/lef/BUFX2.lef.temp
new file mode 100644
index 0000000..15ea3d0
--- /dev/null
+++ b/cells/lef/BUFX2.lef.temp
@@ -0,0 +1,60 @@
+MACRO BUFX2
+ CLASS CORE ;
+ FOREIGN BUFX2 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 3.21500000 0.44000000 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.38500000 ;
+        RECT 1.29500000 1.38500000 1.58500000 1.67500000 ;
+    END
+  END A
+
+END BUFX2
diff --git a/cells/lef/INV.lef.temp b/cells/lef/INV.lef.temp
new file mode 100644
index 0000000..537b72f
--- /dev/null
+++ b/cells/lef/INV.lef.temp
@@ -0,0 +1,60 @@
+MACRO INV
+ CLASS CORE ;
+ FOREIGN INV 0 0 ;
+ SIZE 2.88 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 2.88000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    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
+
+END INV
diff --git a/cells/lef/INVX1.lef.temp b/cells/lef/INVX1.lef.temp
new file mode 100644
index 0000000..731c3cb
--- /dev/null
+++ b/cells/lef/INVX1.lef.temp
@@ -0,0 +1,60 @@
+MACRO INVX1
+ CLASS CORE ;
+ FOREIGN INVX1 0 0 ;
+ SIZE 2.88 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 2.88000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    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
+
+END INVX1
diff --git a/cells/lef/INVX2.lef.temp b/cells/lef/INVX2.lef.temp
new file mode 100644
index 0000000..bc52aac
--- /dev/null
+++ b/cells/lef/INVX2.lef.temp
@@ -0,0 +1,60 @@
+MACRO INVX2
+ CLASS CORE ;
+ FOREIGN INVX2 0 0 ;
+ SIZE 2.88 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 2.88000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 2.88000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 2.88000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    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
+
+END INVX2
diff --git a/cells/lef/INVX4.lef.temp b/cells/lef/INVX4.lef.temp
new file mode 100644
index 0000000..2f0a182
--- /dev/null
+++ b/cells/lef/INVX4.lef.temp
@@ -0,0 +1,72 @@
+MACRO INVX4
+ CLASS CORE ;
+ FOREIGN INVX4 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.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 3.21500000 0.44000000 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 ;
+    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 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 ;
+    END
+  END A
+
+END INVX4
diff --git a/cells/lef/MUX2X1.lef.temp b/cells/lef/MUX2X1.lef.temp
new file mode 100644
index 0000000..27bf17e
--- /dev/null
+++ b/cells/lef/MUX2X1.lef.temp
@@ -0,0 +1,92 @@
+MACRO MUX2X1
+ CLASS CORE ;
+ FOREIGN MUX2X1 0 0 ;
+ SIZE 8.64 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 8.64000000 3.57000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 3.09000000 8.64000000 3.57000000 ;
+    END
+  END VDD
+
+  PIN GND
+   DIRECTION INOUT ;
+   USE POWER ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER li1 ;
+        RECT 0.00000000 -0.24000000 8.64000000 0.24000000 ;
+       LAYER met1 ;
+        RECT 0.00000000 -0.24000000 8.64000000 0.24000000 ;
+    END
+  END GND
+
+  PIN Y
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 4.65500000 1.78000000 4.94500000 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 ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    END
+  END B
+
+END MUX2X1
diff --git a/cells/lef/NAND2X1.lef.temp b/cells/lef/NAND2X1.lef.temp
new file mode 100644
index 0000000..6a37a4a
--- /dev/null
+++ b/cells/lef/NAND2X1.lef.temp
@@ -0,0 +1,77 @@
+MACRO NAND2X1
+ CLASS CORE ;
+ FOREIGN NAND2X1 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.57500000 0.44000000 0.86500000 0.73000000 ;
+        RECT 0.65000000 0.73000000 0.79000000 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 ;
+    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 ;
+   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 NAND2X1
diff --git a/cells/lef/NAND3X1.lef.temp b/cells/lef/NAND3X1.lef.temp
new file mode 100644
index 0000000..71c45ce
--- /dev/null
+++ b/cells/lef/NAND3X1.lef.temp
@@ -0,0 +1,90 @@
+MACRO NAND3X1
+ CLASS CORE ;
+ FOREIGN NAND3X1 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 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.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 ;
+    END
+  END Y
+
+  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
+
+  PIN A
+   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 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
new file mode 100644
index 0000000..3298ea5
--- /dev/null
+++ b/cells/lef/NOR2X1.lef
@@ -0,0 +1,122 @@
+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/NOR2X1.lef.temp b/cells/lef/NOR2X1.lef.temp
new file mode 100644
index 0000000..2229507
--- /dev/null
+++ b/cells/lef/NOR2X1.lef.temp
@@ -0,0 +1,77 @@
+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
+
+END NOR2X1
diff --git a/cells/lef/OR2X1.lef.temp b/cells/lef/OR2X1.lef.temp
new file mode 100644
index 0000000..95a57fd
--- /dev/null
+++ b/cells/lef/OR2X1.lef.temp
@@ -0,0 +1,73 @@
+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 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
+
+END OR2X1
diff --git a/cells/lef/OR2X2.lef.temp b/cells/lef/OR2X2.lef.temp
new file mode 100644
index 0000000..28c3d77
--- /dev/null
+++ b/cells/lef/OR2X2.lef.temp
@@ -0,0 +1,71 @@
+MACRO OR2X2
+ CLASS CORE ;
+ FOREIGN OR2X2 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 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 ;
+   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
+
+END OR2X2
diff --git a/cells/lef/XNOR2X1.lef b/cells/lef/XNOR2X1.lef
new file mode 100644
index 0000000..2a69612
--- /dev/null
+++ b/cells/lef/XNOR2X1.lef
@@ -0,0 +1,248 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO XNOR2X1
+  CLASS CORE ;
+  FOREIGN XNOR2X1 ;
+  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 ;
+        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 ;
+        RECT 7.540 2.760 7.830 2.820 ;
+    END
+    PORT
+      LAYER li1 ;
+        RECT 0.000 3.090 10.080 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 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 ;
+    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 10.080 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.260 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
+  END gnd
+  PIN Y
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    SHAPE ABUTMENT ;
+    PORT
+      LAYER met1 ;
+        RECT 4.660 0.440 4.950 0.730 ;
+    END
+  END Y
+  PIN B
+    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 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 ;
+    END
+  END B
+  PIN A
+    DIRECTION INOUT ;
+    USE SIGNAL ;
+    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 ;
+    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 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 ;
+        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.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 ;
+        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 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.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.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 8.480 2.010 8.810 2.090 ;
+        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 5.600 1.080 5.930 1.160 ;
+        RECT 5.200 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.910 7.370 1.080 ;
+        RECT 7.040 0.830 7.370 0.910 ;
+        RECT 8.480 1.080 8.810 1.160 ;
+        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 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 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.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 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 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 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 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 ;
+  END
+END XNOR2X1
+END LIBRARY
+
diff --git a/cells/lef/XNOR2X1.lef.beforemagic b/cells/lef/XNOR2X1.lef.beforemagic
new file mode 100644
index 0000000..881b489
--- /dev/null
+++ b/cells/lef/XNOR2X1.lef.beforemagic
@@ -0,0 +1,372 @@
+MACRO XNOR2X1
+ CLASS CORE ;
+ FOREIGN XNOR2X1 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 GROUND ;
+   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 4.65500000 0.44000000 4.94500000 0.73000000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    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 ;
+    END
+  END A
+
+
+  OBS
+    LAYER locali ;
+      RECT ( 0 3.42 ) ( 10.08 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.08 3.42 ) ;
+      RECT ( 0 3.09 ) ( 10.08 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 ( 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 ( 0.56 2.26 ) ( 0.64 2.43 ) ;
+      RECT ( 0.81 2.26 ) ( 0.89 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 ( 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 ) ;
+      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.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 ) ;
+      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 ( 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.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.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 ( 8.48 2.01 ) ( 8.81 2.09 ) ;
+      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 ( 5.6 1.08 ) ( 5.93 1.16 ) ;
+      RECT ( 5.2 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.91 ) ( 7.37 1.08 ) ;
+      RECT ( 7.04 0.83 ) ( 7.37 0.91 ) ;
+      RECT ( 8.48 1.08 ) ( 8.81 1.16 ) ;
+      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 ( 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 ( 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 ( 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.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 ) ;
+      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.08 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 10.08 -0.09 ) ;
+    LAYER metal1 ;
+      RECT ( 0 3.42 ) ( 10.08 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.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.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 ( 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 ( 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 ( 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.3 1.78 ) ( 1.59 1.84 ) ;
+      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 ( 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 ( 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 ( 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 ( 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 ( 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.66 0.67 ) ( 4.95 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 ( 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 ( 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 ( 0 0.09 ) ( 10.08 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.08 0.09 ) ;
+      RECT ( 0 -0.24 ) ( 10.08 -0.09 ) ;
+
+  end
+END XNOR2X1
diff --git a/cells/lef/XNOR2X1.lef.temp b/cells/lef/XNOR2X1.lef.temp
new file mode 100644
index 0000000..55b2640
--- /dev/null
+++ b/cells/lef/XNOR2X1.lef.temp
@@ -0,0 +1,75 @@
+MACRO XNOR2X1
+ CLASS CORE ;
+ FOREIGN XNOR2X1 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 4.65500000 0.44000000 4.94500000 0.73000000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    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 ;
+    END
+  END A
+
+END XNOR2X1
diff --git a/cells/lef/XOR2X1.lef.temp b/cells/lef/XOR2X1.lef.temp
new file mode 100644
index 0000000..1bdbdfa
--- /dev/null
+++ b/cells/lef/XOR2X1.lef.temp
@@ -0,0 +1,85 @@
+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
+
+END XOR2X1
diff --git a/cells/lef/magiclefbug.tgz b/cells/lef/magiclefbug.tgz
new file mode 100644
index 0000000..e3f7a03
--- /dev/null
+++ b/cells/lef/magiclefbug.tgz
Binary files differ
diff --git a/cells/lef/magiclefbug/magic.tcl b/cells/lef/magiclefbug/magic.tcl
new file mode 100644
index 0000000..12a8341
--- /dev/null
+++ b/cells/lef/magiclefbug/magic.tcl
@@ -0,0 +1,5 @@
+lef read or.lef
+load or
+lef write or-out.lef
+quit
+
diff --git a/cells/lef/magiclefbug/or-out.lef b/cells/lef/magiclefbug/or-out.lef
new file mode 100644
index 0000000..7fb9e11
--- /dev/null
+++ b/cells/lef/magiclefbug/or-out.lef
@@ -0,0 +1,83 @@
+VERSION 5.7 ;
+  NOWIREEXTENSIONATPIN ON ;
+  DIVIDERCHAR "/" ;
+  BUSBITCHARS "[]" ;
+MACRO or
+  CLASS BLOCK ;
+  FOREIGN or ;
+  ORIGIN 0.000 0.000 ;
+  SIZE 5.760 BY 3.330 ;
+  PIN VDD
+    ANTENNAGATEAREA 0.567000 ;
+    ANTENNADIFFAREA 4.227600 ;
+    PORT
+      LAYER li1 ;
+        RECT 0.000 3.090 5.760 3.570 ;
+        RECT 3.200 2.740 3.530 3.090 ;
+        RECT 0.800 2.260 1.130 2.510 ;
+        RECT 0.800 2.180 1.110 2.260 ;
+        RECT 4.640 2.180 4.970 2.510 ;
+        RECT 1.280 1.760 1.610 2.090 ;
+        RECT 2.720 1.760 3.050 2.090 ;
+        RECT 4.160 2.010 4.470 2.090 ;
+        RECT 4.160 1.760 4.490 2.010 ;
+        RECT 1.280 0.830 1.610 1.160 ;
+        RECT 2.720 0.920 3.050 1.160 ;
+        RECT 2.740 0.830 3.050 0.920 ;
+        RECT 4.160 0.920 4.490 1.160 ;
+        RECT 4.160 0.830 4.470 0.920 ;
+        RECT 0.560 0.260 0.890 0.590 ;
+        RECT 2.240 0.420 2.570 0.750 ;
+        RECT 3.200 0.240 3.530 0.590 ;
+        RECT 4.640 0.420 4.970 0.750 ;
+        RECT 0.000 0.090 0.390 0.240 ;
+        RECT 1.060 0.090 5.760 0.240 ;
+        RECT 0.000 -0.240 5.760 0.090 ;
+      LAYER mcon ;
+        RECT 0.160 3.250 0.330 3.420 ;
+        RECT 0.640 3.250 0.810 3.420 ;
+        RECT 1.120 3.250 1.290 3.420 ;
+        RECT 1.600 3.250 1.770 3.420 ;
+        RECT 2.080 3.250 2.250 3.420 ;
+        RECT 2.560 3.250 2.730 3.420 ;
+        RECT 3.040 3.250 3.210 3.420 ;
+        RECT 3.520 3.250 3.690 3.420 ;
+        RECT 4.000 3.250 4.170 3.420 ;
+        RECT 4.480 3.250 4.650 3.420 ;
+        RECT 4.960 3.250 5.130 3.420 ;
+        RECT 5.440 3.250 5.610 3.420 ;
+        RECT 3.280 2.820 3.450 2.990 ;
+        RECT 0.880 2.260 1.050 2.430 ;
+        RECT 4.720 2.260 4.890 2.430 ;
+        RECT 1.360 1.840 1.530 2.010 ;
+        RECT 2.800 1.840 2.970 2.010 ;
+        RECT 4.240 1.840 4.410 2.010 ;
+        RECT 1.360 0.910 1.530 1.080 ;
+        RECT 2.800 0.910 2.970 1.080 ;
+        RECT 4.240 0.910 4.410 1.080 ;
+        RECT 0.640 0.340 0.810 0.510 ;
+        RECT 2.320 0.500 2.490 0.670 ;
+        RECT 4.720 0.500 4.890 0.670 ;
+        RECT 0.160 -0.090 0.330 0.090 ;
+        RECT 0.640 -0.090 0.810 0.090 ;
+        RECT 1.120 -0.090 1.290 0.090 ;
+        RECT 1.600 -0.090 1.770 0.090 ;
+        RECT 2.080 -0.090 2.250 0.090 ;
+        RECT 2.560 -0.090 2.730 0.090 ;
+        RECT 3.040 -0.090 3.210 0.090 ;
+        RECT 3.520 -0.090 3.690 0.090 ;
+        RECT 4.000 -0.090 4.170 0.090 ;
+        RECT 4.480 -0.090 4.650 0.090 ;
+        RECT 4.960 -0.090 5.130 0.090 ;
+        RECT 5.440 -0.090 5.610 0.090 ;
+      LAYER met1 ;
+        RECT 0.000 -0.240 5.760 3.570 ;
+    END
+  END VDD
+  OBS
+      LAYER nwell ;
+        RECT 0.000 1.790 5.760 3.330 ;
+  END
+END or
+END LIBRARY
+
diff --git a/cells/lef/magiclefbug/or.lef b/cells/lef/magiclefbug/or.lef
new file mode 100644
index 0000000..e69e994
--- /dev/null
+++ b/cells/lef/magiclefbug/or.lef
@@ -0,0 +1,217 @@
+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 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 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 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 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.64 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 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.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.92 ) ( 4.49 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 4.47 0.92 ) ;
+      RECT ( 4.16 0.83 ) ( 4.47 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 ( 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 ( 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 ( 4.64 0.42 ) ( 4.97 0.5 ) ;
+      RECT ( 3.2 0.24 ) ( 3.53 0.34 ) ;
+      RECT ( 0 0.09 ) ( 0.39 0.24 ) ;
+      RECT ( 1.06 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 2.99 ) ( 5.76 3.25 ) ;
+      RECT ( 0 2.82 ) ( 3.28 2.99 ) ;
+      RECT ( 3.45 2.82 ) ( 5.76 2.99 ) ;
+      RECT ( 0 2.43 ) ( 5.76 2.82 ) ;
+      RECT ( 0 2.26 ) ( 0.88 2.43 ) ;
+      RECT ( 1.05 2.26 ) ( 4.72 2.43 ) ;
+      RECT ( 4.89 2.26 ) ( 5.76 2.43 ) ;
+      RECT ( 0 2.01 ) ( 5.76 2.26 ) ;
+      RECT ( 0 1.84 ) ( 1.36 2.01 ) ;
+      RECT ( 1.53 1.84 ) ( 2.8 2.01 ) ;
+      RECT ( 2.97 1.84 ) ( 4.24 2.01 ) ;
+      RECT ( 4.41 1.84 ) ( 5.76 2.01 ) ;
+      RECT ( 0 1.08 ) ( 5.76 1.84 ) ;
+      RECT ( 0 0.91 ) ( 1.36 1.08 ) ;
+      RECT ( 1.53 0.91 ) ( 2.8 1.08 ) ;
+      RECT ( 2.97 0.91 ) ( 4.24 1.08 ) ;
+      RECT ( 4.41 0.91 ) ( 5.76 1.08 ) ;
+      RECT ( 0 0.67 ) ( 5.76 0.91 ) ;
+      RECT ( 0 0.51 ) ( 2.32 0.67 ) ;
+      RECT ( 0 0.34 ) ( 0.64 0.51 ) ;
+      RECT ( 0.81 0.5 ) ( 2.32 0.51 ) ;
+      RECT ( 2.49 0.5 ) ( 4.72 0.67 ) ;
+      RECT ( 4.89 0.5 ) ( 5.76 0.67 ) ;
+      RECT ( 0.81 0.34 ) ( 5.76 0.5 ) ;
+      RECT ( 0 0.09 ) ( 5.76 0.34 ) ;
+      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/magiclefbug/or.mag b/cells/lef/magiclefbug/or.mag
new file mode 100644
index 0000000..c61f422
--- /dev/null
+++ b/cells/lef/magiclefbug/or.mag
@@ -0,0 +1,310 @@
+magic
+tech sky130A
+timestamp 1624575559
+<< 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 464 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 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 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 92 449 108
+rect 441 91 447 92
+rect 416 83 447 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 224 42 257 50
+rect 320 51 353 59
+rect 56 26 89 34
+rect 320 34 328 51
+rect 345 34 353 51
+rect 464 50 472 67
+rect 489 50 497 67
+rect 464 42 497 50
+rect 320 24 353 34
+rect 0 9 39 24
+rect 106 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 91 153 108
+rect 280 91 297 108
+rect 424 91 441 108
+rect 64 34 81 51
+rect 232 50 249 67
+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 299 576 325
+rect 0 282 328 299
+rect 345 282 576 299
+rect 0 243 576 282
+rect 0 226 88 243
+rect 105 226 472 243
+rect 489 226 576 243
+rect 0 201 576 226
+rect 0 184 136 201
+rect 153 184 280 201
+rect 297 184 424 201
+rect 441 184 576 201
+rect 0 108 576 184
+rect 0 91 136 108
+rect 153 91 280 108
+rect 297 91 424 108
+rect 441 91 576 108
+rect 0 67 576 91
+rect 0 51 232 67
+rect 0 34 64 51
+rect 81 50 232 51
+rect 249 50 472 67
+rect 489 50 576 67
+rect 81 34 576 50
+rect 0 9 576 34
+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 274 178 303 207 0 B
+port 13 se
+rlabel metal1 281 114 295 178 0 B
+port 12 se
+rlabel metal1 274 85 303 114 0 B
+port 11 se
+rlabel metal1 130 178 159 207 0 A
+port 10 se
+rlabel metal1 137 114 151 178 0 A
+port 9 se
+rlabel metal1 130 85 159 114 0 A
+port 8 se
+rlabel metal1 466 220 495 249 0 Y
+port 7 se
+rlabel metal1 473 73 487 220 0 Y
+port 6 se
+rlabel metal1 466 44 495 73 0 Y
+port 5 se
+rlabel metal1 0 -24 576 24 0 GND
+port 4 se
+rlabel metal1 0 -24 576 24 0 GND
+port 3 se
+rlabel metal1 0 309 576 357 0 VDD
+port 2 se
+<< properties >>
+string FIXED_BBOX 0 0 576 333
+<< end >>
diff --git a/cells/lef/orig/AOI22X1.lef b/cells/lef/orig/AOI22X1.lef
new file mode 100644
index 0000000..65a4635
--- /dev/null
+++ b/cells/lef/orig/AOI22X1.lef
@@ -0,0 +1,223 @@
+MACRO AOI22X1
+ CLASS CORE ;
+ FOREIGN AOI22X1 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 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 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 ;
+    END
+  END Y
+
+  PIN D
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        RECT 5.61500000 0.84500000 5.90500000 1.13500000 ;
+        RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+        RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+    END
+  END D
+
+  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 ;
+   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 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 ;
+     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 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 0.87500000 2.66000000 1.04500000 2.83000000 ;
+     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 ;
+
+    LAYER ndiffc ;
+     RECT 3.27500000 0.34000000 3.44500000 0.51000000 ;
+     RECT 0.87500000 0.50000000 1.04500000 0.67000000 ;
+     RECT 6.15500000 0.50000000 6.32500000 0.67000000 ;
+
+    LAYER li1 ;
+     RECT 0.00000000 -0.24000000 7.20000000 0.24000000 ;
+     RECT 3.19500000 0.24000000 3.52500000 0.59000000 ;
+     RECT 0.79500000 0.42000000 1.12500000 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 5.11500000 2.17500000 5.44500000 2.50500000 ;
+     RECT 0.79500000 2.58000000 1.12500000 2.91000000 ;
+     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 ;
+     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 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 5.19500000 2.25500000 5.36500000 2.42500000 ;
+     RECT 0.87500000 2.66000000 1.04500000 2.83000000 ;
+     RECT 3.75500000 2.66000000 3.92500000 2.83000000 ;
+     RECT 6.15500000 2.66000000 6.32500000 2.83000000 ;
+     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 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 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 5.61500000 0.84500000 5.90500000 1.13500000 ;
+     RECT 5.69000000 1.13500000 5.83000000 1.78000000 ;
+     RECT 5.61500000 1.78000000 5.90500000 2.07000000 ;
+     RECT 0.81500000 0.44000000 1.10500000 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 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 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.81500000 3.98500000 2.89000000 ;
+     RECT 6.09500000 2.81500000 6.38500000 2.89000000 ;
+     RECT 0.00000000 3.09000000 7.20000000 3.57000000 ;
+
+ END
+END AOI22X1
diff --git a/cells/lef/orig/NOR2X1.lef b/cells/lef/orig/NOR2X1.lef
new file mode 100644
index 0000000..73bb9c3
--- /dev/null
+++ b/cells/lef/orig/NOR2X1.lef
@@ -0,0 +1,153 @@
+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/XNOR2X1.lef b/cells/lef/orig/XNOR2X1.lef
new file mode 100644
index 0000000..6d23ad5
--- /dev/null
+++ b/cells/lef/orig/XNOR2X1.lef
@@ -0,0 +1,247 @@
+MACRO XNOR2X1
+ CLASS CORE ;
+ FOREIGN XNOR2X1 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 4.65500000 0.44000000 4.94500000 0.73000000 ;
+    END
+  END Y
+
+  PIN B
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    PORT
+     CLASS CORE ;
+       LAYER met1 ;
+        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 ;
+    END
+  END B
+
+  PIN A
+   DIRECTION INOUT ;
+   USE SIGNAL ;
+   SHAPE ABUTMENT ;
+    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 ;
+    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 4.71500000 2.25500000 4.88500000 2.42500000 ;
+     RECT 9.03500000 2.25500000 9.20500000 2.42500000 ;
+     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 4.71500000 0.50000000 4.88500000 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 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 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 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 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.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 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 9.03500000 2.25500000 9.20500000 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 ;
+     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 4.65500000 0.44000000 4.94500000 0.73000000 ;
+     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 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 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 9.05000000 0.73000000 9.19000000 2.19500000 ;
+     RECT 5.69000000 2.07000000 5.83000000 2.27000000 ;
+     RECT 8.97500000 2.19500000 9.26500000 2.27000000 ;
+     RECT 5.69000000 2.27000000 9.26500000 2.41000000 ;
+     RECT 8.97500000 2.41000000 9.26500000 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 10.08000000 3.57000000 ;
+
+ END
+END XNOR2X1
diff --git a/cells/lib/AOI22X1.lib b/cells/lib/AOI22X1.lib
new file mode 100644
index 0000000..92d73ea
--- /dev/null
+++ b/cells/lib/AOI22X1.lib
@@ -0,0 +1,326 @@
+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 (AOI22X1) {
+    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"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/lib/NOR2X1.lib b/cells/lib/NOR2X1.lib
new file mode 100644
index 0000000..0f4c958
--- /dev/null
+++ b/cells/lib/NOR2X1.lib
@@ -0,0 +1,186 @@
+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/XNOR2X1.lib b/cells/lib/XNOR2X1.lib
new file mode 100644
index 0000000..ca43a6f
--- /dev/null
+++ b/cells/lib/XNOR2X1.lib
@@ -0,0 +1,186 @@
+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 (XNOR2X1) {
+    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"
+          );
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/cells/mag/AOI22X1.mag b/cells/mag/AOI22X1.mag
new file mode 100644
index 0000000..d5f9e94
--- /dev/null
+++ b/cells/mag/AOI22X1.mag
@@ -0,0 +1,429 @@
+magic
+tech sky130A
+timestamp 1624575385
+<< 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 610 67 639 73
+rect 610 66 616 67
+rect 105 50 137 66
+rect 58 24 137 50
+rect 152 24 281 66
+rect 296 51 425 66
+rect 296 34 328 51
+rect 345 34 425 51
+rect 296 24 425 34
+rect 440 24 569 66
+rect 584 50 616 66
+rect 633 66 639 67
+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 152 299 281 309
+rect 152 282 184 299
+rect 201 282 281 299
+rect 152 225 281 282
+rect 296 283 425 309
+rect 296 266 376 283
+rect 393 266 425 283
+rect 296 225 425 266
+rect 440 243 569 309
+rect 440 226 520 243
+rect 537 226 569 243
+rect 440 225 569 226
+rect 584 283 663 309
+rect 584 266 616 283
+rect 633 266 663 283
+rect 584 225 663 266
+rect 514 220 543 225
+<< ndiffc >>
+rect 88 50 105 67
+rect 328 34 345 51
+rect 616 50 633 67
+<< pdiffc >>
+rect 88 266 105 283
+rect 184 282 201 299
+rect 376 266 393 283
+rect 520 226 537 243
+rect 616 266 633 283
+<< 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 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 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 512 243 545 251
+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
+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 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 128 108 161 116
+rect 128 92 136 108
+rect 130 91 136 92
+rect 153 91 161 108
+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 91 449 108
+rect 416 83 449 91
+rect 560 108 593 116
+rect 560 91 568 108
+rect 585 92 593 108
+rect 585 91 591 92
+rect 560 83 591 91
+rect 80 67 113 75
+rect 80 50 88 67
+rect 105 50 113 67
+rect 608 67 641 75
+rect 80 42 113 50
+rect 320 51 353 59
+rect 320 34 328 51
+rect 345 34 353 51
+rect 608 50 616 67
+rect 633 50 641 67
+rect 608 42 641 50
+rect 320 24 353 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 88 266 105 283
+rect 376 266 393 283
+rect 616 266 633 283
+rect 520 226 537 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 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 82 283 111 289
+rect 82 266 88 283
+rect 105 282 111 283
+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 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 370 260 399 266
+rect 610 266 616 268
+rect 633 266 639 283
+rect 610 260 639 266
+rect 514 243 543 249
+rect 514 226 520 243
+rect 537 226 543 243
+rect 514 220 543 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 418 201 447 207
+rect 418 184 424 201
+rect 441 184 447 201
+rect 418 178 447 184
+rect 137 114 151 178
+rect 281 114 295 178
+rect 425 114 439 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 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 610 67 639 73
+rect 610 66 616 67
+rect 105 52 616 66
+rect 105 50 111 52
+rect 82 44 111 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 610 44 639 52 0 Y
+port 6 se
+rlabel metal1 82 52 639 66 0 Y
+port 7 se
+rlabel metal1 82 66 111 73 0 Y
+port 8 se
+rlabel metal1 610 66 639 73 0 Y
+port 9 se
+rlabel metal1 521 66 535 220 0 Y
+port 10 se
+rlabel metal1 514 220 543 249 0 Y
+port 11 se
+rlabel metal1 562 85 591 114 0 D
+port 12 se
+rlabel metal1 569 114 583 178 0 D
+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
+rlabel metal1 425 114 439 178 0 C
+port 22 se
+rlabel metal1 418 178 447 207 0 C
+port 23 se
+<< properties >>
+string FIXED_BBOX 0 0 720 333
+<< end >>
diff --git a/cells/mag/NOR2X1.mag b/cells/mag/NOR2X1.mag
new file mode 100644
index 0000000..f880dcf
--- /dev/null
+++ b/cells/mag/NOR2X1.mag
@@ -0,0 +1,267 @@
+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/XNOR2X1.mag b/cells/mag/XNOR2X1.mag
new file mode 100644
index 0000000..168ad55
--- /dev/null
+++ b/cells/mag/XNOR2X1.mag
@@ -0,0 +1,560 @@
+magic
+tech sky130A
+timestamp 1624575626
+<< nwell >>
+rect 0 179 1008 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
+<< 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
+<< ndiff >>
+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 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 24 425 66
+rect 440 50 472 66
+rect 489 66 495 67
+rect 898 67 927 73
+rect 898 66 904 67
+rect 489 50 569 66
+rect 440 24 569 50
+rect 584 24 713 66
+rect 728 51 857 66
+rect 728 34 760 51
+rect 777 34 857 51
+rect 728 24 857 34
+rect 872 50 904 66
+rect 921 66 927 67
+rect 921 50 951 66
+rect 872 24 951 50
+<< 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 225 425 309
+rect 440 243 569 309
+rect 440 226 472 243
+rect 489 226 569 243
+rect 440 225 569 226
+rect 584 225 713 309
+rect 728 299 857 309
+rect 728 282 760 299
+rect 777 282 857 299
+rect 728 225 857 282
+rect 872 243 951 309
+rect 872 226 904 243
+rect 921 226 951 243
+rect 872 225 951 226
+rect 58 220 87 225
+rect 466 220 495 225
+rect 898 220 927 225
+<< ndiffc >>
+rect 64 50 81 67
+rect 184 34 201 51
+rect 472 50 489 67
+rect 760 34 777 51
+rect 904 50 921 67
+<< pdiffc >>
+rect 64 226 81 243
+rect 184 282 201 299
+rect 472 226 489 243
+rect 760 282 777 299
+rect 904 226 921 243
+<< 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 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 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 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 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 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
+<< 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 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
+<< locali >>
+rect 0 342 1008 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 1008 342
+rect 0 309 1008 325
+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 752 282 760 299
+rect 777 282 785 299
+rect 752 274 785 282
+rect 56 243 89 251
+rect 56 226 64 243
+rect 81 226 89 243
+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
+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 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
+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 441 91 447 92
+rect 416 83 447 91
+rect 472 75 489 218
+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 520 108 537 172
+rect 560 108 593 116
+rect 520 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 56 67 89 75
+rect 56 50 64 67
+rect 81 50 89 67
+rect 464 67 497 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 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 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
+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 1008 9
+rect 0 -24 1008 -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 184 282 201 299
+rect 760 282 777 299
+rect 64 226 81 243
+rect 904 226 921 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 856 184 873 201
+rect 712 91 729 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 904 50 921 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
+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
+<< metal1 >>
+rect 0 342 1008 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 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 754 282 760 299
+rect 777 282 783 299
+rect 754 276 783 282
+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 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 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 184 303 201
+rect 274 178 303 184
+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 850 201 879 207
+rect 850 184 856 201
+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 850 108 879 114
+rect 850 91 856 108
+rect 873 91 879 108
+rect 850 85 879 91
+rect 58 67 87 73
+rect 58 50 64 67
+rect 81 50 87 67
+rect 466 67 495 73
+rect 58 44 87 50
+rect 178 51 207 57
+rect 178 34 184 51
+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 898 50 904 67
+rect 921 50 927 67
+rect 898 44 927 50
+rect 178 24 207 34
+rect 0 9 1008 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 1008 9
+rect 0 -24 1008 -9
+<< labels >>
+rlabel locali 0 309 1008 357 0 VDD
+port 1 se
+rlabel metal1 0 309 1008 357 0 VDD
+port 2 se
+rlabel locali 0 -24 1008 24 0 GND
+port 3 se
+rlabel metal1 0 -24 1008 24 0 GND
+port 4 se
+rlabel metal1 466 44 495 73 0 Y
+port 5 se
+rlabel metal1 130 178 159 186 0 B
+port 6 se
+rlabel metal1 274 178 303 186 0 B
+port 7 se
+rlabel metal1 130 186 303 200 0 B
+port 8 se
+rlabel metal1 130 200 159 207 0 B
+port 9 se
+rlabel metal1 274 200 303 207 0 B
+port 10 se
+rlabel metal1 514 166 543 173 0 A
+port 11 se
+rlabel metal1 425 173 543 178 0 A
+port 12 se
+rlabel metal1 418 178 543 187 0 A
+port 13 se
+rlabel metal1 514 187 543 195 0 A
+port 14 se
+rlabel metal1 418 187 447 207 0 A
+port 15 se
+<< properties >>
+string FIXED_BBOX 0 0 1008 333
+<< end >>
diff --git a/cells/sp/AOI22X1.sp b/cells/sp/AOI22X1.sp
new file mode 100644
index 0000000..540c247
--- /dev/null
+++ b/cells/sp/AOI22X1.sp
@@ -0,0 +1,13 @@
+*** Spice netlist generated by cell2spice.pl from cell file AOI22X1.cell ***
+
+.subckt AOI22X1 vdd gnd D C B A Y
+M0 1 A vdd vdd pmos w=0.840u l=0.150u
+M1 1 B vdd vdd pmos w=0.840u l=0.150u
+M2 Y D 1 vdd pmos w=0.840u l=0.150u
+M3 1 C Y vdd pmos w=0.840u l=0.150u
+M4 2 A gnd gnd nmos w=0.420u l=0.150u
+M5 Y B 2 gnd nmos w=0.420u l=0.150u
+M6 3 D Y gnd nmos w=0.420u l=0.150u
+M7 3 C gnd gnd nmos w=0.420u l=0.150u
+.ends AOI22X1
+
diff --git a/cells/sp/NOR2X1.sp b/cells/sp/NOR2X1.sp
new file mode 100644
index 0000000..f4b92a9
--- /dev/null
+++ b/cells/sp/NOR2X1.sp
@@ -0,0 +1,9 @@
+*** 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/XNOR2X1.sp b/cells/sp/XNOR2X1.sp
new file mode 100644
index 0000000..8feb48c
--- /dev/null
+++ b/cells/sp/XNOR2X1.sp
@@ -0,0 +1,17 @@
+*** Spice netlist generated by cell2spice.pl from cell file XNOR2X1.cell ***
+
+.subckt XNOR2X1 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 1 3 vdd pmos w=0.840u l=0.150u
+M3 4 A 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 A 5 gnd nmos w=0.420u l=0.150u
+M9 6 1 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 XNOR2X1
+