diff --git a/README.md b/README.md
index 3631c274627df621e22d12754e63c3ce7a779be2..323069230c866f2bff182ef12d78887797d5bd8f 100644
--- a/README.md
+++ b/README.md
@@ -441,4 +441,45 @@
         |   |     |-- ...
         |   |--wiring
         |   |     |--wire
-~~~
\ No newline at end of file
+~~~
+
+
+### 07/29/2019
+
+- Was working on 'dsn_python' Python Library.
+- Class tree:
+~~~
+        |--dsnwritter.py (top and second level structure)
+              |--dsn_module.py
+                    |--module class
+                    |--load module functions
+              |--dsn_rule.py
+              |--dsn_geo.py
+                    |--boudary class
+                    |--keepout class
+                    |--load drawing functions
+              |--dsn_net.py
+                    |--net class
+                    |--netclass class
+                    |--load netlist functions
+~~~
+- Text tree structure is done.
+  - Documentation and notes for code needed
+- Functions are needed to help user use library.
+  - Function that load `dxf` file
+  - Function that load `footprint` file
+  - Function that load `netlist` file
+- For board outline/footprint/netlist not loaded from file but define through this library manually, it works very well for now.
+- Pull out those information from low-level file and convert it to proper text for `dsn` file
+
+- Record of Tips:
+  - `Freerouting` cannot take more than one boundary. (error: exact 1 bounding expected)
+
+- Able to use functions to load `dxf` drawings
+- "internal cut issue" solved
+  - Treat every line individually as polygon and labeled as keepout in `dsn` library
+  - ![](journal_media/keepout_load.png)
+  - ![](journal_media/dxf_in_freerouting.png)
+
+
+- TODO: functions that load modules and footprints
diff --git a/dsn_line_test.dxf b/dsn_line_test.dxf
new file mode 100644
index 0000000000000000000000000000000000000000..5ef125f9e8aaa7f5d57732564623588ba5de2cb8
--- /dev/null
+++ b/dsn_line_test.dxf
@@ -0,0 +1,6154 @@
+  0
+SECTION
+  2
+HEADER
+  9
+$ACADVER
+  1
+AC1014
+  9
+$HANDSEED
+  5
+FFFF
+  9
+$MEASUREMENT
+ 70
+     1
+  0
+ENDSEC
+  0
+SECTION
+  2
+TABLES
+  0
+TABLE
+  2
+VPORT
+  5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+     4
+  0
+VPORT
+  5
+2E
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+  2
+*ACTIVE
+ 70
+     0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+210.0
+ 22
+148.5
+ 13
+0.0
+ 23
+0.0
+ 14
+10.0
+ 24
+10.0
+ 15
+10.0
+ 25
+10.0
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+341.0
+ 41
+1.24
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+     0
+ 72
+   100
+ 73
+     1
+ 74
+     3
+ 75
+     0
+ 76
+     0
+ 77
+     0
+ 78
+     0
+  0
+ENDTAB
+  0
+TABLE
+  2
+LTYPE
+  5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+     1
+  0
+LTYPE
+  5
+14
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+  2
+BYBLOCK
+ 70
+     0
+  3
+
+ 72
+    65
+ 73
+     0
+ 40
+0.0
+  0
+LTYPE
+  5
+15
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+  2
+BYLAYER
+ 70
+     0
+  3
+
+ 72
+    65
+ 73
+     0
+ 40
+0.0
+  0
+LTYPE
+  5
+16
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+  2
+CONTINUOUS
+ 70
+     0
+  3
+Solid line
+ 72
+    65
+ 73
+     0
+ 40
+0.0
+  0
+ENDTAB
+  0
+TABLE
+  2
+LAYER
+  5
+2
+100
+AcDbSymbolTable
+ 70
+11
+  0
+LAYER
+  5
+50
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+0
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+51
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+VIEWPORTS
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+52
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+TABLEGRID
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+53
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+TABLECONTENT
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+54
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+DIMENSIONS
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+55
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+TABLEBACKGROUND
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+56
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+Cut
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+57
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+Circuit
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+58
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+Label
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+59
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+Fold
+ 70
+0
+  6
+CONTINUOUS
+  0
+LAYER
+  5
+5a
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+  2
+Pin_temp
+ 70
+0
+  6
+CONTINUOUS
+  0
+ENDTAB
+  0
+TABLE
+  2
+STYLE
+  5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+     1
+  0
+STYLE
+  5
+11
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+  2
+STANDARD
+ 70
+     0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+     0
+ 42
+2.5
+  3
+txt
+  4
+
+  0
+ENDTAB
+  0
+TABLE
+  2
+VIEW
+  5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+     0
+  0
+ENDTAB
+  0
+TABLE
+  2
+UCS
+  5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+     0
+  0
+ENDTAB
+  0
+TABLE
+  2
+APPID
+  5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+     2
+  0
+APPID
+  5
+12
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+  2
+ACAD
+ 70
+     0
+  0
+ENDTAB
+  0
+TABLE
+  2
+DIMSTYLE
+  5
+A
+330
+0
+100
+AcDbSymbolTable
+ 70
+     1
+  0
+DIMSTYLE
+105
+27
+330
+A
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+  2
+ISO-25
+ 70
+     0
+  3
+
+  4
+
+  5
+
+  6
+
+  7
+
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874016
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+ 71
+     0
+ 72
+     0
+ 73
+     0
+ 74
+     0
+ 75
+     0
+ 76
+     0
+ 77
+     1
+ 78
+     8
+170
+     0
+171
+     3
+172
+     1
+173
+     0
+174
+     0
+175
+     0
+176
+     0
+177
+     0
+178
+     0
+270
+     2
+271
+     2
+272
+     2
+273
+     2
+274
+     3
+340
+11
+275
+     0
+280
+     0
+281
+     0
+282
+     0
+283
+     0
+284
+     8
+285
+     0
+286
+     0
+287
+     3
+288
+     0
+  0
+ENDTAB
+  0
+TABLE
+  2
+BLOCK_RECORD
+  5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+     1
+  0
+BLOCK_RECORD
+  5
+1F
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+  2
+*MODEL_SPACE
+  0
+BLOCK_RECORD
+  5
+1B
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+  2
+*PAPER_SPACE
+  0
+ENDTAB
+  0
+ENDSEC
+  0
+SECTION
+  2
+BLOCKS
+  0
+BLOCK
+  5
+20
+330
+1F
+100
+AcDbEntity
+  8
+0
+100
+AcDbBlockBegin
+  2
+*MODEL_SPACE
+ 70
+     0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+  3
+*MODEL_SPACE
+  1
+
+  0
+ENDBLK
+  5
+21
+330
+1F
+100
+AcDbEntity
+  8
+0
+100
+AcDbBlockEnd
+  0
+BLOCK
+  5
+1C
+330
+1B
+100
+AcDbEntity
+ 67
+     1
+  8
+0
+100
+AcDbBlockBegin
+  2
+*PAPER_SPACE
+  1
+
+  0
+ENDBLK
+  5
+1D
+330
+1B
+100
+AcDbEntity
+ 67
+     1
+  8
+0
+100
+AcDbBlockEnd
+  0
+ENDSEC
+  0
+SECTION
+  2
+ENTITIES
+  0
+LWPOLYLINE
+  5
+100
+100
+AcDbEntity
+  8
+Cut
+ 62
+1
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+-26.696276
+ 20
+280.310911
+ 30
+0.0
+ 10
+216.684783
+ 20
+280.310911
+ 30
+0.0
+ 10
+216.684783
+ 20
+-19.577284
+ 30
+0.0
+ 10
+-26.696276
+ 20
+-19.577284
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+101
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+106.000248
+ 20
+113.732116
+ 30
+0.0
+ 10
+106.000248
+ 20
+113.467532
+ 30
+0.0
+ 10
+118.999971
+ 20
+113.467532
+ 30
+0.0
+ 10
+118.999971
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+102
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+106.000248
+ 20
+151.732381
+ 30
+0.0
+ 10
+106.000248
+ 20
+151.467798
+ 30
+0.0
+ 10
+118.999971
+ 20
+151.467798
+ 30
+0.0
+ 10
+118.999971
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+103
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+35.999870
+ 20
+31.732481
+ 30
+0.0
+ 10
+35.999870
+ 20
+31.467897
+ 30
+0.0
+ 10
+59.999954
+ 20
+31.467897
+ 30
+0.0
+ 10
+59.999954
+ 20
+31.732481
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+104
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+0.000000
+ 20
+31.732481
+ 30
+0.0
+ 10
+0.000000
+ 20
+31.467897
+ 30
+0.0
+ 10
+24.000085
+ 20
+31.467897
+ 30
+0.0
+ 10
+24.000085
+ 20
+31.732481
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+105
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+106.000248
+ 20
+18.132262
+ 30
+0.0
+ 10
+106.000248
+ 20
+17.867679
+ 30
+0.0
+ 10
+110.000005
+ 20
+17.867679
+ 30
+0.0
+ 10
+110.000005
+ 20
+18.132262
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+106
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+106.000248
+ 20
+27.132223
+ 30
+0.0
+ 10
+106.000248
+ 20
+26.867640
+ 30
+0.0
+ 10
+110.000005
+ 20
+26.867640
+ 30
+0.0
+ 10
+110.000005
+ 20
+27.132223
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+107
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+105.867957
+ 20
+26.999931
+ 30
+0.0
+ 10
+105.867957
+ 20
+17.999971
+ 30
+0.0
+ 10
+106.132540
+ 20
+17.999971
+ 30
+0.0
+ 10
+106.132540
+ 20
+26.999931
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+108
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+151.000084
+ 20
+151.732381
+ 30
+0.0
+ 10
+151.000084
+ 20
+151.467798
+ 30
+0.0
+ 10
+160.999993
+ 20
+151.467798
+ 30
+0.0
+ 10
+160.999993
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+109
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+151.000084
+ 20
+211.732338
+ 30
+0.0
+ 10
+151.000084
+ 20
+211.467754
+ 30
+0.0
+ 10
+160.999993
+ 20
+211.467754
+ 30
+0.0
+ 10
+160.999993
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+10a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.250204
+ 20
+61.800403
+ 30
+0.0
+ 10
+7.250204
+ 20
+61.535819
+ 30
+0.0
+ 10
+7.749915
+ 20
+61.535819
+ 30
+0.0
+ 10
+7.749915
+ 20
+61.800403
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+10b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.617623
+ 20
+61.668111
+ 30
+0.0
+ 10
+7.617623
+ 20
+46.259233
+ 30
+0.0
+ 10
+7.882206
+ 20
+46.259233
+ 30
+0.0
+ 10
+7.882206
+ 20
+61.668111
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+10c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.250204
+ 20
+46.391524
+ 30
+0.0
+ 10
+7.250204
+ 20
+46.126941
+ 30
+0.0
+ 10
+7.749915
+ 20
+46.126941
+ 30
+0.0
+ 10
+7.749915
+ 20
+46.391524
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+10d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.117912
+ 20
+61.668111
+ 30
+0.0
+ 10
+7.117912
+ 20
+46.259233
+ 30
+0.0
+ 10
+7.382495
+ 20
+46.259233
+ 30
+0.0
+ 10
+7.382495
+ 20
+61.668111
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+10e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.250204
+ 20
+99.073064
+ 30
+0.0
+ 10
+7.250204
+ 20
+98.808480
+ 30
+0.0
+ 10
+7.749915
+ 20
+98.808480
+ 30
+0.0
+ 10
+7.749915
+ 20
+99.073064
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+10f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.617623
+ 20
+98.940772
+ 30
+0.0
+ 10
+7.617623
+ 20
+83.531894
+ 30
+0.0
+ 10
+7.882206
+ 20
+83.531894
+ 30
+0.0
+ 10
+7.882206
+ 20
+98.940772
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+110
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.250204
+ 20
+83.664186
+ 30
+0.0
+ 10
+7.250204
+ 20
+83.399602
+ 30
+0.0
+ 10
+7.749915
+ 20
+83.399602
+ 30
+0.0
+ 10
+7.749915
+ 20
+83.664186
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+111
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+7.117912
+ 20
+98.940772
+ 30
+0.0
+ 10
+7.117912
+ 20
+83.531894
+ 30
+0.0
+ 10
+7.382495
+ 20
+83.531894
+ 30
+0.0
+ 10
+7.382495
+ 20
+98.940772
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+112
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+169.867667
+ 20
+249.599793
+ 30
+0.0
+ 10
+169.867667
+ 20
+211.600046
+ 30
+0.0
+ 10
+170.132251
+ 20
+211.600046
+ 30
+0.0
+ 10
+170.132251
+ 20
+249.599793
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+113
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+137.999846
+ 20
+249.732084
+ 30
+0.0
+ 10
+137.999846
+ 20
+249.467501
+ 30
+0.0
+ 10
+151.000084
+ 20
+249.467501
+ 30
+0.0
+ 10
+151.000084
+ 20
+249.732084
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+114
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+106.000248
+ 20
+211.732338
+ 30
+0.0
+ 10
+106.000248
+ 20
+211.467754
+ 30
+0.0
+ 10
+118.999971
+ 20
+211.467754
+ 30
+0.0
+ 10
+118.999971
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+115
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+151.000084
+ 20
+211.732338
+ 30
+0.0
+ 10
+151.000084
+ 20
+211.467754
+ 30
+0.0
+ 10
+169.999959
+ 20
+211.467754
+ 30
+0.0
+ 10
+169.999959
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+116
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+151.000084
+ 20
+249.732084
+ 30
+0.0
+ 10
+151.000084
+ 20
+249.467501
+ 30
+0.0
+ 10
+169.999959
+ 20
+249.467501
+ 30
+0.0
+ 10
+169.999959
+ 20
+249.732084
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+117
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+118.999971
+ 20
+249.732084
+ 30
+0.0
+ 10
+118.999971
+ 20
+249.467501
+ 30
+0.0
+ 10
+137.999846
+ 20
+249.467501
+ 30
+0.0
+ 10
+137.999846
+ 20
+249.732084
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+118
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+118.999971
+ 20
+211.732338
+ 30
+0.0
+ 10
+118.999971
+ 20
+211.467754
+ 30
+0.0
+ 10
+137.999846
+ 20
+211.467754
+ 30
+0.0
+ 10
+137.999846
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+119
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+65.328829
+ 20
+108.600130
+ 30
+0.0
+ 10
+65.328829
+ 20
+85.599983
+ 30
+0.0
+ 10
+65.593412
+ 20
+85.599983
+ 30
+0.0
+ 10
+65.593412
+ 20
+108.600130
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+11a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+65.461121
+ 20
+108.732422
+ 30
+0.0
+ 10
+65.461121
+ 20
+108.467839
+ 30
+0.0
+ 10
+77.538937
+ 20
+108.467839
+ 30
+0.0
+ 10
+77.538937
+ 20
+108.732422
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+11b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+77.406646
+ 20
+108.600130
+ 30
+0.0
+ 10
+77.406646
+ 20
+85.599983
+ 30
+0.0
+ 10
+77.671229
+ 20
+85.599983
+ 30
+0.0
+ 10
+77.671229
+ 20
+108.600130
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+11c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+65.461121
+ 20
+85.732275
+ 30
+0.0
+ 10
+65.461121
+ 20
+85.467691
+ 30
+0.0
+ 10
+77.538937
+ 20
+85.467691
+ 30
+0.0
+ 10
+77.538937
+ 20
+85.732275
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+11d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+44.250012
+ 20
+191.982120
+ 30
+0.0
+ 10
+44.250012
+ 20
+191.717537
+ 30
+0.0
+ 10
+44.750241
+ 20
+191.717537
+ 30
+0.0
+ 10
+44.750241
+ 20
+191.982120
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+11e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+44.617950
+ 20
+191.849829
+ 30
+0.0
+ 10
+44.617950
+ 20
+171.349788
+ 30
+0.0
+ 10
+44.882533
+ 20
+171.349788
+ 30
+0.0
+ 10
+44.882533
+ 20
+191.849829
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+11f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+44.250012
+ 20
+171.482079
+ 30
+0.0
+ 10
+44.250012
+ 20
+171.217496
+ 30
+0.0
+ 10
+44.750241
+ 20
+171.217496
+ 30
+0.0
+ 10
+44.750241
+ 20
+171.482079
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+120
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+44.117720
+ 20
+191.849829
+ 30
+0.0
+ 10
+44.117720
+ 20
+171.349788
+ 30
+0.0
+ 10
+44.382304
+ 20
+171.349788
+ 30
+0.0
+ 10
+44.382304
+ 20
+191.849829
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+121
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+150.406841
+ 20
+108.600130
+ 30
+0.0
+ 10
+150.406841
+ 20
+85.599983
+ 30
+0.0
+ 10
+150.671424
+ 20
+85.599983
+ 30
+0.0
+ 10
+150.671424
+ 20
+108.600130
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+122
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+94.250060
+ 20
+126.148929
+ 30
+0.0
+ 10
+94.250060
+ 20
+125.884346
+ 30
+0.0
+ 10
+94.749773
+ 20
+125.884346
+ 30
+0.0
+ 10
+94.749773
+ 20
+126.148929
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+123
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+94.117769
+ 20
+139.183275
+ 30
+0.0
+ 10
+94.117769
+ 20
+126.016638
+ 30
+0.0
+ 10
+94.382352
+ 20
+126.016638
+ 30
+0.0
+ 10
+94.382352
+ 20
+139.183275
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+124
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+94.250060
+ 20
+139.315567
+ 30
+0.0
+ 10
+94.250060
+ 20
+139.050984
+ 30
+0.0
+ 10
+94.749773
+ 20
+139.050984
+ 30
+0.0
+ 10
+94.749773
+ 20
+139.315567
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+125
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+94.617482
+ 20
+139.183275
+ 30
+0.0
+ 10
+94.617482
+ 20
+126.016638
+ 30
+0.0
+ 10
+94.882065
+ 20
+126.016638
+ 30
+0.0
+ 10
+94.882065
+ 20
+139.183275
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+126
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+36.867518
+ 20
+211.600046
+ 30
+0.0
+ 10
+36.867518
+ 20
+151.600089
+ 30
+0.0
+ 10
+37.132101
+ 20
+151.600089
+ 30
+0.0
+ 10
+37.132101
+ 20
+211.600046
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+127
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.367595
+ 20
+61.417998
+ 30
+0.0
+ 10
+158.367595
+ 20
+46.509346
+ 30
+0.0
+ 10
+158.632178
+ 20
+46.509346
+ 30
+0.0
+ 10
+158.632178
+ 20
+61.417998
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+128
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+163.406563
+ 20
+66.511743
+ 30
+0.0
+ 10
+158.406351
+ 20
+61.511531
+ 30
+0.0
+ 10
+158.593420
+ 20
+61.324462
+ 30
+0.0
+ 10
+163.593632
+ 20
+66.324674
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+129
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.593420
+ 20
+46.602882
+ 30
+0.0
+ 10
+158.406351
+ 20
+46.415295
+ 30
+0.0
+ 10
+163.406563
+ 20
+41.415601
+ 30
+0.0
+ 10
+163.593632
+ 20
+41.602669
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+12a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+163.367805
+ 20
+66.418210
+ 30
+0.0
+ 10
+163.367805
+ 20
+61.417998
+ 30
+0.0
+ 10
+163.632388
+ 20
+61.417998
+ 30
+0.0
+ 10
+163.632388
+ 20
+66.418210
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+12b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.367595
+ 20
+126.266751
+ 30
+0.0
+ 10
+158.367595
+ 20
+121.266541
+ 30
+0.0
+ 10
+158.632178
+ 20
+121.266541
+ 30
+0.0
+ 10
+158.632178
+ 20
+126.266751
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+12c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+153.593726
+ 20
+126.360286
+ 30
+0.0
+ 10
+153.406658
+ 20
+126.173218
+ 30
+0.0
+ 10
+158.406351
+ 20
+121.173006
+ 30
+0.0
+ 10
+158.593420
+ 20
+121.360074
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+12d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.406351
+ 20
+144.026907
+ 30
+0.0
+ 10
+153.406658
+ 20
+139.026698
+ 30
+0.0
+ 10
+153.593726
+ 20
+138.839629
+ 30
+0.0
+ 10
+158.593420
+ 20
+143.839839
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+12e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.367595
+ 20
+143.933374
+ 30
+0.0
+ 10
+158.367595
+ 20
+138.933162
+ 30
+0.0
+ 10
+158.632178
+ 20
+138.933162
+ 30
+0.0
+ 10
+158.632178
+ 20
+143.933374
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+12f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+153.367899
+ 20
+138.933162
+ 30
+0.0
+ 10
+153.367899
+ 20
+126.266751
+ 30
+0.0
+ 10
+153.632482
+ 20
+126.266751
+ 30
+0.0
+ 10
+153.632482
+ 20
+138.933162
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+130
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+-0.132292
+ 20
+113.599824
+ 30
+0.0
+ 10
+-0.132292
+ 20
+31.600189
+ 30
+0.0
+ 10
+0.132292
+ 20
+31.600189
+ 30
+0.0
+ 10
+0.132292
+ 20
+113.599824
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+131
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.460800
+ 20
+108.732422
+ 30
+0.0
+ 10
+138.460800
+ 20
+108.467839
+ 30
+0.0
+ 10
+150.539133
+ 20
+108.467839
+ 30
+0.0
+ 10
+150.539133
+ 20
+108.732422
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+132
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.460800
+ 20
+85.732275
+ 30
+0.0
+ 10
+138.460800
+ 20
+85.467691
+ 30
+0.0
+ 10
+150.539133
+ 20
+85.467691
+ 30
+0.0
+ 10
+150.539133
+ 20
+85.732275
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+133
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+95.999824
+ 20
+211.732338
+ 30
+0.0
+ 10
+95.999824
+ 20
+211.467754
+ 30
+0.0
+ 10
+106.000248
+ 20
+211.467754
+ 30
+0.0
+ 10
+106.000248
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+134
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+80.617819
+ 20
+74.850253
+ 30
+0.0
+ 10
+80.617819
+ 20
+66.850224
+ 30
+0.0
+ 10
+80.882403
+ 20
+66.850224
+ 30
+0.0
+ 10
+80.882403
+ 20
+74.850253
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+135
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+95.999824
+ 20
+249.732084
+ 30
+0.0
+ 10
+95.999824
+ 20
+249.467501
+ 30
+0.0
+ 10
+106.000248
+ 20
+249.467501
+ 30
+0.0
+ 10
+106.000248
+ 20
+249.732084
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+136
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+107.617720
+ 20
+74.850253
+ 30
+0.0
+ 10
+107.617720
+ 20
+66.850224
+ 30
+0.0
+ 10
+107.882304
+ 20
+66.850224
+ 30
+0.0
+ 10
+107.882304
+ 20
+74.850253
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+137
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+160.867701
+ 20
+151.600089
+ 30
+0.0
+ 10
+160.867701
+ 20
+113.599824
+ 30
+0.0
+ 10
+161.132285
+ 20
+113.599824
+ 30
+0.0
+ 10
+161.132285
+ 20
+151.600089
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+138
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+149.867855
+ 20
+51.099764
+ 30
+0.0
+ 10
+149.867855
+ 20
+42.099798
+ 30
+0.0
+ 10
+150.132439
+ 20
+42.099798
+ 30
+0.0
+ 10
+150.132439
+ 20
+51.099764
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+139
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+150.000147
+ 20
+51.232055
+ 30
+0.0
+ 10
+150.000147
+ 20
+50.967472
+ 30
+0.0
+ 10
+153.999904
+ 20
+50.967472
+ 30
+0.0
+ 10
+153.999904
+ 20
+51.232055
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+13a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+153.867612
+ 20
+51.099764
+ 30
+0.0
+ 10
+153.867612
+ 20
+42.099798
+ 30
+0.0
+ 10
+154.132195
+ 20
+42.099798
+ 30
+0.0
+ 10
+154.132195
+ 20
+51.099764
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+13b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+150.000147
+ 20
+42.232089
+ 30
+0.0
+ 10
+150.000147
+ 20
+41.967506
+ 30
+0.0
+ 10
+153.999904
+ 20
+41.967506
+ 30
+0.0
+ 10
+153.999904
+ 20
+42.232089
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+13c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+160.867701
+ 20
+211.600046
+ 30
+0.0
+ 10
+160.867701
+ 20
+151.600089
+ 30
+0.0
+ 10
+161.132285
+ 20
+151.600089
+ 30
+0.0
+ 10
+161.132285
+ 20
+211.600046
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+13d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+118.999971
+ 20
+151.732381
+ 30
+0.0
+ 10
+118.999971
+ 20
+151.467798
+ 30
+0.0
+ 10
+137.999846
+ 20
+151.467798
+ 30
+0.0
+ 10
+137.999846
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+13e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+81.000224
+ 20
+211.732338
+ 30
+0.0
+ 10
+81.000224
+ 20
+211.467754
+ 30
+0.0
+ 10
+93.999947
+ 20
+211.467754
+ 30
+0.0
+ 10
+93.999947
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+13f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+81.000224
+ 20
+151.732381
+ 30
+0.0
+ 10
+81.000224
+ 20
+151.467798
+ 30
+0.0
+ 10
+93.999947
+ 20
+151.467798
+ 30
+0.0
+ 10
+93.999947
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+140
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+101.867684
+ 20
+31.499938
+ 30
+0.0
+ 10
+101.867684
+ 20
+13.499990
+ 30
+0.0
+ 10
+102.132268
+ 20
+13.499990
+ 30
+0.0
+ 10
+102.132268
+ 20
+31.499938
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+141
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+113.867467
+ 20
+31.499938
+ 30
+0.0
+ 10
+113.867467
+ 20
+13.499990
+ 30
+0.0
+ 10
+114.132050
+ 20
+13.499990
+ 30
+0.0
+ 10
+114.132050
+ 20
+31.499938
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+142
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.328508
+ 20
+108.600130
+ 30
+0.0
+ 10
+138.328508
+ 20
+85.599983
+ 30
+0.0
+ 10
+138.593092
+ 20
+85.599983
+ 30
+0.0
+ 10
+138.593092
+ 20
+108.600130
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+143
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+162.250046
+ 20
+237.315789
+ 30
+0.0
+ 10
+162.250046
+ 20
+237.051206
+ 30
+0.0
+ 10
+162.749757
+ 20
+237.051206
+ 30
+0.0
+ 10
+162.749757
+ 20
+237.315789
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+144
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+162.617465
+ 20
+237.183497
+ 30
+0.0
+ 10
+162.617465
+ 20
+224.016857
+ 30
+0.0
+ 10
+162.882048
+ 20
+224.016857
+ 30
+0.0
+ 10
+162.882048
+ 20
+237.183497
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+145
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+162.250046
+ 20
+224.149149
+ 30
+0.0
+ 10
+162.250046
+ 20
+223.884565
+ 30
+0.0
+ 10
+162.749757
+ 20
+223.884565
+ 30
+0.0
+ 10
+162.749757
+ 20
+224.149149
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+146
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+162.117754
+ 20
+237.183497
+ 30
+0.0
+ 10
+162.117754
+ 20
+224.016857
+ 30
+0.0
+ 10
+162.382338
+ 20
+224.016857
+ 30
+0.0
+ 10
+162.382338
+ 20
+237.183497
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+147
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.328508
+ 20
+141.600183
+ 30
+0.0
+ 10
+138.328508
+ 20
+118.600036
+ 30
+0.0
+ 10
+138.593092
+ 20
+118.600036
+ 30
+0.0
+ 10
+138.593092
+ 20
+141.600183
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+148
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+86.999858
+ 20
+151.732381
+ 30
+0.0
+ 10
+86.999858
+ 20
+151.467798
+ 30
+0.0
+ 10
+106.000248
+ 20
+151.467798
+ 30
+0.0
+ 10
+106.000248
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+149
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+86.999858
+ 20
+113.732116
+ 30
+0.0
+ 10
+86.999858
+ 20
+113.467532
+ 30
+0.0
+ 10
+106.000248
+ 20
+113.467532
+ 30
+0.0
+ 10
+106.000248
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+14a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+77.867597
+ 20
+31.600189
+ 30
+0.0
+ 10
+77.867597
+ 20
+31.499938
+ 30
+0.0
+ 10
+78.132181
+ 20
+31.499938
+ 30
+0.0
+ 10
+78.132181
+ 20
+31.600189
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+14b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+137.867554
+ 20
+31.600189
+ 30
+0.0
+ 10
+137.867554
+ 20
+31.499938
+ 30
+0.0
+ 10
+138.132137
+ 20
+31.499938
+ 30
+0.0
+ 10
+138.132137
+ 20
+31.600189
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+14c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+101.999976
+ 20
+31.632230
+ 30
+0.0
+ 10
+101.999976
+ 20
+31.367647
+ 30
+0.0
+ 10
+113.999759
+ 20
+31.367647
+ 30
+0.0
+ 10
+113.999759
+ 20
+31.632230
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+14d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+36.999810
+ 20
+151.732381
+ 30
+0.0
+ 10
+36.999810
+ 20
+151.467798
+ 30
+0.0
+ 10
+81.000224
+ 20
+151.467798
+ 30
+0.0
+ 10
+81.000224
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+14e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+6
+ 70
+1
+ 10
+153.593726
+ 20
+171.693437
+ 30
+0.0
+ 10
+153.406658
+ 20
+171.506368
+ 30
+0.0
+ 10
+158.632178
+ 20
+166.280847
+ 30
+0.0
+ 10
+158.632178
+ 20
+171.599904
+ 30
+0.0
+ 10
+158.367595
+ 20
+171.599904
+ 30
+0.0
+ 10
+158.367595
+ 20
+166.919567
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+14f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+6
+ 70
+1
+ 10
+158.406351
+ 20
+196.693461
+ 30
+0.0
+ 10
+153.367899
+ 20
+191.655008
+ 30
+0.0
+ 10
+153.367899
+ 20
+171.599904
+ 30
+0.0
+ 10
+153.632482
+ 20
+171.599904
+ 30
+0.0
+ 10
+153.632482
+ 20
+191.545455
+ 30
+0.0
+ 10
+158.593420
+ 20
+196.506392
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+150
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.367595
+ 20
+196.599928
+ 30
+0.0
+ 10
+158.367595
+ 20
+191.600231
+ 30
+0.0
+ 10
+158.632178
+ 20
+191.600231
+ 30
+0.0
+ 10
+158.632178
+ 20
+196.599928
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+151
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+165.867911
+ 20
+113.599824
+ 30
+0.0
+ 10
+165.867911
+ 20
+31.600189
+ 30
+0.0
+ 10
+166.132494
+ 20
+31.600189
+ 30
+0.0
+ 10
+166.132494
+ 20
+113.599824
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+152
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+150.406841
+ 20
+244.600096
+ 30
+0.0
+ 10
+150.406841
+ 20
+221.599952
+ 30
+0.0
+ 10
+150.671424
+ 20
+221.599952
+ 30
+0.0
+ 10
+150.671424
+ 20
+244.600096
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+153
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.460800
+ 20
+221.732244
+ 30
+0.0
+ 10
+138.460800
+ 20
+221.467660
+ 30
+0.0
+ 10
+150.539133
+ 20
+221.467660
+ 30
+0.0
+ 10
+150.539133
+ 20
+221.732244
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+154
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.328508
+ 20
+244.600096
+ 30
+0.0
+ 10
+138.328508
+ 20
+221.599952
+ 30
+0.0
+ 10
+138.593092
+ 20
+221.599952
+ 30
+0.0
+ 10
+138.593092
+ 20
+244.600096
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+155
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.460800
+ 20
+244.732388
+ 30
+0.0
+ 10
+138.460800
+ 20
+244.467805
+ 30
+0.0
+ 10
+150.539133
+ 20
+244.467805
+ 30
+0.0
+ 10
+150.539133
+ 20
+244.732388
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+156
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+103.367851
+ 20
+236.933382
+ 30
+0.0
+ 10
+103.367851
+ 20
+224.266454
+ 30
+0.0
+ 10
+103.632434
+ 20
+224.266454
+ 30
+0.0
+ 10
+103.632434
+ 20
+236.933382
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+157
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+6
+ 70
+1
+ 10
+103.406607
+ 20
+224.359990
+ 30
+0.0
+ 10
+98.632222
+ 20
+219.586121
+ 30
+0.0
+ 10
+98.632222
+ 20
+224.266454
+ 30
+0.0
+ 10
+98.367638
+ 20
+224.266454
+ 30
+0.0
+ 10
+98.367638
+ 20
+218.947401
+ 30
+0.0
+ 10
+103.593678
+ 20
+224.172922
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+158
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+31.750000
+ 20
+35.982340
+ 30
+0.0
+ 10
+31.750000
+ 20
+35.717757
+ 30
+0.0
+ 10
+32.250227
+ 20
+35.717757
+ 30
+0.0
+ 10
+32.250227
+ 20
+35.982340
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+159
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+32.117935
+ 20
+45.350243
+ 30
+0.0
+ 10
+32.117935
+ 20
+35.850048
+ 30
+0.0
+ 10
+32.382518
+ 20
+35.850048
+ 30
+0.0
+ 10
+32.382518
+ 20
+45.350243
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+15a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+31.750000
+ 20
+45.482535
+ 30
+0.0
+ 10
+31.750000
+ 20
+45.217952
+ 30
+0.0
+ 10
+32.250227
+ 20
+45.217952
+ 30
+0.0
+ 10
+32.250227
+ 20
+45.482535
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+15b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+31.617708
+ 20
+45.350243
+ 30
+0.0
+ 10
+31.617708
+ 20
+35.850048
+ 30
+0.0
+ 10
+31.882292
+ 20
+35.850048
+ 30
+0.0
+ 10
+31.882292
+ 20
+45.350243
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+15c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+59.999954
+ 20
+113.732116
+ 30
+0.0
+ 10
+59.999954
+ 20
+113.467532
+ 30
+0.0
+ 10
+77.999889
+ 20
+113.467532
+ 30
+0.0
+ 10
+77.999889
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+15d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+59.999954
+ 20
+31.732481
+ 30
+0.0
+ 10
+59.999954
+ 20
+31.467897
+ 30
+0.0
+ 10
+77.999889
+ 20
+31.467897
+ 30
+0.0
+ 10
+77.999889
+ 20
+31.732481
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+15e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+137.999846
+ 20
+31.732481
+ 30
+0.0
+ 10
+137.999846
+ 20
+31.467897
+ 30
+0.0
+ 10
+155.999781
+ 20
+31.467897
+ 30
+0.0
+ 10
+155.999781
+ 20
+31.732481
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+15f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+137.999846
+ 20
+113.732116
+ 30
+0.0
+ 10
+137.999846
+ 20
+113.467532
+ 30
+0.0
+ 10
+155.999781
+ 20
+113.467532
+ 30
+0.0
+ 10
+155.999781
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+160
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+77.867597
+ 20
+31.499938
+ 30
+0.0
+ 10
+77.867597
+ 20
+0.000049
+ 30
+0.0
+ 10
+78.132181
+ 20
+0.000049
+ 30
+0.0
+ 10
+78.132181
+ 20
+31.499938
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+161
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+77.999889
+ 20
+0.132341
+ 30
+0.0
+ 10
+77.999889
+ 20
+-0.132243
+ 30
+0.0
+ 10
+98.000219
+ 20
+-0.132243
+ 30
+0.0
+ 10
+98.000219
+ 20
+0.132341
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+162
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+101.999976
+ 20
+31.632230
+ 30
+0.0
+ 10
+101.999976
+ 20
+31.367647
+ 30
+0.0
+ 10
+113.999759
+ 20
+31.367647
+ 30
+0.0
+ 10
+113.999759
+ 20
+31.632230
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+163
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+5
+ 70
+1
+ 10
+129.117701
+ 20
+208.982116
+ 30
+0.0
+ 10
+129.117701
+ 20
+181.717631
+ 30
+0.0
+ 10
+137.382311
+ 20
+181.717631
+ 30
+0.0
+ 10
+137.382311
+ 20
+181.849923
+ 30
+0.0
+ 10
+137.382311
+ 20
+208.982116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+164
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+129.382285
+ 20
+208.717532
+ 30
+0.0
+ 10
+137.117728
+ 20
+208.717532
+ 30
+0.0
+ 10
+137.117728
+ 20
+181.982215
+ 30
+0.0
+ 10
+129.382285
+ 20
+181.982215
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+165
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+98.000219
+ 20
+0.132341
+ 30
+0.0
+ 10
+98.000219
+ 20
+-0.132243
+ 30
+0.0
+ 10
+118.000034
+ 20
+-0.132243
+ 30
+0.0
+ 10
+118.000034
+ 20
+0.132341
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+166
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+101.867684
+ 20
+31.499938
+ 30
+0.0
+ 10
+101.867684
+ 20
+13.499990
+ 30
+0.0
+ 10
+102.132268
+ 20
+13.499990
+ 30
+0.0
+ 10
+102.132268
+ 20
+31.499938
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+167
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+113.867467
+ 20
+31.499938
+ 30
+0.0
+ 10
+113.867467
+ 20
+13.499990
+ 30
+0.0
+ 10
+114.132050
+ 20
+13.499990
+ 30
+0.0
+ 10
+114.132050
+ 20
+31.499938
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+168
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+155.999781
+ 20
+113.732116
+ 30
+0.0
+ 10
+155.999781
+ 20
+113.467532
+ 30
+0.0
+ 10
+166.000202
+ 20
+113.467532
+ 30
+0.0
+ 10
+166.000202
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+169
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+155.999781
+ 20
+31.732481
+ 30
+0.0
+ 10
+155.999781
+ 20
+31.467897
+ 30
+0.0
+ 10
+166.000202
+ 20
+31.467897
+ 30
+0.0
+ 10
+166.000202
+ 20
+31.732481
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+16a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+86.867566
+ 20
+151.600089
+ 30
+0.0
+ 10
+86.867566
+ 20
+113.599824
+ 30
+0.0
+ 10
+87.132149
+ 20
+113.599824
+ 30
+0.0
+ 10
+87.132149
+ 20
+151.600089
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+16b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+93.999947
+ 20
+211.732338
+ 30
+0.0
+ 10
+93.999947
+ 20
+211.467754
+ 30
+0.0
+ 10
+137.999846
+ 20
+211.467754
+ 30
+0.0
+ 10
+137.999846
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+16c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+93.999947
+ 20
+151.732381
+ 30
+0.0
+ 10
+93.999947
+ 20
+151.467798
+ 30
+0.0
+ 10
+137.999846
+ 20
+151.467798
+ 30
+0.0
+ 10
+137.999846
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+16d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+80.750111
+ 20
+74.982545
+ 30
+0.0
+ 10
+80.750111
+ 20
+74.717962
+ 30
+0.0
+ 10
+107.750012
+ 20
+74.717962
+ 30
+0.0
+ 10
+107.750012
+ 20
+74.982545
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+16e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+0.000000
+ 20
+113.732116
+ 30
+0.0
+ 10
+0.000000
+ 20
+113.467532
+ 30
+0.0
+ 10
+59.999954
+ 20
+113.467532
+ 30
+0.0
+ 10
+59.999954
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+16f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+80.750111
+ 20
+66.982516
+ 30
+0.0
+ 10
+80.750111
+ 20
+66.717933
+ 30
+0.0
+ 10
+107.750012
+ 20
+66.717933
+ 30
+0.0
+ 10
+107.750012
+ 20
+66.982516
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+170
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+151.000084
+ 20
+113.732116
+ 30
+0.0
+ 10
+151.000084
+ 20
+113.467532
+ 30
+0.0
+ 10
+160.999993
+ 20
+113.467532
+ 30
+0.0
+ 10
+160.999993
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+171
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+151.000084
+ 20
+151.732381
+ 30
+0.0
+ 10
+151.000084
+ 20
+151.467798
+ 30
+0.0
+ 10
+160.999993
+ 20
+151.467798
+ 30
+0.0
+ 10
+160.999993
+ 20
+151.732381
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+172
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+95.867532
+ 20
+249.599793
+ 30
+0.0
+ 10
+95.867532
+ 20
+211.600046
+ 30
+0.0
+ 10
+96.132116
+ 20
+211.600046
+ 30
+0.0
+ 10
+96.132116
+ 20
+249.599793
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+173
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+24.000085
+ 20
+31.732481
+ 30
+0.0
+ 10
+24.000085
+ 20
+31.467897
+ 30
+0.0
+ 10
+35.999870
+ 20
+31.467897
+ 30
+0.0
+ 10
+35.999870
+ 20
+31.732481
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+174
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+150.406841
+ 20
+141.600183
+ 30
+0.0
+ 10
+150.406841
+ 20
+118.600036
+ 30
+0.0
+ 10
+150.671424
+ 20
+118.600036
+ 30
+0.0
+ 10
+150.671424
+ 20
+141.600183
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+175
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.460800
+ 20
+118.732328
+ 30
+0.0
+ 10
+138.460800
+ 20
+118.467744
+ 30
+0.0
+ 10
+150.539133
+ 20
+118.467744
+ 30
+0.0
+ 10
+150.539133
+ 20
+118.732328
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+176
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+106.000248
+ 20
+249.732084
+ 30
+0.0
+ 10
+106.000248
+ 20
+249.467501
+ 30
+0.0
+ 10
+118.999971
+ 20
+249.467501
+ 30
+0.0
+ 10
+118.999971
+ 20
+249.732084
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+177
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+138.460800
+ 20
+141.732475
+ 30
+0.0
+ 10
+138.460800
+ 20
+141.467892
+ 30
+0.0
+ 10
+150.539133
+ 20
+141.467892
+ 30
+0.0
+ 10
+150.539133
+ 20
+141.732475
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+178
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+118.000034
+ 20
+0.132341
+ 30
+0.0
+ 10
+118.000034
+ 20
+-0.132243
+ 30
+0.0
+ 10
+137.999846
+ 20
+-0.132243
+ 30
+0.0
+ 10
+137.999846
+ 20
+0.132341
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+179
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+137.867554
+ 20
+31.499938
+ 30
+0.0
+ 10
+137.867554
+ 20
+0.000049
+ 30
+0.0
+ 10
+138.132137
+ 20
+0.000049
+ 30
+0.0
+ 10
+138.132137
+ 20
+31.499938
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+17a
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+36.999810
+ 20
+211.732338
+ 30
+0.0
+ 10
+36.999810
+ 20
+211.467754
+ 30
+0.0
+ 10
+81.000224
+ 20
+211.467754
+ 30
+0.0
+ 10
+81.000224
+ 20
+211.732338
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+17b
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+163.367805
+ 20
+46.509346
+ 30
+0.0
+ 10
+163.367805
+ 20
+41.509134
+ 30
+0.0
+ 10
+163.632388
+ 20
+41.509134
+ 30
+0.0
+ 10
+163.632388
+ 20
+46.509346
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+17c
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+163.367805
+ 20
+103.690868
+ 30
+0.0
+ 10
+163.367805
+ 20
+98.690659
+ 30
+0.0
+ 10
+163.632388
+ 20
+98.690659
+ 30
+0.0
+ 10
+163.632388
+ 20
+103.690868
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+17d
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.367595
+ 20
+98.690659
+ 30
+0.0
+ 10
+158.367595
+ 20
+83.782007
+ 30
+0.0
+ 10
+158.632178
+ 20
+83.782007
+ 30
+0.0
+ 10
+158.632178
+ 20
+98.690659
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+17e
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+163.406563
+ 20
+103.784404
+ 30
+0.0
+ 10
+158.406351
+ 20
+98.784708
+ 30
+0.0
+ 10
+158.593420
+ 20
+98.597123
+ 30
+0.0
+ 10
+163.593632
+ 20
+103.597336
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+17f
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+163.367805
+ 20
+83.782007
+ 30
+0.0
+ 10
+163.367805
+ 20
+78.781795
+ 30
+0.0
+ 10
+163.632388
+ 20
+78.781795
+ 30
+0.0
+ 10
+163.632388
+ 20
+83.782007
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+180
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+158.593420
+ 20
+83.875540
+ 30
+0.0
+ 10
+158.406351
+ 20
+83.688472
+ 30
+0.0
+ 10
+163.406563
+ 20
+78.688262
+ 30
+0.0
+ 10
+163.593632
+ 20
+78.875330
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+181
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+6
+ 70
+1
+ 10
+98.367638
+ 20
+242.252954
+ 30
+0.0
+ 10
+98.367638
+ 20
+236.933382
+ 30
+0.0
+ 10
+98.632222
+ 20
+236.933382
+ 30
+0.0
+ 10
+98.632222
+ 20
+241.613718
+ 30
+0.0
+ 10
+103.406607
+ 20
+236.839849
+ 30
+0.0
+ 10
+103.593678
+ 20
+237.026917
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+182
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+137.999846
+ 20
+113.732116
+ 30
+0.0
+ 10
+137.999846
+ 20
+113.467532
+ 30
+0.0
+ 10
+151.000084
+ 20
+113.467532
+ 30
+0.0
+ 10
+151.000084
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+183
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+96.999764
+ 20
+113.732116
+ 30
+0.0
+ 10
+96.999764
+ 20
+113.467532
+ 30
+0.0
+ 10
+118.999971
+ 20
+113.467532
+ 30
+0.0
+ 10
+118.999971
+ 20
+113.732116
+ 30
+0.0
+  0
+LWPOLYLINE
+  5
+184
+100
+AcDbEntity
+  8
+Cut
+ 62
+7
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+77.999889
+ 20
+113.732116
+ 30
+0.0
+ 10
+77.999889
+ 20
+113.467532
+ 30
+0.0
+ 10
+96.999764
+ 20
+113.467532
+ 30
+0.0
+ 10
+96.999764
+ 20
+113.732116
+ 30
+0.0
+  0
+ENDSEC
+  0
+SECTION
+  2
+OBJECTS
+  0
+DICTIONARY
+  5
+C
+330
+0
+100
+AcDbDictionary
+  3
+ACAD_GROUP
+350
+D
+  3
+ACAD_MLINESTYLE
+350
+17
+  0
+DICTIONARY
+  5
+D
+330
+C
+100
+AcDbDictionary
+  0
+DICTIONARY
+  5
+1A
+330
+C
+100
+AcDbDictionary
+  0
+DICTIONARY
+  5
+17
+330
+C
+100
+AcDbDictionary
+  3
+STANDARD
+350
+18
+  0
+DICTIONARY
+  5
+19
+330
+C
+100
+AcDbDictionary
+  0
+ENDSEC
+  0
+EOF
diff --git a/dsn_python/README.md b/dsn_python/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..63e0ea4da0e1235778c8a631cf0c461145cd456a
--- /dev/null
+++ b/dsn_python/README.md
@@ -0,0 +1 @@
+# dsn_python
diff --git a/dsn_python/__pycache__/dsn_geo.cpython-36.pyc b/dsn_python/__pycache__/dsn_geo.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ab551407901219c9c24b12763e9c676a22a1721e
Binary files /dev/null and b/dsn_python/__pycache__/dsn_geo.cpython-36.pyc differ
diff --git a/dsn_python/__pycache__/dsn_load.cpython-36.pyc b/dsn_python/__pycache__/dsn_load.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..bb0e1f136c58ffd77f37de75d42a6c359875f369
Binary files /dev/null and b/dsn_python/__pycache__/dsn_load.cpython-36.pyc differ
diff --git a/dsn_python/__pycache__/dsn_module.cpython-36.pyc b/dsn_python/__pycache__/dsn_module.cpython-36.pyc
index 765aff856af9170e04400c4ecb60a3633bba594c..67dd4c746bbcda5080e33f75d4063229c4e527e9 100644
Binary files a/dsn_python/__pycache__/dsn_module.cpython-36.pyc and b/dsn_python/__pycache__/dsn_module.cpython-36.pyc differ
diff --git a/dsn_python/__pycache__/dsn_net.cpython-36.pyc b/dsn_python/__pycache__/dsn_net.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5514cb26c390306b35fc0cfd188af083996a7546
Binary files /dev/null and b/dsn_python/__pycache__/dsn_net.cpython-36.pyc differ
diff --git a/dsn_python/__pycache__/dsnwritier.cpython-36.pyc b/dsn_python/__pycache__/dsnwritier.cpython-36.pyc
index e0f4d92ed1c145a9a3eba0cd9019a8b1c13527ff..692145d1fb7d6ff1e429023c7a121d0773adbee3 100644
Binary files a/dsn_python/__pycache__/dsnwritier.cpython-36.pyc and b/dsn_python/__pycache__/dsnwritier.cpython-36.pyc differ
diff --git a/dsn_python/dsn_geo.py b/dsn_python/dsn_geo.py
new file mode 100644
index 0000000000000000000000000000000000000000..2fd2ea3e2eae3804469d4d2bef6ace671087d962
--- /dev/null
+++ b/dsn_python/dsn_geo.py
@@ -0,0 +1,112 @@
+
+
+from pykicad.sexpr import *
+import numpy as np
+
+class load_drawing():
+    def __init__(self,afile):
+        import ezdxf
+        self.dwg=ezdxf.readfile(afile)
+        self.msp=self.dwg.modelspace()
+    
+    def load_all(self):
+        return [self.load_line,self.load_polygon]
+    
+    def load_line(self):
+        startlist=[]
+        endlist=[]
+        line_list=[]
+        for e in self.msp.query('LINE'):
+            startlist.append(e.dxf.start[:2])
+            endlist.append(e.dxf.end[:2])
+        
+        for i in range(len(startlist)):
+            line_list.append(startlist[i])
+            line_list.append(endlist[i])
+        
+        line_list=np.array(line_list)
+        line_list[:,1]*=-1
+        line_list*=1000
+        line_list=line_list.flatten()
+        line_list=list(line_list)
+
+        return line_list
+    def load_polygon(self):
+        pts_list=[]
+        for e in self.msp.query('LWPOLYLINE'):
+            pts_list.append(np.array(e.get_points()))
+
+        for i in range(len(pts_list)):
+            pts_list[i]=pts_list[i][:,:2]
+            pts_list[i][:,1]*=-1
+
+            ##Unit = um
+            pts_list[i]=pts_list[i]*1000
+            pts_list[i]=pts_list[i].flatten()
+            pts_list[i]=list(pts_list[i])
+        return pts_list  
+    def load_line_as_polygon(self):
+        pts_list=self.load_polygon()
+        ply_list=[]
+        for i in range(len(pts_list)):
+            for j in range(len(pts_list[i])):
+                ply_list.append(pts_list[i][j])
+        return ply_list
+
+class Boundary(AST):
+    tag='boundary'
+    schema={
+        'path pcb':{
+            '0':{
+                '_parser':integer,
+                '_attr':'brd_index'
+            },
+            '1':{
+                '_parser': number,
+                '_attr': 'path'
+            },
+
+        }
+    }
+
+    index_ctr=0
+    def __init__(self,path,brd_index=None):
+        brd_index=Boundary.index_ctr
+        Boundary.index_ctr+=1
+
+        super(Boundary,self).__init__(path=path,brd_index=brd_index)
+  
+
+
+class Keepout(AST):
+    tag='keepout'
+    schema={
+        '0':{
+            '0':{
+                '_parser':text,
+                '_attr':'name'
+            },
+
+            ' ':{
+                '0': {
+                    '_parser':text,
+                    '_attr':'shape'
+                },
+                '1':{
+                    '_parser':text,
+                    '_attr':'typex'
+                },
+                '2':{
+                    '_parser':integer,
+                    '_attr':'brd_index'
+                },
+                '3':{
+                    '_parser': number,
+                    '_attr':'path'
+                },
+            },
+        },
+    }
+    def __init__(self,path,name='\"\"',brd_index=0,shape='polygon',typex='signal'):
+
+        super(Keepout,self).__init__(path=path,name=name,brd_index=brd_index,shape=shape,typex=typex)
\ No newline at end of file
diff --git a/dsn_python/dsn_geo.pyc b/dsn_python/dsn_geo.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..84c49e57ebd7afd674ad4157c2dd644b6fc12aeb
Binary files /dev/null and b/dsn_python/dsn_geo.pyc differ
diff --git a/dsn_python/dsn_module.py b/dsn_python/dsn_module.py
index a4bfd5af8e7334856fafb77d4d4340526ac589d8..0b993d50c88d9e491607f6aa02d6360541aebc37 100644
--- a/dsn_python/dsn_module.py
+++ b/dsn_python/dsn_module.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+
 from pykicad.sexpr import *
 
 class Component(AST):
@@ -80,6 +80,48 @@ class Pin(AST):
     def __init__(self,pin_index=None,pin_at=None,pin_type='Round[A]Pad_1524_um'):
         super(Pin,self).__init__(pin_type=pin_type,pin_index=pin_index,pin_at=pin_at)
 
+class Shape(AST):
+    tag='shape'
+    schema={
+        ' ':{
+            '0':{
+                '_parser': text,
+                '_attr':'shape'
+                
+            },
+            '1':{
+                '_parser': text,
+                '_attr':'layer'
+            },
+            '2':{
+                '_parser': integer,
+                '_attr': 'size'
+            }
+        }
+    }
+    def __init__(self,shape='circle',layer=None,size=1524):
+        super(Shape,self).__init__(shape=shape,layer=layer,size=size)
+class Padstack(AST):
+    tag='padstack'
+    schema={
+        '0':{
+            '_parser': text,
+            '_attr': 'pin_type'
+        },
+        '1':{
+            'shape':{
+                '_parser':Shape,
+                '_multiple':True
+            },
+        },
+
+        'attach':{
+            '_parser': text
+        }
+    }
+    def __init__(self,pin_type='Round[A]Pad_1524_um',shape=None,attach='off'):
+        shape=self.init_list(shape,[])
+        super(Padstack,self).__init__(pin_type=pin_type,shape=shape,attach=attach)
 
 class Footprint(AST):
     tag='image'
diff --git a/dsn_python/dsn_net.py b/dsn_python/dsn_net.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c447e7b575abd0f58e55891860d61261f984721
--- /dev/null
+++ b/dsn_python/dsn_net.py
@@ -0,0 +1,58 @@
+
+from pykicad.sexpr import *
+
+class Net(AST):
+    tag='net'
+    schema={
+        '0':{
+            '_parser': text,
+            '_attr': 'net_name'
+        },
+        '1':{
+            'pins':{
+                '0':{
+                    '_parser':text +text,
+                    '_attr':'conn_pins'
+                },              
+            }
+        }
+    }
+    def __init__(self,net_name,conn_pins=None):
+        super(Net,self).__init__(net_name=net_name,conn_pins=conn_pins)
+
+class NetClass(AST):
+    tag='class'
+    schema={
+        '0':{
+            '0':{
+                '_parser':text,
+                '_attr':'net_class_name'
+            },
+            '1':{
+                '_parser':text+text,
+                '_attr':'nets_name'
+            },
+        },
+        'circuit':{
+            '0':{
+                'use_via':{
+                    '_parser':text,
+                    '_attr':'via_name'
+                }
+            }
+        },
+        'rule':{
+            'width':{
+                '_parser':integer
+            },
+            'clearance':{
+                '_parser': number
+            }
+        }
+    }
+    def __init__(self,net_class_name='default',nets_name=None,
+                via_name=None,width=1000,clearance=200.1):
+
+        super(NetClass,self).__init__(net_class_name=net_class_name,nets_name=nets_name,
+                                    via_name=via_name,width=width,clearance=clearance)
+                
diff --git a/dsn_python/dsnwritier.py b/dsn_python/dsnwritier.py
index 8a7b15395f5bde1cb172e4f041653a1e57148cc5..f31eea043a9fad1178b5b59d5e60f4f3e2b36648 100644
--- a/dsn_python/dsnwritier.py
+++ b/dsn_python/dsnwritier.py
@@ -1,8 +1,10 @@
 #!/usr/bin/env python3
 from pykicad.sexpr import *
 from dsn_rule import *
-from dsn_module import Component,Footprint
+from dsn_module import Component,Footprint, Padstack
 import dsn_module as module
+from dsn_net import *
+from dsn_geo import *
 
 class Parser(AST):
     tag = 'parser'
@@ -59,65 +61,6 @@ class Layer(AST):
         Layer.index_ctr+=1
         super(Layer,self).__init__(name=name,typex=typex,index=index)
 
-
-class Boundary(AST):
-    tag='boundary'
-    schema={
-        'path pcb':{
-            '0':{
-                '_parser':integer,
-                '_attr':'brd_index'
-            },
-            '1':{
-                '_parser': number,
-                '_attr': 'path'
-            },
-
-        }
-    }
-
-    index_ctr=0
-    def __init__(self,path,brd_index=None):
-        brd_index=Boundary.index_ctr
-        Boundary.index_ctr+=1
-
-        super(Boundary,self).__init__(path=path,brd_index=brd_index)
-
-class Keepout(AST):
-    tag='keepout'
-    schema={
-        '0':{
-            '0':{
-                '_parser':text,
-                '_attr':'name'
-            },
-
-            ' ':{
-                '0': {
-                    '_parser':text,
-                    '_attr':'shape'
-                },
-                '1':{
-                    '_parser':text,
-                    '_attr':'typex'
-                },
-                '2':{
-                    '_parser':integer,
-                    '_attr':'brd_index'
-                },
-                '3':{
-                    '_parser': number,
-                    '_attr':'path'
-                },
-            },
-        },
-    }
-    def __init__(self,path,name='\"\"',brd_index=0,shape='polygon',typex='signal'):
-
-        super(Keepout,self).__init__(path=path,name=name,brd_index=brd_index,shape=shape,typex=typex)
-
-
-
 class Dsn(AST):
     tag = 'PCB "kicad_board"'
     schema = {
@@ -147,7 +90,7 @@ class Dsn(AST):
                 '1':{
                     'boundary':{
                         '_parser':Boundary, 
-                        '_multiple':True
+                        '_multiple':False
                     },                    
                 },
                 '2':{
@@ -187,13 +130,32 @@ class Dsn(AST):
                         '_parser': Footprint,
                         '_multiple': True
                     },
-                }
+                },
 
-                # 'padstack':{
-                #     '_parser':Padstack,
-                #     '_multiple': True
-                # }
+                '1':{
+                    '_parser':Padstack,
+                    '_multiple': True,
+                    '_attr':'padstack'
+                }
 
+            }
+        },
+        '6':{
+            'network':{
+                'net':{
+                    '_parser':Net,
+                    '_multiple':True
+                },
+                'netclass':{
+                    '_parser':NetClass,
+                    '_multiple':True
+                }
+            }
+        },
+        '7':{
+            'wiring':{
+                '_parser':text,  #not available before auto-routing, code can be modificed if want to set route from script manually
+                
             }
         }
 
@@ -211,7 +173,11 @@ class Dsn(AST):
         via_txt='"Via[0-1]_800:400_um"',
         rule=None,
         component=None,
-        image=None
+        image=None,
+        padstack=None,
+        net=None,
+        netclass=None,
+        wiring= None
         ):
 
         layers=self.init_list(layers,[])
@@ -220,7 +186,9 @@ class Dsn(AST):
         keepout=self.init_list(keepout,[])
         component=self.init_list(component,[])
         image=self.init_list(image,[])
-        
+        padstack=self.init_list(padstack,[])
+        net=self.init_list(net,[])
+        net=self.init_list(netclass,[])
 
         super(Dsn,self).__init__(
             resolution=resolution,
@@ -232,7 +200,11 @@ class Dsn(AST):
             via_txt=via_txt,
             rule=rule,
             component=component,
-            image=image
+            image=image,
+            padstack=padstack,
+            net=net,
+            netclass=netclass,
+            wiring=wiring
             )
 
     def to_file(self, path):
diff --git a/dsn_python/gui_defaults.par b/dsn_python/gui_defaults.par
new file mode 100644
index 0000000000000000000000000000000000000000..7aa8af6713ad9c87e9faedc639eef28d04c6c288
--- /dev/null
+++ b/dsn_python/gui_defaults.par
@@ -0,0 +1,235 @@
+
+(gui_defaults
+  (windows
+    (board_frame
+      visible
+      (bounds
+        351 29 1150 916
+      )
+    )
+    (color_manager
+      not_visible
+      (bounds
+        0 600 1110 134
+      )
+    )
+    (layer_visibility
+      not_visible
+      (bounds
+        0 450 369 162
+      )
+    )
+    (object_visibility
+      not_visible
+      (bounds
+        0 550 405 396
+      )
+    )
+    (display_miscellanious
+      not_visible
+      (bounds
+        0 350 241 333
+      )
+    )
+    (snapshots
+      not_visible
+      (bounds
+        0 250 230 255
+      )
+    )
+    (select_parameter
+      not_visible
+      (bounds
+        0 0 246 467
+      )
+    )
+    (route_parameter
+      not_visible
+      (bounds
+        0 100 261 542
+      )
+    )
+    (manual_rules
+      not_visible
+      (bounds
+        0 27 284 196
+      )
+    )
+    (route_details
+      not_visible
+      (bounds
+        0 27 263 240
+      )
+    )
+    (move_parameter
+      not_visible
+      (bounds
+        0 50 304 139
+      )
+    )
+    (clearance_matrix
+      not_visible
+      (bounds
+        0 150 470 257
+      )
+    )
+    (via_rules
+      not_visible
+      (bounds
+        50 150 335 450
+      )
+    )
+    (edit_vias
+      not_visible
+      (bounds
+        100 150 413 103
+      )
+    )
+    (edit_net_rules
+      not_visible
+      (bounds
+        100 200 913 103
+      )
+    )
+    (assign_net_rules
+      not_visible
+      (bounds
+        100 250 213 84
+      )
+    )
+    (padstack_info
+      not_visible
+      (bounds
+        100 30 0 0
+      )
+    )
+    (package_info
+      not_visible
+      (bounds
+        200 30 0 0
+      )
+    )
+    (component_info
+      not_visible
+      (bounds
+        300 30 0 0
+      )
+    )
+    (net_info
+      not_visible
+      (bounds
+        350 30 0 0
+      )
+    )
+    (incompletes_info
+      not_visible
+      (bounds
+        400 30 0 0
+      )
+    )
+    (violations_info
+      not_visible
+      (bounds
+        500 30 0 0
+      )
+    )
+  )
+  (colors
+    (background
+      204 204 204
+    )
+    (hilight 1.0
+      230 255 255
+    )
+    (incompletes 1.0
+      255 255 255
+    )
+    (outline
+      0 0 0
+    )
+    (component_front
+      0 0 255
+    )
+    (component_back
+      255 0 0
+    )
+    (violations
+      255 0 255
+    )
+    (length_matching 1.0
+      0 255 0
+    )
+    (traces 1.0
+      255 0 0
+      0 0 255
+    )
+    (fixed_traces 1.0
+      255 0 0
+      0 0 255
+    )
+    (vias 1.0
+      200 200 0
+      200 200 0
+    )
+    (fixed_vias 1.0
+      200 200 0
+      200 200 0
+    )
+    (pins 1.0
+      150 50 0
+      160 80 0
+    )
+    (conduction 1.0
+      0 150 0
+      100 100 0
+    )
+    (keepout 1.0
+      0 110 110
+      0 100 160
+    )
+    (via_keepout 1.0
+      100 100 100
+      100 100 100
+    )
+  )
+  (parameter
+    (selection_layers 
+      all_visible
+    )
+    (selectable_items 
+      TRACES VIAS PINS FIXED UNFIXED 
+    )
+    (via_snap_to_smd_center 
+      on
+    )
+    (route_mode 
+      dynamic
+    )
+    (shove_enabled 
+      on
+    )
+    (drag_components_enabled 
+      on
+    )
+    (hilight_routing_obstacle 
+      off
+    )
+    (pull_tight_region 
+      2147483647
+    )
+    (pull_tight_accuracy 
+      500
+    )
+    (clearance_compensation 
+      off
+    )
+    (ignore_conduction_areas 
+      on
+    )
+    (automatic_layer_dimming 
+      0.7
+    )
+    (deselected_snapshot_attributes 
+    )
+  )
+)
\ No newline at end of file
diff --git a/dsn_python/gui_defaults.par.bak b/dsn_python/gui_defaults.par.bak
new file mode 100644
index 0000000000000000000000000000000000000000..fb9864927e3f639fb75d819dda45fc40219c138f
--- /dev/null
+++ b/dsn_python/gui_defaults.par.bak
@@ -0,0 +1,235 @@
+
+(gui_defaults
+  (windows
+    (board_frame
+      visible
+      (bounds
+        120 27 1150 916
+      )
+    )
+    (color_manager
+      not_visible
+      (bounds
+        0 600 1110 134
+      )
+    )
+    (layer_visibility
+      not_visible
+      (bounds
+        0 450 369 162
+      )
+    )
+    (object_visibility
+      not_visible
+      (bounds
+        0 550 395 396
+      )
+    )
+    (display_miscellanious
+      not_visible
+      (bounds
+        0 350 241 333
+      )
+    )
+    (snapshots
+      not_visible
+      (bounds
+        0 250 230 255
+      )
+    )
+    (select_parameter
+      not_visible
+      (bounds
+        0 0 246 467
+      )
+    )
+    (route_parameter
+      not_visible
+      (bounds
+        0 100 261 542
+      )
+    )
+    (manual_rules
+      not_visible
+      (bounds
+        0 27 284 196
+      )
+    )
+    (route_details
+      not_visible
+      (bounds
+        0 27 263 240
+      )
+    )
+    (move_parameter
+      not_visible
+      (bounds
+        0 50 304 139
+      )
+    )
+    (clearance_matrix
+      not_visible
+      (bounds
+        0 150 470 257
+      )
+    )
+    (via_rules
+      not_visible
+      (bounds
+        50 150 335 450
+      )
+    )
+    (edit_vias
+      not_visible
+      (bounds
+        100 150 413 103
+      )
+    )
+    (edit_net_rules
+      not_visible
+      (bounds
+        100 200 913 103
+      )
+    )
+    (assign_net_rules
+      not_visible
+      (bounds
+        100 250 213 84
+      )
+    )
+    (padstack_info
+      not_visible
+      (bounds
+        100 30 0 0
+      )
+    )
+    (package_info
+      not_visible
+      (bounds
+        200 30 0 0
+      )
+    )
+    (component_info
+      not_visible
+      (bounds
+        300 30 0 0
+      )
+    )
+    (net_info
+      not_visible
+      (bounds
+        350 30 0 0
+      )
+    )
+    (incompletes_info
+      not_visible
+      (bounds
+        400 30 0 0
+      )
+    )
+    (violations_info
+      not_visible
+      (bounds
+        500 30 0 0
+      )
+    )
+  )
+  (colors
+    (background
+      255 255 255
+    )
+    (hilight 1.0
+      230 255 255
+    )
+    (incompletes 1.0
+      255 255 255
+    )
+    (outline
+      0 0 0
+    )
+    (component_front
+      0 0 255
+    )
+    (component_back
+      255 0 0
+    )
+    (violations
+      255 0 255
+    )
+    (length_matching 1.0
+      0 255 0
+    )
+    (traces 1.0
+      255 0 0
+      0 0 255
+    )
+    (fixed_traces 1.0
+      255 0 0
+      0 0 255
+    )
+    (vias 1.0
+      200 200 0
+      200 200 0
+    )
+    (fixed_vias 1.0
+      200 200 0
+      200 200 0
+    )
+    (pins 1.0
+      150 50 0
+      160 80 0
+    )
+    (conduction 1.0
+      0 150 0
+      100 100 0
+    )
+    (keepout 1.0
+      0 110 110
+      0 100 160
+    )
+    (via_keepout 1.0
+      100 100 100
+      100 100 100
+    )
+  )
+  (parameter
+    (selection_layers 
+      all_visible
+    )
+    (selectable_items 
+      TRACES VIAS PINS FIXED UNFIXED 
+    )
+    (via_snap_to_smd_center 
+      on
+    )
+    (route_mode 
+      dynamic
+    )
+    (shove_enabled 
+      on
+    )
+    (drag_components_enabled 
+      on
+    )
+    (hilight_routing_obstacle 
+      off
+    )
+    (pull_tight_region 
+      2147483647
+    )
+    (pull_tight_accuracy 
+      500
+    )
+    (clearance_compensation 
+      off
+    )
+    (ignore_conduction_areas 
+      on
+    )
+    (automatic_layer_dimming 
+      0.7
+    )
+    (deselected_snapshot_attributes 
+    )
+  )
+)
\ No newline at end of file
diff --git a/dsn_python/test_dsn_python.py b/dsn_python/test_dsn_python.py
index 86f6e431478fac39ead12aa1262c9275cd0c95e8..85154a48512a3a5ff962ce9fa33b6a534a65b057 100644
--- a/dsn_python/test_dsn_python.py
+++ b/dsn_python/test_dsn_python.py
@@ -5,6 +5,7 @@ from pykicad import pcb
 test=dsnwritier.Dsn()
 
 ###############################################################################
+###manually
 layers=[
     dsnwritier.Layer('F.Cu'),
     dsnwritier.Layer('B.Cu')
@@ -21,6 +22,7 @@ bdata=[137735, -31864.8,  165736, -31864.8,  165736, -113335,  137735, -113335,
             264.583, -31864.8,  78264.5, -31864.8,  78264.5, -264.632,  137735, -264.632,
             137735, -31864.8]
 
+
 kdata1=[138725, -221865,  138725, -244336,  150275, -244336,  150275, -221865,
             138725, -221865]
 kdata2=[98235.3, -224531,  98764.5, -224531,  98764.5, -219905,  103236, -224376,
@@ -31,13 +33,34 @@ kdata2=[98235.3, -224531,  98764.5, -224531,  98764.5, -219905,  103236, -224376
             98235.3, -224531]
 
 #######################################################################################
+###load from library
+# drawingclass=dsnwritier.load_drawing('/home/jingyan/Documents/summer_intern_lemur/roco_electrical/kicad_test.dxf')
+# bdata=drawingclass.load_polygon()[0]
+
+drawingclass=dsnwritier.load_drawing('/home/jingyan/Documents/summer_intern_lemur/roco_electrical/dsn_line_test.dxf')
+ddata=drawingclass.load_polygon()
+bdata=ddata[0]  #first element is boundary
+
+keepout=[] #load all the rest as outline 
+
+for i in range(1,len(ddata)):
+    kdata=dsnwritier.Keepout(ddata[i])
+    keepout.append(kdata)
+#######################################################################################
 parsers= dsnwritier.Parser()
 
 boundary=dsnwritier.Boundary(bdata)
 
+#############
 keepout=[
     dsnwritier.Keepout(kdata1),
     dsnwritier.Keepout(kdata2)]
+#############
+keepout=[] #load all the rest as outline 
+
+for i in range(1,len(ddata)):
+    kdata=dsnwritier.Keepout(ddata[i])
+    keepout.append(kdata)
 
 rule=dsnwritier.Rule()
 clearance=[
@@ -45,11 +68,11 @@ clearance=[
     dsnwritier.Clearance(200.1,'default_smd'),
     dsnwritier.Clearance(50,'smd_smd')]
 rule.clearance=clearance
-
+##########
 component=[dsnwritier.Component('U1',[103000,48000],name='"DEV"'),
           dsnwritier.Component('J1',[103000,48000],name='"DEV"')]
 
-
+###############
 image1_outline=[
     dsnwritier.module.Outline(width=120,outline_start=[-7620, 11430],outline_end=[7540, 11430]),
     dsnwritier.module.Outline(width=120,outline_start=[-7620, 11430],outline_end=[7540, -13570]),
@@ -62,6 +85,17 @@ image1_pin=[
 
 image1=dsnwritier.Footprint('U1',image1_outline,image1_pin)
 image=[image1]
+###############
+pin_shape1=[dsnwritier.module.Shape(layer='F.Cu'),
+            dsnwritier.module.Shape(layer='B.Cu')]
+padstack1=dsnwritier.Padstack(shape=pin_shape1,attach='off')
+pin_shape2=[dsnwritier.module.Shape(layer='F.Cu',size=800),
+            dsnwritier.module.Shape(layer='B.Cu',size=800)]
+padstack2=dsnwritier.Padstack(pin_type='"Via[0-1]_800:400_um"',shape=pin_shape2,attach='off')
+##############
+net1=dsnwritier.Net('3v3',conn_pins=['U1-3','J1-1'])
+net2=dsnwritier.Net('VIN',conn_pins='U1-1')
+netclass1=dsnwritier.NetClass(net_class_name='default',nets_name=['3v3','GND','VIN'],via_name='Via[0-1]_800:400_um')
 
 ########################################################################################
 test.parser=parsers
@@ -71,5 +105,8 @@ test.keepout=keepout
 test.rule=rule
 test.component=component
 test.image=image
+test.padstack=[padstack1,padstack2]
+test.net=[net1,net2]
+test.netclass=netclass1
 
 test.to_file('testdsn.dsn')
diff --git a/dsn_python/testdsn.dsn b/dsn_python/testdsn.dsn
index 14da9ab6b506d80a9a8993b163bfe01890d10c11..080354484a6b28f00d206b8b263533d01a894246 100644
--- a/dsn_python/testdsn.dsn
+++ b/dsn_python/testdsn.dsn
@@ -17,11 +17,271 @@
     (property 
         (index 1))) 
 (boundary 
-    (path pcb 0 137735 -31864.8000000000 165736 -31864.8000000000 165736 -113335 137735 -113335 137735 -113864 160735 -113864 160735 -151336 150736 -151336 150736 -151865 160735 -151865 160735 -211335 150736 -211335 150736 -211865 169735 -211865 169735 -249335 96264.4000000000 -249335 96264.4000000000 -211865 138264 -211865 138264 -211335 37264.4000000000 -211335 37264.4000000000 -151865 138264 -151865 138264 -151336 87264.4000000000 -151336 87264.4000000000 -113864 119265 -113864 119265 -113335 264.5830000000 -113335 264.5830000000 -31864.8000000000 78264.5000000000 -31864.8000000000 78264.5000000000 -264.6320000000 137735 -264.6320000000 137735 -31864.8000000000)) 
+    (path pcb 0 -26696.2760000000 -280310.9110000000 216684.7830000000 -280310.9110000000 216684.7830000000 19577.2840000000 -26696.2760000000 19577.2840000000)) 
 (keepout "" 
-    (  polygon signal 0 138725 -221865 138725 -244336 150275 -244336 150275 -221865 138725 -221865)) 
+    (  polygon signal 0 106000.2480000000 -113732.1160000000 106000.2480000000 -113467.5320000000 118999.9710000000 -113467.5320000000 118999.9710000000 -113732.1160000000)) 
 (keepout "" 
-    (  polygon signal 0 98235.3000000000 -224531 98764.5000000000 -224531 98764.5000000000 -219905 103236 -224376 103236 -236824 98764.5000000000 -241294 98764.5000000000 -236669 98235.3000000000 -236669 98235.3000000000 -242572 103610 -237198 103765 -237198 103765 -237043 103874 -236933 103765 -236824 103765 -224376 103874 -224266 103765 -224157 103765 -224002 103610 -224002 98235.3000000000 -218628 98235.3000000000 -224531)) 
+    (  polygon signal 0 106000.2480000000 -151732.3810000000 106000.2480000000 -151467.7980000000 118999.9710000000 -151467.7980000000 118999.9710000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 35999.8700000000 -31732.4810000000 35999.8700000000 -31467.8970000000 59999.9540000000 -31467.8970000000 59999.9540000000 -31732.4810000000)) 
+(keepout "" 
+    (  polygon signal 0 0.0000000000 -31732.4810000000 0.0000000000 -31467.8970000000 24000.0850000000 -31467.8970000000 24000.0850000000 -31732.4810000000)) 
+(keepout "" 
+    (  polygon signal 0 106000.2480000000 -18132.2620000000 106000.2480000000 -17867.6790000000 110000.0050000000 -17867.6790000000 110000.0050000000 -18132.2620000000)) 
+(keepout "" 
+    (  polygon signal 0 106000.2480000000 -27132.2230000000 106000.2480000000 -26867.6400000000 110000.0050000000 -26867.6400000000 110000.0050000000 -27132.2230000000)) 
+(keepout "" 
+    (  polygon signal 0 105867.9570000000 -26999.9310000000 105867.9570000000 -17999.9710000000 106132.5400000000 -17999.9710000000 106132.5400000000 -26999.9310000000)) 
+(keepout "" 
+    (  polygon signal 0 151000.0840000000 -151732.3810000000 151000.0840000000 -151467.7980000000 160999.9930000000 -151467.7980000000 160999.9930000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 151000.0840000000 -211732.3380000000 151000.0840000000 -211467.7540000000 160999.9930000000 -211467.7540000000 160999.9930000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 7250.2040000000 -61800.4030000000 7250.2040000000 -61535.8190000000 7749.9150000000 -61535.8190000000 7749.9150000000 -61800.4030000000)) 
+(keepout "" 
+    (  polygon signal 0 7617.6230000000 -61668.1110000000 7617.6230000000 -46259.2330000000 7882.2060000000 -46259.2330000000 7882.2060000000 -61668.1110000000)) 
+(keepout "" 
+    (  polygon signal 0 7250.2040000000 -46391.5240000000 7250.2040000000 -46126.9410000000 7749.9150000000 -46126.9410000000 7749.9150000000 -46391.5240000000)) 
+(keepout "" 
+    (  polygon signal 0 7117.9120000000 -61668.1110000000 7117.9120000000 -46259.2330000000 7382.4950000000 -46259.2330000000 7382.4950000000 -61668.1110000000)) 
+(keepout "" 
+    (  polygon signal 0 7250.2040000000 -99073.0640000000 7250.2040000000 -98808.4800000000 7749.9150000000 -98808.4800000000 7749.9150000000 -99073.0640000000)) 
+(keepout "" 
+    (  polygon signal 0 7617.6230000000 -98940.7720000000 7617.6230000000 -83531.8940000000 7882.2060000000 -83531.8940000000 7882.2060000000 -98940.7720000000)) 
+(keepout "" 
+    (  polygon signal 0 7250.2040000000 -83664.1860000000 7250.2040000000 -83399.6020000000 7749.9150000000 -83399.6020000000 7749.9150000000 -83664.1860000000)) 
+(keepout "" 
+    (  polygon signal 0 7117.9120000000 -98940.7720000000 7117.9120000000 -83531.8940000000 7382.4950000000 -83531.8940000000 7382.4950000000 -98940.7720000000)) 
+(keepout "" 
+    (  polygon signal 0 169867.6670000000 -249599.7930000000 169867.6670000000 -211600.0460000000 170132.2510000000 -211600.0460000000 170132.2510000000 -249599.7930000000)) 
+(keepout "" 
+    (  polygon signal 0 137999.8460000000 -249732.0840000000 137999.8460000000 -249467.5010000000 151000.0840000000 -249467.5010000000 151000.0840000000 -249732.0840000000)) 
+(keepout "" 
+    (  polygon signal 0 106000.2480000000 -211732.3380000000 106000.2480000000 -211467.7540000000 118999.9710000000 -211467.7540000000 118999.9710000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 151000.0840000000 -211732.3380000000 151000.0840000000 -211467.7540000000 169999.9590000000 -211467.7540000000 169999.9590000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 151000.0840000000 -249732.0840000000 151000.0840000000 -249467.5010000000 169999.9590000000 -249467.5010000000 169999.9590000000 -249732.0840000000)) 
+(keepout "" 
+    (  polygon signal 0 118999.9710000000 -249732.0840000000 118999.9710000000 -249467.5010000000 137999.8460000000 -249467.5010000000 137999.8460000000 -249732.0840000000)) 
+(keepout "" 
+    (  polygon signal 0 118999.9710000000 -211732.3380000000 118999.9710000000 -211467.7540000000 137999.8460000000 -211467.7540000000 137999.8460000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 65328.8290000000 -108600.1300000000 65328.8290000000 -85599.9830000000 65593.4120000000 -85599.9830000000 65593.4120000000 -108600.1300000000)) 
+(keepout "" 
+    (  polygon signal 0 65461.1210000000 -108732.4220000000 65461.1210000000 -108467.8390000000 77538.9370000000 -108467.8390000000 77538.9370000000 -108732.4220000000)) 
+(keepout "" 
+    (  polygon signal 0 77406.6460000000 -108600.1300000000 77406.6460000000 -85599.9830000000 77671.2290000000 -85599.9830000000 77671.2290000000 -108600.1300000000)) 
+(keepout "" 
+    (  polygon signal 0 65461.1210000000 -85732.2750000000 65461.1210000000 -85467.6910000000 77538.9370000000 -85467.6910000000 77538.9370000000 -85732.2750000000)) 
+(keepout "" 
+    (  polygon signal 0 44250.0120000000 -191982.1200000000 44250.0120000000 -191717.5370000000 44750.2410000000 -191717.5370000000 44750.2410000000 -191982.1200000000)) 
+(keepout "" 
+    (  polygon signal 0 44617.9500000000 -191849.8290000000 44617.9500000000 -171349.7880000000 44882.5330000000 -171349.7880000000 44882.5330000000 -191849.8290000000)) 
+(keepout "" 
+    (  polygon signal 0 44250.0120000000 -171482.0790000000 44250.0120000000 -171217.4960000000 44750.2410000000 -171217.4960000000 44750.2410000000 -171482.0790000000)) 
+(keepout "" 
+    (  polygon signal 0 44117.7200000000 -191849.8290000000 44117.7200000000 -171349.7880000000 44382.3040000000 -171349.7880000000 44382.3040000000 -191849.8290000000)) 
+(keepout "" 
+    (  polygon signal 0 150406.8410000000 -108600.1300000000 150406.8410000000 -85599.9830000000 150671.4240000000 -85599.9830000000 150671.4240000000 -108600.1300000000)) 
+(keepout "" 
+    (  polygon signal 0 94250.0600000000 -126148.9290000000 94250.0600000000 -125884.3460000000 94749.7730000000 -125884.3460000000 94749.7730000000 -126148.9290000000)) 
+(keepout "" 
+    (  polygon signal 0 94117.7690000000 -139183.2750000000 94117.7690000000 -126016.6380000000 94382.3520000000 -126016.6380000000 94382.3520000000 -139183.2750000000)) 
+(keepout "" 
+    (  polygon signal 0 94250.0600000000 -139315.5670000000 94250.0600000000 -139050.9840000000 94749.7730000000 -139050.9840000000 94749.7730000000 -139315.5670000000)) 
+(keepout "" 
+    (  polygon signal 0 94617.4820000000 -139183.2750000000 94617.4820000000 -126016.6380000000 94882.0650000000 -126016.6380000000 94882.0650000000 -139183.2750000000)) 
+(keepout "" 
+    (  polygon signal 0 36867.5180000000 -211600.0460000000 36867.5180000000 -151600.0890000000 37132.1010000000 -151600.0890000000 37132.1010000000 -211600.0460000000)) 
+(keepout "" 
+    (  polygon signal 0 158367.5950000000 -61417.9980000000 158367.5950000000 -46509.3460000000 158632.1780000000 -46509.3460000000 158632.1780000000 -61417.9980000000)) 
+(keepout "" 
+    (  polygon signal 0 163406.5630000000 -66511.7430000000 158406.3510000000 -61511.5310000000 158593.4200000000 -61324.4620000000 163593.6320000000 -66324.6740000000)) 
+(keepout "" 
+    (  polygon signal 0 158593.4200000000 -46602.8820000000 158406.3510000000 -46415.2950000000 163406.5630000000 -41415.6010000000 163593.6320000000 -41602.6690000000)) 
+(keepout "" 
+    (  polygon signal 0 163367.8050000000 -66418.2100000000 163367.8050000000 -61417.9980000000 163632.3880000000 -61417.9980000000 163632.3880000000 -66418.2100000000)) 
+(keepout "" 
+    (  polygon signal 0 158367.5950000000 -126266.7510000000 158367.5950000000 -121266.5410000000 158632.1780000000 -121266.5410000000 158632.1780000000 -126266.7510000000)) 
+(keepout "" 
+    (  polygon signal 0 153593.7260000000 -126360.2860000000 153406.6580000000 -126173.2180000000 158406.3510000000 -121173.0060000000 158593.4200000000 -121360.0740000000)) 
+(keepout "" 
+    (  polygon signal 0 158406.3510000000 -144026.9070000000 153406.6580000000 -139026.6980000000 153593.7260000000 -138839.6290000000 158593.4200000000 -143839.8390000000)) 
+(keepout "" 
+    (  polygon signal 0 158367.5950000000 -143933.3740000000 158367.5950000000 -138933.1620000000 158632.1780000000 -138933.1620000000 158632.1780000000 -143933.3740000000)) 
+(keepout "" 
+    (  polygon signal 0 153367.8990000000 -138933.1620000000 153367.8990000000 -126266.7510000000 153632.4820000000 -126266.7510000000 153632.4820000000 -138933.1620000000)) 
+(keepout "" 
+    (  polygon signal 0 -132.2920000000 -113599.8240000000 -132.2920000000 -31600.1890000000 132.2920000000 -31600.1890000000 132.2920000000 -113599.8240000000)) 
+(keepout "" 
+    (  polygon signal 0 138460.8000000000 -108732.4220000000 138460.8000000000 -108467.8390000000 150539.1330000000 -108467.8390000000 150539.1330000000 -108732.4220000000)) 
+(keepout "" 
+    (  polygon signal 0 138460.8000000000 -85732.2750000000 138460.8000000000 -85467.6910000000 150539.1330000000 -85467.6910000000 150539.1330000000 -85732.2750000000)) 
+(keepout "" 
+    (  polygon signal 0 95999.8240000000 -211732.3380000000 95999.8240000000 -211467.7540000000 106000.2480000000 -211467.7540000000 106000.2480000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 80617.8190000000 -74850.2530000000 80617.8190000000 -66850.2240000000 80882.4030000000 -66850.2240000000 80882.4030000000 -74850.2530000000)) 
+(keepout "" 
+    (  polygon signal 0 95999.8240000000 -249732.0840000000 95999.8240000000 -249467.5010000000 106000.2480000000 -249467.5010000000 106000.2480000000 -249732.0840000000)) 
+(keepout "" 
+    (  polygon signal 0 107617.7200000000 -74850.2530000000 107617.7200000000 -66850.2240000000 107882.3040000000 -66850.2240000000 107882.3040000000 -74850.2530000000)) 
+(keepout "" 
+    (  polygon signal 0 160867.7010000000 -151600.0890000000 160867.7010000000 -113599.8240000000 161132.2850000000 -113599.8240000000 161132.2850000000 -151600.0890000000)) 
+(keepout "" 
+    (  polygon signal 0 149867.8550000000 -51099.7640000000 149867.8550000000 -42099.7980000000 150132.4390000000 -42099.7980000000 150132.4390000000 -51099.7640000000)) 
+(keepout "" 
+    (  polygon signal 0 150000.1470000000 -51232.0550000000 150000.1470000000 -50967.4720000000 153999.9040000000 -50967.4720000000 153999.9040000000 -51232.0550000000)) 
+(keepout "" 
+    (  polygon signal 0 153867.6120000000 -51099.7640000000 153867.6120000000 -42099.7980000000 154132.1950000000 -42099.7980000000 154132.1950000000 -51099.7640000000)) 
+(keepout "" 
+    (  polygon signal 0 150000.1470000000 -42232.0890000000 150000.1470000000 -41967.5060000000 153999.9040000000 -41967.5060000000 153999.9040000000 -42232.0890000000)) 
+(keepout "" 
+    (  polygon signal 0 160867.7010000000 -211600.0460000000 160867.7010000000 -151600.0890000000 161132.2850000000 -151600.0890000000 161132.2850000000 -211600.0460000000)) 
+(keepout "" 
+    (  polygon signal 0 118999.9710000000 -151732.3810000000 118999.9710000000 -151467.7980000000 137999.8460000000 -151467.7980000000 137999.8460000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 81000.2240000000 -211732.3380000000 81000.2240000000 -211467.7540000000 93999.9470000000 -211467.7540000000 93999.9470000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 81000.2240000000 -151732.3810000000 81000.2240000000 -151467.7980000000 93999.9470000000 -151467.7980000000 93999.9470000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 101867.6840000000 -31499.9380000000 101867.6840000000 -13499.9900000000 102132.2680000000 -13499.9900000000 102132.2680000000 -31499.9380000000)) 
+(keepout "" 
+    (  polygon signal 0 113867.4670000000 -31499.9380000000 113867.4670000000 -13499.9900000000 114132.0500000000 -13499.9900000000 114132.0500000000 -31499.9380000000)) 
+(keepout "" 
+    (  polygon signal 0 138328.5080000000 -108600.1300000000 138328.5080000000 -85599.9830000000 138593.0920000000 -85599.9830000000 138593.0920000000 -108600.1300000000)) 
+(keepout "" 
+    (  polygon signal 0 162250.0460000000 -237315.7890000000 162250.0460000000 -237051.2060000000 162749.7570000000 -237051.2060000000 162749.7570000000 -237315.7890000000)) 
+(keepout "" 
+    (  polygon signal 0 162617.4650000000 -237183.4970000000 162617.4650000000 -224016.8570000000 162882.0480000000 -224016.8570000000 162882.0480000000 -237183.4970000000)) 
+(keepout "" 
+    (  polygon signal 0 162250.0460000000 -224149.1490000000 162250.0460000000 -223884.5650000000 162749.7570000000 -223884.5650000000 162749.7570000000 -224149.1490000000)) 
+(keepout "" 
+    (  polygon signal 0 162117.7540000000 -237183.4970000000 162117.7540000000 -224016.8570000000 162382.3380000000 -224016.8570000000 162382.3380000000 -237183.4970000000)) 
+(keepout "" 
+    (  polygon signal 0 138328.5080000000 -141600.1830000000 138328.5080000000 -118600.0360000000 138593.0920000000 -118600.0360000000 138593.0920000000 -141600.1830000000)) 
+(keepout "" 
+    (  polygon signal 0 86999.8580000000 -151732.3810000000 86999.8580000000 -151467.7980000000 106000.2480000000 -151467.7980000000 106000.2480000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 86999.8580000000 -113732.1160000000 86999.8580000000 -113467.5320000000 106000.2480000000 -113467.5320000000 106000.2480000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 77867.5970000000 -31600.1890000000 77867.5970000000 -31499.9380000000 78132.1810000000 -31499.9380000000 78132.1810000000 -31600.1890000000)) 
+(keepout "" 
+    (  polygon signal 0 137867.5540000000 -31600.1890000000 137867.5540000000 -31499.9380000000 138132.1370000000 -31499.9380000000 138132.1370000000 -31600.1890000000)) 
+(keepout "" 
+    (  polygon signal 0 101999.9760000000 -31632.2300000000 101999.9760000000 -31367.6470000000 113999.7590000000 -31367.6470000000 113999.7590000000 -31632.2300000000)) 
+(keepout "" 
+    (  polygon signal 0 36999.8100000000 -151732.3810000000 36999.8100000000 -151467.7980000000 81000.2240000000 -151467.7980000000 81000.2240000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 153593.7260000000 -171693.4370000000 153406.6580000000 -171506.3680000000 158632.1780000000 -166280.8470000000 158632.1780000000 -171599.9040000000 158367.5950000000 -171599.9040000000 158367.5950000000 -166919.5670000000)) 
+(keepout "" 
+    (  polygon signal 0 158406.3510000000 -196693.4610000000 153367.8990000000 -191655.0080000000 153367.8990000000 -171599.9040000000 153632.4820000000 -171599.9040000000 153632.4820000000 -191545.4550000000 158593.4200000000 -196506.3920000000)) 
+(keepout "" 
+    (  polygon signal 0 158367.5950000000 -196599.9280000000 158367.5950000000 -191600.2310000000 158632.1780000000 -191600.2310000000 158632.1780000000 -196599.9280000000)) 
+(keepout "" 
+    (  polygon signal 0 165867.9110000000 -113599.8240000000 165867.9110000000 -31600.1890000000 166132.4940000000 -31600.1890000000 166132.4940000000 -113599.8240000000)) 
+(keepout "" 
+    (  polygon signal 0 150406.8410000000 -244600.0960000000 150406.8410000000 -221599.9520000000 150671.4240000000 -221599.9520000000 150671.4240000000 -244600.0960000000)) 
+(keepout "" 
+    (  polygon signal 0 138460.8000000000 -221732.2440000000 138460.8000000000 -221467.6600000000 150539.1330000000 -221467.6600000000 150539.1330000000 -221732.2440000000)) 
+(keepout "" 
+    (  polygon signal 0 138328.5080000000 -244600.0960000000 138328.5080000000 -221599.9520000000 138593.0920000000 -221599.9520000000 138593.0920000000 -244600.0960000000)) 
+(keepout "" 
+    (  polygon signal 0 138460.8000000000 -244732.3880000000 138460.8000000000 -244467.8050000000 150539.1330000000 -244467.8050000000 150539.1330000000 -244732.3880000000)) 
+(keepout "" 
+    (  polygon signal 0 103367.8510000000 -236933.3820000000 103367.8510000000 -224266.4540000000 103632.4340000000 -224266.4540000000 103632.4340000000 -236933.3820000000)) 
+(keepout "" 
+    (  polygon signal 0 103406.6070000000 -224359.9900000000 98632.2220000000 -219586.1210000000 98632.2220000000 -224266.4540000000 98367.6380000000 -224266.4540000000 98367.6380000000 -218947.4010000000 103593.6780000000 -224172.9220000000)) 
+(keepout "" 
+    (  polygon signal 0 31750.0000000000 -35982.3400000000 31750.0000000000 -35717.7570000000 32250.2270000000 -35717.7570000000 32250.2270000000 -35982.3400000000)) 
+(keepout "" 
+    (  polygon signal 0 32117.9350000000 -45350.2430000000 32117.9350000000 -35850.0480000000 32382.5180000000 -35850.0480000000 32382.5180000000 -45350.2430000000)) 
+(keepout "" 
+    (  polygon signal 0 31750.0000000000 -45482.5350000000 31750.0000000000 -45217.9520000000 32250.2270000000 -45217.9520000000 32250.2270000000 -45482.5350000000)) 
+(keepout "" 
+    (  polygon signal 0 31617.7080000000 -45350.2430000000 31617.7080000000 -35850.0480000000 31882.2920000000 -35850.0480000000 31882.2920000000 -45350.2430000000)) 
+(keepout "" 
+    (  polygon signal 0 59999.9540000000 -113732.1160000000 59999.9540000000 -113467.5320000000 77999.8890000000 -113467.5320000000 77999.8890000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 59999.9540000000 -31732.4810000000 59999.9540000000 -31467.8970000000 77999.8890000000 -31467.8970000000 77999.8890000000 -31732.4810000000)) 
+(keepout "" 
+    (  polygon signal 0 137999.8460000000 -31732.4810000000 137999.8460000000 -31467.8970000000 155999.7810000000 -31467.8970000000 155999.7810000000 -31732.4810000000)) 
+(keepout "" 
+    (  polygon signal 0 137999.8460000000 -113732.1160000000 137999.8460000000 -113467.5320000000 155999.7810000000 -113467.5320000000 155999.7810000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 77867.5970000000 -31499.9380000000 77867.5970000000 -0.0490000000 78132.1810000000 -0.0490000000 78132.1810000000 -31499.9380000000)) 
+(keepout "" 
+    (  polygon signal 0 77999.8890000000 -132.3410000000 77999.8890000000 132.2430000000 98000.2190000000 132.2430000000 98000.2190000000 -132.3410000000)) 
+(keepout "" 
+    (  polygon signal 0 101999.9760000000 -31632.2300000000 101999.9760000000 -31367.6470000000 113999.7590000000 -31367.6470000000 113999.7590000000 -31632.2300000000)) 
+(keepout "" 
+    (  polygon signal 0 129117.7010000000 -208982.1160000000 129117.7010000000 -181717.6310000000 137382.3110000000 -181717.6310000000 137382.3110000000 -181849.9230000000 137382.3110000000 -208982.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 129382.2850000000 -208717.5320000000 137117.7280000000 -208717.5320000000 137117.7280000000 -181982.2150000000 129382.2850000000 -181982.2150000000)) 
+(keepout "" 
+    (  polygon signal 0 98000.2190000000 -132.3410000000 98000.2190000000 132.2430000000 118000.0340000000 132.2430000000 118000.0340000000 -132.3410000000)) 
+(keepout "" 
+    (  polygon signal 0 101867.6840000000 -31499.9380000000 101867.6840000000 -13499.9900000000 102132.2680000000 -13499.9900000000 102132.2680000000 -31499.9380000000)) 
+(keepout "" 
+    (  polygon signal 0 113867.4670000000 -31499.9380000000 113867.4670000000 -13499.9900000000 114132.0500000000 -13499.9900000000 114132.0500000000 -31499.9380000000)) 
+(keepout "" 
+    (  polygon signal 0 155999.7810000000 -113732.1160000000 155999.7810000000 -113467.5320000000 166000.2020000000 -113467.5320000000 166000.2020000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 155999.7810000000 -31732.4810000000 155999.7810000000 -31467.8970000000 166000.2020000000 -31467.8970000000 166000.2020000000 -31732.4810000000)) 
+(keepout "" 
+    (  polygon signal 0 86867.5660000000 -151600.0890000000 86867.5660000000 -113599.8240000000 87132.1490000000 -113599.8240000000 87132.1490000000 -151600.0890000000)) 
+(keepout "" 
+    (  polygon signal 0 93999.9470000000 -211732.3380000000 93999.9470000000 -211467.7540000000 137999.8460000000 -211467.7540000000 137999.8460000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 93999.9470000000 -151732.3810000000 93999.9470000000 -151467.7980000000 137999.8460000000 -151467.7980000000 137999.8460000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 80750.1110000000 -74982.5450000000 80750.1110000000 -74717.9620000000 107750.0120000000 -74717.9620000000 107750.0120000000 -74982.5450000000)) 
+(keepout "" 
+    (  polygon signal 0 0.0000000000 -113732.1160000000 0.0000000000 -113467.5320000000 59999.9540000000 -113467.5320000000 59999.9540000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 80750.1110000000 -66982.5160000000 80750.1110000000 -66717.9330000000 107750.0120000000 -66717.9330000000 107750.0120000000 -66982.5160000000)) 
+(keepout "" 
+    (  polygon signal 0 151000.0840000000 -113732.1160000000 151000.0840000000 -113467.5320000000 160999.9930000000 -113467.5320000000 160999.9930000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 151000.0840000000 -151732.3810000000 151000.0840000000 -151467.7980000000 160999.9930000000 -151467.7980000000 160999.9930000000 -151732.3810000000)) 
+(keepout "" 
+    (  polygon signal 0 95867.5320000000 -249599.7930000000 95867.5320000000 -211600.0460000000 96132.1160000000 -211600.0460000000 96132.1160000000 -249599.7930000000)) 
+(keepout "" 
+    (  polygon signal 0 24000.0850000000 -31732.4810000000 24000.0850000000 -31467.8970000000 35999.8700000000 -31467.8970000000 35999.8700000000 -31732.4810000000)) 
+(keepout "" 
+    (  polygon signal 0 150406.8410000000 -141600.1830000000 150406.8410000000 -118600.0360000000 150671.4240000000 -118600.0360000000 150671.4240000000 -141600.1830000000)) 
+(keepout "" 
+    (  polygon signal 0 138460.8000000000 -118732.3280000000 138460.8000000000 -118467.7440000000 150539.1330000000 -118467.7440000000 150539.1330000000 -118732.3280000000)) 
+(keepout "" 
+    (  polygon signal 0 106000.2480000000 -249732.0840000000 106000.2480000000 -249467.5010000000 118999.9710000000 -249467.5010000000 118999.9710000000 -249732.0840000000)) 
+(keepout "" 
+    (  polygon signal 0 138460.8000000000 -141732.4750000000 138460.8000000000 -141467.8920000000 150539.1330000000 -141467.8920000000 150539.1330000000 -141732.4750000000)) 
+(keepout "" 
+    (  polygon signal 0 118000.0340000000 -132.3410000000 118000.0340000000 132.2430000000 137999.8460000000 132.2430000000 137999.8460000000 -132.3410000000)) 
+(keepout "" 
+    (  polygon signal 0 137867.5540000000 -31499.9380000000 137867.5540000000 -0.0490000000 138132.1370000000 -0.0490000000 138132.1370000000 -31499.9380000000)) 
+(keepout "" 
+    (  polygon signal 0 36999.8100000000 -211732.3380000000 36999.8100000000 -211467.7540000000 81000.2240000000 -211467.7540000000 81000.2240000000 -211732.3380000000)) 
+(keepout "" 
+    (  polygon signal 0 163367.8050000000 -46509.3460000000 163367.8050000000 -41509.1340000000 163632.3880000000 -41509.1340000000 163632.3880000000 -46509.3460000000)) 
+(keepout "" 
+    (  polygon signal 0 163367.8050000000 -103690.8680000000 163367.8050000000 -98690.6590000000 163632.3880000000 -98690.6590000000 163632.3880000000 -103690.8680000000)) 
+(keepout "" 
+    (  polygon signal 0 158367.5950000000 -98690.6590000000 158367.5950000000 -83782.0070000000 158632.1780000000 -83782.0070000000 158632.1780000000 -98690.6590000000)) 
+(keepout "" 
+    (  polygon signal 0 163406.5630000000 -103784.4040000000 158406.3510000000 -98784.7080000000 158593.4200000000 -98597.1230000000 163593.6320000000 -103597.3360000000)) 
+(keepout "" 
+    (  polygon signal 0 163367.8050000000 -83782.0070000000 163367.8050000000 -78781.7950000000 163632.3880000000 -78781.7950000000 163632.3880000000 -83782.0070000000)) 
+(keepout "" 
+    (  polygon signal 0 158593.4200000000 -83875.5400000000 158406.3510000000 -83688.4720000000 163406.5630000000 -78688.2620000000 163593.6320000000 -78875.3300000000)) 
+(keepout "" 
+    (  polygon signal 0 98367.6380000000 -242252.9540000000 98367.6380000000 -236933.3820000000 98632.2220000000 -236933.3820000000 98632.2220000000 -241613.7180000000 103406.6070000000 -236839.8490000000 103593.6780000000 -237026.9170000000)) 
+(keepout "" 
+    (  polygon signal 0 137999.8460000000 -113732.1160000000 137999.8460000000 -113467.5320000000 151000.0840000000 -113467.5320000000 151000.0840000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 96999.7640000000 -113732.1160000000 96999.7640000000 -113467.5320000000 118999.9710000000 -113467.5320000000 118999.9710000000 -113732.1160000000)) 
+(keepout "" 
+    (  polygon signal 0 77999.8890000000 -113732.1160000000 77999.8890000000 -113467.5320000000 96999.7640000000 -113467.5320000000 96999.7640000000 -113732.1160000000)) 
         (via "Via[0-1]_800:400_um") 
 (rule 
     (width 250) 
@@ -48,5 +308,27 @@
 (outline 
     (path signal 120 -7620 -13570 -7620 11430)) 
 (pin Round[A]Pad_1524_um 1 -6350 10160) 
-(pin Round[A]Pad_1524_um 2 -6350 7620))
-))
\ No newline at end of file
+(pin Round[A]Pad_1524_um 2 -6350 7620)) 
+(padstack Round[A]Pad_1524_um 
+(shape 
+    (  circle F.Cu 1524)) 
+(shape 
+    (  circle B.Cu 1524)) 
+    (attach off)) 
+(padstack "Via[0-1]_800:400_um" 
+(shape 
+    (  circle F.Cu 800)) 
+(shape 
+    (  circle B.Cu 800)) 
+    (attach off))) 
+    (network 
+(net 3v3 
+    (pins U1-3 J1-1)) 
+(net VIN 
+    (pins U1-1)) 
+(class default 3v3 GND VIN 
+    (circuit 
+        (use_via Via[0-1]_800:400_um)) 
+    (rule 
+        (width 1000) 
+        (clearance 200.1000000000)))))
\ No newline at end of file
diff --git a/journal_media/dxf_in_freerouting.png b/journal_media/dxf_in_freerouting.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a5476bbfdb58677f08362824fc84b8e7a05b5e2
Binary files /dev/null and b/journal_media/dxf_in_freerouting.png differ
diff --git a/journal_media/keepout_load.png b/journal_media/keepout_load.png
new file mode 100644
index 0000000000000000000000000000000000000000..66932cde20ae7b5e4ef688dc571f0f61a5367c17
Binary files /dev/null and b/journal_media/keepout_load.png differ