summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/adaptagrams/libavoid
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:24:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:24:48 +0000
commitcca66b9ec4e494c1d919bff0f71a820d8afab1fa (patch)
tree146f39ded1c938019e1ed42d30923c2ac9e86789 /src/3rdparty/adaptagrams/libavoid
parentInitial commit. (diff)
downloadinkscape-cca66b9ec4e494c1d919bff0f71a820d8afab1fa.tar.xz
inkscape-cca66b9ec4e494c1d919bff0f71a820d8afab1fa.zip
Adding upstream version 1.2.2.upstream/1.2.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/3rdparty/adaptagrams/libavoid')
-rw-r--r--src/3rdparty/adaptagrams/libavoid/CMakeLists.txt58
-rw-r--r--src/3rdparty/adaptagrams/libavoid/Doxyfile2423
-rw-r--r--src/3rdparty/adaptagrams/libavoid/LICENSE.LGPL460
-rw-r--r--src/3rdparty/adaptagrams/libavoid/Makefile.am91
-rw-r--r--src/3rdparty/adaptagrams/libavoid/README35
-rw-r--r--src/3rdparty/adaptagrams/libavoid/actioninfo.cpp187
-rw-r--r--src/3rdparty/adaptagrams/libavoid/actioninfo.h88
-rw-r--r--src/3rdparty/adaptagrams/libavoid/assertions.h60
-rw-r--r--src/3rdparty/adaptagrams/libavoid/connectionpin.cpp476
-rw-r--r--src/3rdparty/adaptagrams/libavoid/connectionpin.h303
-rw-r--r--src/3rdparty/adaptagrams/libavoid/connector.cpp2487
-rw-r--r--src/3rdparty/adaptagrams/libavoid/connector.h547
-rw-r--r--src/3rdparty/adaptagrams/libavoid/connend.cpp435
-rw-r--r--src/3rdparty/adaptagrams/libavoid/connend.h267
-rw-r--r--src/3rdparty/adaptagrams/libavoid/debug.h100
-rw-r--r--src/3rdparty/adaptagrams/libavoid/debughandler.h138
-rw-r--r--src/3rdparty/adaptagrams/libavoid/dllexport.h39
-rw-r--r--src/3rdparty/adaptagrams/libavoid/doc/description.doc73
-rw-r--r--src/3rdparty/adaptagrams/libavoid/doc/example.doc122
-rw-r--r--src/3rdparty/adaptagrams/libavoid/doc/header.html19
-rw-r--r--src/3rdparty/adaptagrams/libavoid/geometry.cpp641
-rw-r--r--src/3rdparty/adaptagrams/libavoid/geometry.h129
-rw-r--r--src/3rdparty/adaptagrams/libavoid/geomtypes.cpp761
-rw-r--r--src/3rdparty/adaptagrams/libavoid/geomtypes.h381
-rw-r--r--src/3rdparty/adaptagrams/libavoid/graph.cpp785
-rw-r--r--src/3rdparty/adaptagrams/libavoid/graph.h135
-rw-r--r--src/3rdparty/adaptagrams/libavoid/hyperedge.cpp388
-rw-r--r--src/3rdparty/adaptagrams/libavoid/hyperedge.h223
-rw-r--r--src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.cpp1232
-rw-r--r--src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.h159
-rw-r--r--src/3rdparty/adaptagrams/libavoid/hyperedgetree.cpp821
-rw-r--r--src/3rdparty/adaptagrams/libavoid/hyperedgetree.h143
-rw-r--r--src/3rdparty/adaptagrams/libavoid/junction.cpp233
-rw-r--r--src/3rdparty/adaptagrams/libavoid/junction.h197
-rw-r--r--src/3rdparty/adaptagrams/libavoid/libavoid.h55
-rw-r--r--src/3rdparty/adaptagrams/libavoid/libavoid.pc.in12
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/libavoid.sln196
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/libavoid.vcxproj198
-rw-r--r--src/3rdparty/adaptagrams/libavoid/makepath.cpp1554
-rw-r--r--src/3rdparty/adaptagrams/libavoid/makepath.h52
-rw-r--r--src/3rdparty/adaptagrams/libavoid/mtst.cpp1094
-rw-r--r--src/3rdparty/adaptagrams/libavoid/mtst.h134
-rw-r--r--src/3rdparty/adaptagrams/libavoid/obstacle.cpp355
-rw-r--r--src/3rdparty/adaptagrams/libavoid/obstacle.h150
-rw-r--r--src/3rdparty/adaptagrams/libavoid/orthogonal.cpp3259
-rw-r--r--src/3rdparty/adaptagrams/libavoid/orthogonal.h39
-rw-r--r--src/3rdparty/adaptagrams/libavoid/router.cpp3131
-rw-r--r--src/3rdparty/adaptagrams/libavoid/router.h888
-rw-r--r--src/3rdparty/adaptagrams/libavoid/scanline.cpp562
-rw-r--r--src/3rdparty/adaptagrams/libavoid/scanline.h136
-rw-r--r--src/3rdparty/adaptagrams/libavoid/shape.cpp280
-rw-r--r--src/3rdparty/adaptagrams/libavoid/shape.h165
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/2junctions.cpp108
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/Makefile.am217
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/buildOrthogonalChannelInfo1.cpp65
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging1.cpp2592
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging2.cpp2606
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging3.cpp5242
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/checkpoints01.cpp62
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/checkpoints02.cpp105
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/checkpoints03.cpp96
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/complex.cpp107
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/connectionpin01.cpp68
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/connectionpin02.cpp113
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/connectionpin03.cpp328
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/connendmove.cpp85
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/corneroverlap01.cpp154
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/endlessLoop01.cpp142
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/example.cpp81
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging1.cpp5227
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging2.cpp397
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging3.cpp2658
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/forwardFlowingConnectors01.cpp380
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/freeFloatingDirection01.cpp3321
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/hola01.cpp1006
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/hyperedge01.cpp285
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/hyperedge02.cpp99
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/hyperedgeLoop1.cpp87
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/hyperedgeRerouting01.cpp150
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge01.cpp109
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge02.cpp90
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge03.cpp90
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge04.cpp113
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge05.cpp154
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge06.cpp92
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/infinity.cpp26
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inline.cpp73
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap09.cpp401
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap10.cpp93
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap11.cpp187
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineShapes.cpp97
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap01.cpp25
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap02.cpp62
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap03.cpp55
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap04.cpp62
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap05.cpp69
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap06.cpp62
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap07.cpp75
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap08.cpp120
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/junction01.cpp55
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/junction02.cpp55
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/junction03.cpp55
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/junction04.cpp100
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/latesetup.cpp94
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash1.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash2.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash3.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash4.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash5.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash6.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash7.cpp1884
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash8.cpp1884
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/2junctions.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/buildOrthogonalChannelInfo1.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging1.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging2.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/checkpoints01.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin01.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin02.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin03.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/connendmove.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/corneroverlap01.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/example.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging1.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging2.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging3.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/freeFloatingDirection01.vcxproj152
-rwxr-xr-xsrc/3rdparty/adaptagrams/libavoid/tests/msctests/junction01.vcxproj152
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/multiconnact.cpp75
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/node1.cpp68
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/nudgeCrossing01.cpp2665
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/nudgeintobug.cpp40
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/nudgeold.cpp80
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint01.cpp1507
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint02.cpp3054
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/orderassertion.cpp1720
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/orthordering01.cpp92
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/orthordering02.cpp92
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/output/README.txt1
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/overlappingRects.cpp2327
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/penaltyRerouting01.cpp369
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/performance01.cpp7665
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/reallyslowrouting.cpp7099
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/removeJunctions01.cpp103
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/restrictedNudging.cpp68
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/slowrouting.cpp1459
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/tjunct.cpp48
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash01.cpp140
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash02.cpp243
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/unsatisfiableRangeAssertion.cpp25789
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/validPaths01.cpp457
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/validPaths02.cpp53
-rw-r--r--src/3rdparty/adaptagrams/libavoid/tests/vertlineassertion.cpp2214
-rw-r--r--src/3rdparty/adaptagrams/libavoid/timer.cpp188
-rw-r--r--src/3rdparty/adaptagrams/libavoid/timer.h104
-rw-r--r--src/3rdparty/adaptagrams/libavoid/vertices.cpp739
-rw-r--r--src/3rdparty/adaptagrams/libavoid/vertices.h226
-rw-r--r--src/3rdparty/adaptagrams/libavoid/viscluster.cpp116
-rw-r--r--src/3rdparty/adaptagrams/libavoid/viscluster.h136
-rw-r--r--src/3rdparty/adaptagrams/libavoid/visibility.cpp676
-rw-r--r--src/3rdparty/adaptagrams/libavoid/visibility.h41
-rw-r--r--src/3rdparty/adaptagrams/libavoid/vpsc.cpp1500
-rw-r--r--src/3rdparty/adaptagrams/libavoid/vpsc.h341
163 files changed, 134090 insertions, 0 deletions
diff --git a/src/3rdparty/adaptagrams/libavoid/CMakeLists.txt b/src/3rdparty/adaptagrams/libavoid/CMakeLists.txt
new file mode 100644
index 0000000..e14f8ea
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/CMakeLists.txt
@@ -0,0 +1,58 @@
+
+set(libavoid_SRC
+ actioninfo.cpp
+ connectionpin.cpp
+ connector.cpp
+ connend.cpp
+ geometry.cpp
+ geomtypes.cpp
+ graph.cpp
+ hyperedge.cpp
+ hyperedgeimprover.cpp
+ hyperedgetree.cpp
+ junction.cpp
+ makepath.cpp
+ mtst.cpp
+ obstacle.cpp
+ orthogonal.cpp
+ router.cpp
+ scanline.cpp
+ shape.cpp
+ timer.cpp
+ vertices.cpp
+ viscluster.cpp
+ visibility.cpp
+ vpsc.cpp
+
+
+ # -------
+ # Headers
+ actioninfo.h
+ assertions.h
+ connectionpin.h
+ connector.h
+ connend.h
+ debug.h
+ geometry.h
+ geomtypes.h
+ graph.h
+ hyperedge.h
+ hyperedgeimprover.h
+ hyperedgetree.h
+ junction.h
+ libavoid.h
+ makepath.h
+ mtst.h
+ obstacle.h
+ orthogonal.h
+ router.h
+ scanline.h
+ shape.h
+ timer.h
+ vertices.h
+ viscluster.h
+ visibility.h
+ vpsc.h
+)
+include_directories("${CMAKE_CURRENT_SOURCE_DIR}/..")
+add_inkscape_lib(avoid_LIB "${libavoid_SRC}")
diff --git a/src/3rdparty/adaptagrams/libavoid/Doxyfile b/src/3rdparty/adaptagrams/libavoid/Doxyfile
new file mode 100644
index 0000000..929c6d3
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/Doxyfile
@@ -0,0 +1,2423 @@
+# Doxyfile 1.8.13
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME = libavoid
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB = YES
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 0.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 0
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES = NO
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS = YES
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS = LIBAVOID_DOC
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT = . \
+ doc
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
+
+FILE_PATTERNS = *.cpp \
+ *.h \
+ *.doc
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX = NO
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER = doc/header.html
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW = NONE
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH =
+
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP = YES
diff --git a/src/3rdparty/adaptagrams/libavoid/LICENSE.LGPL b/src/3rdparty/adaptagrams/libavoid/LICENSE.LGPL
new file mode 100644
index 0000000..9c8ccde
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/LICENSE.LGPL
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/Makefile.am b/src/3rdparty/adaptagrams/libavoid/Makefile.am
new file mode 100644
index 0000000..837dacb
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/Makefile.am
@@ -0,0 +1,91 @@
+EXTRA_DIST=libavoid.pc.in
+
+lib_LTLIBRARIES = libavoid.la
+libavoid_la_CPPFLAGS = -I$(top_srcdir) -I$(includedir)/libavoid -fPIC
+libavoid_la_LDFLAGS = -no-undefined
+
+libavoid_la_SOURCES = connectionpin.cpp \
+ connector.cpp \
+ connend.cpp \
+ geometry.cpp \
+ geomtypes.cpp \
+ graph.cpp \
+ junction.cpp \
+ makepath.cpp \
+ obstacle.cpp \
+ orthogonal.cpp \
+ router.cpp \
+ shape.cpp \
+ timer.cpp \
+ vertices.cpp \
+ viscluster.cpp \
+ visibility.cpp \
+ vpsc.cpp \
+ hyperedge.cpp \
+ hyperedgeimprover.cpp \
+ mtst.cpp \
+ hyperedgetree.cpp \
+ scanline.cpp \
+ actioninfo.cpp \
+ assertions.h \
+ connector.h \
+ connectionpin.h \
+ connend.h \
+ debug.h \
+ geometry.h \
+ geomtypes.h \
+ graph.h \
+ junction.h \
+ libavoid.h \
+ makepath.h \
+ obstacle.h \
+ orthogonal.h \
+ router.h \
+ shape.h \
+ timer.h \
+ vertices.h \
+ viscluster.h \
+ visibility.h \
+ hyperedge.h \
+ mtst.h \
+ hyperedgetree.h \
+ scanline.h \
+ actioninfo.h \
+ vpsc.h \
+ debughandler.h
+
+libavoidincludedir = $(includedir)/libavoid
+libavoidinclude_HEADERS = assertions.h \
+ connector.h \
+ connectionpin.h \
+ connend.h \
+ debug.h \
+ dllexport.h \
+ geometry.h \
+ geomtypes.h \
+ graph.h \
+ junction.h \
+ libavoid.h \
+ makepath.h \
+ obstacle.h \
+ orthogonal.h \
+ router.h \
+ shape.h \
+ timer.h \
+ vertices.h \
+ viscluster.h \
+ visibility.h \
+ hyperedge.h \
+ hyperedgeimprover.h \
+ mtst.h \
+ hyperedgetree.h \
+ scanline.h \
+ actioninfo.h \
+ vpsc.h \
+ debughandler.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libavoid.pc
+
+SUBDIRS = . tests
+
diff --git a/src/3rdparty/adaptagrams/libavoid/README b/src/3rdparty/adaptagrams/libavoid/README
new file mode 100644
index 0000000..fe62f13
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/README
@@ -0,0 +1,35 @@
+libavoid - Fast, Incremental, Object-avoiding Line Router
+
+Copyright (C) 2004-2009 Monash University
+
+A cross-platform C++ library providing fast, object-avoiding connector
+routing for use in interactive diagram editors.
+
+Documentation is available for libavoid through Doxygen. Install Doxygen and
+run it in the libavoid directory to generate documentation for the interface.
+
+libavoid is written and maintained by Michael Wybrow, a member of the
+Adaptive Diagrams and Documents lab at Monash University, Australia.
+
+libavoid is available under the terms of open-source GNU Lesser General Public
+License v2.1. Commercial licenses are also available, for more information
+please contact Michael Wybrow <http://www.csse.monash.edu.au/~mwybrow/>.
+
+The algorithms used for the connector routing are described in:
+
+ M. Wybrow, K. Marriott, and P.J. Stuckey. Incremental connector routing.
+ In Proceedings of 13th International Symposium on Graph Drawing, LNCS 3843,
+ pages 446-457. Springer-Verlag, 2006.
+ http://www.csse.monash.edu.au/~mwybrow/papers/wybrow-gd-2005.pdf
+
+ M. Wybrow, K. Marriott, and P.J. Stuckey. Orthogonal connector routing.
+ In Proceedings of 17th International Symposium on Graph Drawing (GD '09),
+ To appear 2010.
+ http://www.csse.monash.edu.au/~mwybrow/papers/wybrow-gd-2009.pdf
+
+libavoid is currently used in the prototype research diagram editor "Dunnart":
+ http://www.csse.monash.edu.au/~mwybrow/dunnart/
+As well as the professional open-source vector graphics editor "Inkscape":
+ http://www.inkscape.org/
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/actioninfo.cpp b/src/3rdparty/adaptagrams/libavoid/actioninfo.cpp
new file mode 100644
index 0000000..b896cb9
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/actioninfo.cpp
@@ -0,0 +1,187 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <algorithm>
+
+#include "libavoid/actioninfo.h"
+#include "libavoid/shape.h"
+#include "libavoid/connector.h"
+#include "libavoid/junction.h"
+
+namespace Avoid {
+
+
+ActionInfo::ActionInfo(ActionType t, ShapeRef *s, const Polygon& p, bool fM)
+ : type(t),
+ objPtr(s),
+ newPoly(p),
+ firstMove(fM)
+{
+ COLA_ASSERT(type == ShapeMove);
+}
+
+
+ActionInfo::ActionInfo(ActionType t, ShapeRef *s)
+ : type(t),
+ objPtr(s)
+
+{
+ COLA_ASSERT((type == ShapeAdd) || (type == ShapeRemove) ||
+ (type == ShapeMove));
+}
+
+
+ActionInfo::ActionInfo(ActionType t, JunctionRef *j, const Point& p)
+ : type(t),
+ objPtr(j),
+ newPosition(p)
+{
+ COLA_ASSERT(type == JunctionMove);
+}
+
+
+ActionInfo::ActionInfo(ActionType t, JunctionRef *j)
+ : type(t),
+ objPtr(j)
+{
+ COLA_ASSERT((type == JunctionAdd) || (type == JunctionRemove) ||
+ (type == JunctionMove));
+}
+
+ActionInfo::ActionInfo(ActionType t, ConnRef *c)
+ : type(t),
+ objPtr(c)
+{
+ COLA_ASSERT(type == ConnChange);
+}
+
+
+ActionInfo::ActionInfo(ActionType t, ShapeConnectionPin *p)
+ : type(t),
+ objPtr(p)
+{
+ COLA_ASSERT(type == ConnectionPinChange);
+}
+
+
+ActionInfo::~ActionInfo()
+{
+}
+
+
+Obstacle *ActionInfo::obstacle(void) const
+{
+ COLA_ASSERT((type == ShapeMove) || (type == ShapeAdd) ||
+ (type == ShapeRemove) || (type == JunctionMove) ||
+ (type == JunctionAdd) || (type == JunctionRemove));
+ return (static_cast<Obstacle *> (objPtr));
+}
+
+
+ShapeRef *ActionInfo::shape(void) const
+{
+ return (dynamic_cast<ShapeRef *> (obstacle()));
+}
+
+
+ConnRef *ActionInfo::conn(void) const
+{
+ COLA_ASSERT(type == ConnChange);
+ return (static_cast<ConnRef *> (objPtr));
+}
+
+JunctionRef *ActionInfo::junction(void) const
+{
+ return (dynamic_cast<JunctionRef *> (obstacle()));
+}
+
+
+void ActionInfo::addConnEndUpdate(const unsigned int type,
+ const ConnEnd& connEnd, bool isConnPinMoveUpdate)
+{
+ bool alreadyExists = false;
+ for (ConnUpdateList::iterator conn = conns.begin();
+ conn != conns.end(); ++conn)
+ {
+ // Look for an existing queued change to the same end.
+ if (conn->first == type)
+ {
+ // Found a queued change to the same endpoint of the
+ // connector. If this is a pin change as a result of a
+ // shape move, then leave the user created update
+ // that was found (since it may be moving the connection
+ // to connect to a different shape/pin. But if this is a
+ // user change, then overwrite the previous change.
+ alreadyExists = true;
+ if (!isConnPinMoveUpdate)
+ {
+ // Overwrite the queued change with this one.
+ conn->second = connEnd;
+ }
+ break;
+ }
+ }
+
+ if (!alreadyExists)
+ {
+ // Matching change not found, so add this one.
+ conns.push_back(std::make_pair(type, connEnd));
+ }
+}
+
+
+bool ActionInfo::operator==(const ActionInfo& rhs) const
+{
+ return (type == rhs.type) && (objPtr == rhs.objPtr);
+}
+
+
+bool ActionInfo::operator<(const ActionInfo& rhs) const
+{
+ if (type != rhs.type)
+ {
+ return type < rhs.type;
+ }
+
+ if (type == ConnChange)
+ {
+ return conn()->id() < rhs.conn()->id();
+ }
+ else if (type == ConnectionPinChange)
+ {
+ // NOTE Comparing pointers may not preserve the order of
+ // objects, but the order of Connection Pins is not
+ // used so this is not an issue here.
+ return objPtr < rhs.objPtr;
+ }
+ else
+ {
+ return obstacle()->id() < rhs.obstacle()->id();
+ }
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/actioninfo.h b/src/3rdparty/adaptagrams/libavoid/actioninfo.h
new file mode 100644
index 0000000..32f009f
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/actioninfo.h
@@ -0,0 +1,88 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#ifndef AVOID_ACTIONINFO_H
+#define AVOID_ACTIONINFO_H
+
+#include <list>
+
+#include "libavoid/actioninfo.h"
+#include "libavoid/connend.h"
+#include "libavoid/geomtypes.h"
+
+namespace Avoid {
+
+// This class is not intended for public use.
+// It is used internally by Router to track actions performed on objects
+// during transactions.
+
+
+
+class ShapeRef;
+class JunctionRef;
+
+
+enum ActionType {
+ ShapeMove,
+ ShapeAdd,
+ ShapeRemove,
+ JunctionMove,
+ JunctionAdd,
+ JunctionRemove,
+ ConnChange,
+ ConnectionPinChange
+};
+
+typedef std::list<std::pair<unsigned int, ConnEnd> > ConnUpdateList;
+
+class ActionInfo {
+ public:
+ ActionInfo(ActionType t, ShapeRef *s, const Polygon& p, bool fM);
+ ActionInfo(ActionType t, ShapeRef *s);
+ ActionInfo(ActionType t, JunctionRef *j, const Point& p);
+ ActionInfo(ActionType t, JunctionRef *j);
+ ActionInfo(ActionType t, ConnRef *c);
+ ActionInfo(ActionType t, ShapeConnectionPin *p);
+ ~ActionInfo();
+ Obstacle *obstacle(void) const;
+ ShapeRef *shape(void) const;
+ ConnRef *conn(void) const;
+ JunctionRef *junction(void) const;
+ void addConnEndUpdate(const unsigned int type, const ConnEnd& connEnd,
+ bool isConnPinMoveUpdate);
+ bool operator==(const ActionInfo& rhs) const;
+ bool operator<(const ActionInfo& rhs) const;
+
+ ActionType type;
+ void *objPtr;
+ Polygon newPoly;
+ Point newPosition;
+ bool firstMove;
+ ConnUpdateList conns;
+};
+typedef std::list<ActionInfo> ActionInfoList;
+
+
+}
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/assertions.h b/src/3rdparty/adaptagrams/libavoid/assertions.h
new file mode 100644
index 0000000..1715622
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/assertions.h
@@ -0,0 +1,60 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#ifndef AVOID_ASSERTIONS_H
+#define AVOID_ASSERTIONS_H
+
+#define COLA_UNUSED(expr) do { (void)(expr); } while (0)
+
+#ifdef NDEBUG
+
+ #define COLA_ASSERT(expr) static_cast<void>(0)
+
+#else // Not NDEBUG
+
+ #ifdef _MSC_VER
+ // Compiling with Microsoft Visual C++ compiler
+
+ // Prevent inclusion of min and max macros.
+ #define NOMINMAX
+
+ #include <afx.h>
+ #define COLA_ASSERT(expr) ASSERT(expr)
+
+ #elif defined(USE_ASSERT_EXCEPTIONS)
+
+ #include "libvpsc/assertions.h"
+
+ #else
+
+ #include <cassert>
+ #define COLA_ASSERT(expr) assert(expr)
+
+ #endif
+
+#endif
+
+
+#endif // AVOID_ASSERTIONS_H
+
diff --git a/src/3rdparty/adaptagrams/libavoid/connectionpin.cpp b/src/3rdparty/adaptagrams/libavoid/connectionpin.cpp
new file mode 100644
index 0000000..3d9ba46
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/connectionpin.cpp
@@ -0,0 +1,476 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2010-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cfloat>
+
+#include "libavoid/connectionpin.h"
+#include "libavoid/shape.h"
+#include "libavoid/junction.h"
+#include "libavoid/vertices.h"
+#include "libavoid/router.h"
+#include "libavoid/visibility.h"
+#include "libavoid/debug.h"
+
+
+namespace Avoid {
+
+ShapeConnectionPin::ShapeConnectionPin(ShapeRef *shape,
+ const unsigned int classId, const double xPortionOffset,
+ const double yPortionOffset, const bool proportional,
+ const double insideOffset, const ConnDirFlags visDirs)
+ : m_shape(shape),
+ m_junction(nullptr),
+ m_class_id(classId),
+ m_x_offset(xPortionOffset),
+ m_y_offset(yPortionOffset),
+ m_inside_offset(insideOffset),
+ m_visibility_directions(visDirs),
+ m_exclusive(true),
+ m_connection_cost(0.0),
+ m_vertex(nullptr),
+ m_using_proportional_offsets(proportional)
+{
+ commonInitForShapeConnection();
+}
+
+ShapeConnectionPin::ShapeConnectionPin(ShapeRef *shape,
+ const unsigned int classId, const double xOffset,
+ const double yOffset, const double insideOffset,
+ const ConnDirFlags visDirs)
+ : m_shape(shape),
+ m_junction(nullptr),
+ m_class_id(classId),
+ m_x_offset(xOffset),
+ m_y_offset(yOffset),
+ m_inside_offset(insideOffset),
+ m_visibility_directions(visDirs),
+ m_exclusive(true),
+ m_connection_cost(0.0),
+ m_vertex(nullptr),
+ m_using_proportional_offsets(true)
+{
+ commonInitForShapeConnection();
+}
+
+
+void ShapeConnectionPin::commonInitForShapeConnection(void)
+{
+ COLA_ASSERT(m_shape != nullptr);
+ COLA_ASSERT(m_class_id > 0);
+
+ if (m_using_proportional_offsets)
+ {
+ // Parameter checking
+ if ((m_x_offset < 0) || (m_x_offset > 1))
+ {
+ err_printf("xPortionOffset value (%g) in ShapeConnectionPin "
+ "constructor not between 0 and 1.\n", m_x_offset);
+ }
+ if ((m_y_offset < 0) || (m_y_offset > 1))
+ {
+ err_printf("yPortionOffset value (%g) in ShapeConnectionPin "
+ "constructor not between 0 and 1.\n", m_y_offset);
+ }
+ }
+ else
+ {
+ const Box shapeBox = m_shape->polygon().offsetBoundingBox(0.0);
+ // Parameter checking
+ if (m_x_offset > shapeBox.width())
+ {
+ err_printf("xOffset value (%g) in ShapeConnectionPin constructor "
+ "greater than shape width (%g).\n", m_x_offset,
+ shapeBox.width());
+ }
+ if (m_y_offset > shapeBox.height())
+ {
+ err_printf("yOffset value (%g) in ShapeConnectionPin constructor "
+ "greater than shape height (%g).\n", m_y_offset,
+ shapeBox.height());
+ }
+ }
+
+ m_router = m_shape->router();
+ m_shape->addConnectionPin(this);
+
+ // Create a visibility vertex for this ShapeConnectionPin.
+ VertID id(m_shape->id(), kShapeConnectionPin,
+ VertID::PROP_ConnPoint | VertID::PROP_ConnectionPin);
+ m_vertex = new VertInf(m_router, id, this->position());
+ m_vertex->visDirections = this->directions();
+
+ if (m_vertex->visDirections == ConnDirAll)
+ {
+ // A pin with visibility in all directions is not exclusive
+ // by default.
+ m_exclusive = false;
+ }
+
+ if (m_router->m_allows_polyline_routing)
+ {
+ vertexVisibility(m_vertex, nullptr, true, true);
+ }
+}
+
+
+ShapeConnectionPin::ShapeConnectionPin(JunctionRef *junction,
+ const unsigned int classId, const ConnDirFlags visDirs)
+ : m_shape(nullptr),
+ m_junction(junction),
+ m_class_id(classId),
+ m_x_offset(0.0),
+ m_y_offset(0.0),
+ m_inside_offset(0.0),
+ m_visibility_directions(visDirs),
+ m_exclusive(true),
+ m_connection_cost(0.0),
+ m_vertex(nullptr),
+ m_using_proportional_offsets(false)
+{
+ COLA_ASSERT(m_junction != nullptr);
+ m_router = m_junction->router();
+ m_junction->addConnectionPin(this);
+
+ // Create a visibility vertex for this ShapeConnectionPin.
+ // XXX These IDs should really be uniquely identifiable in case there
+ // are multiple pins on a shape. I think currently this case will
+ // break rubber-band routing.
+ VertID id(m_junction->id(), kShapeConnectionPin,
+ VertID::PROP_ConnPoint | VertID::PROP_ConnectionPin);
+ m_vertex = new VertInf(m_router, id, m_junction->position());
+ m_vertex->visDirections = visDirs;
+
+ if (m_router->m_allows_polyline_routing)
+ {
+ vertexVisibility(m_vertex, nullptr, true, true);
+ }
+}
+
+
+ShapeConnectionPin::~ShapeConnectionPin()
+{
+ COLA_ASSERT(m_shape || m_junction);
+ if (m_shape)
+ {
+ m_shape->removeConnectionPin(this);
+ }
+ else if (m_junction)
+ {
+ m_junction->removeConnectionPin(this);
+ }
+
+ // Disconnect connend using this pin.
+ while (!m_connend_users.empty())
+ {
+ ConnEnd *connend = *(m_connend_users.begin());
+ connend->freeActivePin();
+ }
+
+ if (m_vertex)
+ {
+ m_vertex->removeFromGraph();
+ m_router->vertices.removeVertex(m_vertex);
+ delete m_vertex;
+ m_vertex = nullptr;
+ }
+}
+
+void ShapeConnectionPin::updatePositionAndVisibility(void)
+{
+ m_vertex->Reset(this->position());
+ m_vertex->visDirections = this->directions();
+ updateVisibility();
+}
+
+void ShapeConnectionPin::updateVisibility(void)
+{
+ m_vertex->removeFromGraph();
+ if (m_router->m_allows_polyline_routing)
+ {
+ vertexVisibility(m_vertex, nullptr, true, true);
+ }
+}
+
+void ShapeConnectionPin::setConnectionCost(const double cost)
+{
+ COLA_ASSERT(cost >= 0);
+
+ m_connection_cost = cost;
+}
+
+
+void ShapeConnectionPin::setExclusive(const bool exclusive)
+{
+ m_exclusive = exclusive;
+}
+
+bool ShapeConnectionPin::isExclusive(void) const
+{
+ return m_exclusive;
+}
+
+void ShapeConnectionPin::updatePosition(const Point& newPosition)
+{
+ m_vertex->Reset(newPosition);
+}
+
+
+void ShapeConnectionPin::updatePosition(const Polygon& newPoly)
+{
+ m_vertex->Reset(position(newPoly));
+}
+
+
+const Point ShapeConnectionPin::position(const Polygon& newPoly) const
+{
+ if (m_junction)
+ {
+ return m_junction->position();
+ }
+
+ const Polygon& poly = (newPoly.empty()) ? m_shape->polygon() : newPoly;
+ const Box shapeBox = poly.offsetBoundingBox(0.0);
+
+ Point point;
+
+ if (m_using_proportional_offsets)
+ {
+ // We want to place connection points exactly on the edges of shapes,
+ // or possibly slightly inside them (if m_insideOfset is set).
+ if (m_x_offset == ATTACH_POS_LEFT)
+ {
+ point.x = shapeBox.min.x + m_inside_offset;
+ point.vn = 6;
+ }
+ else if (m_x_offset == ATTACH_POS_RIGHT)
+ {
+ point.x = shapeBox.max.x - m_inside_offset;
+ point.vn = 4;
+ }
+ else
+ {
+ point.x = shapeBox.min.x + (m_x_offset * shapeBox.width());
+ }
+
+ if (m_y_offset == ATTACH_POS_TOP)
+ {
+ point.y = shapeBox.min.y + m_inside_offset;
+ point.vn = 5;
+ }
+ else if (m_y_offset == ATTACH_POS_BOTTOM)
+ {
+ point.y = shapeBox.max.y - m_inside_offset;
+ point.vn = 7;
+ }
+ else
+ {
+ point.y = shapeBox.min.y + (m_y_offset * shapeBox.height());
+ }
+ }
+ else
+ {
+ // Using absolute offsets for connection pin position.
+ if (m_x_offset == ATTACH_POS_MIN_OFFSET)
+ {
+ point.x = shapeBox.min.x + m_inside_offset;
+ point.vn = 6;
+ }
+ else if ((m_x_offset == ATTACH_POS_MAX_OFFSET) ||
+ (m_x_offset == shapeBox.width()))
+ {
+ point.x = shapeBox.max.x - m_inside_offset;
+ point.vn = 4;
+ }
+ else
+ {
+ point.x = shapeBox.min.x + m_x_offset;
+ }
+
+ if (m_y_offset == ATTACH_POS_MIN_OFFSET)
+ {
+ point.y = shapeBox.min.y + m_inside_offset;
+ point.vn = 5;
+ }
+ else if ((m_y_offset == ATTACH_POS_MAX_OFFSET) ||
+ (m_y_offset == shapeBox.height()))
+ {
+ point.y = shapeBox.max.y - m_inside_offset;
+ point.vn = 7;
+ }
+ else
+ {
+ point.y = shapeBox.min.y + m_y_offset;
+ }
+ }
+
+ return point;
+}
+
+
+ConnDirFlags ShapeConnectionPin::directions(void) const
+{
+ ConnDirFlags visDir = m_visibility_directions;
+ if (m_visibility_directions == ConnDirNone)
+ {
+ // None is set, use the defaults:
+ if (m_x_offset == ATTACH_POS_LEFT)
+ {
+ visDir |= ConnDirLeft;
+ }
+ else if (m_x_offset == ATTACH_POS_RIGHT)
+ {
+ visDir |= ConnDirRight;
+ }
+
+ if (m_y_offset == ATTACH_POS_TOP)
+ {
+ visDir |= ConnDirUp;
+ }
+ else if (m_y_offset == ATTACH_POS_BOTTOM)
+ {
+ visDir |= ConnDirDown;
+ }
+
+ if (visDir == ConnDirNone)
+ {
+ visDir = ConnDirAll;
+ }
+ }
+ return visDir;
+}
+
+void ShapeConnectionPin::outputCode(FILE *fp) const
+{
+ COLA_ASSERT(m_shape || m_junction);
+ if (m_shape)
+ {
+ fprintf(fp, " connPin = new ShapeConnectionPin(shapeRef%u, %u, "
+ "%" PREC "g, %" PREC "g, %s, %g, (ConnDirFlags) %u);\n",
+ m_shape->id(), m_class_id, m_x_offset, m_y_offset,
+ (m_using_proportional_offsets ? "true" : "false"),
+ m_inside_offset, (unsigned int) m_visibility_directions);
+ }
+ else if (m_junction)
+ {
+ fprintf(fp, " connPin = new ShapeConnectionPin(junctionRef%u, %u, "
+ "(ConnDirFlags) %u);\n", m_junction->id(), m_class_id,
+ (unsigned int) m_visibility_directions);
+ }
+
+ if ((m_vertex->visDirections != ConnDirAll) && (m_exclusive == false))
+ {
+ // Directional port is not exclusive (the default), so output this.
+ fprintf(fp, " connPin->setExclusive(false);\n");
+ }
+}
+
+ConnectionPinIds ShapeConnectionPin::ids(void) const
+{
+ return std::make_pair(containingObjectId(), m_class_id);
+}
+
+unsigned int ShapeConnectionPin::containingObjectId(void) const
+{
+ COLA_ASSERT(m_shape || m_junction);
+ return (m_shape) ? m_shape->id() : m_junction->id();
+}
+
+bool ShapeConnectionPin::operator==(const ShapeConnectionPin& rhs) const
+{
+ COLA_ASSERT(m_router == rhs.m_router);
+
+ if (containingObjectId() != rhs.containingObjectId())
+ {
+ return false;
+ }
+
+ // The shape/junction is equal, so examine the unique members.
+ if (m_class_id != rhs.m_class_id)
+ {
+ return false;
+ }
+ if (m_visibility_directions != rhs.m_visibility_directions)
+ {
+ return false;
+ }
+ if (m_x_offset != rhs.m_x_offset)
+ {
+ return false;
+ }
+ if (m_y_offset != rhs.m_y_offset)
+ {
+ return false;
+ }
+ if (m_inside_offset != rhs.m_inside_offset)
+ {
+ return false;
+ }
+ return true;
+}
+
+bool ShapeConnectionPin::operator<(const ShapeConnectionPin& rhs) const
+{
+ COLA_ASSERT(m_router == rhs.m_router);
+
+ if (containingObjectId() != rhs.containingObjectId())
+ {
+ return containingObjectId() < rhs.containingObjectId();
+ }
+ // Note: operator< is used for set ordering within each shape or junction,
+ // so the m_shape/m_junction values should match and we needn't perform the
+ // above test in most cases and could just assert the following:
+ // COLA_ASSERT(m_shape == rhs.m_shape);
+ // COLA_ASSERT(m_junction == rhs.m_junction);
+
+ if (m_class_id != rhs.m_class_id)
+ {
+ return m_class_id < rhs.m_class_id;
+ }
+ if (m_visibility_directions != rhs.m_visibility_directions)
+ {
+ return m_visibility_directions < rhs.m_visibility_directions;
+ }
+ if (m_x_offset != rhs.m_x_offset)
+ {
+ return m_x_offset < rhs.m_x_offset;
+ }
+ if (m_y_offset != rhs.m_y_offset)
+ {
+ return m_y_offset < rhs.m_y_offset;
+ }
+ if (m_inside_offset != rhs.m_inside_offset)
+ {
+ return m_inside_offset < rhs.m_inside_offset;
+ }
+
+ // Otherwise, they are considered the same.
+ return false;
+}
+
+
+//============================================================================
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/connectionpin.h b/src/3rdparty/adaptagrams/libavoid/connectionpin.h
new file mode 100644
index 0000000..5e33793
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/connectionpin.h
@@ -0,0 +1,303 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2010-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file connectionpin.h
+//! @brief Contains the interface for the ShapeConnectionPin class.
+
+
+#ifndef AVOID_CONNECTIONPIN_H
+#define AVOID_CONNECTIONPIN_H
+
+#include <cstdio>
+#include <set>
+#include <climits>
+#include <utility>
+
+#include "libavoid/dllexport.h"
+#include "libavoid/connend.h"
+#include "libavoid/geomtypes.h"
+
+namespace Avoid {
+
+
+static const unsigned int CONNECTIONPIN_UNSET = INT_MAX;
+static const unsigned int CONNECTIONPIN_CENTRE = INT_MAX - 1;
+
+class Router;
+class ShapeRef;
+class JunctionRef;
+class ConnEnd;
+class VertInf;
+
+typedef std::pair<unsigned int, unsigned int> ConnectionPinIds;
+
+// Used to specify position on shape when constructing a shape-attached ConnEnd.
+//
+static const double ATTACH_POS_TOP = 0;
+static const double ATTACH_POS_CENTRE = 0.5;
+static const double ATTACH_POS_BOTTOM = 1;
+static const double ATTACH_POS_LEFT = ATTACH_POS_TOP;
+static const double ATTACH_POS_RIGHT = ATTACH_POS_BOTTOM;
+
+static const double ATTACH_POS_MIN_OFFSET = 0;
+static const double ATTACH_POS_MAX_OFFSET = -1;
+
+
+//! @brief The ShapeConnectionPin class represents a fixed point or "pin"
+//! on a shape that can be connected to.
+//!
+//! A pin has a position that is specified relative to its parent shape.
+//! When the shape is moved or resized, the pin will be automatically moved
+//! accordingly. Connectors attached to the pin will be rerouted.
+//!
+//! Pins have a visibility direction and numeric ID used to identify them.
+//! This ID, known as their classId, may be shared by multiple pins on the
+//! same shape. You can use classIds when you want libavoid to choose from
+//! multiple potential choices (e.g., to specify multiple types of pins such
+//! as "input" or "output" pins on circuit elements).
+//!
+//! If you would like connectors that attach to a single specific position
+//! on a shape, then just give each pin a unique classId (for that shape)
+//! and tell the connector to attach to that particular pin.
+//!
+//! Pins may optionally be given a connection cost, via setConnectionCost().
+//! In the case of multiple pins with the same classId, this causes the
+//! lower-cost pins to be chosen first, rather than libavoid choosing the
+//! best pin with that classId based solely on connector path cost.
+//!
+//! Pins can be exclusive, which means subsequent connectors routed to the
+//! same classId will choose a different pin. Pins with a specified direction
+//! are exclusive by default, those with visibility in all directions are
+//! non-exclusive by default. This behaviour can be changed by calling the
+//! ShapeConnectionPin::setExclusive() method. Exclusive pins may only have
+//! a single connector attached to them.
+//!
+class AVOID_EXPORT ShapeConnectionPin
+{
+ public:
+ //! @brief Constructs a ShapeConnectionPin at a specified absolute or
+ //! proportional position relative to the parent shape.
+ //!
+ //! Ownership of this ShapeConnectionPin is passed to the parent shape.
+ //!
+ //! The connection point position offsets can be specified as absolute
+ //! or proportional. If absolute, the xOffset and yOffset values are
+ //! absolute offsets relative to the lower X and Y shape rectangle
+ //! border positions. If proportional, the xOffset and yOffset values
+ //! represent proportions of the shape's total width and height using
+ //! a floating point value between 0 and 1.
+ //!
+ //! Note that if you need the connection pin to appear at an exact
+ //! position this may not be possible via proportional positions due
+ //! to numerical inaccuracy in floating point multiplications. In
+ //! this case you should use absolute offsets instead.
+ //!
+ //! There are some predefined values for specifying the xOffset
+ //! and yOffset arguments for proportional offsets:
+ //! - ATTACH_POS_TOP = 0
+ //! - ATTACH_POS_LEFT = 0
+ //! - ATTACH_POS_CENTRE = 0.5
+ //! - ATTACH_POS_BOTTOM = 1
+ //! - ATTACH_POS_RIGHT = 1
+ //! And two more for specifying absolute offsets:
+ //! - ATTACH_POS_MIN_OFFSET = offset of zero
+ //! - ATTACH_POS_MAX_OFFSET = offset of shape width/height
+ //!
+ //! Importantly, shape connection pins will be moved automatically when
+ //! the parent shape is moved or resized. Attachment for connectors
+ //! will be chosen based on the classId specified to ConnEnd and these
+ //! connectors will be subsequently rerouted.
+ //!
+ //! If no value is given for the visDirs argument, then visibility is
+ //! automatically determined based on the position of the connection
+ //! point. Points on the shape boundary will have visibility from the
+ //! shape out of that edge while points in the interior will have
+ //! visibility in all directions. Note: Pins with visibility in a
+ //! specific direction are exclusive by default, whereas those with
+ //! visibility in all directions are non-exclusive by default.
+ //!
+ //! The insideOffset argument can be used to set a distance to
+ //! automatically offset the point within the shape. This is useful
+ //! for orthogonal routing, where you usually want the connection
+ //! point to lie inside the shape rather than exactly on its boundary.
+ //! This offset will only be applied for connection pins specified
+ //! with a position exactly on the shape boundary.
+ //!
+ //! @param[in] shape A pointer to the containing parent
+ //! shape's ShapeRef.
+ //! @param[in] classId A non-zero integer used to identify
+ //! this pin and other equivalent
+ //! connection point, and used to specify
+ //! attachment via the ConnEnd class.
+ //! @param[in] xOffset The X offset for the connection pin from
+ //! the shape's lower X border position.
+ //! @param[in] yOffset The Y offset for the connection pin from
+ //! the shape's lower Y border position.
+ //! @param[in] proportional A boolean specifying whether the X and Y
+ //! offsets are proportional or not.
+ //! @param[in] insideOffset A distance to offset the connection
+ //! point inside the shape if it lies on
+ //! the boundary. Use 0.0 for no offset.
+ //! @param[in] visDirs One or more Avoid::ConnDirFlag options
+ //! specifying the directions that this
+ //! connection point has visibility.
+ //! Use ConnDirNone to have visibility
+ //! be directional if a pin is on the shape
+ //! edge or in all directions otherwise.
+ //!
+ ShapeConnectionPin(ShapeRef *shape, const unsigned int classId,
+ const double xOffset, const double yOffset,
+ const bool proportional, const double insideOffset,
+ const ConnDirFlags visDirs);
+
+ // Old constructor. Provided for compatibility with old debug files.
+ ShapeConnectionPin(ShapeRef *shape, const unsigned int classId,
+ const double xOffset, const double yOffset,
+ const double insideOffset, const ConnDirFlags visDirs);
+
+ //! @brief Constructs a ShapeConnectionPin on a JunctionRef.
+ //!
+ //! Ownership of this ShapeConnectionPin is passed to the parent
+ //! junction.
+ //!
+ //! This will usually be automatically called by the JunctionRef
+ //! constructor to give the Junction four ShapeConnectionPins,
+ //! facing up, down, left and right.
+ //!
+ //! @param[in] junction A pointer to the containing parent
+ //! junction's JunctionRef.
+ //! @param[in] classId An integer used to mark the class or
+ //! group of this connection point, used
+ //! for specifying attachment to ConnEnd.
+ //! @param[in] visDirs One or more Avoid::ConnDirFlag options
+ //! specifying the directions that this
+ //! connection point has visibility.
+ //!
+ ShapeConnectionPin(JunctionRef *junction, const unsigned int classId,
+ const ConnDirFlags visDirs = ConnDirNone);
+
+// To prevent C++ objects from being destroyed in garbage collected languages
+// when the libraries are called from SWIG, we hide the declarations of the
+// destructors and prevent generation of default destructors.
+#ifndef SWIG
+ ~ShapeConnectionPin();
+#endif
+
+ //! @brief Sets a cost used when selecting whether connectors should be
+ //! be attached to this connection pin.
+ //!
+ //! @param[in] cost A routing cost applied to a route when selecting
+ //! this connection pin.
+ //!
+ void setConnectionCost(const double cost);
+
+ //! @brief Returns the position of this connection pin.
+ //!
+ //! @return The position of this connection pin.
+ //!
+ const Point position(const Polygon& newPoly = Polygon()) const;
+
+ //! @brief Returns the directions in which this connection pin
+ //! has visibility.
+ //!
+ //! @return The visibility directions for this connection pin.
+ //!
+ ConnDirFlags directions(void) const;
+
+ //! @brief Sets whether the pin is exclusive, i.e., only one connector
+ //! can attach to it. This defaults to true for connection
+ //! pins with visibility in a specific directions and false for
+ //! pins with visibility in all directions.
+ //!
+ //! @param[in] exclusive A bool representing whether this pin should
+ //! be exclusive.
+ //!
+ void setExclusive(const bool exclusive);
+
+ //! @brief Returns whether the connection pin is exclusive,
+ //! i.e., only one connector can attach to it.
+ //!
+ //! @return A boolean denoting whether this pin is exclusive.
+ //!
+ bool isExclusive(void) const;
+
+ ConnectionPinIds ids(void) const;
+
+ bool operator==(const ShapeConnectionPin& rhs) const;
+ bool operator<(const ShapeConnectionPin& rhs) const;
+ private:
+ friend class ShapeRef;
+ friend class JunctionRef;
+ friend class Obstacle;
+ friend class ConnEnd;
+ friend class Router;
+
+ void commonInitForShapeConnection(void);
+ void updatePosition(const Point& newPosition);
+ void updatePosition(const Polygon& newPoly);
+ void updatePositionAndVisibility(void);
+ void updateVisibility(void);
+ void outputCode(FILE *fp) const;
+ unsigned int containingObjectId(void) const;
+
+ // Unique properties
+ Router *m_router;
+ ShapeRef *m_shape;
+ JunctionRef *m_junction;
+ unsigned int m_class_id;
+ double m_x_offset;
+ double m_y_offset;
+ double m_inside_offset;
+ ConnDirFlags m_visibility_directions;
+
+ // Some extra properties.
+ bool m_exclusive;
+ double m_connection_cost;
+ // The set of connends using this pin.
+ std::set<ConnEnd *> m_connend_users;
+ VertInf *m_vertex;
+ bool m_using_proportional_offsets;
+};
+
+class CmpConnPinPtr
+{
+ public:
+ CmpConnPinPtr()
+ {
+ }
+ bool operator()(const ShapeConnectionPin *lhs,
+ const ShapeConnectionPin *rhs) const
+ {
+ return (*lhs) < (*rhs);
+ }
+};
+
+typedef std::set<ShapeConnectionPin *, CmpConnPinPtr> ShapeConnectionPinSet;
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/connector.cpp b/src/3rdparty/adaptagrams/libavoid/connector.cpp
new file mode 100644
index 0000000..24ab289
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/connector.cpp
@@ -0,0 +1,2487 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <cstring>
+#include <cfloat>
+#include <cmath>
+#include <cstdlib>
+#include <algorithm>
+#include <queue>
+#include <limits>
+
+#include "libavoid/connector.h"
+#include "libavoid/connend.h"
+#include "libavoid/router.h"
+#include "libavoid/visibility.h"
+#include "libavoid/debug.h"
+#include "libavoid/assertions.h"
+#include "libavoid/junction.h"
+#include "libavoid/makepath.h"
+#include "libavoid/debughandler.h"
+
+
+namespace Avoid {
+
+
+ConnRef::ConnRef(Router *router, const unsigned int id)
+ : m_router(router),
+ m_type(router->validConnType()),
+ m_reroute_flag_ptr(nullptr),
+ m_needs_reroute_flag(true),
+ m_false_path(false),
+ m_needs_repaint(false),
+ m_active(false),
+ m_hate_crossings(false),
+ m_has_fixed_route(false),
+ m_route_dist(0),
+ m_src_vert(nullptr),
+ m_dst_vert(nullptr),
+ m_start_vert(nullptr),
+ m_callback_func(nullptr),
+ m_connector(nullptr),
+ m_src_connend(nullptr),
+ m_dst_connend(nullptr)
+{
+ COLA_ASSERT(m_router != nullptr);
+ m_id = m_router->assignId(id);
+
+ // TODO: Store endpoints and details.
+ m_route.clear();
+
+ m_reroute_flag_ptr = m_router->m_conn_reroute_flags.addConn(this);
+}
+
+
+ConnRef::ConnRef(Router *router, const ConnEnd& src, const ConnEnd& dst,
+ const unsigned int id)
+ : m_router(router),
+ m_type(router->validConnType()),
+ m_reroute_flag_ptr(nullptr),
+ m_needs_reroute_flag(true),
+ m_false_path(false),
+ m_needs_repaint(false),
+ m_active(false),
+ m_hate_crossings(false),
+ m_has_fixed_route(false),
+ m_route_dist(0),
+ m_src_vert(nullptr),
+ m_dst_vert(nullptr),
+ m_callback_func(nullptr),
+ m_connector(nullptr),
+ m_src_connend(nullptr),
+ m_dst_connend(nullptr)
+{
+ COLA_ASSERT(m_router != nullptr);
+ m_id = m_router->assignId(id);
+ m_route.clear();
+
+ // Set endpoint values.
+ setEndpoints(src, dst);
+
+ m_reroute_flag_ptr = m_router->m_conn_reroute_flags.addConn(this);
+}
+
+
+ConnRef::~ConnRef()
+{
+ COLA_ASSERT(m_router);
+
+ if (m_router->m_currently_calling_destructors == false)
+ {
+ err_printf("ERROR: ConnRef::~ConnRef() shouldn't be called directly.\n");
+ err_printf(" It is owned by the router. Call Router::deleteConnector() instead.\n");
+ abort();
+ }
+
+ m_router->m_conn_reroute_flags.removeConn(this);
+
+ m_router->removeObjectFromQueuedActions(this);
+
+ freeRoutes();
+
+ if (m_src_vert)
+ {
+ m_src_vert->removeFromGraph();
+ m_router->vertices.removeVertex(m_src_vert);
+ delete m_src_vert;
+ m_src_vert = nullptr;
+ }
+ if (m_src_connend)
+ {
+ m_src_connend->disconnect();
+ m_src_connend->freeActivePin();
+ delete m_src_connend;
+ m_src_connend = nullptr;
+ }
+
+ if (m_dst_vert)
+ {
+ m_dst_vert->removeFromGraph();
+ m_router->vertices.removeVertex(m_dst_vert);
+ delete m_dst_vert;
+ m_dst_vert = nullptr;
+ }
+ if (m_dst_connend)
+ {
+ m_dst_connend->disconnect();
+ m_dst_connend->freeActivePin();
+ delete m_dst_connend;
+ m_dst_connend = nullptr;
+ }
+
+ // Clear checkpoint vertices.
+ for (size_t i = 0; i < m_checkpoint_vertices.size(); ++i)
+ {
+ m_checkpoint_vertices[i]->removeFromGraph(true);
+ m_router->vertices.removeVertex(m_checkpoint_vertices[i]);
+ delete m_checkpoint_vertices[i];
+ }
+ m_checkpoint_vertices.clear();
+
+ if (m_active)
+ {
+ makeInactive();
+ }
+}
+
+
+ConnType ConnRef::routingType(void) const
+{
+ return m_type;
+}
+
+
+void ConnRef::setRoutingType(ConnType type)
+{
+ type = m_router->validConnType(type);
+ if (m_type != type)
+ {
+ m_type = type;
+
+ makePathInvalid();
+
+ m_router->modifyConnector(this);
+ }
+}
+
+
+std::vector<Checkpoint> ConnRef::routingCheckpoints(void) const
+{
+ return m_checkpoints;
+}
+
+
+void ConnRef::setRoutingCheckpoints(const std::vector<Checkpoint>& checkpoints)
+{
+ m_checkpoints = checkpoints;
+
+ // Clear previous checkpoint vertices.
+ for (size_t i = 0; i < m_checkpoint_vertices.size(); ++i)
+ {
+ m_checkpoint_vertices[i]->removeFromGraph(true);
+ m_router->vertices.removeVertex(m_checkpoint_vertices[i]);
+ delete m_checkpoint_vertices[i];
+ }
+ m_checkpoint_vertices.clear();
+
+ for (size_t i = 0; i < m_checkpoints.size(); ++i)
+ {
+ VertID ptID(m_id, 2 + i,
+ VertID::PROP_ConnPoint | VertID::PROP_ConnCheckpoint);
+ VertInf *vertex = new VertInf(m_router, ptID, m_checkpoints[i].point);
+ vertex->visDirections = ConnDirAll;
+
+ m_checkpoint_vertices.push_back(vertex);
+ }
+ if (m_router->m_allows_polyline_routing)
+ {
+ for (size_t i = 0; i < m_checkpoints.size(); ++i)
+ {
+ vertexVisibility(m_checkpoint_vertices[i], nullptr, true, true);
+ }
+ }
+}
+
+
+void ConnRef::common_updateEndPoint(const unsigned int type, ConnEnd connEnd)
+{
+ const Point& point = connEnd.position();
+ //db_printf("common_updateEndPoint(%d,(pid=%d,vn=%d,(%f,%f)))\n",
+ // type,point.id,point.vn,point.x,point.y);
+ COLA_ASSERT((type == (unsigned int) VertID::src) ||
+ (type == (unsigned int) VertID::tar));
+
+ // The connEnd is a copy of a ConnEnd that will get disconnected,
+ // so don't leave it looking like it is still connected.
+ connEnd.m_conn_ref = nullptr;
+
+ if (!m_active)
+ {
+ makeActive();
+ }
+
+ VertInf *altered = nullptr;
+
+ VertIDProps properties = VertID::PROP_ConnPoint;
+ if (connEnd.isPinConnection())
+ {
+ properties |= VertID::PROP_DummyPinHelper;
+ }
+ VertID ptID(m_id, type, properties);
+ if (type == (unsigned int) VertID::src)
+ {
+ if (m_src_vert)
+ {
+ m_src_vert->Reset(ptID, point);
+ }
+ else
+ {
+ m_src_vert = new VertInf(m_router, ptID, point);
+ }
+ m_src_vert->visDirections = connEnd.directions();
+
+ if (m_src_connend)
+ {
+ m_src_connend->disconnect();
+ m_src_connend->freeActivePin();
+ delete m_src_connend;
+ m_src_connend = nullptr;
+ }
+ if (connEnd.isPinConnection())
+ {
+ m_src_connend = new ConnEnd(connEnd);
+ m_src_connend->connect(this);
+ // Don't need this to have visibility since we won't
+ // be connecting to it.
+ m_src_vert->visDirections = ConnDirNone;
+ }
+
+ altered = m_src_vert;
+ }
+ else // if (type == (unsigned int) VertID::tar)
+ {
+ if (m_dst_vert)
+ {
+ m_dst_vert->Reset(ptID, point);
+ }
+ else
+ {
+ m_dst_vert = new VertInf(m_router, ptID, point);
+ }
+ m_dst_vert->visDirections = connEnd.directions();
+
+ if (m_dst_connend)
+ {
+ m_dst_connend->disconnect();
+ m_dst_connend->freeActivePin();
+ delete m_dst_connend;
+ m_dst_connend = nullptr;
+ }
+ if (connEnd.isPinConnection())
+ {
+ m_dst_connend = new ConnEnd(connEnd);
+ m_dst_connend->connect(this);
+ // Don't need this to have visibility since we won't
+ // be connecting to it.
+ m_dst_vert->visDirections = ConnDirNone;
+ }
+
+ altered = m_dst_vert;
+ }
+
+ // XXX: Seems to be faster to just remove the edges and recreate
+ bool isConn = true;
+ altered->removeFromGraph(isConn);
+
+ makePathInvalid();
+ m_router->setStaticGraphInvalidated(true);
+}
+
+
+void ConnRef::setEndpoints(const ConnEnd& srcPoint, const ConnEnd& dstPoint)
+{
+ m_router->modifyConnector(this, VertID::src, srcPoint);
+ m_router->modifyConnector(this, VertID::tar, dstPoint);
+}
+
+
+void ConnRef::setEndpoint(const unsigned int type, const ConnEnd& connEnd)
+{
+ m_router->modifyConnector(this, type, connEnd);
+}
+
+
+void ConnRef::setSourceEndpoint(const ConnEnd& srcPoint)
+{
+ m_router->modifyConnector(this, VertID::src, srcPoint);
+}
+
+
+void ConnRef::setDestEndpoint(const ConnEnd& dstPoint)
+{
+ m_router->modifyConnector(this, VertID::tar, dstPoint);
+}
+
+
+// Given the start or end vertex of a connector, returns the ConnEnd that
+// can be used to reproduce that endpoint. This is used for hyperedge routing.
+//
+bool ConnRef::getConnEndForEndpointVertex(VertInf *vertex,
+ ConnEnd& connEnd) const
+{
+ if (vertex == nullptr)
+ {
+ err_printf("Warning: In ConnRef::getConnEndForEndpointVertex():\n"
+ " ConnEnd for connector %d is uninitialised. It may have been\n"
+ " set but Router::processTrancaction has not yet been called.\n",
+ (int) id());
+ return false;
+ }
+
+ if (vertex == m_src_vert)
+ {
+ if (m_src_connend)
+ {
+ connEnd = *m_src_connend;
+ }
+ else
+ {
+ connEnd = ConnEnd(Point(m_src_vert->point.x, m_src_vert->point.y),
+ m_src_vert->visDirections);
+ }
+ return true;
+ }
+ else if (vertex == m_dst_vert)
+ {
+ if (m_dst_connend)
+ {
+ connEnd = *m_dst_connend;
+ }
+ else
+ {
+ connEnd = ConnEnd(Point(m_dst_vert->point.x, m_dst_vert->point.y),
+ m_dst_vert->visDirections);
+ }
+ return true;
+ }
+ return false;
+}
+
+
+void ConnRef::updateEndPoint(const unsigned int type, const ConnEnd& connEnd)
+{
+ common_updateEndPoint(type, connEnd);
+
+ if (m_has_fixed_route)
+ {
+ // Don't need to continue and compute visibility if route is fixed.
+ return;
+ }
+
+ if (m_router->m_allows_polyline_routing)
+ {
+ bool knownNew = true;
+ bool genContains = true;
+ if (type == (unsigned int) VertID::src)
+ {
+ bool dummySrc = m_src_connend && m_src_connend->isPinConnection();
+ if (!dummySrc)
+ {
+ // Only generate visibility if not attached to a pin.
+ vertexVisibility(m_src_vert, m_dst_vert, knownNew, genContains);
+ }
+ }
+ else
+ {
+ bool dummyDst = m_dst_connend && m_dst_connend->isPinConnection();
+ if (!dummyDst)
+ {
+ // Only generate visibility if not attached to a pin.
+ vertexVisibility(m_dst_vert, m_src_vert, knownNew, genContains);
+ }
+ }
+ }
+}
+
+
+void ConnRef::outputCode(FILE *fp) const
+{
+ fprintf(fp, " // connRef%u\n", id());
+ fprintf(fp, " connRef = new ConnRef(router, %u);\n", id());
+ if (m_src_connend)
+ {
+ m_src_connend->outputCode(fp, "src");
+ fprintf(fp, " connRef->setSourceEndpoint(srcPt);\n");
+ }
+ else if (src())
+ {
+ fprintf(fp, " srcPt = ConnEnd(Point(%" PREC "g, %" PREC "g), %u);\n",
+ src()->point.x, src()->point.y, src()->visDirections);
+ fprintf(fp, " connRef->setSourceEndpoint(srcPt);\n");
+ }
+ if (m_dst_connend)
+ {
+ m_dst_connend->outputCode(fp, "dst");
+ fprintf(fp, " connRef->setDestEndpoint(dstPt);\n");
+ }
+ else if (dst())
+ {
+ fprintf(fp, " dstPt = ConnEnd(Point(%" PREC "g, %" PREC "g), %u);\n",
+ dst()->point.x, dst()->point.y, dst()->visDirections);
+ fprintf(fp, " connRef->setDestEndpoint(dstPt);\n");
+ }
+ fprintf(fp, " connRef->setRoutingType((ConnType)%u);\n", routingType());
+
+ if (m_has_fixed_route)
+ {
+ PolyLine currRoute = route();
+ fprintf(fp, " newRoute._id = %u;\n", id());
+ fprintf(fp, " newRoute.ps.resize(%d);\n", (int)currRoute.size());
+ for (size_t i = 0; i < currRoute.size(); ++i)
+ {
+ fprintf(fp, " newRoute.ps[%d] = Point(%" PREC "g, %" PREC "g);\n",
+ (int) i, currRoute.ps[i].x, currRoute.ps[i].y);
+ fprintf(fp, " newRoute.ps[%d].id = %u;\n",
+ (int) i, currRoute.ps[i].id);
+ fprintf(fp, " newRoute.ps[%d].vn = %u;\n",
+ (int) i, currRoute.ps[i].vn);
+ }
+ fprintf(fp, " connRef->setFixedRoute(newRoute);\n");
+ }
+
+ if (!m_checkpoints.empty())
+ {
+ fprintf(fp, " std::vector<Checkpoint> checkpoints%u(%d);\n", id(),
+ (int) m_checkpoints.size());
+ for (size_t cInd = 0; cInd < m_checkpoints.size(); ++cInd)
+ {
+ fprintf(fp, " checkpoints%u[%d] = Checkpoint(Point("
+ "%" PREC "g, %" PREC "g), (ConnDirFlags) %d, "
+ "(ConnDirFlags) %d);\n", id(), (int) cInd,
+ m_checkpoints[cInd].point.x, m_checkpoints[cInd].point.y,
+ m_checkpoints[cInd].arrivalDirections,
+ m_checkpoints[cInd].departureDirections);
+ }
+ fprintf(fp, " connRef->setRoutingCheckpoints(checkpoints%u);\n",
+ id());
+ }
+ fprintf(fp, "\n");
+}
+
+
+std::pair<Obstacle *, Obstacle *> ConnRef::endpointAnchors(void) const
+{
+ std::pair<Obstacle *, Obstacle *> anchors;
+ anchors.first = nullptr;
+ anchors.second = nullptr;
+
+ if (m_src_connend)
+ {
+ anchors.first = m_src_connend->m_anchor_obj;
+ }
+ if (m_dst_connend)
+ {
+ anchors.second = m_dst_connend->m_anchor_obj;
+ }
+ return anchors;
+}
+
+std::pair<ConnEnd, ConnEnd> ConnRef::endpointConnEnds(void) const
+{
+ std::pair<ConnEnd, ConnEnd> endpoints;
+ getConnEndForEndpointVertex(m_src_vert, endpoints.first);
+ getConnEndForEndpointVertex(m_dst_vert, endpoints.second);
+ return endpoints;
+}
+
+bool ConnRef::setEndpoint(const unsigned int type, const VertID& pointID,
+ Point *pointSuggestion)
+{
+ VertInf *vInf = m_router->vertices.getVertexByID(pointID);
+ if (vInf == nullptr)
+ {
+ return false;
+ }
+ Point& point = vInf->point;
+ if (pointSuggestion)
+ {
+ if (euclideanDist(point, *pointSuggestion) > 0.5)
+ {
+ return false;
+ }
+ }
+
+ common_updateEndPoint(type, point);
+
+ // Give this visibility just to the point it is over.
+ EdgeInf *edge = new EdgeInf(
+ (type == VertID::src) ? m_src_vert : m_dst_vert, vInf);
+ // XXX: We should be able to set this to zero, but can't due to
+ // assumptions elsewhere in the code.
+ edge->setDist(0.001);
+
+ m_router->processTransaction();
+ return true;
+}
+
+
+void ConnRef::makeActive(void)
+{
+ COLA_ASSERT(!m_active);
+
+ // Add to connRefs list.
+ m_connrefs_pos = m_router->connRefs.insert(m_router->connRefs.begin(), this);
+ m_active = true;
+}
+
+
+void ConnRef::freeActivePins(void)
+{
+ if (m_src_connend)
+ {
+ m_src_connend->freeActivePin();
+ }
+ if (m_dst_connend)
+ {
+ m_dst_connend->freeActivePin();
+ }
+}
+
+
+void ConnRef::makeInactive(void)
+{
+ COLA_ASSERT(m_active);
+
+ // Remove from connRefs list.
+ m_router->connRefs.erase(m_connrefs_pos);
+ m_active = false;
+}
+
+
+void ConnRef::freeRoutes(void)
+{
+ m_route.clear();
+ m_display_route.clear();
+}
+
+
+const PolyLine& ConnRef::route(void) const
+{
+ return m_route;
+}
+
+
+PolyLine& ConnRef::routeRef(void)
+{
+ return m_route;
+}
+
+
+void ConnRef::set_route(const PolyLine& route)
+{
+ if (&m_display_route == &route)
+ {
+ db_printf("Error:\tTrying to update libavoid route with itself.\n");
+ return;
+ }
+ m_display_route.ps = route.ps;
+
+ //_display_route.clear();
+}
+
+void ConnRef::setFixedExistingRoute(void)
+{
+ COLA_ASSERT(m_route.size() >= 2);
+ m_has_fixed_route = true;
+ m_router->registerSettingsChange();
+}
+
+void ConnRef::setFixedRoute(const PolyLine& route)
+{
+ if (route.size() >= 2)
+ {
+ // Set endpoints based on the fixed route incase the
+ // fixed route is later cleared.
+ setEndpoints(route.ps[0], route.ps[route.size() - 1]);
+ }
+ m_has_fixed_route = true;
+ m_route = route;
+ m_display_route = m_route.simplify();
+ m_router->registerSettingsChange();
+}
+
+bool ConnRef::hasFixedRoute(void) const
+{
+ return m_has_fixed_route;
+}
+
+void ConnRef::clearFixedRoute(void)
+{
+ m_has_fixed_route = false;
+ makePathInvalid();
+ m_router->registerSettingsChange();
+}
+
+Polygon& ConnRef::displayRoute(void)
+{
+ if (m_display_route.empty())
+ {
+ // No displayRoute is set. Simplify the current route to get it.
+ m_display_route = m_route.simplify();
+ }
+ return m_display_route;
+}
+
+
+void ConnRef::calcRouteDist(void)
+{
+ double (*dist)(const Point& a, const Point& b) =
+ (m_type == ConnType_PolyLine) ? euclideanDist : manhattanDist;
+
+ m_route_dist = 0;
+ for (size_t i = 1; i < m_route.size(); ++i)
+ {
+ m_route_dist += dist(m_route.at(i), m_route.at(i - 1));
+ }
+}
+
+
+bool ConnRef::needsRepaint(void) const
+{
+ return m_needs_repaint;
+}
+
+
+unsigned int ConnRef::id(void) const
+{
+ return m_id;
+}
+
+
+Point midpoint(Point a, Point b)
+{
+ Point midpoint;
+
+ midpoint.x = (a.x + b.x) / 2.0;
+ midpoint.y = (a.y + b.y) / 2.0;
+
+ return midpoint;
+}
+
+
+std::pair<JunctionRef *, ConnRef *> ConnRef::splitAtSegment(
+ const size_t segmentN)
+{
+ ConnRef *newConn = nullptr;
+ JunctionRef *newJunction = nullptr;
+
+ if (m_display_route.size() > segmentN)
+ {
+ // Position the junction at the midpoint of the desired segment.
+ Point junctionPos = midpoint(m_display_route.at(segmentN - 1),
+ m_display_route.at(segmentN));
+
+ // Create the new junction.
+ newJunction = new JunctionRef(router(), junctionPos);
+ router()->addJunction(newJunction);
+ newJunction->preferOrthogonalDimension(
+ (m_display_route.at(segmentN - 1).x ==
+ m_display_route.at(segmentN).x) ? YDIM : XDIM);
+
+ // Create a new connection routing from the junction to the original
+ // connector's endpoint.
+ ConnEnd newConnSrc = ConnEnd(newJunction);
+ ConnEnd newConnDst = *m_dst_connend;
+ newConn = new ConnRef(router(), newConnSrc, newConnDst);
+
+ // Reroute the endpoint of the original connector to attach to the
+ // new junction.
+ ConnEnd oldConnDst = ConnEnd(newJunction);
+ this->setDestEndpoint(oldConnDst);
+ }
+
+ return std::make_pair(newJunction, newConn);
+}
+
+
+VertInf *ConnRef::src(void) const
+{
+ return m_src_vert;
+}
+
+
+VertInf *ConnRef::dst(void) const
+{
+ return m_dst_vert;
+}
+
+
+VertInf *ConnRef::start(void)
+{
+ return m_start_vert;
+}
+
+
+bool ConnRef::isInitialised(void) const
+{
+ return m_active;
+}
+
+
+void ConnRef::unInitialise(void)
+{
+ m_router->vertices.removeVertex(m_src_vert);
+ m_router->vertices.removeVertex(m_dst_vert);
+ makeInactive();
+}
+
+
+void ConnRef::removeFromGraph(void)
+{
+ if (m_src_vert)
+ {
+ m_src_vert->removeFromGraph();
+ }
+
+ if (m_dst_vert)
+ {
+ m_dst_vert->removeFromGraph();
+ }
+}
+
+
+void ConnRef::setCallback(void (*cb)(void *), void *ptr)
+{
+ m_callback_func = cb;
+ m_connector = ptr;
+}
+
+
+void ConnRef::performCallback(void)
+{
+ if (m_callback_func)
+ {
+ m_callback_func(m_connector);
+ }
+}
+
+
+void ConnRef::makePathInvalid(void)
+{
+ m_needs_reroute_flag = true;
+}
+
+
+Router *ConnRef::router(void) const
+{
+ return m_router;
+}
+
+
+// Validates a bend point on a path to check it does not form a zigzag corner.
+// a, b, c are consecutive points on the path. d and e are b's neighbours,
+// forming the shape corner d-b-e.
+//
+bool validateBendPoint(VertInf *aInf, VertInf *bInf, VertInf *cInf)
+{
+ if (bInf->id.isConnectionPin() || bInf->id.isConnCheckpoint())
+ {
+ // We shouldn't check connection pins or checkpoints.
+ return true;
+ }
+ bool bendOkay = true;
+
+ if ((aInf == nullptr) || (cInf == nullptr))
+ {
+ // Not a bendpoint, i.e., the end of the connector, so don't test.
+ return bendOkay;
+ }
+
+ COLA_ASSERT(bInf != nullptr);
+ VertInf *dInf = bInf->shPrev;
+ VertInf *eInf = bInf->shNext;
+ COLA_ASSERT(dInf != nullptr);
+ COLA_ASSERT(eInf != nullptr);
+
+ Point& a = aInf->point;
+ Point& b = bInf->point;
+ Point& c = cInf->point;
+ Point& d = dInf->point;
+ Point& e = eInf->point;
+
+ if ((a == b) || (b == c))
+ {
+ return bendOkay;
+ }
+
+#ifdef PATHDEBUG
+ db_printf("a=(%g, %g)\n", a.x, a.y);
+ db_printf("b=(%g, %g)\n", b.x, b.y);
+ db_printf("c=(%g, %g)\n", c.x, c.y);
+ db_printf("d=(%g, %g)\n", d.x, d.y);
+ db_printf("e=(%g, %g)\n", e.x, e.y);
+#endif
+ // Check angle:
+ int abc = vecDir(a, b, c);
+#ifdef PATHDEBUG
+ db_printf("(abc == %d) ", abc);
+#endif
+
+ if (abc == 0)
+ {
+ // The three consecutive point on the path are in a line.
+ // There should always be an equally short path that skips this
+ // bend point, but this check is used during rubber-band routing
+ // so we allow this case.
+ bendOkay = true;
+ }
+ else // (abc != 0)
+ {
+ COLA_ASSERT(vecDir(d, b, e) > 0);
+ int abe = vecDir(a, b, e);
+ int abd = vecDir(a, b, d);
+ int bce = vecDir(b, c, e);
+ int bcd = vecDir(b, c, d);
+#ifdef PATHDEBUG
+ db_printf("&& (abe == %d) && (abd == %d) &&\n(bce == %d) && (bcd == %d)",
+ abe, abd, bce, bcd);
+#endif
+
+ bendOkay = false;
+ if (abe > 0)
+ {
+ if ((abc > 0) && (abd >= 0) && (bce >= 0))
+ {
+ bendOkay = true;
+ }
+ }
+ else if (abd < 0)
+ {
+ if ((abc < 0) && (abe <= 0) && (bcd <= 0))
+ {
+ bendOkay = true;
+ }
+ }
+ }
+#ifdef PATHDEBUG
+ db_printf("\n");
+#endif
+ return bendOkay;
+}
+
+
+std::pair<bool, bool> ConnRef::assignConnectionPinVisibility(const bool connect)
+{
+ // XXX This is kind of a hack for connection pins. Probably we want to
+ // not use m_src_vert and m_dst_vert. For the moment we will clear
+ // their visibility and give them visibility to the pins.
+ bool dummySrc = m_src_connend && m_src_connend->isPinConnection();
+ if (dummySrc)
+ {
+ m_src_vert->removeFromGraph();
+ if (connect)
+ {
+ m_src_connend->assignPinVisibilityTo(m_src_vert, m_dst_vert);
+ }
+ }
+ bool dummyDst = m_dst_connend && m_dst_connend->isPinConnection();
+ if (dummyDst)
+ {
+ m_dst_vert->removeFromGraph();
+ if (connect)
+ {
+ m_dst_connend->assignPinVisibilityTo(m_dst_vert, m_src_vert);
+ }
+ }
+
+ return std::make_pair(dummySrc, dummyDst);
+}
+
+
+bool ConnRef::generatePath(void)
+{
+ // XXX Currently rubber-band routing only works when dragging the
+ // destination point of a connector, but not the source. The code
+ // needs to be reworked to work in both directions.
+
+ if (!m_false_path && !m_needs_reroute_flag)
+ {
+ // This connector is up to date.
+ return false;
+ }
+
+ if (!m_dst_vert || !m_src_vert)
+ {
+ // Connector is not fully initialised.
+ return false;
+ }
+
+ //COLA_ASSERT(_srcVert->point != _dstVert->point);
+
+ m_false_path = false;
+ m_needs_reroute_flag = false;
+
+ m_start_vert = m_src_vert;
+
+ // Some connectors may attach to connection pins, which means they route
+ // to the closest of multiple pins on a shape. How we handle this is to
+ // add a dummy vertex as the source or target vertex. This is then given
+ // visibility to each of the possible pins and tiny distance. Here we
+ // assign this visibility by adding edges to the visibility graph that we
+ // later remove.
+ std::pair<bool, bool> isDummyAtEnd = assignConnectionPinVisibility(true);
+
+
+ if (m_router->RubberBandRouting && route().size() > 0)
+ {
+ if (isDummyAtEnd.first)
+ {
+ //ShapeConnectionPin *activePin = m_src_connend->active
+ Point firstPoint = m_src_vert->point;
+ firstPoint.id = m_src_vert->id.objID;
+ firstPoint.vn = m_src_vert->id.vn;
+ PolyLine& existingRoute = routeRef();
+ existingRoute.ps.insert(existingRoute.ps.begin(), 1, firstPoint);
+ }
+ }
+
+ std::vector<Point> path;
+ std::vector<VertInf *> vertices;
+ if (m_checkpoints.empty())
+ {
+ generateStandardPath(path, vertices);
+ }
+ else
+ {
+ generateCheckpointsPath(path, vertices);
+ }
+
+ COLA_ASSERT(vertices.size() >= 2);
+ COLA_ASSERT(vertices[0] == src());
+ COLA_ASSERT(vertices[vertices.size() - 1] == dst());
+ COLA_ASSERT(m_reroute_flag_ptr != nullptr);
+
+ for (size_t i = 1; i < vertices.size(); ++i)
+ {
+ if (m_router->InvisibilityGrph && (m_type == ConnType_PolyLine))
+ {
+ // TODO: Again, we could know this edge without searching.
+ EdgeInf *edge = EdgeInf::existingEdge(vertices[i - 1], vertices[i]);
+ if (edge) {
+ edge->addConn(m_reroute_flag_ptr);
+ }
+ }
+ else
+ {
+ m_false_path = true;
+ }
+
+ VertInf *vertex = vertices[i];
+ if (vertex->pathNext &&
+ (vertex->pathNext->point == vertex->point))
+ {
+ if (!(vertex->pathNext->id.isConnPt()) && !(vertex->id.isConnPt()))
+ {
+ // Check for consecutive points on opposite
+ // corners of two touching shapes.
+ COLA_ASSERT(abs(vertex->pathNext->id.vn - vertex->id.vn) != 2);
+ }
+ }
+ }
+
+ // Get rid of dummy ShapeConnectionPin bridging points at beginning
+ // and end of path.
+ std::vector<Point> clippedPath;
+ std::vector<Point>::iterator pathBegin = path.begin();
+ std::vector<Point>::iterator pathEnd = path.end();
+ if (path.size() > 2 && isDummyAtEnd.first)
+ {
+ ++pathBegin;
+ m_src_connend->usePinVertex(vertices[1]);
+ }
+ if (path.size() > 2 && isDummyAtEnd.second)
+ {
+ --pathEnd;
+ m_dst_connend->usePinVertex(vertices[vertices.size() - 2]);
+ }
+ clippedPath.insert(clippedPath.end(), pathBegin, pathEnd);
+
+ // Clear visibility edges added for connection pins dummy vertices.
+ assignConnectionPinVisibility(false);
+
+ freeRoutes();
+ PolyLine& output_route = m_route;
+ output_route.ps = clippedPath;
+
+#ifdef PATHDEBUG
+ db_printf("Output route:\n");
+ for (size_t i = 0; i < output_route.ps.size(); ++i)
+ {
+ db_printf("[%d,%d] %g, %g ", output_route.ps[i].id,
+ output_route.ps[i].vn, output_route.ps[i].x,
+ output_route.ps[i].y);
+ }
+ db_printf("\n\n");
+#endif
+
+#ifdef DEBUGHANDLER
+ if (m_router->debugHandler())
+ {
+ m_router->debugHandler()->updateConnectorRoute(this, -1, -1);
+ }
+#endif
+
+ return true;
+}
+
+void ConnRef::generateCheckpointsPath(std::vector<Point>& path,
+ std::vector<VertInf *>& vertices)
+{
+ std::vector<VertInf *> checkpoints = m_checkpoint_vertices;
+ checkpoints.insert(checkpoints.begin(), src());
+ checkpoints.push_back(dst());
+
+ path.clear();
+ vertices.clear();
+ path.push_back(src()->point);
+ vertices.push_back(src());
+
+ size_t lastSuccessfulIndex = 0;
+ for (size_t i = 1; i < checkpoints.size(); ++i)
+ {
+ VertInf *start = checkpoints[lastSuccessfulIndex];
+ VertInf *end = checkpoints[i];
+
+ // Handle checkpoint directions by disabling some visibility edges.
+ if (lastSuccessfulIndex > 0)
+ {
+ Checkpoint& srcCP = m_checkpoints[lastSuccessfulIndex - 1];
+ if (srcCP.departureDirections != ConnDirAll)
+ {
+ start->setVisibleDirections(srcCP.departureDirections);
+ }
+ }
+ if ((i + 1) < checkpoints.size())
+ {
+ Checkpoint& dstCP = m_checkpoints[i - 1];
+ if (dstCP.arrivalDirections != ConnDirAll)
+ {
+ end->setVisibleDirections(dstCP.arrivalDirections);
+ }
+ }
+
+ AStarPath aStar;
+ // Route the connector
+ aStar.search(this, start, end, nullptr);
+
+ // Restore changes made for checkpoint visibility directions.
+ if (lastSuccessfulIndex > 0)
+ {
+ start->setVisibleDirections(ConnDirAll);
+ }
+ if ((i + 1) < checkpoints.size())
+ {
+ end->setVisibleDirections(ConnDirAll);
+ }
+
+ // Process the path.
+ int pathlen = end->pathLeadsBackTo(start);
+ if (pathlen >= 2)
+ {
+ size_t prev_path_size = path.size();
+ path.resize(prev_path_size + (pathlen - 1));
+ vertices.resize(prev_path_size + (pathlen - 1));
+ VertInf *vertInf = end;
+ for (size_t index = path.size() - 1; index >= prev_path_size;
+ --index)
+ {
+ path[index] = vertInf->point;
+ if (vertInf->id.isConnPt())
+ {
+ path[index].id = m_id;
+ path[index].vn = kUnassignedVertexNumber;
+ }
+ else
+ {
+ path[index].id = vertInf->id.objID;
+ path[index].vn = vertInf->id.vn;
+ }
+ vertices[index] = vertInf;
+ vertInf = vertInf->pathNext;
+ }
+ lastSuccessfulIndex = i;
+ }
+ else if (i + 1 == checkpoints.size())
+ {
+ // There is no valid path.
+ db_printf("Warning: Path not found...\n");
+ m_needs_reroute_flag = true;
+
+ path.push_back(dst()->point);
+ vertices.push_back(dst());
+
+ COLA_ASSERT(path.size() >= 2);
+ }
+ else
+ {
+ err_printf("Warning: skipping checkpoint for connector "
+ "%d at (%g, %g).\n", (int) id(),
+ checkpoints[i]->point.x, checkpoints[i]->point.y);
+ fflush(stderr);
+ }
+ }
+ // Use topbit to differentiate between start and end point of connector.
+ // They need unique IDs for nudging.
+ unsigned int topbit = ((unsigned int) 1) << 31;
+ path[path.size() - 1].id = m_id | topbit;
+ path[path.size() - 1].vn = kUnassignedVertexNumber;
+}
+
+
+void ConnRef::generateStandardPath(std::vector<Point>& path,
+ std::vector<VertInf *>& vertices)
+{
+ VertInf *tar = m_dst_vert;
+ size_t existingPathStart = 0;
+ const PolyLine& currRoute = route();
+ if (m_router->RubberBandRouting)
+ {
+ COLA_ASSERT(m_router->IgnoreRegions == true);
+
+#ifdef PATHDEBUG
+ db_printf("\n");
+ src()->id.db_print();
+ db_printf(": %g, %g\n", src()->point.x, src()->point.y);
+ tar->id.db_print();
+ db_printf(": %g, %g\n", tar->point.x, tar->point.y);
+ for (size_t i = 0; i < currRoute.ps.size(); ++i)
+ {
+ db_printf("%g, %g ", currRoute.ps[i].x, currRoute.ps[i].y);
+ }
+ db_printf("\n");
+#endif
+ if (currRoute.size() > 2)
+ {
+ if (m_src_vert->point == currRoute.ps[0])
+ {
+ existingPathStart = currRoute.size() - 2;
+ COLA_ASSERT(existingPathStart != 0);
+ const Point& pnt = currRoute.at(existingPathStart);
+ VertID vID(pnt.id, pnt.vn);
+
+ m_start_vert = m_router->vertices.getVertexByID(vID);
+ COLA_ASSERT(m_start_vert);
+ }
+ }
+ }
+ //db_printf("GO\n");
+ //db_printf("src: %X strt: %X dst: %X\n", (int) m_src_vert, (int) m_start_vert, (int) m_dst_vert);
+ unsigned int pathlen = 0;
+ while (pathlen == 0)
+ {
+ AStarPath aStar;
+ aStar.search(this, src(), dst(), start());
+ pathlen = dst()->pathLeadsBackTo(src());
+ if (pathlen < 2)
+ {
+ if (existingPathStart == 0)
+ {
+ break;
+ }
+#ifdef PATHDEBUG
+ db_printf("BACK\n");
+#endif
+ existingPathStart--;
+ const Point& pnt = currRoute.at(existingPathStart);
+ VertIDProps props = (existingPathStart > 0) ? 0 :
+ VertID::PROP_ConnPoint;
+ VertID vID(pnt.id, pnt.vn, props);
+
+ m_start_vert = m_router->vertices.getVertexByID(vID);
+ COLA_ASSERT(m_start_vert);
+ }
+ else if (m_router->RubberBandRouting)
+ {
+ // found.
+ bool unwind = false;
+
+#ifdef PATHDEBUG
+ db_printf("\n\n\nSTART:\n\n");
+#endif
+ VertInf *prior = nullptr;
+ for (VertInf *curr = tar; curr != m_start_vert->pathNext;
+ curr = curr->pathNext)
+ {
+ if (!validateBendPoint(curr->pathNext, curr, prior))
+ {
+ unwind = true;
+ break;
+ }
+ prior = curr;
+ }
+ if (unwind)
+ {
+#ifdef PATHDEBUG
+ db_printf("BACK II\n");
+#endif
+ if (existingPathStart == 0)
+ {
+ break;
+ }
+ existingPathStart--;
+ const Point& pnt = currRoute.at(existingPathStart);
+ VertIDProps props = (existingPathStart > 0) ? 0 :
+ VertID::PROP_ConnPoint;
+ VertID vID(pnt.id, pnt.vn, props);
+
+ m_start_vert = m_router->vertices.getVertexByID(vID);
+ COLA_ASSERT(m_start_vert);
+
+ pathlen = 0;
+ }
+ }
+ }
+
+ if (pathlen < 2)
+ {
+ // There is no valid path.
+ db_printf("Warning: Path not found...\n");
+ m_needs_reroute_flag = true;
+ pathlen = 2;
+ tar->pathNext = m_src_vert;
+ if ((m_type == ConnType_PolyLine) && m_router->InvisibilityGrph)
+ {
+ // TODO: Could we know this edge already?
+ //EdgeInf *edge = EdgeInf::existingEdge(m_src_vert, tar);
+ //COLA_ASSERT(edge != nullptr);
+ //edge->addCycleBlocker();
+ }
+ }
+ path.resize(pathlen);
+ vertices.resize(pathlen);
+
+ unsigned int j = pathlen - 1;
+ for (VertInf *i = tar; i != m_src_vert; i = i->pathNext)
+ {
+ path[j] = i->point;
+ vertices[j] = i;
+ path[j].id = i->id.objID;
+ path[j].vn = i->id.vn;
+
+ j--;
+ }
+ vertices[0] = m_src_vert;
+ path[0] = m_src_vert->point;
+ path[0].id = m_src_vert->id.objID;
+ path[0].vn =m_src_vert->id.vn;
+}
+
+
+void ConnRef::setHateCrossings(bool value)
+{
+ m_hate_crossings = value;
+}
+
+
+bool ConnRef::doesHateCrossings(void) const
+{
+ return m_hate_crossings;
+}
+
+
+std::vector<Point> ConnRef::possibleDstPinPoints(void) const
+{
+ std::vector<Point> points;
+ if (m_dst_connend)
+ {
+ points = m_dst_connend->possiblePinPoints();
+ }
+ return points;
+}
+
+
+PtOrder::PtOrder()
+{
+ // We have sorted neither list initially.
+ for (size_t dim = 0; dim < 2; ++dim)
+ {
+ sorted[dim] = false;
+ }
+}
+
+
+PtOrder::~PtOrder()
+{
+}
+
+
+PointRepVector PtOrder::sortedPoints(const size_t dim)
+{
+ // Sort if not already sorted.
+ if (sorted[dim] == false)
+ {
+ sort(dim);
+ }
+ return sortedConnVector[dim];
+}
+
+
+int PtOrder::positionFor(const size_t dim, const ConnRef *conn)
+{
+ // Sort if not already sorted.
+ if (sorted[dim] == false)
+ {
+ sort(dim);
+ }
+
+ // Just return position from the sorted list.
+ size_t i = 0;
+ for ( ; i < sortedConnVector[dim].size(); ++i)
+ {
+ if (sortedConnVector[dim][i].second == conn)
+ {
+ return (int) i;
+ }
+ }
+ return -1;
+}
+
+
+size_t PtOrder::insertPoint(const size_t dim, const PtConnPtrPair& pointPair)
+{
+ // Is this connector bendpoint already inserted?
+ size_t i = 0;
+ for ( ; i < nodes[dim].size(); ++i)
+ {
+ if (nodes[dim][i].second == pointPair.second)
+ {
+ return i;
+ }
+ }
+ // Not found, insert.
+ nodes[dim].push_back(pointPair);
+ return nodes[dim].size() - 1;
+}
+
+void PtOrder::addPoints(const size_t dim, const PtConnPtrPair& arg1,
+ const PtConnPtrPair& arg2)
+{
+ // Add points, but not ordering information.
+ insertPoint(dim, arg1);
+ insertPoint(dim, arg2);
+}
+
+
+void PtOrder::addOrderedPoints(const size_t dim, const PtConnPtrPair& innerArg,
+ const PtConnPtrPair& outerArg, bool swapped)
+{
+ PtConnPtrPair inner = (swapped) ? outerArg : innerArg;
+ PtConnPtrPair outer = (swapped) ? innerArg : outerArg;
+ COLA_ASSERT(inner != outer);
+
+ // Add points.
+ size_t innerIndex = insertPoint(dim, inner);
+ size_t outerIndex = insertPoint(dim, outer);
+
+ // And edge for ordering information.
+ links[dim].push_back(std::make_pair(outerIndex, innerIndex));
+}
+
+
+void PtOrder::sort(const size_t dim)
+{
+ // This is just a topological sort of the points using the edges info.
+
+ sorted[dim] = true;
+
+ size_t n = nodes[dim].size();
+
+ // Build an adjacency matrix for easy lookup.
+ std::vector<std::vector<bool> > adjacencyMatrix(n);
+ for (size_t i = 0; i < n; ++i)
+ {
+ adjacencyMatrix[i].assign(n, false);
+ }
+ std::vector<int> incomingDegree(n);
+ std::queue<size_t> queue;
+
+ // Populate the dependency matrix.
+ for (NodeIndexPairLinkList::iterator it = links[dim].begin();
+ it != links[dim].end(); ++it)
+ {
+ adjacencyMatrix[it->first][it->second] = true;
+ }
+
+ // Build incoming degree lookup structure, and add nodes with no
+ // incoming edges to queue.
+ for (size_t i = 0; i < n; ++i)
+ {
+ int degree = 0;
+
+ for (size_t j = 0; j < n; ++j)
+ {
+ if (adjacencyMatrix[j][i])
+ {
+ degree++;
+ }
+ }
+ incomingDegree[i] = degree;
+
+ if (degree == 0)
+ {
+ queue.push(i);
+ }
+ }
+
+ while (queue.empty() == false)
+ {
+ size_t k = queue.front();
+ assert(k < nodes[dim].size());
+ queue.pop();
+
+ // Insert node k into the sorted list
+ sortedConnVector[dim].push_back(nodes[dim][k]);
+
+ // Remove all edges leaving node k:
+ for (size_t i = 0; i < n; ++i)
+ {
+ if (adjacencyMatrix[k][i])
+ {
+ adjacencyMatrix[k][i] = false;
+ incomingDegree[i]--;
+
+ if (incomingDegree[i] == 0)
+ {
+ queue.push(i);
+ }
+ }
+ }
+ }
+}
+
+
+// Returns a vertex number representing a point on the line between
+// two shape corners, represented by p0 and p1.
+//
+static int midVertexNumber(const Point& p0, const Point& p1, const Point& c)
+{
+ if (c.vn != kUnassignedVertexNumber)
+ {
+ // The split point is a shape corner, so doesn't need its
+ // vertex number adjusting.
+ return c.vn;
+ }
+ if ((p0.vn >= 4) && (p0.vn < kUnassignedVertexNumber))
+ {
+ // The point next to this has the correct nudging direction,
+ // so use that.
+ return p0.vn;
+ }
+ if ((p1.vn >= 4) && (p1.vn < kUnassignedVertexNumber))
+ {
+ // The point next to this has the correct nudging direction,
+ // so use that.
+ return p1.vn;
+ }
+ if ((p0.vn < 4) && (p1.vn < 4))
+ {
+ if (p0.vn != p1.vn)
+ {
+ return p0.vn;
+ }
+ // Splitting between two ordinary shape corners.
+ int vn_mid = std::min(p0.vn, p1.vn);
+ if ((std::max(p0.vn, p1.vn) == 3) && (vn_mid == 0))
+ {
+ vn_mid = 3; // Next vn is effectively 4.
+ }
+ return vn_mid + 4;
+ }
+ COLA_ASSERT((p0.x == p1.x) || (p0.y == p1.y));
+ if (p0.vn != kUnassignedVertexNumber)
+ {
+ if (p0.x == p1.x)
+ {
+ if ((p0.vn == 2) || (p0.vn == 3))
+ {
+ return 6;
+ }
+ return 4;
+ }
+ else
+ {
+ if ((p0.vn == 0) || (p0.vn == 3))
+ {
+ return 7;
+ }
+ return 5;
+ }
+ }
+ else if (p1.vn != kUnassignedVertexNumber)
+ {
+ if (p0.x == p1.x)
+ {
+ if ((p1.vn == 2) || (p1.vn == 3))
+ {
+ return 6;
+ }
+ return 4;
+ }
+ else
+ {
+ if ((p1.vn == 0) || (p1.vn == 3))
+ {
+ return 7;
+ }
+ return 5;
+ }
+ }
+
+ // Shouldn't both be new (kUnassignedVertexNumber) points.
+ db_printf("midVertexNumber(): p0.vn and p1.vn both = "
+ "kUnassignedVertexNumber\n");
+ db_printf("p0.vn %d p1.vn %d\n", p0.vn, p1.vn);
+ return kUnassignedVertexNumber;
+}
+
+
+// Break up overlapping parallel segments that are not the same edge in
+// the visibility graph, i.e., where one segment is a subsegment of another.
+void splitBranchingSegments(Avoid::Polygon& poly, bool polyIsConn,
+ Avoid::Polygon& conn, const double tolerance)
+{
+ for (std::vector<Avoid::Point>::iterator i = conn.ps.begin();
+ i != conn.ps.end(); ++i)
+ {
+ if (i == conn.ps.begin())
+ {
+ // Skip the first point.
+ // There are points-1 segments in a connector.
+ continue;
+ }
+
+ for (std::vector<Avoid::Point>::iterator j = poly.ps.begin();
+ j != poly.ps.end(); )
+ {
+ if (polyIsConn && (j == poly.ps.begin()))
+ {
+ // Skip the first point.
+ // There are points-1 segments in a connector.
+ ++j;
+ continue;
+ }
+ Point& c0 = *(i - 1);
+ Point& c1 = *i;
+
+ Point& p0 = (j == poly.ps.begin()) ? poly.ps.back() : *(j - 1);
+ Point& p1 = *j;
+
+ // Check the first point of the first segment.
+ if (((i - 1) == conn.ps.begin()) &&
+ pointOnLine(p0, p1, c0, tolerance))
+ {
+ //db_printf("add to poly %g %g\n", c0.x, c0.y);
+
+ c0.vn = midVertexNumber(p0, p1, c0);
+ j = poly.ps.insert(j, c0);
+ if (j != poly.ps.begin())
+ {
+ --j;
+ }
+ continue;
+ }
+ // And the second point of every segment.
+ if (pointOnLine(p0, p1, c1, tolerance))
+ {
+ //db_printf("add to poly %g %g\n", c1.x, c1.y);
+
+ c1.vn = midVertexNumber(p0, p1, c1);
+ j = poly.ps.insert(j, c1);
+ if (j != poly.ps.begin())
+ {
+ --j;
+ }
+ continue;
+ }
+
+ // Check the first point of the first segment.
+ if (polyIsConn && ((j - 1) == poly.ps.begin()) &&
+ pointOnLine(c0, c1, p0, tolerance))
+ {
+ //db_printf("add to conn %g %g\n", p0.x, p0.y);
+
+ p0.vn = midVertexNumber(c0, c1, p0);
+ i = conn.ps.insert(i, p0);
+ continue;
+ }
+ // And the second point of every segment.
+ if (pointOnLine(c0, c1, p1, tolerance))
+ {
+ //db_printf("add to conn %g %g\n", p1.x, p1.y);
+
+ p1.vn = midVertexNumber(c0, c1, p1);
+ i = conn.ps.insert(i, p1);
+ }
+ ++j;
+ }
+ }
+}
+
+
+static int segDir(const Point& p1, const Point& p2)
+{
+ int result = 1;
+ if (p1.x == p2.x)
+ {
+ if (p2.y > p1.y)
+ {
+ result = -1;
+ }
+ }
+ else if (p1.y == p2.y)
+ {
+ if (p2.x < p1.x)
+ {
+ result = -1;
+ }
+ }
+ return result;
+}
+
+
+static bool posInlineWithConnEndSegs(const double pos, const size_t dim,
+ const Avoid::Polygon& poly, const Avoid::Polygon& conn)
+{
+ size_t pLast = poly.size() - 1;
+ size_t cLast = conn.size() - 1;
+ if ((
+ // Is inline with the beginning of the "poly" line
+ ((pos == poly.ps[0][dim]) && (pos == poly.ps[1][dim])) ||
+ // Is inline with the end of the "poly" line
+ ((pos == poly.ps[pLast][dim]) && (pos == poly.ps[pLast - 1][dim]))
+ ) && (
+ // Is inline with the beginning of the "conn" line
+ ((pos == conn.ps[0][dim]) && (pos == conn.ps[1][dim])) ||
+ // Is inline with the end of the "conn" line
+ ((pos == conn.ps[cLast][dim]) && (pos == conn.ps[cLast - 1][dim]))
+ ))
+ {
+ return true;
+ }
+ return false;
+}
+
+ConnectorCrossings::ConnectorCrossings(Avoid::Polygon& poly, bool polyIsConn,
+ Avoid::Polygon& conn, ConnRef *polyConnRef, ConnRef *connConnRef)
+ : poly(poly),
+ polyIsConn(polyIsConn),
+ conn(conn),
+ checkForBranchingSegments(false),
+ polyConnRef(polyConnRef),
+ connConnRef(connConnRef),
+ crossingPoints(nullptr),
+ pointOrders(nullptr),
+ sharedPaths(nullptr)
+{
+}
+
+void ConnectorCrossings::clear(void)
+{
+ crossingCount = 0;
+ crossingFlags = CROSSING_NONE;
+ firstSharedPathAtEndLength = DBL_MAX;
+ secondSharedPathAtEndLength = DBL_MAX;
+}
+
+
+// Computes the *shared* length of these two shared paths.
+//
+static double pathLength(Avoid::Point **c_path, Avoid::Point **p_path,
+ size_t size)
+{
+ double length = 0;
+
+ for (unsigned int ind = 1; ind < size; ++ind)
+ {
+ if ( (*(c_path[ind - 1]) == *(p_path[ind - 1])) &&
+ (*(c_path[ind]) == *(p_path[ind])) )
+ {
+ // This segment is shared by both paths.
+ //
+ // This function will only be used for orthogonal paths, so we
+ // can use Manhattan distance here since it will be faster to
+ // compute.
+ length += manhattanDist(*(c_path[ind - 1]), *(c_path[ind]));
+ }
+ }
+
+ return length;
+}
+
+// Works out if the segment conn[cIndex-1]--conn[cIndex] really crosses poly.
+// This does not not count non-crossing shared paths as crossings.
+// poly can be either a connector (polyIsConn = true) or a cluster
+// boundary (polyIsConn = false).
+//
+void ConnectorCrossings::countForSegment(size_t cIndex, const bool finalSegment)
+{
+ clear();
+
+ bool polyIsOrthogonal = (polyConnRef &&
+ (polyConnRef->routingType() == ConnType_Orthogonal));
+ bool connIsOrthogonal = (connConnRef &&
+ (connConnRef->routingType() == ConnType_Orthogonal));
+
+ // Fixed routes will not have segment breaks at possible crossings.
+ bool polyIsFixed = (polyConnRef && polyConnRef->hasFixedRoute());
+ bool connIsFixed = (connConnRef && connConnRef->hasFixedRoute());
+
+ // We need to split apart connectors at potential crossing points if
+ // either has a fixed route or it is a polyline connector. This is not
+ // needed for orthogonal connectors where crossings occur at vertices
+ // in visibility graph and on the raw connector routes.
+ if (checkForBranchingSegments || polyIsFixed || connIsFixed ||
+ !polyIsOrthogonal || !connIsOrthogonal)
+ {
+ double epsilon = std::numeric_limits<double>::epsilon();
+ size_t conn_pn = conn.size();
+ // XXX When doing the pointOnLine test we allow the points to be
+ // slightly non-collinear. This addresses a problem with clustered
+ // routing where connectors could otherwise route cheaply through
+ // shape corners that were not quite on the cluster boundary, but
+ // reported to be on there by the line segment intersection code,
+ // which I suspect is not numerically accurate enough. This occurred
+ // for points that only differed by about 10^-12 in the y-dimension.
+ double tolerance = (!polyIsConn) ? epsilon : 0.0;
+ splitBranchingSegments(poly, polyIsConn, conn, tolerance);
+ // cIndex is going to be the last, so take into account added points.
+ cIndex += (conn.size() - conn_pn);
+ }
+ COLA_ASSERT(cIndex >= 1);
+ COLA_ASSERT(cIndex < conn.size());
+
+ size_t poly_size = poly.size();
+
+ Avoid::Point& a1 = conn.ps[cIndex - 1];
+ Avoid::Point& a2 = conn.ps[cIndex];
+ //db_printf("a1: %g %g\n", a1.x, a1.y);
+ //db_printf("a2: %g %g\n", a2.x, a2.y);
+
+ // Allocate arrays for computing shared paths.
+ // Don't use dynamic array due to portablity issues.
+ size_t max_path_size = std::min(poly_size, conn.size());
+ Avoid::Point **c_path = new Avoid::Point*[max_path_size];
+ Avoid::Point **p_path = new Avoid::Point*[max_path_size];
+ size_t size = 0;
+
+ for (size_t j = ((polyIsConn) ? 1 : 0); j < poly_size; ++j)
+ {
+ Avoid::Point& b1 = poly.ps[(j - 1 + poly_size) % poly_size];
+ Avoid::Point& b2 = poly.ps[j];
+ //db_printf("b1: %g %g\n", b1.x, b1.y);
+ //db_printf("b2: %g %g\n", b2.x, b2.y);
+
+ size = 0;
+
+ bool converging = false;
+
+ const bool a1_eq_b1 = (a1 == b1);
+ const bool a2_eq_b1 = (a2 == b1);
+ const bool a2_eq_b2 = (a2 == b2);
+ const bool a1_eq_b2 = (a1 == b2);
+
+ if ( (a1_eq_b1 && a2_eq_b2) ||
+ (a2_eq_b1 && a1_eq_b2) )
+ {
+ if (finalSegment)
+ {
+ converging = true;
+ }
+ else
+ {
+ // Route along same segment: no penalty. We detect
+ // crossovers when we see the segments diverge.
+ continue;
+ }
+ }
+ else if (a2_eq_b1 || a2_eq_b2 || a1_eq_b2)
+ {
+ // Each crossing that is at a vertex in the
+ // visibility graph gets noticed four times.
+ // We ignore three of these cases.
+ // This also catches the case of a shared path,
+ // but this is one that terminates at a common
+ // endpoint, so we don't care about it.
+ continue;
+ }
+
+ if (a1_eq_b1 || converging)
+ {
+ if (!converging)
+ {
+ if (polyIsConn && (j == 1))
+ {
+ // Can't be the end of a shared path or crossing path
+ // since the common point is the first point of the
+ // connector path. This is not a shared path at all.
+ continue;
+ }
+
+ Avoid::Point& b0 = poly.ps[(j - 2 + poly_size) % poly_size];
+ // The segments share an endpoint -- a1==b1.
+ if (a2 == b0)
+ {
+ // a2 is not a split, continue.
+ continue;
+ }
+ }
+
+ // If here and not converging, then we know that a2 != b2
+ // And a2 and its pair in b are a split.
+ COLA_ASSERT(converging || !a2_eq_b2);
+
+ bool shared_path = false;
+
+ // Initial values here don't matter. They are only used after
+ // being set to sensible values, but we set them to stop a MSVC
+ // warning.
+ bool p_dir_back;
+ int p_dir = 0;
+ int trace_c = 0;
+ int trace_p = 0;
+
+ if (converging)
+ {
+ // Determine direction we have to look through
+ // the points of connector b.
+ p_dir_back = a2_eq_b2 ? true : false;
+ p_dir = p_dir_back ? -1 : 1;
+ trace_c = (int) cIndex;
+ trace_p = (int) j;
+ if (!p_dir_back)
+ {
+ if (finalSegment)
+ {
+ trace_p--;
+ }
+ else
+ {
+ trace_c--;
+ }
+ }
+
+ shared_path = true;
+ }
+ else if (cIndex >= 2)
+ {
+ Avoid::Point& b0 = poly.ps[(j - 2 + poly_size) % poly_size];
+ Avoid::Point& a0 = conn.ps[cIndex - 2];
+
+ //db_printf("a0: %g %g\n", a0.x, a0.y);
+ //db_printf("b0: %g %g\n", b0.x, b0.y);
+
+ if ((a0 == b2) || (a0 == b0))
+ {
+ // Determine direction we have to look through
+ // the points of connector b.
+ p_dir_back = (a0 == b0) ? true : false;
+ p_dir = p_dir_back ? -1 : 1;
+ trace_c = (int) cIndex;
+ trace_p = (int) (p_dir_back ? j : j - 2);
+
+ shared_path = true;
+ }
+ }
+
+ if (shared_path)
+ {
+ crossingFlags |= CROSSING_SHARES_PATH;
+ // Shouldn't be here if p_dir is still equal to zero.
+ COLA_ASSERT(p_dir != 0);
+
+ // Build the shared path, including the diverging points at
+ // each end if the connector does not end at a common point.
+ while ( (trace_c >= 0) && (!polyIsConn ||
+ ((trace_p >= 0) && (trace_p < (int) poly_size))) )
+ {
+ // If poly is a cluster boundary, then it is a closed
+ // poly-line and so it wraps around.
+ size_t index_p = (size_t)
+ ((trace_p + (2 * poly_size)) % poly_size);
+ size_t index_c = (size_t) trace_c;
+ c_path[size] = &conn.ps[index_c];
+ p_path[size] = &poly.ps[index_p];
+ ++size;
+ if ((size > 1) && (conn.ps[index_c] != poly.ps[index_p]))
+ {
+ // Points don't match, so break out of loop.
+ break;
+ }
+ trace_c--;
+ trace_p += p_dir;
+ }
+
+ // Are there diverging points at the ends of the shared path.
+ bool front_same = (*(c_path[0]) == *(p_path[0]));
+ bool back_same = (*(c_path[size - 1]) == *(p_path[size - 1]));
+
+ // Determine if the shared path originates at a junction.
+ bool terminatesAtJunction = false;
+ if (polyConnRef && connConnRef && (front_same || back_same))
+ {
+ // To do this we find the two ConnEnds at the common
+ // end of the shared path. Then check if they are
+ // attached to a junction and it is the same one.
+ std::pair<ConnEnd, ConnEnd> connEnds =
+ connConnRef->endpointConnEnds();
+ JunctionRef *connJunction = nullptr;
+
+ std::pair<ConnEnd, ConnEnd> polyEnds =
+ polyConnRef->endpointConnEnds();
+ JunctionRef *polyJunction = nullptr;
+
+ // The front of the c_path corresponds to destination
+ // of the connector.
+ connJunction = (front_same) ? connEnds.second.junction() :
+ connEnds.first.junction();
+ bool use_first = back_same;
+ if (p_dir_back)
+ {
+ // Reversed, so use opposite.
+ use_first = !use_first;
+ }
+ // The front of the p_path corresponds to destination
+ // of the connector.
+ polyJunction = (use_first) ? polyEnds.second.junction() :
+ polyEnds.first.junction();
+
+ terminatesAtJunction = (connJunction &&
+ (connJunction == polyJunction));
+ }
+
+ if (sharedPaths)
+ {
+ // Store a copy of the shared path
+ size_t start = (front_same) ? 0 : 1;
+ size_t limit = size - ((back_same) ? 0 : 1);
+
+ PointList sPath(limit - start);
+ for (size_t i = start; i < limit; ++i)
+ {
+ sPath[i - start] = *(c_path[i]);
+ }
+ sharedPaths->push_back(sPath);
+ }
+
+ // Check to see if these share a fixed segment.
+ if (polyIsOrthogonal && connIsOrthogonal)
+ {
+ size_t startPt = (front_same) ? 0 : 1;
+ size_t endPt = size - ((back_same) ? 1 : 2);
+ for (size_t dim = 0; dim < 2; ++dim)
+ {
+ if ((*c_path[startPt])[dim] == (*c_path[endPt])[dim])
+ {
+ double pos = (*c_path[startPt])[dim];
+ // See if this is inline with either the start
+ // or end point of both connectors. We don't
+ // count them as crossing if they originate at a
+ // junction and are part of the same hyperedge.
+ if ( ((pos == poly.ps[0][dim]) ||
+ (pos == poly.ps[poly_size - 1][dim])) &&
+ ((pos == conn.ps[0][dim]) ||
+ (pos == conn.ps[cIndex][dim])) &&
+ (terminatesAtJunction == false))
+ {
+ crossingFlags |= CROSSING_SHARES_FIXED_SEGMENT;
+ }
+ }
+ }
+
+ if (!front_same && !back_same)
+ {
+ // Find overlapping segments that are constrained by
+ // the fact that both the adjoining segments are fixed
+ // in the other dimension, i.e.,
+ //
+ // X------++---X
+ // ||
+ // ||
+ // X---++------X
+ //
+ // In the example above, altDim is X, and dim is Y.
+ //
+
+ // For each dimension...
+ for (size_t dim = 0; dim < 2; ++dim)
+ {
+ size_t end = size - 1;
+ size_t altDim = (dim + 1) % 2;
+ // If segment is in this dimension...
+ if ((*c_path[1])[altDim] == (*c_path[end - 1])[altDim])
+ {
+ double posBeg = (*c_path[1])[dim];
+ double posEnd = (*c_path[end - 1])[dim];
+ // If both segment ends diverge at right-angles...
+ if ( (posBeg == (*c_path[0])[dim]) &&
+ (posBeg == (*p_path[0])[dim]) &&
+ (posEnd == (*c_path[end])[dim]) &&
+ (posEnd == (*p_path[end])[dim]) )
+ {
+ // and these segments are inline with the conn and path ends themselves...
+ if (posInlineWithConnEndSegs(posBeg, dim,
+ conn, poly) &&
+ posInlineWithConnEndSegs(posEnd, dim,
+ conn, poly))
+ {
+ // If all endpoints branch at right angles,
+ // then penalise this since it is a segment
+ // will will not be able to nudge apart
+ // without introducing fixed segment
+ // crossings.
+ crossingFlags |=
+ CROSSING_SHARES_FIXED_SEGMENT;
+ }
+ }
+ }
+ }
+ }
+
+#if 0
+ // XXX: What is this code for? It is pretty much
+ // incomprehensible and also causes one of the test
+ // cases to fail.
+ //
+ if (!front_same && !back_same)
+ {
+ for (size_t dim = 0; dim < 2; ++dim)
+ {
+ size_t altDim = (dim + 1) % 2;
+ if ((*c_path[1])[altDim] == (*c_path[1])[altDim])
+ {
+ size_t n = c_path.size();
+ double yPosB = (*c_path[1])[dim];
+ if ( (yPosB == (*c_path[0])[dim]) &&
+ (yPosB == (*p_path[0])[dim]) )
+ {
+ crossingFlags |=
+ CROSSING_SHARES_FIXED_SEGMENT;
+ }
+
+ double yPosE = (*c_path[n - 2])[dim];
+ if ( (yPosE == (*c_path[n - 1])[dim]) &&
+ (yPosE == (*p_path[n - 1])[dim]) )
+ {
+ crossingFlags |=
+ CROSSING_SHARES_FIXED_SEGMENT;
+ }
+ }
+ }
+ }
+#endif
+ }
+
+ // {start,end}CornerSide specifies which side of conn the
+ // poly path enters and leaves.
+ int startCornerSide = 1;
+ int endCornerSide = 1;
+
+ bool reversed = false;
+ if (!front_same)
+ {
+ // If there is a divergence at the beginning,
+ // then order the shared path based on this.
+ startCornerSide = Avoid::cornerSide(*c_path[0], *c_path[1],
+ *c_path[2], *p_path[0]);
+ }
+ if (!back_same)
+ {
+ // If there is a divergence at the end of the path,
+ // then order the shared path based on this.
+ endCornerSide = Avoid::cornerSide(*c_path[size - 3],
+ *c_path[size - 2], *c_path[size - 1],
+ *p_path[size - 1]);
+ }
+ else
+ {
+ endCornerSide = startCornerSide;
+ }
+ if (front_same)
+ {
+ startCornerSide = endCornerSide;
+ }
+
+ if (endCornerSide != startCornerSide)
+ {
+ // Mark that the shared path crosses.
+ //db_printf("shared path crosses.\n");
+ crossingCount += 1;
+ if (crossingPoints)
+ {
+ crossingPoints->insert(*c_path[1]);
+ }
+ }
+
+ if (front_same || back_same)
+ {
+ crossingFlags |= CROSSING_SHARES_PATH_AT_END;
+
+ // Reduce the cost of paths that stay straight after
+ // the split, and make this length available so that the
+ // paths can be ordered during the improveCrossings()
+ // step and the straight (usually better) paths will be
+ // left alone while the router attempts to find better
+ // paths for the others.
+ double straightModifier = 200;
+ firstSharedPathAtEndLength = secondSharedPathAtEndLength =
+ pathLength(c_path, p_path, size);
+ if (back_same && (size > 2))
+ {
+ if (vecDir(*p_path[0], *p_path[1], *p_path[2]) == 0)
+ {
+ firstSharedPathAtEndLength -= straightModifier;
+ }
+
+ if (vecDir(*c_path[0], *c_path[1], *c_path[2]) == 0)
+ {
+ secondSharedPathAtEndLength -= straightModifier;
+ }
+ }
+ else if (front_same && (size > 2))
+ {
+ if (vecDir(*p_path[size - 3], *p_path[size - 2],
+ *p_path[size - 1]) == 0)
+ {
+ firstSharedPathAtEndLength -= straightModifier;
+ }
+
+ if (vecDir(*c_path[size - 3], *c_path[size - 2],
+ *c_path[size - 1]) == 0)
+ {
+ secondSharedPathAtEndLength -= straightModifier;
+ }
+ }
+ }
+ else if (polyIsOrthogonal && connIsOrthogonal)
+ {
+ int cStartDir = vecDir(*c_path[0], *c_path[1], *c_path[2]);
+ int pStartDir = vecDir(*p_path[0], *p_path[1], *p_path[2]);
+ if ((cStartDir != 0) && (cStartDir == -pStartDir))
+ {
+ // The start segments diverge at 180 degrees to each
+ // other. So order based on not introducing overlap
+ // of the diverging segments when these are nudged
+ // apart.
+ startCornerSide = -cStartDir;
+ }
+ else
+ {
+ int cEndDir = vecDir(*c_path[size - 3],
+ *c_path[size - 2], *c_path[size - 1]);
+ int pEndDir = vecDir(*p_path[size - 3],
+ *p_path[size - 2], *p_path[size - 1]);
+ if ((cEndDir != 0) && (cEndDir == -pEndDir))
+ {
+ // The end segments diverge at 180 degrees to
+ // each other. So order based on not introducing
+ // overlap of the diverging segments when these
+ // are nudged apart.
+ startCornerSide = -cEndDir;
+ }
+ }
+ }
+
+#if 0
+ int prevTurnDir = 0;
+ if (pointOrders)
+ {
+ // Return the ordering for the shared path.
+ COLA_ASSERT(c_path.size() > 0 || back_same);
+ size_t adj_size = (c_path.size() - ((back_same) ? 0 : 1));
+ for (size_t i = (front_same) ? 0 : 1; i < adj_size; ++i)
+ {
+ Avoid::Point& an = *(c_path[i]);
+ Avoid::Point& bn = *(p_path[i]);
+ int currTurnDir = ((i > 0) && (i < (adj_size - 1))) ?
+ vecDir(*c_path[i - 1], an,
+ *c_path[i + 1]) : 0;
+ VertID vID(an.id, true, an.vn);
+ if ( (currTurnDir == (-1 * prevTurnDir)) &&
+ (currTurnDir != 0) && (prevTurnDir != 0) )
+ {
+ // The connector turns the opposite way around
+ // this shape as the previous bend on the path,
+ // so reverse the order so that the inner path
+ // become the outer path and vice versa.
+ reversed = !reversed;
+ }
+ bool orderSwapped = (*pointOrders)[an].addOrderedPoints(
+ &bn, &an, reversed);
+ if (orderSwapped)
+ {
+ // Reverse the order for later points.
+ reversed = !reversed;
+ }
+ prevTurnDir = currTurnDir;
+ }
+ }
+#endif
+ if (pointOrders)
+ {
+ reversed = false;
+ size_t startPt = (front_same) ? 0 : 1;
+
+ // Orthogonal should always have at least one segment.
+ COLA_ASSERT(size > (startPt + 1));
+
+ if (startCornerSide > 0)
+ {
+ reversed = !reversed;
+ }
+
+ int prevDir = 0;
+ // Return the ordering for the shared path.
+ COLA_ASSERT(size > 0 || back_same);
+ size_t adj_size = (size - ((back_same) ? 0 : 1));
+ for (size_t i = startPt; i < adj_size; ++i)
+ {
+ Avoid::Point& an = *(c_path[i]);
+ Avoid::Point& bn = *(p_path[i]);
+ COLA_ASSERT(an == bn);
+
+ if (i > startPt)
+ {
+ Avoid::Point& ap = *(c_path[i - 1]);
+ Avoid::Point& bp = *(p_path[i - 1]);
+
+ int thisDir = segDir(ap, an);
+ if (prevDir == 0)
+ {
+ if (thisDir > 0)
+ {
+ reversed = !reversed;
+ }
+ }
+ else if (thisDir != prevDir)
+ {
+ reversed = !reversed;
+ }
+
+ int orientation = (ap.x == an.x) ? 0 : 1;
+ //printf("prevOri %d\n", prevOrientation);
+ //printf("1: %X, %X\n", (int) &(bn), (int) &(an));
+ (*pointOrders)[an].addOrderedPoints(
+ orientation,
+ std::make_pair(&bn, polyConnRef),
+ std::make_pair(&an, connConnRef),
+ reversed);
+ COLA_ASSERT(ap == bp);
+ //printf("2: %X, %X\n", (int) &bp, (int) &ap);
+ (*pointOrders)[ap].addOrderedPoints(
+ orientation,
+ std::make_pair(&bp, polyConnRef),
+ std::make_pair(&ap, connConnRef),
+ reversed);
+ prevDir = thisDir;
+ }
+ }
+ }
+#if 0
+ int ymod = -1;
+ if ((id.vn == 1) || (id.vn == 2))
+ {
+ // bottom.
+ ymod = +1;
+ }
+
+ int xmod = -1;
+ if ((id.vn == 0) || (id.vn == 1))
+ {
+ // right.
+ xmod = +1;
+ }
+ if(id.vn > 3)
+ {
+ xmod = ymod = 0;
+ if (id.vn == 4)
+ {
+ // right.
+ xmod = +1;
+ }
+ else if (id.vn == 5)
+ {
+ // bottom.
+ ymod = +1;
+ }
+ else if (id.vn == 6)
+ {
+ // left.
+ xmod = -1;
+ }
+ else if (id.vn == 7)
+ {
+ // top.
+ ymod = -1;
+ }
+ }
+#endif
+
+ crossingFlags |= CROSSING_TOUCHES;
+ }
+ else if (cIndex >= 2)
+ {
+ // The connectors cross or touch at this point.
+ //db_printf("Cross or touch at point... \n");
+
+ // Crossing shouldn't be at an endpoint.
+ COLA_ASSERT(cIndex >= 2);
+ COLA_ASSERT(!polyIsConn || (j >= 2));
+
+ Avoid::Point& b0 = poly.ps[(j - 2 + poly_size) % poly_size];
+ Avoid::Point& a0 = conn.ps[cIndex - 2];
+
+ int side1 = Avoid::cornerSide(a0, a1, a2, b0);
+ int side2 = Avoid::cornerSide(a0, a1, a2, b2);
+ if (side1 != side2)
+ {
+ // The connectors cross at this point.
+ //db_printf("cross.\n");
+ crossingCount += 1;
+ if (crossingPoints)
+ {
+ crossingPoints->insert(a1);
+ }
+ }
+
+ crossingFlags |= CROSSING_TOUCHES;
+ if (pointOrders)
+ {
+ if (polyIsOrthogonal && connIsOrthogonal)
+ {
+ // Orthogonal case:
+ // Just order based on which comes from the left and
+ // top in each dimension because this can only be two
+ // L-shaped segments touching at the bend.
+ bool reversedX = ((a0.x < a1.x) || (a2.x < a1.x));
+ bool reversedY = ((a0.y < a1.y) || (a2.y < a1.y));
+ // XXX: Why do we need to invert the reversed values
+ // here? Are they wrong for orthogonal points
+ // in the other places?
+ (*pointOrders)[b1].addOrderedPoints(0,
+ std::make_pair(&b1, polyConnRef),
+ std::make_pair(&a1, connConnRef),
+ !reversedX);
+ (*pointOrders)[b1].addOrderedPoints(1,
+ std::make_pair(&b1, polyConnRef),
+ std::make_pair(&a1, connConnRef),
+ !reversedY);
+ }
+#if 0
+// Unused code.
+ else
+ {
+ int turnDirA = vecDir(a0, a1, a2);
+ int turnDirB = vecDir(b0, b1, b2);
+ bool reversed = (side1 != -turnDirA);
+ if (side1 != side2)
+ {
+ // Interesting case where a connector routes round
+ // the edge of a shape and intersects a connector
+ // which is connected to a port on the edge of the
+ // shape.
+ if (turnDirA == 0)
+ {
+ // We'll make B the outer by preference,
+ // because the points of A are collinear.
+ reversed = false;
+ }
+ else if (turnDirB == 0)
+ {
+ reversed = true;
+ }
+ // TODO COLA_ASSERT((turnDirB != 0) ||
+ // (turnDirA != 0));
+ }
+ VertID vID(b1.id, b1.vn);
+ //(*pointOrders)[b1].addOrderedPoints(&b1, &a1, reversed);
+ }
+#endif
+ }
+ }
+ }
+ else
+ {
+ if ( polyIsOrthogonal && connIsOrthogonal)
+ {
+ // All crossings in orthogonal connectors will be at a
+ // vertex in the visibility graph, so we need not bother
+ // doing normal line intersection.
+ continue;
+ }
+
+ // No endpoint is shared between these two line segments,
+ // so just calculate normal segment intersection.
+
+ Point cPt;
+ int intersectResult = Avoid::segmentIntersectPoint(
+ a1, a2, b1, b2, &(cPt.x), &(cPt.y));
+
+ if (intersectResult == Avoid::DO_INTERSECT)
+ {
+ if (!polyIsConn &&
+ ((a1 == cPt) || (a2 == cPt) || (b1 == cPt) || (b2 == cPt)))
+ {
+ // XXX: This shouldn't actually happen, because these
+ // points should be added as bends to each line by
+ // splitBranchingSegments(). Thus, lets ignore them.
+ COLA_ASSERT(a1 != cPt);
+ COLA_ASSERT(a2 != cPt);
+ COLA_ASSERT(b1 != cPt);
+ COLA_ASSERT(b2 != cPt);
+ continue;
+ }
+ //db_printf("crossing lines:\n");
+ //db_printf("cPt: %g %g\n", cPt.x, cPt.y);
+ crossingCount += 1;
+ if (crossingPoints)
+ {
+ crossingPoints->insert(cPt);
+ }
+ }
+ }
+ }
+ //db_printf("crossingcount %d %d\n", crossingCount, crossingFlags);
+
+ // Free shared path memory.
+ delete[] c_path;
+ delete[] p_path;
+}
+
+
+//============================================================================
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/connector.h b/src/3rdparty/adaptagrams/libavoid/connector.h
new file mode 100644
index 0000000..7457139
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/connector.h
@@ -0,0 +1,547 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2015 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file connector.h
+//! @brief Contains the interface for the ConnRef class.
+
+
+#ifndef AVOID_CONNECTOR_H
+#define AVOID_CONNECTOR_H
+
+#include <utility>
+#include <list>
+#include <vector>
+
+#include "libavoid/dllexport.h"
+#include "libavoid/vertices.h"
+#include "libavoid/geometry.h"
+#include "libavoid/connend.h"
+
+
+namespace Avoid {
+
+class Router;
+class ConnRef;
+class JunctionRef;
+class ShapeRef;
+typedef std::list<ConnRef *> ConnRefList;
+
+
+//! @brief Describes the type of routing that is performed for each
+//! connector.
+enum ConnType {
+ ConnType_None = 0,
+ //! @brief The connector path will be a shortest-path poly-line that
+ //! routes around obstacles.
+ ConnType_PolyLine = 1,
+ //! @brief The connector path will be a shortest-path orthogonal
+ //! poly-line (only vertical and horizontal line segments) that
+ //! routes around obstacles.
+ ConnType_Orthogonal = 2
+};
+
+//! @brief A checkpoint is a point that the route for a particular connector
+//! must visit. They may optionally be given an arrival/departure
+//! direction.
+//!
+class AVOID_EXPORT Checkpoint
+{
+ public:
+ //! @brief A point that a route must visit.
+ //!
+ //! The connector will be able to enter and leave this checkpoint from
+ //! any direction.
+ //!
+ //! @param[in] p The Point that must be visited.
+ Checkpoint(const Point& p)
+ : point(p),
+ arrivalDirections(ConnDirAll),
+ departureDirections(ConnDirAll)
+ {
+ }
+ //! @brief A point that a route must visit.
+ //!
+ //! The connector will be able to enter and leave this checkpoint from
+ //! the directions specified. Give Avoid::ConnDirAll to specify all
+ //! directions.
+ //!
+ //! @param[in] p The Point that must be visited.
+ //! @param[in] ad Avoid::ConnDirFlags denoting arrival directions for
+ //! the connector portion leading up to this checkpoint.
+ //! @param[in] dd Avoid::ConnDirFlags denoting departure directions
+ //! for the connector portion leading away from this
+ //! checkpoint.
+ Checkpoint(const Point& p, ConnDirFlags ad, ConnDirFlags dd)
+ : point(p),
+ arrivalDirections(ad),
+ departureDirections(dd)
+ {
+ }
+ // Default constructor.
+ Checkpoint()
+ : point(Point()),
+ arrivalDirections(ConnDirAll),
+ departureDirections(ConnDirAll)
+ {
+ }
+
+ Point point;
+ ConnDirFlags arrivalDirections;
+ ConnDirFlags departureDirections;
+};
+
+
+//! @brief The ConnRef class represents a connector object.
+//!
+//! Connectors are a (possible multi-segment) line between two points.
+//! They are routed intelligently so as not to overlap any of the shape
+//! objects in the Router scene.
+//!
+//! Routing penalties can be applied, resulting in more aesthetically pleasing
+//! connector paths with fewer segments or less severe bend-points.
+//!
+//! You can set a function to be called when the connector has been rerouted
+//! and needs to be redrawn. Alternatively, you can query the connector's
+//! needsRepaint() function to determine this manually.
+//!
+//! Usually, it is expected that you would create a ConnRef for each connector
+//! in your diagram and keep that reference in your own connector class.
+//!
+class AVOID_EXPORT ConnRef
+{
+ public:
+ //! @brief Constructs a connector with no endpoints specified.
+ //!
+ //! The constructor requires a valid Router instance. This router
+ //! will take ownership of the connector. Hence, you should not
+ //! call the destructor yourself, but should instead call
+ //! Router::deleteConnector() and the router instance will remove
+ //! and then free the connector's memory.
+ //!
+ //! @note Regarding IDs:
+ //! You can let libavoid manually handle IDs by not specifying
+ //! them. Alternatively, you can specify all IDs yourself, but
+ //! you must be careful to makes sure that each object in the
+ //! scene (shape, connector, cluster, etc) is given a unique,
+ //! positive ID. This uniqueness is checked if assertions are
+ //! enabled, but if not and there are clashes then strange
+ //! things can happen.
+ //!
+ //! @param[in] router The router scene to place the connector into.
+ //! @param[in] id Optionally, a positive integer ID unique
+ //! among all objects.
+ //!
+ ConnRef(Router *router, const unsigned int id = 0);
+ //! @brief Constructs a connector with endpoints specified.
+ //!
+ //! The constructor requires a valid Router instance. This router
+ //! will take ownership of the connector. Hence, you should not
+ //! call the destructor yourself, but should instead call
+ //! Router::deleteConnector() and the router instance will remove
+ //! and then free the connector's memory.
+ //!
+ //! If an ID is not specified, then one will be assigned to the shape.
+ //! If assigning an ID yourself, note that it should be a unique
+ //! positive integer. Also, IDs are given to all objects in a scene,
+ //! so the same ID cannot be given to a shape and a connector for
+ //! example.
+ //!
+ //! @param[in] router The router scene to place the connector into.
+ //! @param[in] id A unique positive integer ID for the connector.
+ //! @param[in] src The source endpoint of the connector.
+ //! @param[in] dst The destination endpoint of the connector.
+ //!
+ ConnRef(Router *router, const ConnEnd& src, const ConnEnd& dst,
+ const unsigned int id = 0);
+
+// To prevent C++ objects from being destroyed in garbage collected languages
+// when the libraries are called from SWIG, we hide the declarations of the
+// destructors and prevent generation of default destructors.
+#ifndef SWIG
+ //! @brief Connector reference destuctor.
+ //!
+ //! Do not call this yourself, instead call
+ //! Router::deleteConnector(). Ownership of this object
+ //! belongs to the router scene.
+ ~ConnRef();
+#endif
+ //! @brief Sets both a new source and destination endpoint for this
+ //! connector.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] srcPoint New source endpoint for the connector.
+ //! @param[in] dstPoint New destination endpoint for the connector.
+ void setEndpoints(const ConnEnd& srcPoint, const ConnEnd& dstPoint);
+
+ //! @brief Sets just a new source endpoint for this connector.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] srcPoint New source endpoint for the connector.
+ void setSourceEndpoint(const ConnEnd& srcPoint);
+
+ //! @brief Sets just a new destination endpoint for this connector.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] dstPoint New destination endpoint for the connector.
+ void setDestEndpoint(const ConnEnd& dstPoint);
+
+ //! @brief Returns the ID of this connector.
+ //! @returns The ID of the connector.
+ unsigned int id(void) const;
+
+ //! @brief Returns a pointer to the router scene this connector is in.
+ //! @returns A pointer to the router scene for this connector.
+ Router *router(void) const;
+
+ //! @brief Returns an indication of whether this connector has a
+ //! new route and thus needs to be repainted.
+ //!
+ //! If the connector has been rerouted and need repainting, the
+ //! displayRoute() method can be called to get a reference to the
+ //! new route.
+ //!
+ //! @returns Returns true if the connector requires repainting, or
+ //! false if it does not.
+ bool needsRepaint(void) const;
+
+ //! @brief Returns a reference to the current raw "debug" route for
+ //! the connector.
+ //!
+ //! This is a raw "debug" shortest path version of the route, where
+ //! each line segment in the route may be made up of multiple collinear
+ //! line segments. It also has no post-processing (i.e., centering,
+ //! nudging apart of overlapping paths, or curving of corners) applied
+ //! to it. A route to display to the user can be obtained by calling
+ //! displayRoute().
+ //!
+ //! @returns The PolyLine route for the connector.
+ const PolyLine& route(void) const;
+
+ //! @brief Returns a reference to the current display version of the
+ //! route for the connector.
+ //!
+ //! The display version of a route has been simplified to collapse all
+ //! collinear line segments into single segments. It also has all
+ //! post-processing applied to the route, including centering, curved
+ //! corners and nudging apart of overlapping segments.
+ //!
+ //! @returns The PolyLine display route for the connector.
+ PolyLine& displayRoute(void);
+
+ //! @brief Sets a callback function that will called to indicate that
+ //! the connector needs rerouting.
+ //!
+ //! The cb function will be called when shapes are added to, removed
+ //! from or moved about on the page. The pointer ptr will be passed
+ //! as an argument to the callback function.
+ //!
+ //! @param[in] cb A pointer to the callback function.
+ //! @param[in] ptr A generic pointer that will be passed to the
+ //! callback function.
+ void setCallback(void (*cb)(void *), void *ptr);
+
+ //! @brief Returns the type of routing performed for this connector.
+ //! @return The type of routing performed.
+ //!
+ ConnType routingType(void) const;
+
+ //! @brief Sets the type of routing to be performed for this
+ //! connector.
+ //!
+ //! If a call to this method changes the current type of routing
+ //! being used for the connector, then it will get rerouted during
+ //! the next processTransaction() call, or immediately if
+ //! transactions are not being used.
+ //!
+ //! @param type The type of routing to be performed.
+ //!
+ void setRoutingType(ConnType type);
+
+ //! @brief Splits a connector in the centre of the segmentNth
+ //! segment and creates a junction point there as well
+ //! as a second connector.
+ //!
+ //! The new junction and connector will be automatically added to
+ //! the router scene. A slight preference will be given to the
+ //! connectors connecting to the junction in the same orientation
+ //! the line segment already existed in.
+ //!
+ //! @return A pair containing pointers to the new JunctionRef and
+ //! ConnRef.
+ std::pair<JunctionRef *, ConnRef *> splitAtSegment(
+ const size_t segmentN);
+
+ //! @brief Allows the user to specify a set of checkpoints that this
+ //! connector will route via.
+ //!
+ //! When routing, the connector will attempt to visit each of the
+ //! points in the checkpoints list in order. It will route from the
+ //! source point to the first checkpoint, to the second checkpoint,
+ //! etc. If a checkpoint is unreachable because it lies inside an
+ //! obstacle, then that checkpoint will be skipped.
+ //!
+ //! @param[in] checkpoints An ordered list of Checkpoints that the
+ //! connector will attempt to route via.
+ void setRoutingCheckpoints(const std::vector<Checkpoint>& checkpoints);
+
+ //! @brief Returns the current set of routing checkpoints for this
+ //! connector.
+ //! @returns The ordered list of Checkpoints that this connector will
+ //! route via.
+ std::vector<Checkpoint> routingCheckpoints(void) const;
+
+ //! @brief Returns ConnEnds specifying what this connector is
+ //! attached to.
+ //!
+ //! This may be useful during hyperedge rerouting. You can check the
+ //! type and properties of the ConnEnd objects to find out what this
+ //! connector is attached to. The ConnEnd::type() will be ConnEndEmpty
+ //! if the connector has not had its endpoints initialised.
+ //!
+ //! @note If the router is using transactions, you might get
+ //! unexpected results if you call this after changing objects
+ //! but before calling Router::processTransaction(). In this
+ //! case changes to ConnEnds for the connector may be queued
+ //! and not yet applied, so you will get old (or empty) values.
+ //!
+ //! @returns A pair of ConnEnd objects specifying what the connector
+ //! is attached to.
+ //!
+ std::pair<ConnEnd, ConnEnd> endpointConnEnds(void) const;
+
+ // @brief Returns the source endpoint vertex in the visibility graph.
+ // @returns The source endpoint vertex.
+ VertInf *src(void) const;
+ // @brief Returns the destination endpoint vertex in the
+ // visibility graph.
+ // @returns The destination endpoint vertex.
+ VertInf *dst(void) const;
+
+ //! @brief Sets a fixed user-specified route for this connector.
+ //!
+ //! libavoid will no longer calculate object-avoiding paths for this
+ //! connector but instead just return the specified route. The path
+ //! of this connector will still be considered for the purpose of
+ //! nudging and routing other non-fixed connectors.
+ //!
+ //! @note This will reset the endpoints of the connector to the two
+ //! ends of the given route, which may cause it to become
+ //! dettached from any shapes or junctions. You can
+ //! alternatively call setFixedExistingRoute() for connectors
+ //! with valid routes in hyperedges that you would like to
+ //! remain attached.
+ //!
+ //! @param[in] route The new fixed route for the connector.
+ //! @sa setFixedExistingRoute()
+ //! @sa clearFixedRoute()
+ //!
+ void setFixedRoute(const PolyLine& route);
+
+ //! @brief Sets a fixed existing route for this connector.
+ //!
+ //! libavoid will no longer calculate object-avoiding paths for this
+ //! connector but instead just return the current exisitng route.
+ //! The path of this connector will still be considered for the
+ //! purpose of nudging and routing other non-fixed connectors.
+ //!
+ //! @note The endpoints of this connector will remain at their current
+ //! positions, even while remaining 'attached' to shapes
+ //! or junctions that move.
+ //!
+ //! @sa setFixedRoute()
+ //! @sa clearFixedRoute()
+ //!
+ void setFixedExistingRoute(void);
+
+ //! @brief Returns whether the connector route is marked as fixed.
+ //!
+ //! @return True if the connector route is fixed, false otherwise.
+ //!
+ bool hasFixedRoute(void) const;
+
+ //! @brief Returns the connector to being automatically routed if it
+ //! was marked as fixed.
+ //!
+ //! @sa setFixedRoute()
+ //!
+ void clearFixedRoute(void);
+
+ void set_route(const PolyLine& route);
+ void calcRouteDist(void);
+ void makeActive(void);
+ void makeInactive(void);
+ VertInf *start(void);
+ void removeFromGraph(void);
+ bool isInitialised(void) const;
+ void makePathInvalid(void);
+ void setHateCrossings(bool value);
+ bool doesHateCrossings(void) const;
+ void setEndpoint(const unsigned int type, const ConnEnd& connEnd);
+ bool setEndpoint(const unsigned int type, const VertID& pointID,
+ Point *pointSuggestion = nullptr);
+ std::vector<Point> possibleDstPinPoints(void) const;
+
+ private:
+ friend class Router;
+ friend class ConnEnd;
+ friend class JunctionRef;
+ friend class ConnRerouteFlagDelegate;
+ friend class HyperedgeImprover;
+ friend struct HyperedgeTreeEdge;
+ friend struct HyperedgeTreeNode;
+ friend class HyperedgeRerouter;
+
+ PolyLine& routeRef(void);
+ void freeRoutes(void);
+ void performCallback(void);
+ bool generatePath(void);
+ void generateCheckpointsPath(std::vector<Point>& path,
+ std::vector<VertInf *>& vertices);
+ void generateStandardPath(std::vector<Point>& path,
+ std::vector<VertInf *>& vertices);
+ void unInitialise(void);
+ void updateEndPoint(const unsigned int type, const ConnEnd& connEnd);
+ void common_updateEndPoint(const unsigned int type, ConnEnd connEnd);
+ void freeActivePins(void);
+ bool getConnEndForEndpointVertex(VertInf *vertex, ConnEnd& connEnd)
+ const;
+ std::pair<Obstacle *, Obstacle *> endpointAnchors(void) const;
+ void outputCode(FILE *fp) const;
+ std::pair<bool, bool> assignConnectionPinVisibility(const bool connect);
+
+
+ Router *m_router;
+ unsigned int m_id;
+ ConnType m_type;
+ bool *m_reroute_flag_ptr;
+ bool m_needs_reroute_flag:1;
+ bool m_false_path:1;
+ bool m_needs_repaint:1;
+ bool m_active:1;
+ bool m_initialised:1;
+ bool m_hate_crossings:1;
+ bool m_has_fixed_route:1;
+ PolyLine m_route;
+ Polygon m_display_route;
+ double m_route_dist;
+ ConnRefList::iterator m_connrefs_pos;
+ VertInf *m_src_vert;
+ VertInf *m_dst_vert;
+ VertInf *m_start_vert;
+ void (*m_callback_func)(void *);
+ void *m_connector;
+ ConnEnd *m_src_connend;
+ ConnEnd *m_dst_connend;
+ std::vector<Checkpoint> m_checkpoints;
+ std::vector<VertInf *> m_checkpoint_vertices;
+};
+
+
+typedef std::pair<Point *, ConnRef *> PtConnPtrPair;
+
+typedef std::vector< PtConnPtrPair > PointRepVector;
+typedef std::list<std::pair<size_t, size_t> > NodeIndexPairLinkList;
+
+class PtOrder
+{
+ public:
+ PtOrder();
+ ~PtOrder();
+ void addPoints(const size_t dim, const PtConnPtrPair& arg1,
+ const PtConnPtrPair& arg2);
+ void addOrderedPoints(const size_t dim, const PtConnPtrPair& innerArg,
+ const PtConnPtrPair& outerArg, bool swapped);
+ int positionFor(const size_t dim, const ConnRef *conn);
+ PointRepVector sortedPoints(const size_t dim);
+ private:
+ size_t insertPoint(const size_t dim, const PtConnPtrPair& point);
+ void sort(const size_t dim);
+
+ // One for each dimension.
+ bool sorted[2];
+ PointRepVector nodes[2];
+ NodeIndexPairLinkList links[2];
+ PointRepVector sortedConnVector[2];
+};
+
+typedef std::map<Avoid::Point,PtOrder> PtOrderMap;
+typedef std::set<Avoid::Point> PointSet;
+
+
+const unsigned int CROSSING_NONE = 0;
+const unsigned int CROSSING_TOUCHES = 1;
+const unsigned int CROSSING_SHARES_PATH = 2;
+const unsigned int CROSSING_SHARES_PATH_AT_END = 4;
+const unsigned int CROSSING_SHARES_FIXED_SEGMENT = 8;
+
+
+typedef std::pair<int, unsigned int> CrossingsInfoPair;
+typedef std::vector<Avoid::Point> PointList;
+typedef std::vector<PointList> SharedPathList;
+
+class ConnectorCrossings
+{
+ public:
+ ConnectorCrossings(Avoid::Polygon& poly, bool polyIsConn,
+ Avoid::Polygon& conn, ConnRef *polyConnRef = nullptr,
+ ConnRef *connConnRef = nullptr);
+ void clear(void);
+ void countForSegment(size_t cIndex, const bool finalSegment);
+
+ Avoid::Polygon& poly;
+ bool polyIsConn;
+ Avoid::Polygon& conn;
+ bool checkForBranchingSegments;
+ ConnRef *polyConnRef;
+ ConnRef *connConnRef;
+
+ unsigned int crossingCount;
+ unsigned int crossingFlags;
+ PointSet *crossingPoints;
+ PtOrderMap *pointOrders;
+ SharedPathList *sharedPaths;
+
+ double firstSharedPathAtEndLength;
+ double secondSharedPathAtEndLength;
+};
+
+extern void splitBranchingSegments(Avoid::Polygon& poly, bool polyIsConn,
+ Avoid::Polygon& conn, const double tolerance = 0);
+extern bool validateBendPoint(VertInf *aInf, VertInf *bInf, VertInf *cInf);
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/connend.cpp b/src/3rdparty/adaptagrams/libavoid/connend.cpp
new file mode 100644
index 0000000..7a5f6c1
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/connend.cpp
@@ -0,0 +1,435 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cstring>
+#include <cmath>
+#include <cstdlib>
+#include <cfloat>
+#include <algorithm>
+
+#include "libavoid/router.h"
+#include "libavoid/connend.h"
+#include "libavoid/connector.h"
+#include "libavoid/connectionpin.h"
+#include "libavoid/junction.h"
+#include "libavoid/shape.h"
+#include "libavoid/debug.h"
+#include "libavoid/graph.h"
+#include "libavoid/visibility.h"
+
+namespace Avoid {
+
+
+ConnEnd::ConnEnd()
+ : m_type(ConnEndEmpty),
+ m_point(Point(0,0)),
+ m_directions(ConnDirAll),
+ m_connection_pin_class_id(CONNECTIONPIN_UNSET),
+ m_anchor_obj(nullptr),
+ m_conn_ref(nullptr),
+ m_active_pin(nullptr)
+{
+}
+
+ConnEnd::ConnEnd(const Point& point)
+ : m_type(ConnEndPoint),
+ m_point(point),
+ m_directions(ConnDirAll),
+ m_connection_pin_class_id(CONNECTIONPIN_UNSET),
+ m_anchor_obj(nullptr),
+ m_conn_ref(nullptr),
+ m_active_pin(nullptr)
+{
+}
+
+
+ConnEnd::ConnEnd(const Point& point, const ConnDirFlags visDirs)
+ : m_type(ConnEndPoint),
+ m_point(point),
+ m_directions(visDirs),
+ m_connection_pin_class_id(CONNECTIONPIN_UNSET),
+ m_anchor_obj(nullptr),
+ m_conn_ref(nullptr),
+ m_active_pin(nullptr)
+{
+}
+
+
+ConnEnd::ConnEnd(ShapeRef *shapeRef, const unsigned int connectionPinClassID)
+ : m_type(ConnEndShapePin),
+ m_point(Point(0,0)),
+ m_directions(ConnDirAll),
+ m_connection_pin_class_id(connectionPinClassID),
+ m_anchor_obj(shapeRef),
+ m_conn_ref(nullptr),
+ m_active_pin(nullptr)
+{
+ COLA_ASSERT(m_anchor_obj != nullptr);
+ COLA_ASSERT(m_connection_pin_class_id > 0);
+
+ m_point = m_anchor_obj->position();
+ COLA_ASSERT(m_connection_pin_class_id != CONNECTIONPIN_UNSET);
+}
+
+
+ConnEnd::ConnEnd(JunctionRef *junctionRef)
+ : m_type(ConnEndJunction),
+ m_directions(ConnDirAll),
+ m_connection_pin_class_id(CONNECTIONPIN_CENTRE),
+ m_anchor_obj(junctionRef),
+ m_conn_ref(nullptr),
+ m_active_pin(nullptr)
+{
+ COLA_ASSERT(m_anchor_obj != nullptr);
+ m_point = m_anchor_obj->position();
+}
+
+
+ConnEnd::~ConnEnd()
+{
+}
+
+
+ConnEndType ConnEnd::type(void) const
+{
+ return m_type;
+}
+
+
+const Point ConnEnd::position(void) const
+{
+ if (m_active_pin) // Attached to a pin!
+ {
+ return m_active_pin->position();
+ }
+ else if (m_anchor_obj)
+ {
+ return m_anchor_obj->position();
+ }
+ else
+ {
+ return m_point;
+ }
+}
+
+
+ConnDirFlags ConnEnd::directions(void) const
+{
+ if (m_active_pin) // Attached to a pin!
+ {
+ return m_active_pin->directions();
+ }
+ else
+ {
+ return m_directions;
+ }
+}
+
+
+ShapeRef *ConnEnd::shape(void) const
+{
+ return dynamic_cast<ShapeRef *> (m_anchor_obj);
+}
+
+
+JunctionRef *ConnEnd::junction(void) const
+{
+ return dynamic_cast<JunctionRef *> (m_anchor_obj);
+}
+
+
+unsigned int ConnEnd::pinClassId(void) const
+{
+ return m_connection_pin_class_id;
+}
+
+
+
+bool ConnEnd::isPinConnection(void) const
+{
+ return (m_type == ConnEndShapePin) || (m_type == ConnEndJunction);
+}
+
+unsigned int ConnEnd::endpointType(void) const
+{
+ COLA_ASSERT(m_conn_ref != nullptr);
+ return (m_conn_ref->m_dst_connend == this) ? VertID::tar : VertID::src;
+}
+
+
+// Marks this ConnEnd as using a particular ShapeConnectionPin.
+void ConnEnd::usePin(ShapeConnectionPin *pin)
+{
+ COLA_ASSERT(m_active_pin == nullptr);
+
+ m_active_pin = pin;
+ if (m_active_pin)
+ {
+ m_active_pin->m_connend_users.insert(this);
+ }
+}
+
+
+// Marks this ConnEnd as using a particular ShapeConnectionPin's vertex.
+void ConnEnd::usePinVertex(VertInf *pinVert)
+{
+ COLA_ASSERT(m_active_pin == nullptr);
+
+ for (ShapeConnectionPinSet::iterator curr =
+ m_anchor_obj->m_connection_pins.begin();
+ curr != m_anchor_obj->m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *currPin = *curr;
+ if (currPin->m_vertex == pinVert)
+ {
+ usePin(currPin);
+ break;
+ }
+ }
+}
+
+
+// Returns a vector of the possible Points for this ConnEnd
+std::vector<Point> ConnEnd::possiblePinPoints(void) const
+{
+ std::vector<Point> points;
+ if (!m_anchor_obj || (m_connection_pin_class_id == CONNECTIONPIN_UNSET))
+ {
+ return points;
+ }
+
+ return m_anchor_obj->possiblePinPoints(m_connection_pin_class_id);
+}
+
+// Marks this ConnEnd as no longer using the active ShapeConnectionPin
+void ConnEnd::freeActivePin(void)
+{
+ if (m_active_pin)
+ {
+ m_active_pin->m_connend_users.erase(this);
+ }
+ m_active_pin = nullptr;
+}
+
+
+// Creates the connection between a connector and a shape/junction.
+void ConnEnd::connect(ConnRef *conn)
+{
+ COLA_ASSERT(isPinConnection());
+ COLA_ASSERT(m_anchor_obj);
+ COLA_ASSERT(m_conn_ref == nullptr);
+
+ m_anchor_obj->addFollowingConnEnd(this);
+ m_conn_ref = conn;
+}
+
+
+// Removes the connection between a connector and a shape/junction.
+void ConnEnd::disconnect(const bool shapeDeleted)
+{
+ if (m_conn_ref == nullptr)
+ {
+ // Not connected.
+ return;
+ }
+
+ m_point = position();
+ m_anchor_obj->removeFollowingConnEnd(this);
+ m_conn_ref = nullptr;
+
+ if (shapeDeleted)
+ {
+ // Turn this into a manual ConnEnd.
+ m_point = position();
+ m_anchor_obj = nullptr;
+ m_type = ConnEndPoint;
+ m_connection_pin_class_id = CONNECTIONPIN_UNSET;
+ }
+}
+
+
+// Assign visibility to a dummy vertex representing all the possible pins
+// for this pinClassId.
+void ConnEnd::assignPinVisibilityTo(VertInf *dummyConnectionVert,
+ VertInf *targetVert)
+{
+ unsigned int validPinCount = 0;
+
+ COLA_ASSERT(m_anchor_obj);
+ COLA_ASSERT(m_connection_pin_class_id != CONNECTIONPIN_UNSET);
+
+ Router *router = m_anchor_obj->router();
+ for (ShapeConnectionPinSet::iterator curr =
+ m_anchor_obj->m_connection_pins.begin();
+ curr != m_anchor_obj->m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *currPin = *curr;
+ if ((currPin->m_class_id == m_connection_pin_class_id) &&
+ (!currPin->m_exclusive || currPin->m_connend_users.empty()))
+ {
+ double routingCost = currPin->m_connection_cost;
+ Point adjTargetPt = targetVert->point - currPin->m_vertex->point;
+ double angle = rotationalAngle(adjTargetPt);
+ bool inVisibilityRange = false;
+
+ if (angle <= 45 || angle >= 315)
+ {
+ if (currPin->directions() & ConnDirRight)
+ {
+ inVisibilityRange = true;
+ }
+ }
+ if (angle >= 45 && angle <= 135)
+ {
+ if (currPin->directions() & ConnDirDown)
+ {
+ inVisibilityRange = true;
+ }
+ }
+ if (angle >= 135 && angle <= 225)
+ {
+ if (currPin->directions() & ConnDirLeft)
+ {
+ inVisibilityRange = true;
+ }
+ }
+ if (angle >= 225 && angle <= 315)
+ {
+ if (currPin->directions() & ConnDirUp)
+ {
+ inVisibilityRange = true;
+ }
+ }
+ if (!inVisibilityRange)
+ {
+ routingCost += router->routingParameter(portDirectionPenalty);
+ }
+
+ if (router->m_allows_orthogonal_routing)
+ {
+ // This has same ID and is either unconnected or not
+ // exclusive, so give it visibility.
+ EdgeInf *edge = new EdgeInf(dummyConnectionVert,
+ currPin->m_vertex, true);
+ // XXX Can't use a zero cost due to assumptions
+ // elsewhere in code.
+ edge->setDist(manhattanDist(dummyConnectionVert->point,
+ currPin->m_vertex->point) +
+ std::max(0.001, routingCost));
+ }
+
+ if (router->m_allows_polyline_routing)
+ {
+ // This has same ID and is either unconnected or not
+ // exclusive, so give it visibility.
+ EdgeInf *edge = new EdgeInf(dummyConnectionVert,
+ currPin->m_vertex, false);
+ // XXX Can't use a zero cost due to assumptions
+ // elsewhere in code.
+ edge->setDist(euclideanDist(dummyConnectionVert->point,
+ currPin->m_vertex->point) +
+ std::max(0.001, routingCost));
+ }
+
+ // Increment the number of valid pins for this ConnEnd connection.
+ validPinCount++;
+ }
+ }
+
+ if (validPinCount == 0)
+ {
+ // There should be at least one pin, otherwise we will have
+ // problems finding connector routes.
+ err_printf("Warning: In ConnEnd::assignPinVisibilityTo():\n"
+ " ConnEnd for connector %d can't connect to shape %d\n"
+ " since it has no pins with class id of %u.\n",
+ (int) m_conn_ref->id(), (int) m_anchor_obj->id(),
+ m_connection_pin_class_id);
+ }
+}
+
+
+std::pair<bool, VertInf *> ConnEnd::getHyperedgeVertex(Router *router) const
+{
+ bool addedVertex = false;
+ VertInf *vertex = nullptr;
+
+ if (m_anchor_obj)
+ {
+ for (ShapeConnectionPinSet::iterator curr =
+ m_anchor_obj->m_connection_pins.begin();
+ curr != m_anchor_obj->m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *currPin = *curr;
+ if ((currPin->m_class_id == m_connection_pin_class_id) &&
+ (!currPin->m_exclusive || currPin->m_connend_users.empty()))
+ {
+ vertex = currPin->m_vertex;
+ }
+ }
+ COLA_ASSERT(vertex != nullptr);
+ }
+ else
+ {
+ VertID id(0, kUnassignedVertexNumber,
+ VertID::PROP_ConnPoint);
+ vertex = new VertInf(router, id, m_point);
+ vertex->visDirections = m_directions;
+ addedVertex = true;
+
+ if (router->m_allows_polyline_routing)
+ {
+ vertexVisibility(vertex, nullptr, true, true);
+ }
+ }
+
+ return std::make_pair(addedVertex, vertex);
+}
+
+
+void ConnEnd::outputCode(FILE *fp, const char *srcDst) const
+{
+ if (junction())
+ {
+ fprintf(fp, " %sPt = ConnEnd(junctionRef%u);\n", srcDst,
+ m_anchor_obj->id());
+ }
+ else if (shape())
+ {
+ fprintf(fp, " %sPt = ConnEnd(shapeRef%u, %u);\n", srcDst,
+ m_anchor_obj->id(), m_connection_pin_class_id);
+ }
+ else
+ {
+ fprintf(fp, " %sPt = ConnEnd(Point(%" PREC "g, %" PREC "g), (ConnDirFlags) %u);\n",
+ srcDst, m_point.x, m_point.y, m_directions);
+ }
+}
+
+
+//============================================================================
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/connend.h b/src/3rdparty/adaptagrams/libavoid/connend.h
new file mode 100644
index 0000000..74f8cbc
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/connend.h
@@ -0,0 +1,267 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file connend.h
+//! @brief Contains the interface for the ConnEnd class.
+
+
+#ifndef AVOID_CONNEND_H
+#define AVOID_CONNEND_H
+
+
+#include <cstdio>
+#include <list>
+#include <vector>
+#include <utility>
+
+#include "libavoid/dllexport.h"
+#include "libavoid/geometry.h"
+
+
+namespace Avoid {
+
+class Obstacle;
+class ShapeRef;
+class JunctionRef;
+class Router;
+class ConnRef;
+class ShapeConnectionPin;
+typedef std::list<ConnRef *> ConnRefList;
+class VertInf;
+
+
+//! @brief Flags that can be passed to the ConnEnd constructor to specify
+//! which sides of a shape this point should have visibility to if
+//! it is located within the shape's area.
+//!
+//! Like SVG, libavoid considers the Y-axis to point downwards, that is,
+//! like screen coordinates the coordinates increase from left-to-right and
+//! also from top-to-bottom.
+//!
+enum ConnDirFlag {
+ ConnDirNone = 0,
+ //! @brief This option specifies the point should be given visibility
+ //! to the top of the shape that it is located within.
+ ConnDirUp = 1,
+ //! @brief This option specifies the point should be given visibility
+ //! to the bottom of the shape that it is located within.
+ ConnDirDown = 2,
+ //! @brief This option specifies the point should be given visibility
+ //! to the left side of the shape that it is located within.
+ ConnDirLeft = 4,
+ //! @brief This option specifies the point should be given visibility
+ //! to the right side of the shape that it is located within.
+ ConnDirRight = 8,
+ //! @brief This option, provided for convenience, specifies the point
+ //! should be given visibility to all four sides of the shape
+ //! that it is located within.
+ ConnDirAll = 15
+};
+//! @brief One or more Avoid::ConnDirFlag options.
+//!
+typedef unsigned int ConnDirFlags;
+
+
+//! @brief Types that describe the kind a connection that a ConnEnd
+//! represents.
+//!
+enum ConnEndType {
+ //! @brief The ConnEnd represents a free-floating point that may or may
+ //! not have visibility in specific directions.
+ ConnEndPoint,
+ //! @brief The ConnEnd attaches to a specific ShapeConnectionPin on a
+ //! shape.
+ ConnEndShapePin,
+ //! @brief The ConnEnd attaches to a junction.
+ ConnEndJunction,
+ //! @brief The ConnEnd is empty and doesn't have any information set.
+ ConnEndEmpty
+};
+
+
+//! @brief The ConnEnd class represents different possible endpoints for
+//! connectors.
+//!
+//! ConnEnds may be free-floating points, points attached to junctions (between
+//! multiple connectors), or points attached to shapes (either to the centre of
+//! the shape or to particular pin positions on the shape).
+//!
+class AVOID_EXPORT ConnEnd
+{
+ public:
+ //! @brief Constructs a ConnEnd from a free-floating point.
+ //!
+ //! @param[in] point The position of the connector endpoint.
+ //!
+ ConnEnd(const Point& point);
+
+ //! @brief Constructs a ConnEnd from a free-floating point as well
+ //! as a set of flags specifying visibility for this point
+ //! if it is located inside a shape.
+ //!
+ //! @param[in] point The position of the connector endpoint.
+ //! @param[in] visDirs One or more Avoid::ConnDirFlag options
+ //! specifying the directions that this point
+ //! should be given visibility if it is inside
+ //! a shape. Currently has no effect if outside
+ //! of shapes.
+ //!
+ ConnEnd(const Point& point, const ConnDirFlags visDirs);
+
+ //! @brief Constructs a ConnEnd attached to one of a particular set of
+ //! connection pins on a shape.
+ //!
+ //! This is the recommended method for connecting to shapes that may
+ //! later be moved or resized and for which you don't want to track
+ //! and specify the connector endpoints yourself. See the
+ //! ShapeConnectionPin documentation for more information.
+ //!
+ //! If you to just connect to the centre of a shape you should just
+ //! create a centre connection pin
+ //! @code
+ //! const unsigned int CENTRE = 1;
+ //! new Avoid::ShapeConnectionPin(shapeRef, CENTRE, Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE);
+ //! @endcode
+ //! and attach to that with
+ //! @code
+ //! ConnEnd(shapeRef, CENTRE);
+ //! @endcode
+ //!
+ //! If a pin with the specified pin class ID doesn't exist then you
+ //! will get a warning and a straight-line path between the source
+ //! and destination endpoints of the connector will be returned
+ //! during routing.
+ //!
+ //! @param[in] shapeRef A pointer to the containing shape's
+ //! ShapeRef.
+ //! @param[in] connectionPinClassID A non-zero integer denoting the
+ //! class ID for the set of pins to
+ //! connect to.
+ //!
+ ConnEnd(ShapeRef *shapeRef, const unsigned int connectionPinClassID);
+
+ //! @brief Constructs a ConnEnd attached to one of the connection
+ //! pins on a junction.
+ //!
+ //! This is the recommended method for connecting to junctions that
+ //! may later be moved. See the ShapeConnectionPin documentation for
+ //! more information.
+ //!
+ //! @param[in] junctionRef A pointer to the containing
+ //! junction's junctionRef.
+ //!
+ ConnEnd(JunctionRef *junctionRef);
+
+
+ //! @brief Returns the kind of connection this ConnEnd represents.
+ //!
+ //! @return The ConnEndType represented by this ConnEnd.
+ //!
+ ConnEndType type(void) const;
+
+ //! @brief Returns the position of this connector endpoint.
+ //!
+ //! @return The position of this connector endpoint.
+ //!
+ const Point position(void) const;
+
+ //! @brief Returns the directions in which this connector endpoint
+ //! should be given visibility.
+ //!
+ //! @return The visibility directions for this connector endpoint.
+ //!
+ ConnDirFlags directions(void) const;
+
+ //! @brief Returns the shape this ConnEnd attaches to, or nullptr.
+ //!
+ //! Will be valid only if type() == ConnEndShapePin.
+ //!
+ //! @return The ShapeRef pointer that the ConnEnd attaches to, or nullptr.
+ //!
+ ShapeRef *shape(void) const;
+
+ //! @brief Returns the junction this ConnEnd attaches to, or nullptr.
+ //!
+ //! Will be valid only if type() == ConnEndJunction.
+ //!
+ //! @return The JunctionRef pointer that the ConnEnd attaches to,
+ //! or nullptr.
+ //!
+ JunctionRef *junction(void) const;
+
+ //! @brief Returns the pin class ID for a ConnEnd attached to a shape.
+ //!
+ //! Will be valid only if type() == ConnEndShapePin.
+ //!
+ //! @return An unsigned int representing the pin class ID for the
+ //! ConnEnd.
+ //!
+ unsigned int pinClassId(void) const;
+
+ ConnEnd();
+ ~ConnEnd();
+ private:
+ friend class Obstacle;
+ friend class JunctionRef;
+ friend class ShapeRef;
+ friend class ConnRef;
+ friend class Router;
+ friend class HyperedgeRerouter;
+ friend class ShapeConnectionPin;
+ friend class HyperedgeImprover;
+ friend class CrossingConnectorsInfo;
+
+ void connect(ConnRef *conn);
+ void disconnect(const bool shapeDeleted = false);
+ void usePin(ShapeConnectionPin *pin);
+ void usePinVertex(VertInf *pinVert);
+ void freeActivePin(void);
+ unsigned int endpointType(void) const;
+ bool isPinConnection(void) const;
+ std::vector<Point> possiblePinPoints(void) const;
+ void assignPinVisibilityTo(VertInf *dummyConnectionVert,
+ VertInf *targetVert);
+ void outputCode(FILE *fp, const char *srcDst) const;
+ std::pair<bool, VertInf *> getHyperedgeVertex(Router *router) const;
+
+ ConnEndType m_type;
+ Point m_point;
+ ConnDirFlags m_directions;
+ unsigned int m_connection_pin_class_id;
+
+ // For referencing ConnEnds
+ Obstacle *m_anchor_obj; // The shape/junction this is attached to.
+ ConnRef *m_conn_ref; // The parent connector.
+
+ // The pin to which the ConnEnd is attached.
+ ShapeConnectionPin *m_active_pin;
+};
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/debug.h b/src/3rdparty/adaptagrams/libavoid/debug.h
new file mode 100644
index 0000000..5f73dcf
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/debug.h
@@ -0,0 +1,100 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2008 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_DEBUG_H
+#define AVOID_DEBUG_H
+
+
+#if defined(_MSC_VER) && defined(USE_ATLTRACE)
+ // Using Microsoft Visual C++ compiler and we want to use ATLTRACE
+ // to send warnings and error messages to a GUI window.
+
+ // Prevent inclusion of min and max macros.
+ #define NOMINMAX
+
+ #include <afx.h>
+#endif
+
+#include <cstdarg>
+#include <cstdio>
+#include <iostream>
+
+
+namespace Avoid {
+
+// db_printf is debugging output for verifying behaviour of the router:
+#ifdef LIBAVOID_DEBUG
+
+ #if defined(_MSC_VER) && defined(USE_ATLTRACE)
+ #define db_printf ATL::AtlTrace
+ #else
+ inline void db_printf(const char *fmt, ...)
+ {
+ va_list ap;
+ va_start(ap, fmt);
+ vfprintf(stdout, fmt, ap);
+ va_end(ap);
+ }
+ #endif
+
+#else
+
+ inline void db_printf(const char *, ...)
+ {
+ }
+
+#endif
+
+// err_printf are critical errors that mean something pretty bad has happened:
+#if defined(_MSC_VER) && defined(USE_ATLTRACE)
+
+ #define err_printf ATL::AtlTrace
+
+#else
+
+ // For other environments we always show these errors.
+ inline void err_printf(const char *fmt, ...)
+ {
+ va_list ap;
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+ }
+
+#endif
+
+}
+
+// Precision of numbers in libavoid SVG debug file. Used in printf
+// strings ("%" PREC "g"), e.g., "%.16g"
+#if defined(HIGH_PRECISION_DEBUG)
+ #define PREC ".16"
+#else
+ #define PREC ""
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/debughandler.h b/src/3rdparty/adaptagrams/libavoid/debughandler.h
new file mode 100644
index 0000000..52d803c
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/debughandler.h
@@ -0,0 +1,138 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+// @file debughandler.h
+// @brief Contains the interface for the DebugHandler class.
+
+#ifndef AVOID_DEBUGHANDLER_H
+#define AVOID_DEBUGHANDLER_H
+
+#include "libavoid/assertions.h"
+#include "libavoid/dllexport.h"
+
+// Add -DDEBUGHANDLER to compile in debug handler with optimisations enabled.
+#ifndef NDEBUG
+ #define DEBUGHANDLER
+#endif
+
+namespace Avoid {
+
+// @brief You can subclass DebugHandler and register an instance with Router
+// to recieve debugging information.
+//
+// @note This is currently intended for internal use.
+//
+class AVOID_EXPORT DebugHandler
+{
+ public:
+ DebugHandler()
+ {
+ }
+
+ virtual ~DebugHandler()
+ {
+ }
+
+ // @brief The obstacles being routed around.
+ //
+ virtual void updateObstacleBoxes(std::vector<Avoid::Box> obstacles)
+ {
+ COLA_UNUSED(obstacles);
+ }
+
+ // @brief An updated connector route. Optionally the ends of a just
+ // updated segment within the route between the indexes index1
+ // and index2.
+ //
+ virtual void updateConnectorRoute(ConnRef *conn, int index1, int index2)
+ {
+ COLA_UNUSED(conn);
+ COLA_UNUSED(index1);
+ COLA_UNUSED(index2);
+ }
+
+ // @brief The current endpoints that a path is being searched for
+ // between src and tar
+ //
+ virtual void beginningSearchWithEndpoints(VertInf *src, VertInf *tar)
+ {
+ COLA_UNUSED(src);
+ COLA_UNUSED(tar);
+ }
+
+ // @brief The current search path.
+ //
+ virtual void updateCurrentSearchPath(Avoid::PolyLine currentPath)
+ {
+ COLA_UNUSED(currentPath);
+ }
+
+ // @brief The current hyperedge endpoints for hyperedge rerouting
+ //
+ virtual void beginningHyperedgeReroutingWithEndpoints(std::set<VertInf *> endpoints)
+ {
+ COLA_UNUSED(endpoints);
+ }
+
+
+ // @brief The Minimum Terminal Spanning Tree for hyperedge rerouting
+ // is being grown with the edge between vertices u and v.
+ //
+ // @param shouldWait Boolean indicating the forest is being grown
+ // with this edge, or otherwise being immediately
+ // repopulated after pruning.
+ //
+ virtual void mtstGrowForestWithEdge(Avoid::VertInf *u, Avoid::VertInf *v, bool shouldWait)
+ {
+ COLA_UNUSED(u);
+ COLA_UNUSED(v);
+ COLA_UNUSED(shouldWait);
+ }
+
+ // @brief The Minimum Terminal Spanning Tree for hyperedge rerouting
+ // is potentiall bridged by the edge between vertices u and v.
+ //
+ virtual void mtstPotentialBridgingEdge(Avoid::VertInf *u, Avoid::VertInf *v)
+ {
+ COLA_UNUSED(u);
+ COLA_UNUSED(v);
+ }
+
+ // @brief The Minimum Terminal Spanning Tree for hyperedge rerouting
+ // is being finalised with the edge between vertices u and v.
+ //
+ // @param isBridge Boolean indicating whether edge was a bridge.
+ //
+ virtual void mtstCommitToEdge(Avoid::VertInf *u, Avoid::VertInf *v, bool isBridge)
+ {
+ COLA_UNUSED(u);
+ COLA_UNUSED(v);
+ COLA_UNUSED(isBridge);
+ }
+};
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/dllexport.h b/src/3rdparty/adaptagrams/libavoid/dllexport.h
new file mode 100644
index 0000000..d8c63d6
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/dllexport.h
@@ -0,0 +1,39 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2012 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_DLLEXPORT_H
+#define AVOID_DLLEXPORT_H
+
+#if defined(_MSC_VER) && !defined(LIBAVOID_NO_DLL)
+ #ifdef LIBAVOID_EXPORTS
+ #define AVOID_EXPORT __declspec(dllexport)
+ #else
+ #define AVOID_EXPORT __declspec(dllimport)
+ #endif
+#else
+ #define AVOID_EXPORT
+#endif
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/doc/description.doc b/src/3rdparty/adaptagrams/libavoid/doc/description.doc
new file mode 100644
index 0000000..8a3655f
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/doc/description.doc
@@ -0,0 +1,73 @@
+/*!
+
+\if LIBAVOID_DOC
+@mainpage libavoid: Object-avoiding orthogonal and polyline connector routing library
+\endif
+
+\if ADAPTAGRAMS_DOC
+@page libavoid libavoid &mdash; Overview
+\endif
+
+libavoid is a cross-platform C++ library providing fast, object-avoiding
+orthogonal and polyline connector routing for use in interactive diagram
+editors.
+
+libavoid is part of the
+<a href="http://www.adaptagrams.org/">Adaptagrams project</a>.
+There are no official releases yet, though the code is stable and
+available from the Adaptagrams
+<a href="https://github.com/mjwybrow/adaptagrams">GitHub
+repository</a>.
+
+The API is documented using Doxygen. The documentation you are currently
+reading can be obtained by running doxygen in the cola or libavoid directory.
+There is also
+a simple <a href="libavoid_example.html">documented example</a> to help you get started.
+
+libavoid is written and maintained by
+<a href="http://users.monash.edu/~mwybrow/">Michael Wybrow</a>,
+a member of <a href="http://ialab.it.monash.edu/">Immersive Analytics Lab</a> at Monash University, Australia.
+
+The algorithms used for the connector routing are described in the following papers. If you use libavoid, please cite the relevant paper.
+- M. Wybrow, K. Marriott, and P.J. Stuckey. Orthogonal connector
+ routing.\n
+ In Proceedings of 17th International Symposium on Graph Drawing
+ (GD '09),\n
+ LNCS 5849, pages 219–231. Spring-Verlag, 2010.
+ [<a href="http://dx.doi.org/10.1007/978-3-642-11805-0_22">DOI</a>]
+ [<a href="http://users.monash.edu/~mwybrow/papers/wybrow-gd-2009.pdf">PDF</a>]
+- M. Wybrow, K. Marriott, and P.J. Stuckey. Incremental connector
+ routing.\n
+ In Proceedings of 13th International Symposium on Graph Drawing
+ (GD '05),\n
+ LNCS 3843, pages 446—457. Springer-Verlag, 2006.
+ [<a href="http://dx.doi.org/10.1007/11618058_40">DOI</a>]
+ [<a href="http://users.monash.edu/~mwybrow/papers/wybrow-gd-2005.pdf">PDF</a>]
+- M. Wybrow, K. Marriott and P.J. Stuckey. Orthogonal hyperedge routing.\n
+ In Proceedings of 7th International Conference on the Theory and Application of Diagrams (Diagrams 2012),\n
+ LNCS (LNAI) 7352, pages 51&ndash;64. Springer-Verlag, 2012.
+ [<a href="http://dx.doi.org/10.1007/978-3-642-31223-6_10">DOI</a>]
+ [<a href="http://users.monash.edu/~mwybrow/papers/wybrow-diagrams-2012.pdf">PDF</a>]
+- K. Marriott, P.J. Stuckey, and M. Wybrow. Seeing Around Corners: Fast Orthogonal Connector Routing.\n
+ In Proceedings of the 8th International Conference on the Theory and Application of Diagrams (Diagrams 2014),\n
+ LNCS 8578, pages 31&ndash;37. Springer-Verlag, 2014.
+ [<a href="http://doi.acm.org/10.1007/978-3-662-44043-8_4">DOI</a>]
+ [<a href="http://users.monash.edu/~mwybrow/papers/marriott-diagrams-2014.pdf">PDF</a>]
+
+libavoid is currently used in the following software:
+- A commercial circuit diagram editor;
+- <a href="http://users.monash.edu/~mwybrow/dunnart/">Dunnart</a>, a prototype research
+ constraint-based diagram editor;
+- <a href="http://www.inkscape.org/">Inkscape</a>, the popular Open
+ Source vector graphics editor;
+- <a href="http://arcadiapathways.sourceforge.net/">Arcadia</a>, a
+ visualisation tool for metabolic pathways;
+- <a href="http://gaphor.sourceforge.net/">Gaphas</a>, an open source diagramming widget for GTK+, written in Python;
+- <a href="http://brlcad.org/">BRL-CAD</a>, Constructive Solid Geometry (CSG) solid modeling system;
+- <a href="http://www.qxorm.com/">QxOrm</a>, a C++ library designed to provide Object Relational Mapping (ORM) feature to C++ users; and
+- <a href="http://www.qxorm.com/">QxEntityEditor</a>, a graphic editor for QxOrm library, providing a graphic way to manage a data model.
+
+
+*/
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/doc/example.doc b/src/3rdparty/adaptagrams/libavoid/doc/example.doc
new file mode 100644
index 0000000..a23933d
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/doc/example.doc
@@ -0,0 +1,122 @@
+
+/*!
+
+@page libavoid_example libavoid &mdash; Documented code example
+
+libavoid is a C++ library. Its code is all within the Avoid namespace.
+
+First, you must create an instance of the router.
+@code
+Avoid::Router *router = new Avoid::Router(Avoid::PolyLineRouting); @endcode
+
+To add a shape (obstacle) to the router, you first create a Avoid::ShapeRef by giving the bounding box of the obstacle. This adds the shape to the router (and cause rerouting of connectors it intersects). It also passes ownership of the shapeRef object to the router instance, though it is still fine for you to keep a reference to it.
+@code
+// Create the ShapeRef:
+Avoid::Rectangle rectangle(Avoid::Point(20.0, 35.0), Avoid::Point(40.0, 12.0));
+Avoid::ShapeRef *shapeRef = new Avoid::ShapeRef(router, rectangle); @endcode
+or
+@code
+Avoid::Polygon shapePoly(3);
+shapePoly.ps[0] = Avoid::Point(1.0, 1.0);
+shapePoly.ps[1] = Avoid::Point(2.5, 1.5);
+shapePoly.ps[2] = Avoid::Point(1.5, 2.5);
+Avoid::ShapeRef *shapeRef = new Avoid::ShapeRef(router, shapePoly); @endcode
+
+The relevant prototypes (all in the Avoid namespace) are as follows. If a shape ID is specified, it should be non-zero and unique among all shapes and connectors.
+@code
+Avoid::Rectangle(const Avoid::Point& topLeft, const Avoid::Point& bottomRight);
+Avoid::Rectangle(const Avoid::Point& centre, const double width, const double height);
+Avoid::ShapeRef(Avoid::Router *router, const Avoid::Polygon& polygon, unsigned int id = 0); @endcode
+
+
+To move or resize a shape already in the router, you do the following:
+@code
+router->moveShape(shapeRef, newPolygon); @endcode
+or
+@code
+double xmove = 20, ymove = 15;
+router->moveShape(shapeRef, xmove, ymove); @endcode
+
+In its default mode the router will queue multiple shape movements and perform the changes to the visibility graph in an optimised order. Thus you make several calls to Avoid::Router::moveShape() for different shapes and then tell the router to process the moves. This tend to be useful in interactive applications where the user may move multiple shapes at once.
+@code
+router->moveShape(shapeRef1, newPolygon1);
+router->moveShape(shapeRef2, newPolygon2);
+router->processTransaction();
+ @endcode
+
+To delete a shape from the router (and reroute connectors that then have a better path) you do the following.
+@code
+router->deleteShape(shapeRef); @endcode
+This will cause the router to free the memory for the shapeRef. You should discard your reference to the shapeRef after this call.
+
+To add a new connector to the router, you do the following:
+@code
+Avoid::ConnEnd srcPt(Avoid::Point(1.2, 0.5));
+Avoid::ConnEnd dstPt(Avoid::Point(3.0, 4.0));
+Avoid::ConnRef *connRef = new Avoid::ConnRef(router, srcPt, dstPt); @endcode
+This passes ownership of the connRef object to the router instance, though it is still fine for you to keep a reference to it.
+
+To remove a connector from the router:
+@code
+router->deleteConnector(connRef); @endcode
+This will cause the router to free the memory for the connRef. You should discard your reference to the connRef after this call.
+
+You can set a function to be called when the connector needs to be redrawn. When called, this function will be passed the pointer given as a second argument to Avoid::ConnRef::setCallback():
+@code
+void connCallback(void *ptr)
+{
+ Avoid::ConnRef *connRef = (Avoid::ConnRef *) ptr;
+ printf("Connector %u needs rerouting!\n", connRef->id());
+}
+connRef->setCallback(connCallback, connRef); @endcode
+
+The callback will be triggered by movement, addition and deletion of shapes, as well as by adjustment of the connector endpoints, or by processing a transaction that includes any of these events. You can check if a connector path has changed, and hence the object requires repainting (say because a better path is available due to a shape being deleted):
+@code
+if (connRef->needsRepaint()) ... @endcode
+
+If you want to trigger the callback for a connector after moving its endpoints (or when it is first created you can do this via:
+@code
+connRef->processTransaction(); @endcode
+
+You can then get the new path as follows:
+
+@code
+const Avoid::PolyLine route = connRef->dispayRoute();
+for (size_t i = 0; i &lt; route.size(); ++i)
+{
+ Avoid::Point point = route.at(i);
+ printf("%f, %f\n", point.x, point.y);
+} @endcode
+
+Obviously the alternative to using the callback mechanism is to iterate through all connectors and check their needsRepaint() value after having called processTransaction().
+
+You can update the endpoints of a connector with:
+@code
+Avoid::ConnEnd newSrcPt(Avoid::Point(6, 3));
+Avoid::ConnEnd newDstPt(Avoid::Point(12, 67));
+connRef->setEndpoints(newSrcPt, newDstPt); @endcode
+or
+@code
+Avoid::ConnEnd newSrcPt(Avoid::Point(6, 3));
+connRef->setSourceEndpoint(newSrcPt);
+
+Avoid::ConnEnd newDstPt(Avoid::Point(6, 3));
+connRef->setDestEndpoint(newDstPt); @endcode
+
+You can also create connection pins on shapes and attach connectors directly to these. Then when you move or resize the shapes, the connector endpoints attached to them will be automatically rerouted.
+
+You can create a connection pin as follows:
+@code
+const unsigned int CENTRE = 1;
+new Avoid::ShapeConnectionPin(shapeRef, CENTRE, Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE); @endcode
+This one connects to the centre of the shape, but the position can be specified anywhere within the shape as a proportion of the shape's width and height.
+
+You can then attach a connector to the connection pin be doing the following:
+@code
+Avoid::ConnEnd newSrcPt(shapeRef, CENTRE);
+connRef->setSourceEndpoint(newSrcPt); @endcode
+
+
+See also a short example: example.cpp in the libavoid/tests directory
+
+*/
diff --git a/src/3rdparty/adaptagrams/libavoid/doc/header.html b/src/3rdparty/adaptagrams/libavoid/doc/header.html
new file mode 100644
index 0000000..d1c7c61
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/doc/header.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>$title</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<style>
+pre {
+ border: dotted 1px #900;
+ padding: 5px;
+ background-color: #ffe;
+}
+a.anchor:hover {
+ text-decoration: none;
+}
+</style>
+</head>
+<body>
diff --git a/src/3rdparty/adaptagrams/libavoid/geometry.cpp b/src/3rdparty/adaptagrams/libavoid/geometry.cpp
new file mode 100644
index 0000000..7f50800
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/geometry.cpp
@@ -0,0 +1,641 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * --------------------------------------------------------------------
+ * Much of the code in this module is based on code published with
+ * and/or described in "Computational Geometry in C" (Second Edition),
+ * Copyright (C) 1998 Joseph O'Rourke <orourke@cs.smith.edu>
+ * --------------------------------------------------------------------
+ * The segmentIntersectPoint function is based on code published and
+ * described in Franklin Antonio, Faster Line Segment Intersection,
+ * Graphics Gems III, p. 199-202, code: p. 500-501.
+ * --------------------------------------------------------------------
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+// For M_PI:
+#define _USE_MATH_DEFINES
+#include <cmath>
+
+#include <limits>
+
+#include "libavoid/graph.h"
+#include "libavoid/geometry.h"
+#include "libavoid/assertions.h"
+
+
+namespace Avoid {
+
+
+// Returns true iff the point c lies on the closed segment ab.
+// To be used when the points are known to be collinear.
+//
+// Based on the code of 'Between'.
+//
+bool inBetween(const Point& a, const Point& b, const Point& c)
+{
+ double epsilon = std::numeric_limits<double>::epsilon();
+
+ // We only call this when we know the points are collinear,
+ // otherwise we should be checking this here.
+ COLA_ASSERT(vecDir(a, b, c, epsilon) == 0);
+
+ if (fabs(a.x - b.x) > epsilon)
+ {
+ // not vertical
+ return (((a.x < c.x) && (c.x < b.x)) ||
+ ((b.x < c.x) && (c.x < a.x)));
+ }
+ else
+ {
+ return (((a.y < c.y) && (c.y < b.y)) ||
+ ((b.y < c.y) && (c.y < a.y)));
+ }
+}
+
+
+// Returns true iff the three points are colinear.
+//
+bool colinear(const Point& a, const Point& b, const Point& c,
+ const double tolerance)
+{
+
+ // Do this a bit more optimally for orthogonal AB line segments.
+ if (a == b)
+ {
+ return true;
+ }
+ else if (a.x == b.x)
+ {
+ return (a.x == c.x);
+ }
+ else if (a.y == b.y)
+ {
+ return (a.y == c.y);
+ }
+
+ // Or use the general case.
+ return (vecDir(a, b, c, tolerance) == 0);
+
+}
+
+
+// Returns true iff the point c lies on the closed segment ab.
+//
+bool pointOnLine(const Point& a, const Point& b, const Point& c,
+ const double tolerance)
+{
+ // Do this a bit more optimally for orthogonal AB line segments.
+ if (a.x == b.x)
+ {
+ return (a.x == c.x) &&
+ (((a.y < c.y) && (c.y < b.y)) ||
+ ((b.y < c.y) && (c.y < a.y)));
+ }
+ else if (a.y == b.y)
+ {
+ return (a.y == c.y) &&
+ (((a.x < c.x) && (c.x < b.x)) ||
+ ((b.x < c.x) && (c.x < a.x)));
+ }
+
+ // Or use the general case.
+ return (vecDir(a, b, c, tolerance) == 0) && inBetween(a, b, c);
+}
+
+
+// Returns true if the segment cd intersects the segment ab, blocking
+// visibility.
+//
+// Based on the code of 'IntersectProp' and 'Intersect'.
+//
+bool segmentIntersect(const Point& a, const Point& b, const Point& c,
+ const Point& d)
+{
+ int ab_c = vecDir(a, b, c);
+ if (ab_c == 0)
+ {
+ return false;
+ }
+
+ int ab_d = vecDir(a, b, d);
+ if (ab_d == 0)
+ {
+ return false;
+ }
+
+ // It's ok for either of the points a or b to be on the line cd,
+ // so we don't have to check the other two cases.
+
+ int cd_a = vecDir(c, d, a);
+ int cd_b = vecDir(c, d, b);
+
+ // Is an intersection if a and b are on opposite sides of cd,
+ // and c and d are on opposite sides of the line ab.
+ //
+ // Note: this is safe even though the textbook warns about it
+ // since, unlike them, our vecDir is equivilent to 'AreaSign'
+ // rather than 'Area2'.
+ return (((ab_c * ab_d) < 0) && ((cd_a * cd_b) < 0));
+}
+
+
+// Returns true if the segment e1-e2 intersects the shape boundary
+// segment s1-s2, blocking visibility.
+//
+bool segmentShapeIntersect(const Point& e1, const Point& e2, const Point& s1,
+ const Point& s2, bool& seenIntersectionAtEndpoint)
+{
+ if (segmentIntersect(e1, e2, s1, s2))
+ {
+ // Basic intersection of segments.
+ return true;
+ }
+ else if ( (((s2 == e1) || pointOnLine(s1, s2, e1)) &&
+ (vecDir(s1, s2, e2) != 0))
+ ||
+ (((s2 == e2) || pointOnLine(s1, s2, e2)) &&
+ (vecDir(s1, s2, e1) != 0)) )
+ {
+ // Segments intersect at the endpoint of one of the segments. We
+ // allow this once, but the second one blocks visibility. Otherwise
+ // shapes butted up against each other could have visibility through
+ // shapes.
+ if (seenIntersectionAtEndpoint)
+ {
+ return true;
+ }
+ seenIntersectionAtEndpoint = true;
+ }
+ return false;
+}
+
+
+// Returns true iff the point p in a valid region that can contain
+// shortest paths. a0, a1, a2 are ordered vertices of a shape.
+//
+// Based on the code of 'InCone'.
+//
+bool inValidRegion(bool IgnoreRegions, const Point& a0, const Point& a1,
+ const Point& a2, const Point& b)
+{
+ // r is a0--a1
+ // s is a1--a2
+
+ int rSide = vecDir(b, a0, a1);
+ int sSide = vecDir(b, a1, a2);
+
+ bool rOutOn = (rSide <= 0);
+ bool sOutOn = (sSide <= 0);
+
+ bool rOut = (rSide < 0);
+ bool sOut = (sSide < 0);
+
+ if (vecDir(a0, a1, a2) > 0)
+ {
+ // Convex at a1:
+ //
+ // !rO rO
+ // sO sO
+ //
+ // ---s---+
+ // |
+ // !rO r rO
+ // !sO | !sO
+ //
+ //
+ if (IgnoreRegions)
+ {
+ return (rOutOn && !sOut) || (!rOut && sOutOn);
+ }
+ return (rOutOn || sOutOn);
+ }
+ else
+ {
+ // Concave at a1:
+ //
+ // !rO rO
+ // !sO !sO
+ //
+ // +---s---
+ // |
+ // !rO r rO
+ // sO | sO
+ //
+ //
+ return (IgnoreRegions ? false : (rOutOn && sOutOn));
+ }
+}
+
+
+// Gives the side of a corner that a point lies on:
+// 1 anticlockwise
+// -1 clockwise
+// e.g. /|s2
+// /s3 -1 / |
+// / / |
+// 1 |s2 -1 / 1 | -1
+// | / |
+// |s1 s3/ |s1
+//
+int cornerSide(const Point &c1, const Point &c2, const Point &c3,
+ const Point& p)
+{
+ int s123 = vecDir(c1, c2, c3);
+ int s12p = vecDir(c1, c2, p);
+ int s23p = vecDir(c2, c3, p);
+
+ if (s123 == 1)
+ {
+ if ((s12p >= 0) && (s23p >= 0))
+ {
+ return 1;
+ }
+ return -1;
+ }
+ else if (s123 == -1)
+ {
+ if ((s12p <= 0) && (s23p <= 0))
+ {
+ return -1;
+ }
+ return 1;
+ }
+
+ // c1-c2-c3 are collinear, so just return vecDir from c1-c2
+ return s12p;
+}
+
+
+// Returns the Euclidean distance between points a and b.
+//
+double euclideanDist(const Point& a, const Point& b)
+{
+ double xdiff = a.x - b.x;
+ double ydiff = a.y - b.y;
+
+ return sqrt((xdiff * xdiff) + (ydiff * ydiff));
+}
+
+// Returns the Manhattan distance between points a and b.
+//
+double manhattanDist(const Point& a, const Point& b)
+{
+ return fabs(a.x - b.x) + fabs(a.y - b.y);
+}
+
+
+// Returns the Euclidean distance between points a and b.
+//
+double dist(const Point& a, const Point& b)
+{
+ double xdiff = a.x - b.x;
+ double ydiff = a.y - b.y;
+
+ return sqrt((xdiff * xdiff) + (ydiff * ydiff));
+}
+
+// Returns the total length of all line segments in the polygon
+double totalLength(const Polygon& poly)
+{
+ double l = 0;
+ for (size_t i = 1; i < poly.size(); ++i)
+ {
+ l += dist(poly.ps[i-1], poly.ps[i]);
+ }
+ return l;
+}
+
+// Uses the dot-product rule to find the angle (radians) between ab and bc
+double angle(const Point& a, const Point& b, const Point& c)
+{
+ double ux = b.x - a.x,
+ uy = b.y - a.y,
+ vx = c.x - b.x,
+ vy = c.y - b.y,
+ lu = sqrt(ux*ux+uy*uy),
+ lv = sqrt(vx*vx+vy*vy),
+ udotv = ux * vx + uy * vy,
+ costheta = udotv / (lu * lv);
+ return acos(costheta);
+}
+
+// Returns true iff the point q is inside (or on the edge of) the
+// polygon argpoly.
+//
+// This is a fast version that only works for convex shapes. The
+// other version (inPolyGen) is more general.
+//
+bool inPoly(const Polygon& poly, const Point& q, bool countBorder)
+{
+ size_t n = poly.size();
+ const std::vector<Point>& P = poly.ps;
+ bool onBorder = false;
+ for (size_t i = 0; i < n; i++)
+ {
+ // point index; i1 = i-1 mod n
+ size_t prev = (i + n - 1) % n;
+ int dir = vecDir(P[prev], P[i], q);
+ if (dir == -1)
+ {
+ // Point is outside
+ return false;
+ }
+ // Record if point was on a boundary.
+ onBorder |= (dir == 0);
+ }
+ if (!countBorder && onBorder)
+ {
+ return false;
+ }
+ return true;
+}
+
+
+// Returns true iff the point q is inside (or on the edge of) the
+// polygon argpoly.
+//
+// Based on the code of 'InPoly'.
+//
+bool inPolyGen(const PolygonInterface& argpoly, const Point& q)
+{
+ // Numbers of right and left edge/ray crossings.
+ int Rcross = 0;
+ int Lcross = 0;
+
+ // Copy the argument polygon
+ Polygon poly = argpoly;
+ std::vector<Point>& P = poly.ps;
+ size_t n = poly.size();
+
+ // Shift so that q is the origin. This is done for pedagogical clarity.
+ for (size_t i = 0; i < n; ++i)
+ {
+ P[i].x = P[i].x - q.x;
+ P[i].y = P[i].y - q.y;
+ }
+
+ // For each edge e=(i-1,i), see if crosses ray.
+ for (size_t i = 0; i < n; ++i)
+ {
+ // First see if q=(0,0) is a vertex.
+ if ((P[i].x == 0) && (P[i].y == 0))
+ {
+ // We count a vertex as inside.
+ return true;
+ }
+
+ // point index; i1 = i-1 mod n
+ size_t i1 = ( i + n - 1 ) % n;
+
+ // if e "straddles" the x-axis...
+ // The commented-out statement is logically equivalent to the one
+ // following.
+ // if( ((P[i].y > 0) && (P[i1].y <= 0)) ||
+ // ((P[i1].y > 0) && (P[i].y <= 0)) )
+
+ if ((P[i].y > 0) != (P[i1].y > 0))
+ {
+ // e straddles ray, so compute intersection with ray.
+ double x = (P[i].x * P[i1].y - P[i1].x * P[i].y)
+ / (P[i1].y - P[i].y);
+
+ // crosses ray if strictly positive intersection.
+ if (x > 0)
+ {
+ Rcross++;
+ }
+ }
+
+ // if e straddles the x-axis when reversed...
+ // if( ((P[i].y < 0) && (P[i1].y >= 0)) ||
+ // ((P[i1].y < 0) && (P[i].y >= 0)) )
+
+ if ((P[i].y < 0) != (P[i1].y < 0))
+ {
+ // e straddles ray, so compute intersection with ray.
+ double x = (P[i].x * P[i1].y - P[i1].x * P[i].y)
+ / (P[i1].y - P[i].y);
+
+ // crosses ray if strictly positive intersection.
+ if (x < 0)
+ {
+ Lcross++;
+ }
+ }
+ }
+
+ // q on the edge if left and right cross are not the same parity.
+ if ( (Rcross % 2) != (Lcross % 2) )
+ {
+ // We count the edge as inside.
+ return true;
+ }
+
+ // Inside iff an odd number of crossings.
+ if ((Rcross % 2) == 1)
+ {
+ return true;
+ }
+
+ // Outside.
+ return false;
+}
+
+
+
+// Line Segment Intersection
+// Original code by Franklin Antonio
+//
+// The SAME_SIGNS macro assumes arithmetic where the exclusive-or
+// operation will work on sign bits. This works for twos-complement,
+// and most other machine arithmetic.
+#define SAME_SIGNS( a, b ) \
+ (((long) ((unsigned long) a ^ (unsigned long) b)) >= 0 )
+//
+int segmentIntersectPoint(const Point& a1, const Point& a2,
+ const Point& b1, const Point& b2, double *x, double *y)
+{
+ double Ax,Bx,Cx,Ay,By,Cy,d,e,f,num;
+ double x1lo,x1hi,y1lo,y1hi;
+
+ Ax = a2.x - a1.x;
+ Bx = b1.x - b2.x;
+
+ // X bound box test:
+ if (Ax < 0)
+ {
+ x1lo = a2.x;
+ x1hi = a1.x;
+ }
+ else
+ {
+ x1hi = a2.x;
+ x1lo = a1.x;
+ }
+ if (Bx > 0)
+ {
+ if (x1hi < b2.x || b1.x < x1lo) return DONT_INTERSECT;
+ }
+ else
+ {
+ if (x1hi < b1.x || b2.x < x1lo) return DONT_INTERSECT;
+ }
+
+ Ay = a2.y - a1.y;
+ By = b1.y - b2.y;
+
+ // Y bound box test:
+ if (Ay < 0)
+ {
+ y1lo = a2.y;
+ y1hi = a1.y;
+ }
+ else
+ {
+ y1hi = a2.y;
+ y1lo = a1.y;
+ }
+ if (By > 0)
+ {
+ if (y1hi < b2.y || b1.y < y1lo) return DONT_INTERSECT;
+ }
+ else
+ {
+ if (y1hi < b1.y || b2.y < y1lo) return DONT_INTERSECT;
+ }
+
+ Cx = a1.x - b1.x;
+ Cy = a1.y - b1.y;
+ // alpha numerator:
+ d = By*Cx - Bx*Cy;
+ // Both denominator:
+ f = Ay*Bx - Ax*By;
+ // alpha tests:
+ if (f > 0)
+ {
+ if (d < 0 || d > f) return DONT_INTERSECT;
+ }
+ else
+ {
+ if (d > 0 || d < f) return DONT_INTERSECT;
+ }
+
+ // beta numerator:
+ e = Ax*Cy - Ay*Cx;
+ // beta tests:
+ if (f > 0)
+ {
+ if (e < 0 || e > f) return DONT_INTERSECT;
+ }
+ else
+ {
+ if (e > 0 || e < f) return DONT_INTERSECT;
+ }
+
+ // compute intersection coordinates:
+
+ if (f == 0) return PARALLEL;
+
+ // Numerator:
+ num = d*Ax;
+ // Intersection X:
+ *x = a1.x + (num) / f;
+
+ num = d*Ay;
+ // Intersection Y:
+ *y = a1.y + (num) / f;
+
+ return DO_INTERSECT;
+}
+
+
+// Line Segment Intersection
+// Original code by Franklin Antonio
+//
+int rayIntersectPoint(const Point& a1, const Point& a2,
+ const Point& b1, const Point& b2, double *x, double *y)
+{
+ double Ax,Bx,Cx,Ay,By,Cy,d,f,num;
+
+ Ay = a2.y - a1.y;
+ By = b1.y - b2.y;
+ Ax = a2.x - a1.x;
+ Bx = b1.x - b2.x;
+
+ Cx = a1.x - b1.x;
+ Cy = a1.y - b1.y;
+ // alpha numerator:
+ d = By*Cx - Bx*Cy;
+ // Both denominator:
+ f = Ay*Bx - Ax*By;
+
+ // compute intersection coordinates:
+
+ if (f == 0) return PARALLEL;
+
+ // Numerator:
+ num = d*Ax;
+ // Intersection X:
+ *x = a1.x + (num) / f;
+
+ num = d*Ay;
+ // Intersection Y:
+ *y = a1.y + (num) / f;
+
+ return DO_INTERSECT;
+}
+
+// Returns the rotationalAngle, between 0 and 360, of this point from (0,0).
+//
+double rotationalAngle(const Point& p)
+{
+ if (p.y == 0)
+ {
+ return ((p.x < 0) ? 180 : 0);
+ }
+ else if (p.x == 0)
+ {
+ return ((p.y < 0) ? 270 : 90);
+ }
+
+ double ang = atan(p.y / p.x);
+ ang = (ang * 180) / M_PI;
+
+ if (p.x < 0)
+ {
+ ang += 180;
+ }
+ else if (p.y < 0)
+ {
+ ang += 360;
+ }
+ COLA_ASSERT(ang >= 0);
+ COLA_ASSERT(ang <= 360);
+
+ return ang;
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/geometry.h b/src/3rdparty/adaptagrams/libavoid/geometry.h
new file mode 100644
index 0000000..47f1199
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/geometry.h
@@ -0,0 +1,129 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * --------------------------------------------------------------------
+ * Much of the code in this module is based on code published with
+ * and/or described in "Computational Geometry in C" (Second Edition),
+ * Copyright (C) 1998 Joseph O'Rourke <orourke@cs.smith.edu>
+ * --------------------------------------------------------------------
+ * The segmentIntersectPoint function is based on code published and
+ * described in Franklin Antonio, Faster Line Segment Intersection,
+ * Graphics Gems III, p. 199-202, code: p. 500-501.
+ * --------------------------------------------------------------------
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_GEOMETRY_H
+#define AVOID_GEOMETRY_H
+
+#include "libavoid/geomtypes.h"
+#include "libavoid/assertions.h"
+
+namespace Avoid {
+
+
+extern double euclideanDist(const Point& a, const Point& b);
+extern double manhattanDist(const Point& a, const Point& b);
+extern double totalLength(const Polygon& poly);
+extern double angle(const Point& a, const Point& b, const Point& c);
+extern bool segmentIntersect(const Point& a, const Point& b,
+ const Point& c, const Point& d);
+extern bool segmentShapeIntersect(const Point& e1, const Point& e2,
+ const Point& s1, const Point& s2, bool& seenIntersectionAtEndpoint);
+extern bool inPoly(const Polygon& poly, const Point& q, bool countBorder = true);
+extern bool inPolyGen(const PolygonInterface& poly, const Point& q);
+extern bool inValidRegion(bool IgnoreRegions, const Point& a0,
+ const Point& a1, const Point& a2, const Point& b);
+extern int cornerSide(const Point &c1, const Point &c2, const Point &c3,
+ const Point& p);
+extern bool pointOnLine(const Point& a, const Point& b, const Point& c,
+ const double tolerance = 0.0);
+extern bool colinear(const Point& a, const Point& b, const Point& c,
+ const double tolerance = 0.0);
+// To be used only when the points are known to be colinear.
+extern bool inBetween(const Point& a, const Point& b, const Point& c);
+
+
+// Direction from vector.
+// Looks at the position of point c from the directed segment ab and
+// returns the following:
+// 1 counterclockwise
+// 0 collinear
+// -1 clockwise
+//
+// Based on the code of 'AreaSign'.
+//
+// The 'maybeZero' argument can be used to adjust the tolerance of the
+// function. It will be most accurate when 'maybeZero' == 0.0, the default.
+//
+static inline int vecDir(const Point& a, const Point& b, const Point& c,
+ const double maybeZero = 0.0)
+{
+ COLA_ASSERT(maybeZero >= 0);
+
+ double area2 = ((b.x - a.x) * (c.y - a.y)) -
+ ((c.x - a.x) * (b.y - a.y));
+
+ if (area2 < (-maybeZero))
+ {
+ return -1;
+ }
+ else if (area2 > maybeZero)
+ {
+ return 1;
+ }
+ return 0;
+}
+
+// Finds the projection point of (a,b) onto (a,c)
+static inline Point projection(const Point& a, const Point& b, const Point& c)
+{
+ double ux = c.x - a.x,
+ uy = c.y - a.y,
+ vx = b.x - a.x,
+ vy = b.y - a.y,
+ scalarProj = ux * vx + uy * vy;
+ scalarProj /= ux * ux + uy * uy;
+ Point p;
+ p.x = scalarProj * ux + a.x;
+ p.y = scalarProj * uy + a.y;
+ return p;
+}
+
+// Line Segment Intersection
+// Original code by Franklin Antonio
+//
+static const int DONT_INTERSECT = 0;
+static const int DO_INTERSECT = 1;
+static const int PARALLEL = 3;
+extern int segmentIntersectPoint(const Point& a1, const Point& a2,
+ const Point& b1, const Point& b2, double *x, double *y);
+extern int rayIntersectPoint(const Point& a1, const Point& a2,
+ const Point& b1, const Point& b2, double *x, double *y);
+extern double rotationalAngle(const Point& p);
+
+
+}
+
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/geomtypes.cpp b/src/3rdparty/adaptagrams/libavoid/geomtypes.cpp
new file mode 100644
index 0000000..4987834
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/geomtypes.cpp
@@ -0,0 +1,761 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <cmath>
+#include <cfloat>
+#include <cstdlib>
+#include <algorithm>
+
+#include "libavoid/geomtypes.h"
+#include "libavoid/shape.h"
+#include "libavoid/router.h"
+#include "libavoid/assertions.h"
+
+
+namespace Avoid
+{
+
+
+Point::Point() :
+ id(0),
+ vn(kUnassignedVertexNumber)
+{
+}
+
+
+Point::Point(const double xv, const double yv) :
+ x(xv),
+ y(yv),
+ id(0),
+ vn(kUnassignedVertexNumber)
+{
+}
+
+
+bool Point::operator==(const Point& rhs) const
+{
+ if ((x == rhs.x) && (y == rhs.y))
+ {
+ return true;
+ }
+ return false;
+}
+
+
+bool Point::operator!=(const Point& rhs) const
+{
+ if ((x != rhs.x) || (y != rhs.y))
+ {
+ return true;
+ }
+ return false;
+}
+
+
+bool Point::equals(const Point& rhs, double epsilon) const
+{
+ if ( (fabs(x - rhs.x) < epsilon) && (fabs(y - rhs.y) < epsilon) )
+ {
+ return true;
+ }
+ return false;
+}
+
+
+// Just defined to allow std::set<Point>. Not particularly meaningful!
+bool Point::operator<(const Point& rhs) const
+{
+ if (x == rhs.x)
+ {
+ return (y < rhs.y);
+ }
+ return (x < rhs.x);
+}
+
+
+double& Point::operator[](const size_t dimension)
+{
+ COLA_ASSERT((dimension == 0) || (dimension == 1));
+ return ((dimension == 0) ? x : y);
+}
+
+
+const double& Point::operator[](const size_t dimension) const
+{
+ COLA_ASSERT((dimension == 0) || (dimension == 1));
+ return ((dimension == 0) ? x : y);
+}
+
+Point Point::operator+(const Point& rhs) const
+{
+ return Point(x + rhs.x, y + rhs.y);
+}
+
+
+Point Point::operator-(const Point& rhs) const
+{
+ return Point(x - rhs.x, y - rhs.y);
+}
+
+
+ReferencingPolygon::ReferencingPolygon(const Polygon& poly, const Router *router)
+ : PolygonInterface(),
+ _id(poly._id),
+ psRef(poly.size()),
+ psPoints(poly.size())
+{
+ COLA_ASSERT(router != nullptr);
+ for (size_t i = 0; i < poly.size(); ++i)
+ {
+ if (poly.ps[i].id == 0)
+ {
+ // Can't be referenced, so just make a copy of the point.
+ psRef[i] = std::make_pair((Polygon *) nullptr,
+ kUnassignedVertexNumber);
+ psPoints[i] = poly.ps[i];
+ }
+ else
+ {
+ const Polygon *polyPtr = nullptr;
+ for (ObstacleList::const_iterator sh = router->m_obstacles.begin();
+ sh != router->m_obstacles.end(); ++sh)
+ {
+ if ((*sh)->id() == poly.ps[i].id)
+ {
+ const Polygon& poly = (*sh)->polygon();
+ polyPtr = &poly;
+ break;
+ }
+ }
+ COLA_ASSERT(polyPtr != nullptr);
+ psRef[i] = std::make_pair(polyPtr, poly.ps[i].vn);
+ }
+ }
+}
+
+
+ReferencingPolygon::ReferencingPolygon()
+ : PolygonInterface()
+{
+ clear();
+}
+
+
+void ReferencingPolygon::clear(void)
+{
+ psRef.clear();
+ psPoints.clear();
+}
+
+
+bool ReferencingPolygon::empty(void) const
+{
+ return psRef.empty();
+}
+
+
+size_t ReferencingPolygon::size(void) const
+{
+ return psRef.size();
+}
+
+
+int ReferencingPolygon::id(void) const
+{
+ return _id;
+}
+
+
+const Point& ReferencingPolygon::at(size_t index) const
+{
+ COLA_ASSERT(index < size());
+
+ if (psRef[index].first != nullptr)
+ {
+ const Polygon& poly = *(psRef[index].first);
+ unsigned short poly_index = psRef[index].second;
+ COLA_ASSERT(poly_index < poly.size());
+
+ return poly.ps[poly_index];
+ }
+ else
+ {
+ return psPoints[index];
+ }
+}
+
+
+Box PolygonInterface::offsetBoundingBox(double offset) const
+{
+ Box bBox;
+ bBox.min.x = DBL_MAX;
+ bBox.min.y = DBL_MAX;
+ bBox.max.x = -DBL_MAX;
+ bBox.max.y = -DBL_MAX;
+
+ for (size_t i = 0; i < size(); ++i)
+ {
+ bBox.min.x = std::min(bBox.min.x, at(i).x);
+ bBox.min.y = std::min(bBox.min.y, at(i).y);
+ bBox.max.x = std::max(bBox.max.x, at(i).x);
+ bBox.max.y = std::max(bBox.max.y, at(i).y);
+ }
+
+ // Add buffer space.
+ bBox.min.x -= offset;
+ bBox.min.y -= offset;
+ bBox.max.x += offset;
+ bBox.max.y += offset;
+
+ return bBox;
+}
+
+double Box::length(size_t dimension) const
+{
+ if (dimension == 0)
+ {
+ return (max.x - min.x);
+ }
+ return (max.y - min.y);
+}
+
+double Box::width(void) const
+{
+ return (max.x - min.x);
+}
+
+double Box::height(void) const
+{
+ return (max.y - min.y);
+}
+
+Polygon::Polygon()
+ : PolygonInterface(),
+ _id(0)
+{
+ clear();
+}
+
+
+Polygon::Polygon(const int pn)
+ : PolygonInterface(),
+ _id(0),
+ ps(pn)
+{
+}
+
+
+Polygon::Polygon(const PolygonInterface& poly)
+ : PolygonInterface(),
+ _id(poly.id()),
+ ps(poly.size())
+{
+ for (size_t i = 0; i < poly.size(); ++i)
+ {
+ ps[i] = poly.at(i);
+ }
+}
+
+
+Polygon PolygonInterface::boundingRectPolygon(void) const
+{
+ Box boundingBox = offsetBoundingBox(0.0);
+
+ return Rectangle(boundingBox.min, boundingBox.max);
+}
+
+static Point unitNormalForEdge(const Point &pt1, const Point &pt2)
+{
+ if (pt2 == pt1)
+ {
+ return Point(0, 0);
+ }
+ double dx = pt2.x - pt1.x;
+ double dy = pt2.y - pt1.y;
+ double f = 1.0 / std::sqrt((dx * dx) + (dy * dy));
+ dx *= f;
+ dy *= f;
+ return Point(dy, -dx);
+}
+
+Polygon PolygonInterface::offsetPolygon(double offset) const
+{
+ Polygon newPoly;
+ newPoly._id = id();
+ if (offset == 0)
+ {
+ for (size_t i = 0; i < size(); ++i)
+ {
+ newPoly.ps.push_back(at(i));
+ }
+ return newPoly;
+ }
+
+ size_t numOfEdges = size();
+ std::vector<Vector> normals(numOfEdges);
+ for (size_t i = 0; i < numOfEdges; ++i)
+ {
+ normals[i] = unitNormalForEdge(at(i), at((i + 1) % numOfEdges));
+ }
+
+ size_t j = numOfEdges - 1;
+ for (size_t i = 0; i < numOfEdges; ++i)
+ {
+ double R = 1 + ((normals[i].x * normals[j].x) +
+ (normals[i].y * normals[j].y));
+ if (((normals[j].x * normals[i].y) - (normals[i].x * normals[j].y)) *
+ offset >= 0)
+ {
+ double q = offset / R;
+ Point pt = Point(at(i).x + (normals[j].x + normals[i].x) * q,
+ at(i).y + (normals[j].y + normals[i].y) * q);
+
+ pt.id = id();
+ pt.vn = newPoly.size();
+ newPoly.ps.push_back(pt);
+ }
+ else
+ {
+ Point pt1 = Point(at(i).x + normals[j].x * offset,
+ at(i).y + normals[j].y * offset);
+ Point pt2 = at(i);
+ Point pt3 = Point(at(i).x + normals[i].x * offset,
+ at(i).y + normals[i].y * offset);
+
+ pt1.id = id();
+ pt1.vn = newPoly.size();
+ newPoly.ps.push_back(pt1);
+
+ pt2.id = id();
+ pt2.vn = newPoly.size();
+ newPoly.ps.push_back(pt2);
+
+ pt3.id = id();
+ pt3.vn = newPoly.size();
+ newPoly.ps.push_back(pt3);
+ }
+ j = i;
+ }
+
+ return newPoly;
+}
+
+void Polygon::clear(void)
+{
+ ps.clear();
+ ts.clear();
+}
+
+
+bool Polygon::empty(void) const
+{
+ return ps.empty();
+}
+
+
+size_t Polygon::size(void) const
+{
+ return ps.size();
+}
+
+
+int Polygon::id(void) const
+{
+ return _id;
+}
+
+
+const Point& Polygon::at(size_t index) const
+{
+ COLA_ASSERT(index < size());
+
+ return ps[index];
+}
+
+void Polygon::setPoint(size_t index, const Point& point)
+{
+ COLA_ASSERT(index < size());
+
+ ps[index] = point;
+}
+
+
+static const unsigned int SHORTEN_NONE = 0;
+static const unsigned int SHORTEN_START = 1;
+static const unsigned int SHORTEN_END = 2;
+static const unsigned int SHORTEN_BOTH = SHORTEN_START | SHORTEN_END;
+
+// shorten_line():
+// Given the two endpoints of a line segment, this function adjusts the
+// endpoints of the line to shorten the line by shorten_length at either
+// or both ends.
+//
+static void shorten_line(double& x1, double& y1, double& x2, double& y2,
+ const unsigned int mode, const double shorten_length)
+{
+ if (mode == SHORTEN_NONE)
+ {
+ return;
+ }
+
+ double rise = y1 - y2;
+ double run = x1 - x2;
+ double disty = fabs(rise);
+ double distx = fabs(run);
+
+ // Handle case where shorten length is greater than the length of the
+ // line segment.
+ if ((mode == SHORTEN_BOTH) &&
+ (((distx > disty) && ((shorten_length * 2) > distx)) ||
+ ((disty >= distx) && ((shorten_length * 2) > disty))))
+ {
+ x1 = x2 = x1 - (run / 2);
+ y1 = y2 = y1 - (rise / 2);
+ return;
+ }
+ else if ((mode == SHORTEN_START) &&
+ (((distx > disty) && (shorten_length > distx)) ||
+ ((disty >= distx) && (shorten_length > disty))))
+ {
+ x1 = x2;
+ y1 = y2;
+ return;
+ }
+ else if ((mode == SHORTEN_END) &&
+ (((distx > disty) && (shorten_length > distx)) ||
+ ((disty >= distx) && (shorten_length > disty))))
+ {
+ x2 = x1;
+ y2 = y1;
+ return;
+ }
+
+ // Handle orthogonal line segments.
+ if (x1 == x2)
+ {
+ // Vertical
+ int sign = (y1 < y2) ? 1: -1;
+
+ if (mode & SHORTEN_START)
+ {
+ y1 += (sign * shorten_length);
+ }
+ if (mode & SHORTEN_END)
+ {
+ y2 -= (sign * shorten_length);
+ }
+ return;
+ }
+ else if (y1 == y2)
+ {
+ // Horizontal
+ int sign = (x1 < x2) ? 1: -1;
+
+ if (mode & SHORTEN_START)
+ {
+ x1 += (sign * shorten_length);
+ }
+ if (mode & SHORTEN_END)
+ {
+ x2 -= (sign * shorten_length);
+ }
+ return;
+ }
+
+ int xpos = (x1 < x2) ? -1 : 1;
+ int ypos = (y1 < y2) ? -1 : 1;
+
+ double tangent = rise / run;
+
+ if (mode & SHORTEN_END)
+ {
+ if (disty > distx)
+ {
+ y2 += shorten_length * ypos;
+ x2 += shorten_length * ypos * (1 / tangent);
+ }
+ else if (disty < distx)
+ {
+ y2 += shorten_length * xpos * tangent;
+ x2 += shorten_length * xpos;
+ }
+ }
+
+ if (mode & SHORTEN_START)
+ {
+ if (disty > distx)
+ {
+ y1 -= shorten_length * ypos;
+ x1 -= shorten_length * ypos * (1 / tangent);
+ }
+ else if (disty < distx)
+ {
+ y1 -= shorten_length * xpos * tangent;
+ x1 -= shorten_length * xpos;
+ }
+ }
+}
+
+
+void Polygon::translate(const double xDist, const double yDist)
+{
+ for (size_t i = 0; i < size(); ++i)
+ {
+ ps[i].x += xDist;
+ ps[i].y += yDist;
+ }
+}
+
+
+Polygon Polygon::simplify(void) const
+{
+ // Copy the PolyLine.
+ Polygon simplified = *this;
+
+ std::vector<std::pair<size_t, Point> >& checkpoints =
+ simplified.checkpointsOnRoute;
+ bool hasCheckpointInfo = !(checkpoints.empty());
+
+ std::vector<Point>::iterator it = simplified.ps.begin();
+ if (it != simplified.ps.end()) ++it;
+
+ // Combine collinear line segments into single segments:
+ for (size_t j = 2; j < simplified.size(); )
+ {
+ if (vecDir(simplified.ps[j - 2], simplified.ps[j - 1],
+ simplified.ps[j]) == 0)
+ {
+ // These three points make up two collinear segments, so just
+ // combine them into a single segment.
+ it = simplified.ps.erase(it);
+
+ if (hasCheckpointInfo)
+ {
+ // 0 1 2 3 4 <- vertices on path
+ // +-----+-----+-----+-----+
+ // 0 1 2 3 4 5 6 7 8 <- checkpoints on points & edges
+ // |
+ // \_ deletedPointValue = 4
+ //
+ // If 1-2-3 is collinear then we want to end up with
+ //
+ // 0 1 2 3
+ // +-----+-----------+-----+
+ // 0 1 2 3 3 3 4 5 6
+ //
+ //
+ //
+ size_t deletedPointValue = (j - 1) - 1;
+ for (size_t i = 0; i < checkpoints.size(); ++i)
+ {
+ if (checkpoints[i].first == deletedPointValue)
+ {
+ checkpoints[i].first -= 1;
+ }
+ else if (checkpoints[i].first > deletedPointValue)
+ {
+ checkpoints[i].first -= 2;
+ }
+ }
+ }
+ }
+ else
+ {
+ ++j;
+ ++it;
+ }
+ }
+
+ return simplified;
+}
+
+std::vector<Point> Polygon::checkpointsOnSegment(size_t segmentLowerIndex,
+ int indexModifier) const
+{
+ std::vector<Point> checkpoints;
+ // 0 1 2 3 4 <- vertices on path
+ // +-----+-----+-----+-----+
+ // 0 1 2 3 4 5 6 7 8 <- checkpoints on points & edges
+
+ size_t checkpointLowerValue = 2 * segmentLowerIndex;
+ size_t checkpointUpperValue = checkpointLowerValue + 2;
+ size_t index = 0;
+
+ if (indexModifier > 0)
+ {
+ checkpointLowerValue++;
+ }
+ else if (indexModifier < 0)
+ {
+ checkpointUpperValue--;
+ }
+
+ while (index < checkpointsOnRoute.size())
+ {
+ if ((checkpointsOnRoute[index].first >= checkpointLowerValue) &&
+ (checkpointsOnRoute[index].first <= checkpointUpperValue))
+ {
+ checkpoints.push_back(checkpointsOnRoute[index].second);
+ }
+ ++index;
+ }
+ return checkpoints;
+}
+
+
+#define mid(a, b) ((a < b) ? a + ((b - a) / 2) : b + ((a - b) / 2))
+
+
+// curvedPolyline():
+// Returns a curved approximation of this multi-segment PolyLine, with
+// the corners replaced by smooth Bezier curves. curve_amount describes
+// how large to make the curves.
+// The ts value for each point in the returned Polygon describes the
+// drawing operation: 'M' (move) marks the first point, a line segment
+// is marked with an 'L' and three 'C's (along with the previous point)
+// describe the control points of a Bezier curve.
+//
+Polygon Polygon::curvedPolyline(const double curve_amount,
+ const bool closed) const
+{
+ Polygon simplified = this->simplify();
+
+ Polygon curved;
+ size_t num_of_points = size();
+ if (num_of_points <= 2)
+ {
+ // There is only a single segment, do nothing.
+ curved = *this;
+ curved.ts.push_back('M');
+ curved.ts.push_back('L');
+ return curved;
+ }
+
+ // Build the curved polyline:
+ curved._id = _id;
+ double last_x = 0;
+ double last_y = 0;
+ if (closed)
+ {
+ double x1 = simplified.ps[0].x;
+ double y1 = simplified.ps[0].y;
+ double x2 = simplified.ps[1].x;
+ double y2 = simplified.ps[1].y;
+ shorten_line(x1, y1, x2, y2, SHORTEN_START, curve_amount);
+ curved.ps.push_back(Point(x1, y1));
+ curved.ts.push_back('M');
+ }
+ else
+ {
+ curved.ps.push_back(ps[0]);
+ curved.ts.push_back('M');
+ }
+
+ size_t simpSize = simplified.size();
+ size_t finish = (closed) ? simpSize + 2 : simpSize;
+ for (size_t j = 1; j < finish; ++j)
+ {
+ double x1 = simplified.ps[(simpSize + j - 1) % simpSize].x;
+ double y1 = simplified.ps[(simpSize + j - 1) % simpSize].y;
+ double x2 = simplified.ps[j % simpSize].x;
+ double y2 = simplified.ps[j % simpSize].y;
+
+ double old_x = x1;
+ double old_y = y1;
+
+ unsigned int mode = SHORTEN_BOTH;
+ if (!closed)
+ {
+ if (j == 1)
+ {
+ mode = SHORTEN_END;
+ }
+ else if (j == (size() - 1))
+ {
+ mode = SHORTEN_START;
+ }
+ }
+ shorten_line(x1, y1, x2, y2, mode, curve_amount);
+
+ if (j > 1)
+ {
+ curved.ts.insert(curved.ts.end(), 3, 'C');
+ curved.ps.push_back(Point(mid(last_x, old_x), mid(last_y, old_y)));
+ curved.ps.push_back(Point(mid(x1, old_x), mid(y1, old_y)));
+ curved.ps.push_back(Point(x1, y1));
+ }
+ if (closed && (j == (finish - 1)))
+ {
+ // Close the path.
+ curved.ts.push_back('Z');
+ curved.ps.push_back(Point(x1, y1));
+ break;
+ }
+ curved.ts.push_back('L');
+ curved.ps.push_back(Point(x2, y2));
+
+ last_x = x2;
+ last_y = y2;
+ }
+
+ return curved;
+}
+
+
+Rectangle::Rectangle(const Point& topLeft, const Point& bottomRight)
+ : Polygon(4)
+{
+ double xMin = std::min(topLeft.x, bottomRight.x);
+ double xMax = std::max(topLeft.x, bottomRight.x);
+ double yMin = std::min(topLeft.y, bottomRight.y);
+ double yMax = std::max(topLeft.y, bottomRight.y);
+
+ ps[0] = Point(xMax, yMin);
+ ps[1] = Point(xMax, yMax);
+ ps[2] = Point(xMin, yMax);
+ ps[3] = Point(xMin, yMin);
+}
+
+
+Rectangle::Rectangle(const Point& centre, const double width,
+ const double height)
+ : Polygon(4)
+{
+ double halfWidth = width / 2.0;
+ double halfHeight = height / 2.0;
+ double xMin = centre.x - halfWidth;
+ double xMax = centre.x + halfWidth;
+ double yMin = centre.y - halfHeight;
+ double yMax = centre.y + halfHeight;
+
+ ps[0] = Point(xMax, yMin);
+ ps[1] = Point(xMax, yMax);
+ ps[2] = Point(xMin, yMax);
+ ps[3] = Point(xMin, yMin);
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/geomtypes.h b/src/3rdparty/adaptagrams/libavoid/geomtypes.h
new file mode 100644
index 0000000..e370360
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/geomtypes.h
@@ -0,0 +1,381 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file geomtypes.h
+//! @brief Contains the interface for various geometry types and classes.
+
+
+#ifndef AVOID_GEOMTYPES_H
+#define AVOID_GEOMTYPES_H
+
+#include <cstdlib>
+#include <vector>
+#include <utility>
+
+#include "libavoid/dllexport.h"
+
+
+namespace Avoid
+{
+
+static const size_t XDIM = 0;
+static const size_t YDIM = 1;
+
+class Polygon;
+
+//! @brief The Point class defines a point in the plane.
+//!
+//! Points consist of an x and y value. They may also have an ID and vertex
+//! number associated with them.
+//!
+class AVOID_EXPORT Point
+{
+ public:
+ //! @brief Default constructor.
+ //!
+ Point();
+ //! @brief Standard constructor.
+ //!
+ //! @param[in] xv The x position of the point.
+ //! @param[in] yv The y position of the point.
+ //!
+ Point(const double xv, const double yv);
+
+ //! @brief Comparison operator. Returns true if at same position.
+ //!
+ //! @param[in] rhs The point to compare with this one.
+ //! @return The result of the comparison.
+ //! @sa equals()
+ bool operator==(const Point& rhs) const;
+ //! @brief Comparison operator. Returns true if at same position,
+ //! or at effectively the same position for a given value of
+ //! epsilson.
+ //!
+ //! @param[in] rhs The point to compare with this one.
+ //! @param[in] epsilon Value of epsilon to use during comparison.
+ //! @return The result of the comparison.
+ //! @sa operator==()
+ bool equals(const Point& rhs, double epsilon = 0.0001) const;
+ //! @brief Comparison operator. Returns true if at different positions.
+ //!
+ //! @param[in] rhs The point to compare with this one.
+ //! @return The result of the comparison.
+ //!
+ bool operator!=(const Point& rhs) const;
+ //! @brief Comparison operator. Returns true if less-then rhs point.
+ //!
+ //! @note This operator is not particularly useful, but is defined
+ //! to allow std::set<Point>.
+ //!
+ //! @param[in] rhs The point to compare with this one.
+ //! @return The result of the comparison.
+ //!
+ bool operator<(const Point& rhs) const;
+
+ //! @brief Returns the x or y value of the point, given the dimension.
+ //!
+ //! @param[in] dimension The dimension: 0 for x, 1 for y.
+ //! @return The component of the point in that dimension.
+ double& operator[](const size_t dimension);
+ const double& operator[](const size_t dimension) const;
+
+ Point operator+(const Point& rhs) const;
+ Point operator-(const Point& rhs) const;
+
+ //! The x position.
+ double x;
+ //! The y position.
+ double y;
+ //! The ID associated with this point.
+ unsigned int id;
+ //! The vertex number associated with this point.
+ unsigned short vn;
+
+};
+
+
+//! Constant value representing an unassigned vertex number.
+//!
+static const unsigned short kUnassignedVertexNumber = 8;
+
+//! Constant value representing a ShapeConnectionPin.
+static const unsigned short kShapeConnectionPin = 9;
+
+
+//! @brief A vector, represented by the Point class.
+//!
+typedef Point Vector;
+
+//! @brief A bounding box, represented by the top-left and
+//! bottom-right corners.
+//!
+class AVOID_EXPORT Box
+{
+ public:
+ //! The top-left point.
+ Point min;
+ //! The bottom-right point.
+ Point max;
+
+ double length(size_t dimension) const;
+ double width(void) const;
+ double height(void) const;
+};
+
+
+
+//! @brief A common interface used by the Polygon classes.
+//!
+class AVOID_EXPORT PolygonInterface
+{
+ public:
+ //! @brief Constructor.
+ PolygonInterface() { }
+ //! @brief Destructor.
+ virtual ~PolygonInterface() { }
+ //! @brief Resets this to the empty polygon.
+ virtual void clear(void) = 0;
+ //! @brief Returns true if this polygon is empty.
+ virtual bool empty(void) const = 0;
+ //! @brief Returns the number of points in this polygon.
+ virtual size_t size(void) const = 0;
+ //! @brief Returns the ID value associated with this polygon.
+ virtual int id(void) const = 0;
+ //! @brief Returns a specific point in the polygon.
+ //! @param[in] index The array index of the point to be returned.
+ virtual const Point& at(size_t index) const = 0;
+ //! @brief Returns the bounding rectangle for this polygon.
+ //!
+ //! @return A new Rectangle representing the bounding box.
+ Polygon boundingRectPolygon(void) const;
+ //! @brief Returns the bounding rectangle that contains this polygon
+ //! with optionally some buffer space around it for routing.
+ //!
+ //! If a buffer distance of zero is given, then this method returns
+ //! the bounding rectangle for the shape's polygon.
+ //!
+ //! @param offset Extra distance to pad each side of the rect.
+ //! @return The bounding box for the polygon.
+ Box offsetBoundingBox(double offset) const;
+
+ Polygon offsetPolygon(double offset) const;
+};
+
+
+//! @brief A line between two points.
+//!
+class AVOID_EXPORT Edge
+{
+ public:
+ //! The first point.
+ Point a;
+ //! The second point.
+ Point b;
+};
+
+
+class Router;
+class ReferencingPolygon;
+
+
+//! @brief A dynamic Polygon, to which points can be easily added and removed.
+//!
+//! @note The Rectangle class can be used as an easy way of constructing a
+//! square or rectangular polygon.
+//!
+class AVOID_EXPORT Polygon : public PolygonInterface
+{
+ public:
+ //! @brief Constructs an empty polygon (with zero points).
+ Polygon();
+ //! @brief Constructs a new polygon with n points.
+ //!
+ //! A rectangle would be comprised of four point. An n segment
+ //! PolyLine (represented as a Polygon) would be comprised of n+1
+ //! points. Whether a particular Polygon is closed or not, depends
+ //! on whether it is a Polygon or Polyline. Shape polygons are always
+ //! considered to be closed, meaning the last point joins back to the
+ //! first point.
+ //!
+ //! The values for points can be set by setting the Polygon:ps vector,
+ //! or via the Polygon::setPoint() method.
+ //!
+ //! @param[in] n Number of points in the polygon.
+ //!
+ Polygon(const int n);
+ //! @brief Constructs a new polygon from an existing Polygon.
+ //!
+ //! @param[in] poly An existing polygon to copy the new polygon from.
+ //!
+ Polygon(const PolygonInterface& poly);
+ //! @brief Resets this to the empty polygon.
+ void clear(void);
+ //! @brief Returns true if this polygon is empty.
+ bool empty(void) const;
+ //! @brief Returns the number of points in this polygon.
+ size_t size(void) const;
+ //! @brief Returns the ID value associated with this polygon.
+ int id(void) const;
+ //! @brief Returns a specific point in the polygon.
+ //! @param[in] index The array index of the point to be returned.
+ const Point& at(size_t index) const;
+ //! @brief Sets a position for a particular point in the polygon..
+ //! @param[in] index The array index of the point to be set.
+ //! @param[in] point The point value to be assigned..
+ void setPoint(size_t index, const Point& point);
+ //! @brief Returns a simplified Polyline, where all collinear line
+ //! segments have been collapsed down into single line
+ //! segments.
+ //!
+ //! @return A new polyline with a simplified representation.
+ //!
+ Polygon simplify(void) const;
+ //! @brief Returns a curved approximation of this multi-segment
+ //! PolyLine, with the corners replaced by smooth Bezier
+ //! curves.
+ //!
+ //! This function does not do any further obstacle avoidance with the
+ //! curves produced. Hence, you would usually specify a curve_amount
+ //! in similar size to the space buffer around obstacles in the scene.
+ //! This way the curves will cut the corners around shapes but still
+ //! run within this buffer space.
+ //!
+ //! @param curve_amount Describes the distance along the end of each
+ //! line segment to turn into a curve.
+ //! @param closed Describes whether the Polygon should be
+ //! treated as closed. Defaults to false.
+ //! @return A new polyline (polygon) representing the curved path.
+ //! Its points represent endpoints of line segments and
+ //! Bezier spline control points. The Polygon::ts vector for
+ //! this returned polygon is populated with a character for
+ //! each point describing its type.
+ //! @sa ts
+ Polygon curvedPolyline(const double curve_amount,
+ const bool closed = false) const;
+ //! @brief Translates the polygon position by a relative amount.
+ //!
+ //! @param[in] xDist Distance to move polygon in the x dimension.
+ //! @param[in] yDist Distance to move polygon in the y dimension.
+ void translate(const double xDist, const double yDist);
+
+ //! @brief An ID for the polygon.
+ int _id;
+ //! @brief A vector of the points that make up the Polygon.
+ std::vector<Point> ps;
+ //! @brief If used, denotes whether the corresponding point in ps is
+ //! a move-to operation or a Bezier curve-to.
+ //!
+ //! Each character describes the drawing operation for the
+ //! corresponding point in the ps vector. Possible values are:
+ //! - 'M': A moveto operation, marks the first point;
+ //! - 'L': A lineto operation, is a line from the previous point to
+ //! the current point; or
+ //! - 'C': A curveto operation, three consecutive 'C' points
+ //! (along with the previous point) describe the control points
+ //! of a Bezier curve.
+ //! - 'Z': Closes the path (used for cluster boundaries).
+ //!
+ //! @note This vector will currently only be populated for polygons
+ //! returned by curvedPolyline().
+ std::vector<char> ts;
+
+ // @brief If used, denotes checkpoints through which the route travels
+ // and the relevant segment of the route.
+ //
+ // Set and used by the orthogonal routing code. Note the first value
+ // in the pair doesn't correspond to the segment index containing the
+ // checkpoint, but rather the segment or bendpoint on which it lies.
+ // 0 if on ps[0]
+ // 1 if on line ps[0]-ps[1]
+ // 2 if on ps[1]
+ // 3 if on line ps[1]-ps[2]
+ // etc.
+ std::vector<std::pair<size_t, Point> > checkpointsOnRoute;
+
+ // Returns true if at least one checkpoint lies on the line segment
+ // or at either end of it. An indexModifier of +1 will cause it to
+ // ignore a checkpoint on the corner at the start of the segment and
+ // -1 will cause it to do the same for the corner at the end of the
+ // segment.
+ std::vector<Point> checkpointsOnSegment(size_t segmentLowerIndex,
+ int indexModifier = 0) const;
+};
+
+
+//! @brief A multi-segment line, represented with the Polygon class.
+//!
+typedef Polygon PolyLine;
+
+
+//! @brief A Polygon which just references its points from other Polygons.
+//!
+//! This type of Polygon is used to accurately represent cluster boundaries
+//! made up from the corner points of shapes.
+//!
+class AVOID_EXPORT ReferencingPolygon : public PolygonInterface
+{
+ public:
+ ReferencingPolygon();
+ ReferencingPolygon(const Polygon& poly, const Router *router);
+ void clear(void);
+ bool empty(void) const;
+ size_t size(void) const;
+ int id(void) const;
+ const Point& at(size_t index) const;
+
+ int _id;
+ std::vector<std::pair<const Polygon *, unsigned short> > psRef;
+ std::vector<Point> psPoints;
+};
+
+
+//! @brief A Rectangle, a simpler way to define the polygon for square or
+//! rectangular shapes.
+//!
+class AVOID_EXPORT Rectangle : public Polygon
+{
+ public:
+ //! @brief Constructs a rectangular polygon given two opposing
+ //! corner points.
+ //!
+ //! @param[in] topLeft The first corner point of the rectangle.
+ //! @param[in] bottomRight The opposing corner point of the rectangle.
+ //!
+ Rectangle(const Point& topLeft, const Point& bottomRight);
+
+ //! @brief Constructs a rectangular polygon given the centre, width
+ //! and height.
+ //!
+ //! @param[in] centre The centre of the rectangle, specified as
+ //! a point.
+ //! @param[in] width The width of the rectangle.
+ //! @param[in] height The height of the rectangle.
+ //!
+ Rectangle(const Point& centre, const double width, const double height);
+};
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/graph.cpp b/src/3rdparty/adaptagrams/libavoid/graph.cpp
new file mode 100644
index 0000000..5169ddb
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/graph.cpp
@@ -0,0 +1,785 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <cmath>
+
+#include "libavoid/debug.h"
+#include "libavoid/graph.h"
+#include "libavoid/connector.h"
+#include "libavoid/geometry.h"
+#include "libavoid/timer.h"
+#include "libavoid/vertices.h"
+#include "libavoid/router.h"
+#include "libavoid/assertions.h"
+
+
+using std::pair;
+
+namespace Avoid {
+
+
+EdgeInf::EdgeInf(VertInf *v1, VertInf *v2, const bool orthogonal)
+ : lstPrev(nullptr),
+ lstNext(nullptr),
+ m_router(nullptr),
+ m_blocker(0),
+ m_added(false),
+ m_visible(false),
+ m_orthogonal(orthogonal),
+ m_isHyperedgeSegment(false),
+ m_disabled(false),
+ m_vert1(v1),
+ m_vert2(v2),
+ m_dist(-1)
+{
+ // Not passed nullptr values.
+ COLA_ASSERT(v1 && v2);
+
+ // We are in the same instance
+ COLA_ASSERT(m_vert1->_router == m_vert2->_router);
+ m_router = m_vert1->_router;
+
+ m_conns.clear();
+}
+
+
+EdgeInf::~EdgeInf()
+{
+ if (m_added)
+ {
+ makeInactive();
+ }
+}
+
+
+// Gives an order value between 0 and 3 for the point c, given the last
+// segment was from a to b. Returns the following value:
+// 0 : Point c is directly backwards from point b.
+// 1 : Point c is a left-hand 90 degree turn.
+// 2 : Point c is a right-hand 90 degree turn.
+// 3 : Point c is straight ahead (collinear).
+// 4 : Point c is not orthogonally positioned.
+//
+static inline int orthogTurnOrder(const Point& a, const Point& b,
+ const Point& c)
+{
+ if ( ((c.x != b.x) && (c.y != b.y)) || ((a.x != b.x) && (a.y != b.y)) )
+ {
+ // Not orthogonally positioned.
+ return 4;
+ }
+
+ int direction = vecDir(a, b, c);
+
+ if (direction > 0)
+ {
+ // Counterclockwise := left
+ return 1;
+ }
+ else if (direction < 0)
+ {
+ // Clockwise := right
+ return 2;
+ }
+
+ if (b.x == c.x)
+ {
+ if ( ((a.y < b.y) && (c.y < b.y)) ||
+ ((a.y > b.y) && (c.y > b.y)) )
+ {
+ // Behind.
+ return 0;
+ }
+ }
+ else
+ {
+ if ( ((a.x < b.x) && (c.x < b.x)) ||
+ ((a.x > b.x) && (c.x > b.x)) )
+ {
+ // Behind.
+ return 0;
+ }
+ }
+
+ // Ahead.
+ return 3;
+}
+
+
+// Returns a less than operation for a set exploration order for orthogonal
+// searching. Forward, then left, then right. Or if there is no previous
+// point, then the order is north, east, south, then west.
+// Note: This method assumes the two Edges that share a common point.
+bool EdgeInf::rotationLessThan(const VertInf *lastV, const EdgeInf *rhs) const
+{
+ if ((m_vert1 == rhs->m_vert1) && (m_vert2 == rhs->m_vert2))
+ {
+ // Effectively the same visibility edge, so they are equal.
+ return false;
+ }
+ VertInf *lhsV = nullptr, *rhsV = nullptr, *commonV = nullptr;
+
+ // Determine common Point and the comparison point on the left- and
+ // the right-hand-side.
+ if (m_vert1 == rhs->m_vert1)
+ {
+ commonV = m_vert1;
+ lhsV = m_vert2;
+ rhsV = rhs->m_vert2;
+ }
+ else if (m_vert1 == rhs->m_vert2)
+ {
+ commonV = m_vert1;
+ lhsV = m_vert2;
+ rhsV = rhs->m_vert1;
+ }
+ else if (m_vert2 == rhs->m_vert1)
+ {
+ commonV = m_vert2;
+ lhsV = m_vert1;
+ rhsV = rhs->m_vert2;
+ }
+ else if (m_vert2 == rhs->m_vert2)
+ {
+ commonV = m_vert2;
+ lhsV = m_vert1;
+ rhsV = rhs->m_vert1;
+ }
+
+ const Point& lhsPt = lhsV->point;
+ const Point& rhsPt = rhsV->point;
+ const Point& commonPt = commonV->point;
+
+ // If no lastPt, use one directly to the left;
+ Point lastPt = (lastV) ? lastV->point : Point(commonPt.x - 10, commonPt.y);
+
+ int lhsVal = orthogTurnOrder(lastPt, commonPt, lhsPt);
+ int rhsVal = orthogTurnOrder(lastPt, commonPt, rhsPt);
+
+ return lhsVal < rhsVal;
+}
+
+
+void EdgeInf::makeActive(void)
+{
+ COLA_ASSERT(m_added == false);
+
+ if (m_orthogonal)
+ {
+ COLA_ASSERT(m_visible);
+ m_router->visOrthogGraph.addEdge(this);
+ m_pos1 = m_vert1->orthogVisList.insert(m_vert1->orthogVisList.begin(), this);
+ m_vert1->orthogVisListSize++;
+ m_pos2 = m_vert2->orthogVisList.insert(m_vert2->orthogVisList.begin(), this);
+ m_vert2->orthogVisListSize++;
+ }
+ else
+ {
+ if (m_visible)
+ {
+ m_router->visGraph.addEdge(this);
+ m_pos1 = m_vert1->visList.insert(m_vert1->visList.begin(), this);
+ m_vert1->visListSize++;
+ m_pos2 = m_vert2->visList.insert(m_vert2->visList.begin(), this);
+ m_vert2->visListSize++;
+ }
+ else // if (invisible)
+ {
+ m_router->invisGraph.addEdge(this);
+ m_pos1 = m_vert1->invisList.insert(m_vert1->invisList.begin(), this);
+ m_vert1->invisListSize++;
+ m_pos2 = m_vert2->invisList.insert(m_vert2->invisList.begin(), this);
+ m_vert2->invisListSize++;
+ }
+ }
+ m_added = true;
+}
+
+
+void EdgeInf::makeInactive(void)
+{
+ COLA_ASSERT(m_added == true);
+
+ if (m_orthogonal)
+ {
+ COLA_ASSERT(m_visible);
+ m_router->visOrthogGraph.removeEdge(this);
+ m_vert1->orthogVisList.erase(m_pos1);
+ m_vert1->orthogVisListSize--;
+ m_vert2->orthogVisList.erase(m_pos2);
+ m_vert2->orthogVisListSize--;
+ }
+ else
+ {
+ if (m_visible)
+ {
+ m_router->visGraph.removeEdge(this);
+ m_vert1->visList.erase(m_pos1);
+ m_vert1->visListSize--;
+ m_vert2->visList.erase(m_pos2);
+ m_vert2->visListSize--;
+ }
+ else // if (invisible)
+ {
+ m_router->invisGraph.removeEdge(this);
+ m_vert1->invisList.erase(m_pos1);
+ m_vert1->invisListSize--;
+ m_vert2->invisList.erase(m_pos2);
+ m_vert2->invisListSize--;
+ }
+ }
+ m_blocker = 0;
+ m_conns.clear();
+ m_added = false;
+}
+
+
+void EdgeInf::setDist(double dist)
+{
+ //COLA_ASSERT(dist != 0);
+
+ if (m_added && !m_visible)
+ {
+ makeInactive();
+ COLA_ASSERT(!m_added);
+ }
+ if (!m_added)
+ {
+ m_visible = true;
+ makeActive();
+ }
+ m_dist = dist;
+ m_blocker = 0;
+}
+
+
+void EdgeInf::setMtstDist(const double joinCost)
+{
+ m_mtst_dist = joinCost;
+}
+
+double EdgeInf::mtstDist(void) const
+{
+ return m_mtst_dist;
+}
+
+bool EdgeInf::isHyperedgeSegment(void) const
+{
+ return m_isHyperedgeSegment;
+}
+
+bool EdgeInf::isDisabled(void) const
+{
+ return m_disabled;
+}
+
+void EdgeInf::setDisabled(const bool disabled)
+{
+ m_disabled = disabled;
+}
+
+void EdgeInf::setHyperedgeSegment(const bool hyperedge)
+{
+ m_isHyperedgeSegment = hyperedge;
+}
+
+bool EdgeInf::added(void)
+{
+ return m_added;
+}
+
+int EdgeInf::blocker(void) const
+{
+ return m_blocker;
+}
+
+void EdgeInf::alertConns(void)
+{
+ FlagList::iterator finish = m_conns.end();
+ for (FlagList::iterator i = m_conns.begin(); i != finish; ++i)
+ {
+ *(*i) = true;
+ }
+ m_conns.clear();
+}
+
+
+void EdgeInf::addConn(bool *flag)
+{
+ m_conns.push_back(flag);
+}
+
+
+void EdgeInf::addCycleBlocker(void)
+{
+ // Needs to be in invisibility graph.
+ addBlocker(-1);
+}
+
+
+void EdgeInf::addBlocker(int b)
+{
+ COLA_ASSERT(m_router->InvisibilityGrph);
+
+ if (m_added && m_visible)
+ {
+ makeInactive();
+ COLA_ASSERT(!m_added);
+ }
+ if (!m_added)
+ {
+ m_visible = false;
+ makeActive();
+ }
+ m_dist = 0;
+ m_blocker = b;
+}
+
+
+pair<VertID, VertID> EdgeInf::ids(void) const
+{
+ return std::make_pair(m_vert1->id, m_vert2->id);
+}
+
+
+pair<Point, Point> EdgeInf::points(void) const
+{
+ return std::make_pair(m_vert1->point, m_vert2->point);
+}
+
+
+void EdgeInf::db_print(void)
+{
+ db_printf("Edge(");
+ m_vert1->id.db_print();
+ db_printf(",");
+ m_vert2->id.db_print();
+ db_printf(")\n");
+}
+
+
+void EdgeInf::checkVis(void)
+{
+ if (m_added && !m_visible)
+ {
+ db_printf("\tChecking visibility for existing invisibility edge..."
+ "\n\t\t");
+ db_print();
+ }
+ else if (m_added && m_visible)
+ {
+ db_printf("\tChecking visibility for existing visibility edge..."
+ "\n\t\t");
+ db_print();
+ }
+
+ int blocker = 0;
+ bool cone1 = true;
+ bool cone2 = true;
+
+ VertInf *i = m_vert1;
+ VertInf *j = m_vert2;
+ const VertID& iID = i->id;
+ const VertID& jID = j->id;
+ const Point& iPoint = i->point;
+ const Point& jPoint = j->point;
+
+ m_router->st_checked_edges++;
+
+ if (!(iID.isConnPt()))
+ {
+ cone1 = inValidRegion(m_router->IgnoreRegions, i->shPrev->point,
+ iPoint, i->shNext->point, jPoint);
+ }
+ else if (m_router->IgnoreRegions == false)
+ {
+ // If Ignoring regions then this case is already caught by
+ // the invalid regions, so only check it when not ignoring
+ // regions.
+ ShapeSet& ss = m_router->contains[iID];
+
+ if (!(jID.isConnPt()) && (ss.find(jID.objID) != ss.end()))
+ {
+ db_printf("1: Edge of bounding shape\n");
+ // Don't even check this edge, it should be zero,
+ // since a point in a shape can't see it's corners
+ cone1 = false;
+ }
+ }
+
+ if (cone1)
+ {
+ // If outside the first cone, don't even bother checking.
+ if (!(jID.isConnPt()))
+ {
+ cone2 = inValidRegion(m_router->IgnoreRegions, j->shPrev->point,
+ jPoint, j->shNext->point, iPoint);
+ }
+ else if (m_router->IgnoreRegions == false)
+ {
+ // If Ignoring regions then this case is already caught by
+ // the invalid regions, so only check it when not ignoring
+ // regions.
+ ShapeSet& ss = m_router->contains[jID];
+
+ if (!(iID.isConnPt()) && (ss.find(iID.objID) != ss.end()))
+ {
+ db_printf("2: Edge of bounding shape\n");
+ // Don't even check this edge, it should be zero,
+ // since a point in a shape can't see it's corners
+ cone2 = false;
+ }
+ }
+ }
+
+ if (cone1 && cone2 && ((blocker = firstBlocker()) == 0))
+ {
+
+ // if i and j see each other, add edge
+ db_printf("\tSetting visibility edge... \n\t\t");
+ db_print();
+
+ double d = euclideanDist(iPoint, jPoint);
+
+ setDist(d);
+
+ }
+ else if (m_router->InvisibilityGrph)
+ {
+#if 0
+ db_printf("%d, %d, %d\n", cone1, cone2, blocker);
+ db_printf("\t(%d, %d)--(%d, %d)\n", (int) iInfo.point.x,
+ (int) iInfo.point.y, (int) jInfo.point.x,
+ (int) jInfo.point.y);
+#endif
+
+ // if i and j can't see each other, add blank edge
+ db_printf("\tSetting invisibility edge... \n\t\t");
+ db_print();
+ addBlocker(blocker);
+ }
+}
+
+
+int EdgeInf::firstBlocker(void)
+{
+ ShapeSet ss = ShapeSet();
+
+ Point& pti = m_vert1->point;
+ Point& ptj = m_vert2->point;
+ VertID& iID = m_vert1->id;
+ VertID& jID = m_vert2->id;
+
+ ContainsMap &contains = m_router->contains;
+ if (iID.isConnPt())
+ {
+ ss.insert(contains[iID].begin(), contains[iID].end());
+ }
+ if (jID.isConnPt())
+ {
+ ss.insert(contains[jID].begin(), contains[jID].end());
+ }
+
+ VertInf *last = m_router->vertices.end();
+ unsigned int lastId = 0;
+ bool seenIntersectionAtEndpoint = false;
+ for (VertInf *k = m_router->vertices.shapesBegin(); k != last; )
+ {
+ VertID kID = k->id;
+ if (k->id == dummyOrthogID)
+ {
+ // Don't include orthogonal dummy vertices.
+ k = k->lstNext;
+ continue;
+ }
+ if (kID.objID != lastId)
+ {
+ if ((ss.find(kID.objID) != ss.end()))
+ {
+ unsigned int shapeID = kID.objID;
+ db_printf("Endpoint is inside shape %u so ignore shape "
+ "edges.\n", kID.objID);
+ // One of the endpoints is inside this shape so ignore it.
+ while ((k != last) && (k->id.objID == shapeID))
+ {
+ // And skip the other vertices from this shape.
+ k = k->lstNext;
+ }
+ continue;
+ }
+ seenIntersectionAtEndpoint = false;
+ lastId = kID.objID;
+ }
+ Point& kPoint = k->point;
+ Point& kPrevPoint = k->shPrev->point;
+ if (segmentShapeIntersect(pti, ptj, kPrevPoint, kPoint,
+ seenIntersectionAtEndpoint))
+ {
+ ss.clear();
+ return kID.objID;
+ }
+ k = k->lstNext;
+ }
+ ss.clear();
+ return 0;
+}
+
+
+bool EdgeInf::isBetween(VertInf *i, VertInf *j)
+{
+ if ( ((i == m_vert1) && (j == m_vert2)) ||
+ ((i == m_vert2) && (j == m_vert1)) )
+ {
+ return true;
+ }
+ return false;
+}
+
+
+ // Returns true if this edge is a vertical or horizontal line segment.
+bool EdgeInf::isOrthogonal(void) const
+{
+ return ((m_vert1->point.x == m_vert2->point.x) ||
+ (m_vert1->point.y == m_vert2->point.y));
+}
+
+
+bool EdgeInf::isDummyConnection(void) const
+{
+ // This is a dummy edge from a shape centre to
+ // a set of its ShapeConnectionPins.
+ return ((m_vert1->id.isConnectionPin() && m_vert2->id.isConnPt()) ||
+ (m_vert2->id.isConnectionPin() && m_vert1->id.isConnPt()));
+}
+
+
+VertInf *EdgeInf::otherVert(const VertInf *vert) const
+{
+ COLA_ASSERT((vert == m_vert1) || (vert == m_vert2));
+
+ return (vert == m_vert1) ? m_vert2 : m_vert1;
+}
+
+
+EdgeInf *EdgeInf::checkEdgeVisibility(VertInf *i, VertInf *j, bool knownNew)
+{
+ // This is for polyline routing, so check we're not
+ // considering orthogonal vertices.
+ COLA_ASSERT(i->id != dummyOrthogID);
+ COLA_ASSERT(j->id != dummyOrthogID);
+
+ Router *router = i->_router;
+ EdgeInf *edge = nullptr;
+
+ if (knownNew)
+ {
+ COLA_ASSERT(existingEdge(i, j) == nullptr);
+ edge = new EdgeInf(i, j);
+ }
+ else
+ {
+ edge = existingEdge(i, j);
+ if (edge == nullptr)
+ {
+ edge = new EdgeInf(i, j);
+ }
+ }
+ edge->checkVis();
+ if (!(edge->m_added) && !(router->InvisibilityGrph))
+ {
+ delete edge;
+ edge = nullptr;
+ }
+
+ return edge;
+}
+
+
+ // XXX: This function is inefficient, and shouldn't even really be
+ // required.
+EdgeInf *EdgeInf::existingEdge(VertInf *i, VertInf *j)
+{
+ VertInf *selected = nullptr;
+
+ // Look through poly-line visibility edges.
+ selected = (i->visListSize <= j->visListSize) ? i : j;
+ EdgeInfList& visList = selected->visList;
+ EdgeInfList::const_iterator finish = visList.end();
+ for (EdgeInfList::const_iterator edge = visList.begin(); edge != finish;
+ ++edge)
+ {
+ if ((*edge)->isBetween(i, j))
+ {
+ return (*edge);
+ }
+ }
+
+ // Look through orthogonal visibility edges.
+ selected = (i->orthogVisListSize <= j->orthogVisListSize) ? i : j;
+ EdgeInfList& orthogVisList = selected->orthogVisList;
+ finish = orthogVisList.end();
+ for (EdgeInfList::const_iterator edge = orthogVisList.begin();
+ edge != finish; ++edge)
+ {
+ if ((*edge)->isBetween(i, j))
+ {
+ return (*edge);
+ }
+ }
+
+ // Look through poly-line invisibility edges.
+ selected = (i->invisListSize <= j->invisListSize) ? i : j;
+ EdgeInfList& invisList = selected->invisList;
+ finish = invisList.end();
+ for (EdgeInfList::const_iterator edge = invisList.begin(); edge != finish;
+ ++edge)
+ {
+ if ((*edge)->isBetween(i, j))
+ {
+ return (*edge);
+ }
+ }
+
+ return nullptr;
+}
+
+
+//===========================================================================
+
+
+EdgeList::EdgeList(bool orthogonal)
+ : m_orthogonal(orthogonal),
+ m_first_edge(nullptr),
+ m_last_edge(nullptr),
+ m_count(0)
+{
+}
+
+
+EdgeList::~EdgeList()
+{
+ clear();
+}
+
+
+void EdgeList::clear(void)
+{
+ while (m_first_edge)
+ {
+ // The Edge destructor results in EdgeList:::removeEdge() being called
+ // for this edge and m_first_edge being updated to the subsequent edge
+ // in the EdgeList.
+ delete m_first_edge;
+ }
+ COLA_ASSERT(m_count == 0);
+ m_last_edge = nullptr;
+}
+
+
+int EdgeList::size(void) const
+{
+ return m_count;
+}
+
+
+void EdgeList::addEdge(EdgeInf *edge)
+{
+ // Dummy connections for ShapeConnectionPins won't be orthogonal,
+ // even in the orthogonal visibility graph.
+ COLA_UNUSED(m_orthogonal);
+ COLA_ASSERT(!m_orthogonal || edge->isOrthogonal() ||
+ edge->isDummyConnection());
+
+ if (m_first_edge == nullptr)
+ {
+ COLA_ASSERT(m_last_edge == nullptr);
+
+ m_last_edge = edge;
+ m_first_edge = edge;
+
+ edge->lstPrev = nullptr;
+ edge->lstNext = nullptr;
+ }
+ else
+ {
+ COLA_ASSERT(m_last_edge != nullptr);
+
+ m_last_edge->lstNext = edge;
+ edge->lstPrev = m_last_edge;
+
+ m_last_edge = edge;
+
+ edge->lstNext = nullptr;
+ }
+ m_count++;
+}
+
+
+void EdgeList::removeEdge(EdgeInf *edge)
+{
+ if (edge->lstPrev)
+ {
+ edge->lstPrev->lstNext = edge->lstNext;
+ }
+ if (edge->lstNext)
+ {
+ edge->lstNext->lstPrev = edge->lstPrev;
+ }
+ if (edge == m_last_edge)
+ {
+ m_last_edge = edge->lstPrev;
+ if (edge == m_first_edge)
+ {
+ m_first_edge = nullptr;
+ }
+ }
+ else if (edge == m_first_edge)
+ {
+ m_first_edge = edge->lstNext;
+ }
+
+
+ edge->lstPrev = nullptr;
+ edge->lstNext = nullptr;
+
+ m_count--;
+}
+
+
+EdgeInf *EdgeList::begin(void)
+{
+ return m_first_edge;
+}
+
+
+EdgeInf *EdgeList::end(void)
+{
+ return nullptr;
+}
+
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/graph.h b/src/3rdparty/adaptagrams/libavoid/graph.h
new file mode 100644
index 0000000..9e1a7a3
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/graph.h
@@ -0,0 +1,135 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_GRAPH_H
+#define AVOID_GRAPH_H
+
+
+#include <cassert>
+#include <list>
+#include <utility>
+#include "libavoid/vertices.h"
+
+namespace Avoid {
+
+
+class ConnRef;
+class Router;
+
+
+typedef std::list<int> ShapeList;
+typedef std::list<bool *> FlagList;
+
+
+class EdgeInf
+{
+ public:
+ EdgeInf(VertInf *v1, VertInf *v2, const bool orthogonal = false);
+ ~EdgeInf();
+ inline double getDist(void)
+ {
+ return m_dist;
+ }
+ void setDist(double dist);
+ void alertConns(void);
+ void addConn(bool *flag);
+ void addCycleBlocker(void);
+ void addBlocker(int b);
+ bool added(void);
+ bool isOrthogonal(void) const;
+ bool isDummyConnection(void) const;
+ bool isDisabled(void) const;
+ void setDisabled(const bool disabled);
+ bool rotationLessThan(const VertInf* last, const EdgeInf *rhs) const;
+ std::pair<VertID, VertID> ids(void) const;
+ std::pair<Point, Point> points(void) const;
+ void db_print(void);
+ void checkVis(void);
+ VertInf *otherVert(const VertInf *vert) const;
+ static EdgeInf *checkEdgeVisibility(VertInf *i, VertInf *j,
+ bool knownNew = false);
+ static EdgeInf *existingEdge(VertInf *i, VertInf *j);
+ int blocker(void) const;
+
+ bool isHyperedgeSegment(void) const;
+ void setHyperedgeSegment(const bool hyperedge);
+ double mtstDist(void) const;
+ void setMtstDist(const double joinCost);
+
+ EdgeInf *lstPrev;
+ EdgeInf *lstNext;
+ private:
+ friend class MinimumTerminalSpanningTree;
+ friend class VertInf;
+
+ void makeActive(void);
+ void makeInactive(void);
+ int firstBlocker(void);
+ bool isBetween(VertInf *i, VertInf *j);
+
+ Router *m_router;
+ int m_blocker;
+ bool m_added;
+ bool m_visible;
+ bool m_orthogonal;
+ bool m_isHyperedgeSegment;
+ bool m_disabled;
+ VertInf *m_vert1;
+ VertInf *m_vert2;
+ EdgeInfList::iterator m_pos1;
+ EdgeInfList::iterator m_pos2;
+ FlagList m_conns;
+ double m_dist;
+ double m_mtst_dist;
+};
+
+
+class EdgeList
+{
+ public:
+ friend class EdgeInf;
+ EdgeList(bool orthogonal = false);
+ ~EdgeList();
+ void clear(void);
+ EdgeInf *begin(void);
+ EdgeInf *end(void);
+ int size(void) const;
+ private:
+ void addEdge(EdgeInf *edge);
+ void removeEdge(EdgeInf *edge);
+
+ bool m_orthogonal;
+ EdgeInf *m_first_edge;
+ EdgeInf *m_last_edge;
+ unsigned int m_count;
+};
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/hyperedge.cpp b/src/3rdparty/adaptagrams/libavoid/hyperedge.cpp
new file mode 100644
index 0000000..d6f2a40
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/hyperedge.cpp
@@ -0,0 +1,388 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include "libavoid/hyperedge.h"
+#include "libavoid/hyperedgetree.h"
+#include "libavoid/mtst.h"
+#include "libavoid/junction.h"
+#include "libavoid/connector.h"
+#include "libavoid/vertices.h"
+#include "libavoid/connend.h"
+#include "libavoid/shape.h"
+#include "libavoid/router.h"
+#include "libavoid/assertions.h"
+#include "libavoid/debughandler.h"
+#include "libavoid/debug.h"
+
+
+namespace Avoid {
+
+HyperedgeRerouter::HyperedgeRerouter()
+ : m_router(nullptr)
+{
+}
+
+void HyperedgeRerouter::setRouter(Router *router)
+{
+ m_router = router;
+}
+
+size_t HyperedgeRerouter::registerHyperedgeForRerouting(
+ ConnEndList terminals)
+{
+ m_terminals_vector.push_back(terminals);
+ m_root_junction_vector.push_back(nullptr);
+
+ return m_terminals_vector.size() - 1;
+}
+
+size_t HyperedgeRerouter::registerHyperedgeForRerouting(
+ JunctionRef *junction)
+{
+ m_terminals_vector.push_back(ConnEndList());
+ m_root_junction_vector.push_back(junction);
+
+ return m_terminals_vector.size() - 1;
+}
+
+size_t HyperedgeRerouter::count(void) const
+{
+ return m_terminals_vector.size();
+}
+
+HyperedgeNewAndDeletedObjectLists HyperedgeRerouter::newAndDeletedObjectLists(
+ size_t index) const
+{
+ COLA_ASSERT(index <= count());
+
+ HyperedgeNewAndDeletedObjectLists result;
+
+ result.newJunctionList = m_new_junctions_vector[index];
+ result.deletedJunctionList = m_deleted_junctions_vector[index];
+ result.newConnectorList = m_new_connectors_vector[index];
+ result.deletedConnectorList = m_deleted_connectors_vector[index];
+
+ return result;
+}
+
+
+void HyperedgeRerouter::outputInstanceToSVG(FILE *fp)
+{
+ if (count() == 0)
+ {
+ return;
+ }
+
+ fprintf(fp, " HyperedgeRerouter *hyperedgeRerouter = router->hyperedgeRerouter();\n");
+ const size_t num_hyperedges = count();
+ for (size_t i = 0; i < num_hyperedges; ++i)
+ {
+ if (m_root_junction_vector[i])
+ {
+ fprintf(fp, " hyperedgeRerouter->registerHyperedgeForRerouting(junctionRef%u);\n",
+ m_root_junction_vector[i]->id());
+ }
+ else
+ {
+ fprintf(fp, " ConnEndList heConnList%u;\n", (unsigned int) i);
+ for (ConnEndList::const_iterator it = m_terminals_vector[i].begin();
+ it != m_terminals_vector[i].end(); ++it)
+ {
+ (*it).outputCode(fp, "heEnd");
+ fprintf(fp, " heConnList%u.push_back(heEndPt);\n",
+ (unsigned int) i);
+ }
+ fprintf(fp, " hyperedgeRerouter->registerHyperedgeForRerouting(heConnList%u);\n",
+ (unsigned int) i);
+
+ }
+ }
+ fprintf(fp, "\n");
+}
+
+
+// Follow connected junctions and connectors from the given connector to
+// determine the hyperedge topology, saving objects to the deleted-objects
+// vectors as we go.
+bool HyperedgeRerouter::findAttachedObjects(size_t index,
+ ConnRef *connector, JunctionRef *ignore, ConnRefSet& hyperedgeConns)
+{
+ bool validHyperedge = false;
+
+ connector->assignConnectionPinVisibility(true);
+
+ m_deleted_connectors_vector[index].push_back(connector);
+ hyperedgeConns.insert(connector);
+
+ std::pair<Obstacle *, Obstacle *> anchors = connector->endpointAnchors();
+ JunctionRef *jFirst = dynamic_cast<JunctionRef *> (anchors.first);
+ JunctionRef *jSecond = dynamic_cast<JunctionRef *> (anchors.second);
+
+ if (jFirst)
+ {
+ // If attached to a junction and not one we've explored, then continue.
+ if (jFirst != ignore)
+ {
+ validHyperedge |= findAttachedObjects(index, jFirst, connector, hyperedgeConns);
+ }
+ }
+ else
+ {
+ // If its an endpoint, then record the vertex for this endpoint.
+ COLA_ASSERT(connector->m_src_vert);
+ m_terminal_vertices_vector[index].insert(connector->m_src_vert);
+ }
+
+ if (jSecond)
+ {
+ // If attached to a junction and not one we've explored, then continue.
+ if (jSecond != ignore)
+ {
+ validHyperedge |= findAttachedObjects(index, jSecond, connector, hyperedgeConns);
+ }
+ }
+ else
+ {
+ // If its an endpoint, then record the vertex for this endpoint.
+ COLA_ASSERT(connector->m_dst_vert);
+ m_terminal_vertices_vector[index].insert(connector->m_dst_vert);
+ }
+ return validHyperedge;
+}
+
+
+// Follow connected junctions and connectors from the given junction to
+// determine the hyperedge topology, saving objects to the deleted-objects
+// vectors as we go.
+bool HyperedgeRerouter::findAttachedObjects(size_t index,
+ JunctionRef *junction, ConnRef *ignore, ConnRefSet& hyperedgeConns)
+{
+ bool validHyperedge = false;
+
+ m_deleted_junctions_vector[index].push_back(junction);
+
+ ConnRefList connectors = junction->attachedConnectors();
+
+ if (connectors.size() > 2)
+ {
+ // A valid hyperedge must have at least one junction with three
+ // connectors attached, i.e., more than two endpoints.
+ validHyperedge |= true;
+ }
+
+ for (ConnRefList::iterator curr = connectors.begin();
+ curr != connectors.end(); ++curr)
+ {
+ if (*curr == ignore)
+ {
+ continue;
+ }
+
+ COLA_ASSERT(*curr != nullptr);
+ validHyperedge |= findAttachedObjects(index, (*curr), junction, hyperedgeConns);
+ }
+ return validHyperedge;
+}
+
+
+// Populate the deleted-object vectors with all the connectors and junctions
+// that form the registered hyperedges. Then return the set of all these
+// connectors so they can be ignored for individual rerouting.
+ConnRefSet HyperedgeRerouter::calcHyperedgeConnectors(void)
+{
+ COLA_ASSERT(m_router != nullptr);
+
+ ConnRefSet allRegisteredHyperedgeConns;
+
+ // Clear the deleted-object vectors. We populate them here if necessary.
+ m_deleted_junctions_vector.clear();
+ m_deleted_junctions_vector.resize(count());
+ m_deleted_connectors_vector.clear();
+ m_deleted_connectors_vector.resize(count());
+
+ m_terminal_vertices_vector.clear();
+ m_terminal_vertices_vector.resize(count());
+ m_added_vertices.clear();
+
+ // Populate the deleted-object vectors.
+ const size_t num_hyperedges = count();
+ for (size_t i = 0; i < num_hyperedges; ++i)
+ {
+ if (m_root_junction_vector[i])
+ {
+ // Follow objects attached to junction to find the hyperedge.
+ bool valid = findAttachedObjects(i, m_root_junction_vector[i], nullptr,
+ allRegisteredHyperedgeConns);
+ if (!valid)
+ {
+ err_printf("Warning: Hyperedge %d registered with "
+ "HyperedgeRerouter is invalid and will be "
+ "ignored.\n", (int) i);
+ // Hyperedge is invalid. Clear the terminals and other info
+ // so it will be ignored, and rerouted as a normal set of
+ // connectors.
+ m_terminals_vector[i].clear();
+ m_terminal_vertices_vector[i].clear();
+ m_deleted_junctions_vector[i].clear();
+ m_deleted_connectors_vector[i].clear();
+ }
+ continue;
+ }
+
+ // Alternatively, we have a set of ConnEnds, so store the
+ // corresponding terminals
+ std::pair<bool, VertInf *> maybeNewVertex;
+ for (ConnEndList::const_iterator it = m_terminals_vector[i].begin();
+ it != m_terminals_vector[i].end(); ++it)
+ {
+ maybeNewVertex = it->getHyperedgeVertex(m_router);
+ COLA_ASSERT(maybeNewVertex.second != nullptr);
+ m_terminal_vertices_vector[i].insert(maybeNewVertex.second);
+
+ if (maybeNewVertex.first)
+ {
+ // This is a newly created vertex. Remember it so we can
+ // free it and it's visibility edges later.
+ m_added_vertices.push_back(maybeNewVertex.second);
+ }
+ }
+ }
+
+ // Return these connectors that don't require rerouting.
+ return allRegisteredHyperedgeConns;
+}
+
+
+void HyperedgeRerouter::performRerouting(void)
+{
+ COLA_ASSERT(m_router != nullptr);
+
+ m_new_junctions_vector.clear();
+ m_new_junctions_vector.resize(count());
+ m_new_connectors_vector.clear();
+ m_new_connectors_vector.resize(count());
+
+#ifdef DEBUGHANDLER
+ if (m_router->debugHandler())
+ {
+ std::vector<Box> obstacleBoxes;
+ ObstacleList::iterator obstacleIt = m_router->m_obstacles.begin();
+ while (obstacleIt != m_router->m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (obstacle);
+ if (junction && ! junction->positionFixed())
+ {
+ // Junctions that are free to move are not treated as obstacles.
+ ++obstacleIt;
+ continue;
+ }
+ Box bbox = obstacle->routingBox();
+ obstacleBoxes.push_back(bbox);
+ ++obstacleIt;
+ }
+ m_router->debugHandler()->updateObstacleBoxes(obstacleBoxes);
+ }
+#endif
+
+ // For each hyperedge...
+ const size_t num_hyperedges = count();
+ for (size_t i = 0; i < num_hyperedges; ++i)
+ {
+ if (m_terminal_vertices_vector[i].empty())
+ {
+ // Invalid hyperedge, ignore.
+ continue;
+ }
+
+ // Execute the MTST method to find good junction positions and an
+ // initial path. A hyperedge tree will be built for the new route.
+ JunctionHyperedgeTreeNodeMap hyperedgeTreeJunctions;
+ MinimumTerminalSpanningTree mtst(m_router,
+ m_terminal_vertices_vector[i], &hyperedgeTreeJunctions);
+
+ // The older MTST construction method (faster, worse results).
+ //mtst.constructSequential();
+
+ // The preferred MTST construction method.
+ // Slightly slower, better quality results.
+ mtst.constructInterleaved();
+
+ HyperedgeTreeNode *treeRoot = mtst.rootJunction();
+ COLA_ASSERT(treeRoot);
+
+ // Fill in connector information and join them to junctions of endpoints
+ // of original connectors.
+ treeRoot->addConns(nullptr, m_router,
+ m_deleted_connectors_vector[i], nullptr);
+
+ // Output the list of new junctions and connectors from hyperedge tree.
+ treeRoot->listJunctionsAndConnectors(nullptr, m_new_junctions_vector[i],
+ m_new_connectors_vector[i]);
+
+ // Write paths from the hyperedge tree back into individual
+ // connector routes.
+ for (size_t pass = 0; pass < 2; ++pass)
+ {
+ treeRoot->writeEdgesToConns(nullptr, pass);
+ }
+
+ // Tell the router that we are deleting the objects used for the
+ // previous path for the hyperedge.
+ for (ConnRefList::iterator curr =
+ m_deleted_connectors_vector[i].begin();
+ curr != m_deleted_connectors_vector[i].end(); ++curr)
+ {
+ // Clear visibility assigned for connection pins.
+ (*curr)->assignConnectionPinVisibility(false);
+
+ m_router->deleteConnector(*curr);
+ }
+ for (JunctionRefList::iterator curr =
+ m_deleted_junctions_vector[i].begin();
+ curr != m_deleted_junctions_vector[i].end(); ++curr)
+ {
+ m_router->deleteJunction(*curr);
+ }
+ }
+
+ // Clear the input to this class, so that new objects can be registered
+ // for rerouting for the next time that transaction that is processed.
+ m_terminals_vector.clear();
+ m_root_junction_vector.clear();
+
+ // Free temporarily added vertices.
+ for (VertexList::iterator curr = m_added_vertices.begin();
+ curr != m_added_vertices.end(); ++curr)
+ {
+ (*curr)->removeFromGraph();
+ m_router->vertices.removeVertex(*curr);
+ delete *curr;
+ }
+ m_added_vertices.clear();
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/hyperedge.h b/src/3rdparty/adaptagrams/libavoid/hyperedge.h
new file mode 100644
index 0000000..47ee42c
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/hyperedge.h
@@ -0,0 +1,223 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2015 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file hyperedge.h
+//! @brief Contains the interface for the HyperedgeRerouter class.
+
+#ifndef AVOID_HYPEREDGE_H
+#define AVOID_HYPEREDGE_H
+
+#include <cstdio>
+#include <list>
+#include <vector>
+#include <set>
+
+#include "libavoid/dllexport.h"
+
+namespace Avoid {
+
+class ConnRef;
+class JunctionRef;
+class Router;
+class ConnEnd;
+class VertInf;
+
+//! @brief A list of ConnEnd objects.
+typedef std::list<ConnEnd> ConnEndList;
+
+//! @brief A list of ConnRef objects.
+typedef std::list<ConnRef *> ConnRefList;
+
+//! @brief A list of JunctionRef objects.
+typedef std::list<JunctionRef *> JunctionRefList;
+
+typedef std::list<VertInf *> VertexList;
+typedef std::set<ConnRef *> ConnRefSet;
+typedef std::set<VertInf *> VertexSet;
+
+typedef std::vector<JunctionRef *> JunctionRefVector;
+typedef std::vector<ConnEndList> ConnEndListVector;
+typedef std::vector<ConnRefList> ConnRefListVector;
+typedef std::vector<JunctionRefList> JunctionRefListVector;
+typedef std::vector<VertexSet> VertexSetVector;
+
+//! @brief The HyperedgeNewAndDeletedObjectLists class stores lists of
+//! objects created and deleted during hyperedge improvement.
+//!
+//! After hyperedge improvement, this information can be produced by calling
+//! the Router::newAndDeletedObjectListsFromHyperedgeImprovement() method.
+//!
+//! After hyperedge rerouting, this information can be produced by calling
+//! the HyperedgeRerouter::newAndDeletedObjectLists() method for each
+//! hyperedge being fully rerouted.
+//!
+//! The HyperedgeNewAndDeletedObjectLists::changedConnectorList attribute
+//! will only be used for hyperedge improvement and will always be empty
+//! for hyperedge rerouting.
+//!
+struct HyperedgeNewAndDeletedObjectLists
+{
+ //! A list of newly created junctions.
+ JunctionRefList newJunctionList;
+
+ //! A list of newly created connectors.
+ ConnRefList newConnectorList;
+
+ //! A list of deleted junctions.
+ JunctionRefList deletedJunctionList;
+
+ //! A list of deleted connectors.
+ ConnRefList deletedConnectorList;
+
+ //! A list of changed connectors.
+ ConnRefList changedConnectorList;
+};
+
+
+//! @brief The HyperedgeRerouter class is a convenience object that can be
+//! used to register hyperedges to be rerouted, improving the
+//! placement of their junctions and connector paths.
+//!
+//! To work with this class, you should get a copy from the router instance
+//! via a call to Router::hyperedgeRerouter().
+//!
+//! If you would like a particular hyperedge to be completely rerouted with
+//! new junction positions then you should register it with this class via a
+//! call to registerHyperedgeForRerouting. A hyperedge can either be
+//! specified as a set of terminal vertices, or as a single JunctionRef.
+//! Passing a JunctionRef will cause HyperedgeRerouter to follow the attached
+//! connectors and junctions to determine the hyperedge. When you register
+//! a hyperedge you get an index number that can be used to later find
+//! information about it.
+//!
+//! The rerouting will actually occur the next time the Router processes a
+//! transaction, see Router::processTransaction(). The rerouting will
+//! effectively create new junctions (JunctionRefs) and connectors (ConnRefs)
+//! for the hyperedge.
+//!
+//! Since hyperedges are composed of multiple connections and junction objects,
+//! rerouting a hyperedge can cause creation of new or deletion of existing
+//! connectors and/or junctions. Thus once the transaction has been completed
+//! you should call the newAndDeletedObjectLists() to get an object containing
+//! the lists of created and deleted junctions and connectors. After the
+//! transaction You should not use references to these deleted objects any
+//! more from your own code (since the router will free their memory at its
+//! convenience) and you should refer only to the unaffected objects and the
+//! new connectors and junctions.
+//!
+class AVOID_EXPORT HyperedgeRerouter
+{
+ public:
+ //! @brief Constructor for hyperedge rerouter object.
+ //!
+ //! @note You shouldn't create this object yourself. The Router
+ //! instance has one that you can request a reference to
+ //! via Router::hyperedgeRerouter().
+ //!
+ HyperedgeRerouter();
+
+ //! @brief Registers a hyperedge to be fully rerouted the next time
+ //! the router processes a transaction.
+ //!
+ //! @param[in] terminals The ConnEnds that form the endpoints of the
+ //! hyperedge.
+ //! @return An index that can be used to request information on the
+ //! resulting routing of the hyperedge.
+ //!
+ size_t registerHyperedgeForRerouting(ConnEndList terminals);
+
+ //! @brief Registers a hyperedge to be fully rerouted the next time
+ //! the router processes a transaction.
+ //!
+ //! In this case the connectors and junctions attached to the given
+ //! junction will be traversed to determine the endpoints of the
+ //! hyperedge. These endpoints will then be used for the rerouting.
+ //! The junctions and connectors forming the old route will be
+ //! deleted.
+ //!
+ //! @param[in] junction One of the junctions that forms the
+ //! hyperedge.
+ //! @return An index that can be used to request information on the
+ //! resulting routing of the hyperedge.
+ //!
+ size_t registerHyperedgeForRerouting(JunctionRef *junction);
+
+ //! @brief Returns a HyperedgeNewAndDeletedObjectLists detailing the
+ //! lists of junctions and connectors created and deleted
+ //! during hyperedge improvement.
+ //!
+ //! This method will only return information once the router has
+ //! processed the transaction. You should read this information
+ //! before processTransaction() is called again.
+ //!
+ //! After calling this you should no longer refer to any of the
+ //! objects in the "deleted" lists --- the router will delete these
+ //! and free their memory at its convenience.
+ //!
+ //! @param index The index of the hyperedge to return junctions for.
+ //! @return A HyperedgeNewAndDeletedObjectLists containing lists of
+ //! junctions and connectors created and deleted.
+ //!
+ HyperedgeNewAndDeletedObjectLists newAndDeletedObjectLists(
+ size_t index) const;
+
+ // @brief The number of hyperedges that are being or have been
+ // rerouted.
+ // @return The number of rerouted hyperedges.
+ //
+ size_t count(void) const;
+
+ private:
+ friend class Router;
+
+ // @brief Sets the router instance that this object operates on.
+ //
+ // @param[in] router The router instance to operate on.
+ //
+ void setRouter(Router *router);
+
+ ConnRefSet calcHyperedgeConnectors(void);
+ // Called by Router during processTransaction().
+ void performRerouting(void);
+ void outputInstanceToSVG(FILE *fp);
+ bool findAttachedObjects(size_t index, ConnRef *connector,
+ JunctionRef *ignore, ConnRefSet& hyperedgeConns);
+ bool findAttachedObjects(size_t index, JunctionRef *junction,
+ ConnRef *ignore, ConnRefSet& hyperedgeConns);
+
+ Router *m_router;
+ ConnEndListVector m_terminals_vector;
+ JunctionRefVector m_root_junction_vector;
+ JunctionRefListVector m_new_junctions_vector;
+ JunctionRefListVector m_deleted_junctions_vector;
+ ConnRefListVector m_new_connectors_vector;
+ ConnRefListVector m_deleted_connectors_vector;
+ VertexSetVector m_terminal_vertices_vector;
+ VertexList m_added_vertices;
+};
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.cpp b/src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.cpp
new file mode 100644
index 0000000..bf7c357
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.cpp
@@ -0,0 +1,1232 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2009-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <algorithm>
+#include <sstream>
+#include <iomanip>
+
+#include "libavoid/router.h"
+#include "libavoid/shape.h"
+#include "libavoid/junction.h"
+#include "libavoid/vpsc.h"
+#include "libavoid/assertions.h"
+#include "libavoid/hyperedgetree.h"
+#include "libavoid/hyperedgeimprover.h"
+#include "libavoid/scanline.h"
+#include "libavoid/debug.h"
+
+namespace Avoid {
+
+class HyperedgeShiftSegment : public ShiftSegment
+{
+ public:
+ HyperedgeShiftSegment(HyperedgeTreeNode *n1, HyperedgeTreeNode *n2,
+ const size_t dim, bool immovable)
+ : ShiftSegment(dim),
+ nodes((dim + 1) % 2),
+ isImmovable(immovable),
+ m_balance_count(0),
+ m_balance_count_set(false),
+ m_at_limit(false)
+ {
+ nodes.insert(n1);
+ nodes.insert(n2);
+ n1->shiftSegmentNodeSet = &nodes;
+ n2->shiftSegmentNodeSet = &nodes;
+
+ minSpaceLimit = -CHANNEL_MAX;
+ maxSpaceLimit = CHANNEL_MAX;
+ }
+ virtual ~HyperedgeShiftSegment()
+ {
+ for (OrderedHENodeSet::const_iterator curr = nodes.begin();
+ curr != nodes.end(); ++curr)
+ {
+ (*curr)->shiftSegmentNodeSet = nullptr;
+ }
+ }
+
+ Point& lowPoint(void)
+ {
+ return (*nodes.begin())->point;
+ }
+ Point& highPoint(void)
+ {
+ return (*nodes.rbegin())->point;
+ }
+ const Point& lowPoint(void) const
+ {
+ return (*nodes.begin())->point;
+ }
+ const Point& highPoint(void) const
+ {
+ return (*nodes.rbegin())->point;
+ }
+ // Counts the number of segments diverging on each side and returns
+ // a count: a negative number if there a more on the lower side,
+ // a positive number if there are more on the upper side, or zero if
+ // there are an equal number of segments.
+ void setBalanceCount(void)
+ {
+ size_t altDim = (dimension + 1) % 2;
+ m_next_pos_lower = minSpaceLimit;
+ m_next_pos_upper = maxSpaceLimit;
+ m_balance_count = 0;
+ if ( isImmovable )
+ {
+ m_balance_count_set = true;
+ return;
+ }
+ for (OrderedHENodeSet::const_iterator curr = nodes.begin();
+ curr != nodes.end(); ++curr)
+ {
+ const Point& currPoint = (*curr)->point;
+ for (std::list<HyperedgeTreeEdge *>::const_iterator currEdge =
+ (*curr)->edges.begin(); currEdge != (*curr)->edges.end();
+ ++currEdge)
+ {
+ const HyperedgeTreeNode *node = (*currEdge)->followFrom(*curr);
+ const Point& otherPoint = node->point;
+ if (currPoint[altDim] == otherPoint[altDim])
+ {
+ if (otherPoint[dimension] < currPoint[dimension])
+ {
+ m_next_pos_lower = std::max(m_next_pos_lower,
+ otherPoint[dimension]);
+ --m_balance_count;
+ }
+ else if (otherPoint[dimension] > currPoint[dimension])
+ {
+ m_next_pos_upper = std::min(m_next_pos_upper,
+ otherPoint[dimension]);
+ ++m_balance_count;
+ }
+ }
+ }
+ }
+ m_balance_count_set = true;
+ }
+ int balanceCount(void) const
+ {
+ COLA_ASSERT( m_balance_count_set );
+ return m_balance_count;
+ }
+ void adjustPosition(void)
+ {
+ COLA_ASSERT(m_balance_count_set);
+ COLA_ASSERT(m_balance_count != 0);
+
+ double newPos = (m_balance_count < 0) ?
+ m_next_pos_lower : m_next_pos_upper;
+ double limit = (m_balance_count < 0) ?
+ minSpaceLimit : maxSpaceLimit;
+ if (lowPoint()[dimension] == newPos)
+ {
+ // If aren't actually moving this segment, then mark it
+ // as at-limit.
+ // XXX This seems to be because of a segment with an
+ // incorrectly marked limit, possibly due to a
+ // junction positioned within a shape.
+ m_at_limit = true;
+ }
+
+ for (OrderedHENodeSet::iterator curr = nodes.begin();
+ curr != nodes.end(); ++curr)
+ {
+ (*curr)->point[dimension] = newPos;
+ }
+
+ if (newPos == limit)
+ {
+ m_at_limit = true;
+ }
+
+ // Add nodes from collapsed segments, in case they are not part of
+ // a segment that will be merged.
+ for (OrderedHENodeSet::iterator curr = nodes.begin();
+ curr != nodes.end(); ++curr)
+ {
+ Point& currPoint = (*curr)->point;
+ for (std::list<HyperedgeTreeEdge *>::iterator currEdge =
+ (*curr)->edges.begin(); currEdge != (*curr)->edges.end();
+ ++currEdge)
+ {
+ HyperedgeTreeNode *node = (*currEdge)->followFrom(*curr);
+ Point& otherPoint = node->point;
+ if (currPoint == otherPoint)
+ {
+ nodes.insert(node);
+ node->shiftSegmentNodeSet = &nodes;
+ }
+ }
+ }
+ }
+ bool overlapsWith(const ShiftSegment *rhs, const size_t dim) const
+ {
+ size_t altDim = (dim + 1) % 2;
+ const Point& lowPt = lowPoint();
+ const Point& highPt = highPoint();
+ const Point& rhsLowPt = rhs->lowPoint();
+ const Point& rhsHighPt = rhs->highPoint();
+ if ( (lowPt[altDim] <= rhsHighPt[altDim]) &&
+ (rhsLowPt[altDim] <= highPt[altDim]))
+ {
+ // The segments overlap.
+ if ( (minSpaceLimit <= rhs->maxSpaceLimit) &&
+ (rhs->minSpaceLimit <= maxSpaceLimit) )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ bool immovable(void) const
+ {
+ return isImmovable;
+ }
+ bool settled(void) const
+ {
+ return isImmovable || m_at_limit || (balanceCount() == 0);
+ }
+ bool mergesWith(HyperedgeShiftSegment *other)
+ {
+ size_t altDim = (dimension + 1) % 2;
+ const Point& lowPt = lowPoint();
+ const Point& highPt = highPoint();
+ const Point& otherLowPt = other->lowPoint();
+ const Point& otherHighPt = other->highPoint();
+ if ( (lowPt[dimension] == otherLowPt[dimension]) &&
+ (lowPt[altDim] <= otherHighPt[altDim]) &&
+ (otherLowPt[altDim] <= highPt[altDim]))
+ {
+ isImmovable |= other->isImmovable;
+ m_at_limit |= m_at_limit;
+ minSpaceLimit = std::max(minSpaceLimit, other->minSpaceLimit);
+ maxSpaceLimit = std::min(maxSpaceLimit, other->maxSpaceLimit);
+ nodes.insert(other->nodes.begin(), other->nodes.end());
+ other->nodes.clear();
+ for (OrderedHENodeSet::iterator curr = nodes.begin();
+ curr != nodes.end(); ++curr)
+ {
+ (*curr)->shiftSegmentNodeSet = &nodes;
+ }
+ setBalanceCount();
+ return true;
+ }
+ setBalanceCount();
+ return false;
+ }
+
+ std::set<HyperedgeTreeNode *, CmpNodesInDim> nodes;
+ bool isImmovable;
+private:
+ int m_balance_count;
+ bool m_balance_count_set;
+ double m_next_pos_lower;
+ double m_next_pos_upper;
+ bool m_at_limit;
+};
+
+#if 0
+// UNUSED
+static bool CmpHyperedgeSegmentDirOrder(const ShiftSegment *lhsSuper,
+ const ShiftSegment *rhsSuper)
+{
+ const HyperedgeShiftSegment *lhs =
+ dynamic_cast<const HyperedgeShiftSegment *> (lhsSuper);
+ const HyperedgeShiftSegment *rhs =
+ dynamic_cast<const HyperedgeShiftSegment *> (rhsSuper);
+
+ return fabs(lhs->balanceCount()) > fabs(rhs->balanceCount());
+}
+#endif
+
+
+// Constructor.
+HyperedgeImprover::HyperedgeImprover()
+ : m_router(nullptr)
+{
+ clear();
+}
+
+void HyperedgeImprover::setRouter(Router *router)
+{
+ m_router = router;
+}
+
+void HyperedgeImprover::clear(void)
+{
+ m_hyperedge_tree_junctions.clear();
+ m_hyperedge_tree_roots.clear();
+ m_root_shift_segments.clear();
+ m_all_shift_segments.clear();
+ m_new_junctions.clear();
+ m_deleted_junctions.clear();
+ m_new_connectors.clear();
+ m_deleted_connectors.clear();
+ m_changed_connectors.clear();
+ m_debug_count = 0;
+}
+
+// Helper method for buildHyperedgeSegments() for hyperedge tree nodes.
+void HyperedgeImprover::createShiftSegmentsForDimensionExcluding(
+ HyperedgeTreeNode *node, const size_t dim, HyperedgeTreeEdge *ignore,
+ ShiftSegmentList& segments)
+{
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = node->edges.begin();
+ curr != node->edges.end(); ++curr)
+ {
+ HyperedgeTreeEdge *edge = *curr;
+ if (edge != ignore)
+ {
+ createShiftSegmentsForDimensionExcluding(edge, dim,
+ node, segments);
+ }
+ }
+}
+
+// Helper method for buildHyperedgeSegments() for hyperedge tree edges.
+void HyperedgeImprover::createShiftSegmentsForDimensionExcluding(
+ HyperedgeTreeEdge *edge, const size_t dim, HyperedgeTreeNode *ignore,
+ ShiftSegmentList& segments)
+{
+ if (edge->hasOrientation(dim) && ! edge->zeroLength())
+ {
+ bool immovable = (edge->ends.first->isImmovable() ||
+ edge->ends.second->isImmovable());
+
+ HyperedgeShiftSegment *newSegment =
+ new HyperedgeShiftSegment(edge->ends.first,
+ edge->ends.second, dim, immovable);
+ segments.push_back(newSegment);
+ }
+
+ if (edge->ends.first && (edge->ends.first != ignore))
+ {
+ createShiftSegmentsForDimensionExcluding(edge->ends.first, dim,
+ edge, segments);
+ }
+
+ if (edge->ends.second && (edge->ends.second != ignore))
+ {
+ createShiftSegmentsForDimensionExcluding(edge->ends.second, dim,
+ edge, segments);
+ }
+}
+
+// During creation and nudging of shift segments it is often necessary
+// to merge collinear or overlapping segments. This method does the
+// merging for these cases. Effectively merging is done by adding
+// additional vertex pointers to the shift segment.
+void HyperedgeImprover::mergeOverlappingSegments(ShiftSegmentList& segments)
+{
+ for (ShiftSegmentList::iterator curr = segments.begin();
+ curr != segments.end(); ++curr)
+ {
+ HyperedgeShiftSegment *edge1 =
+ static_cast<HyperedgeShiftSegment *> (*curr);
+ for (ShiftSegmentList::iterator curr2 = segments.begin();
+ curr2 != segments.end(); )
+ {
+ if (curr2 == curr)
+ {
+ ++curr2;
+ continue;
+ }
+ HyperedgeShiftSegment *edge2 =
+ static_cast<HyperedgeShiftSegment *> (*curr2);
+ if (edge1->mergesWith(edge2))
+ {
+ delete edge2;
+ curr2 = segments.erase(curr2);
+ }
+ else
+ {
+ ++curr2;
+ }
+ }
+ }
+}
+
+// Given a hyperedge tree and a dimension, this method creates shift
+// segments for all edges in that orientation. These segments are the
+// objects on which the local improvement nudging operates, and they
+// in turn make changes back to the hyperedge tree.
+void HyperedgeImprover::buildHyperedgeSegments(const size_t dim)
+{
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ ShiftSegmentList& segments = m_root_shift_segments[*curr];
+
+ HyperedgeTreeNode *node = m_hyperedge_tree_junctions[*curr];
+ createShiftSegmentsForDimensionExcluding(node, dim, nullptr, segments);
+
+ // Merge overlapping segment.
+ mergeOverlappingSegments(segments);
+
+ m_all_shift_segments.insert(m_all_shift_segments.begin(),
+ segments.begin(), segments.end());
+ }
+}
+
+// This method looks for and corrects situations where the middle section
+// of a zigzag is optimised away by bringing the outside segments in line
+// and leading to the middle segment being zero length. These zero length
+// edges are removed.
+void HyperedgeImprover::removeZeroLengthEdges(void)
+{
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = m_hyperedge_tree_junctions[*curr];
+
+ removeZeroLengthEdges(node, nullptr);
+ }
+}
+
+// This method looks for and correct situations where multiple overlapping
+// edges lead to a junction and one or more of these segments could be
+// removed by moving the junction (and thus divergence point) along the
+// edge.
+void HyperedgeImprover::moveJunctionsAlongCommonEdges(void)
+{
+ for (JunctionHyperedgeTreeNodeMap::iterator curr =
+ m_hyperedge_tree_junctions.begin();
+ curr != m_hyperedge_tree_junctions.end(); )
+ {
+ HyperedgeTreeNode *node = curr->second;
+
+ bool nodeMapHasChanged = false;
+ // For each junction, try and move it.
+ while ((node = moveJunctionAlongCommonEdge(node, nodeMapHasChanged)))
+ {
+ if (node)
+ {
+ // Junction has moved, rewrite the pointer in
+ // the m_hyperedge_tree_junctions map.
+ curr->second = node;
+ }
+ }
+
+ if (nodeMapHasChanged)
+ {
+ // Objects have been added to m_hyperedge_tree_junctions and
+ // this may be earlier than our current iterator, so restart.
+ curr = m_hyperedge_tree_junctions.begin();
+ }
+ else
+ {
+ ++curr;
+ }
+ }
+}
+
+// This method traverses the hyperedge tree removing zero length edges.
+//
+void HyperedgeImprover::removeZeroLengthEdges(HyperedgeTreeEdge *self,
+ HyperedgeTreeNode *ignored)
+{
+ if (self->ends.first != ignored)
+ {
+ removeZeroLengthEdges(self->ends.first, self);
+ }
+
+ if (self->ends.second != ignored)
+ {
+ removeZeroLengthEdges(self->ends.second, self);
+ }
+}
+
+
+// This method traverses the hyperedge tree removing zero length edges.
+//
+void HyperedgeImprover::removeZeroLengthEdges(HyperedgeTreeNode *self,
+ HyperedgeTreeEdge *ignored)
+{
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = self->edges.begin();
+ curr != self->edges.end(); ++curr)
+ {
+ HyperedgeTreeEdge *edge = *curr;
+ if (edge != ignored)
+ {
+ if (!edge->hasFixedRoute && edge->zeroLength())
+ {
+ HyperedgeTreeNode *other = edge->followFrom(self);
+ HyperedgeTreeNode *target = nullptr;
+ HyperedgeTreeNode *source = nullptr;
+ if (other->junction && ! self->junction)
+ {
+ target = other;
+ source = self;
+ }
+ else if ( ! other->junction && self->junction)
+ {
+ target = self;
+ source = other;
+ }
+ else if ( ! other->junction && ! self->junction)
+ {
+ target = self;
+ source = other;
+ }
+ else if ( other->junction && self->junction &&
+ m_can_make_major_changes)
+ {
+ // Only delete junctions if we can make major changes.
+
+#ifdef MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+ fprintf(stderr, "HyperedgeImprover: Coalescing junctions "
+ "%u and %u:\n", self->junction->id(),
+ other->junction->id());
+ fprintf(stderr, " Deleted junction %u\n",
+ other->junction->id());
+ fprintf(stderr, " Deleted connector %u\n",
+ edge->conn->id());
+#endif
+
+ // Delete one of the junctions.
+ m_deleted_junctions.push_back(other->junction);
+ m_hyperedge_tree_junctions.erase(other->junction);
+ if (m_hyperedge_tree_roots.count(other->junction) > 0)
+ {
+ // If 'other' was the root for the hyperedge, we need
+ // to make 'self' the new root.
+ m_hyperedge_tree_roots.erase(other->junction);
+ m_hyperedge_tree_roots.insert(self->junction);
+ // It should already be in the junctions list.
+ COLA_ASSERT(m_hyperedge_tree_junctions.
+ count(self->junction) == 1);
+ }
+ other->junction = nullptr;
+
+ // Delete the connector on the zero length edge.
+ m_deleted_connectors.push_back(edge->conn);
+ edge->conn = nullptr;
+
+ target = self;
+ source = other;
+ }
+
+ if (target)
+ {
+ edge->disconnectEdge();
+ delete edge;
+ target->spliceEdgesFrom(source);
+ delete source;
+ removeZeroLengthEdges(target, ignored);
+ return;
+ }
+ }
+
+ // Recursive call.
+ removeZeroLengthEdges(edge, self);
+ }
+ }
+}
+
+
+
+// Given a set of hyperedge shift segments in a particular dimension,
+// with limits and balance values precomputed, this method shifts and
+// merges segments to improve the overall cost (length + bend penalties)
+// for the hyperedge.
+void HyperedgeImprover::nudgeHyperedgeSegments(size_t dimension,
+ unsigned int& versionNumber)
+{
+ // For each hyperedge...
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ ++m_debug_count;
+ versionNumber = (int)dimension * 10000;
+ versionNumber += m_debug_count * 1000;
+
+ // Calculate the balance for each shift segment.
+ ShiftSegmentList& segmentList = m_root_shift_segments[*curr];
+ for (ShiftSegmentList::iterator currSeg = segmentList.begin();
+ currSeg != segmentList.end(); )
+ {
+ HyperedgeShiftSegment *segment =
+ static_cast<HyperedgeShiftSegment *> (*currSeg);
+ segment->setBalanceCount();
+
+ ++currSeg;
+ }
+
+ //segmentList.sort(CmpHyperedgeSegmentDirOrder);
+
+ bool change = false;
+ ShiftSegmentList::iterator currSeg = segmentList.begin();
+ while (currSeg != segmentList.end())
+ {
+ // While we haven't considered every segment...
+
+ HyperedgeShiftSegment *segment =
+ static_cast<HyperedgeShiftSegment *> (*currSeg);
+
+ if ( ! segment->settled() )
+ {
+ // The segment is not settled, so move it to the next
+ // ideal position and then merge it with overlapping
+ // segments. Note, the merged segment will have a new
+ // balance value calculated for it.
+ segment->adjustPosition();
+ outputHyperedgesToSVG(++versionNumber, segment);
+ mergeOverlappingSegments(segmentList);
+ change = true;
+ }
+
+ if (change)
+ {
+ // We made a change, so start again from the beginning
+ // of the list of segments.
+ change = false;
+ currSeg = segmentList.begin();
+ }
+ else
+ {
+ // Consider the next segment.
+ ++currSeg;
+ }
+ }
+ }
+}
+
+// Write the paths from an improved hyperedgetree object back as routes
+// to the component connectors that form the hyperedge.
+void HyperedgeImprover::writeHyperedgeSegmentsBackToConnPaths(void)
+{
+ // Write segments in two passes. The first to clear the existing
+ // connector routes and the second to build and set new routes.
+ for (size_t pass = 0; pass < 2; ++pass)
+ {
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = m_hyperedge_tree_junctions[*curr];
+
+ node->writeEdgesToConns(nullptr, pass);
+ }
+ }
+}
+
+// Output the hyperedge tree to an SVG file, optionally highlighting
+// a segment of interest (usually the segment being moved).
+void HyperedgeImprover::outputHyperedgesToSVG(unsigned int pass,
+ HyperedgeShiftSegment *activeSegment)
+{
+#ifndef HYPEREDGE_DEBUG
+ return;
+#endif
+
+ // Reasonable initial limit for diagram bounds.
+ const double LIMIT = 100000000;
+
+ std::stringstream filename;
+ filename << "DEBUG/hyperedges-" << std::setfill('0') << std::setw(5) << pass << ".svg";
+ FILE *fp = fopen(filename.str().c_str(), "w");
+
+ double minX = LIMIT;
+ double minY = LIMIT;
+ double maxX = -LIMIT;
+ double maxY = -LIMIT;
+
+ VertInf *curr = m_router->vertices.connsBegin();
+ while (curr)
+ {
+ Point p = curr->point;
+
+ if (p.x > -LIMIT)
+ {
+ minX = std::min(minX, p.x);
+ }
+ if (p.x < LIMIT)
+ {
+ maxX = std::max(maxX, p.x);
+ }
+ if (p.y > -LIMIT)
+ {
+ minY = std::min(minY, p.y);
+ }
+ if (p.y < LIMIT)
+ {
+ maxY = std::max(maxY, p.y);
+ }
+ curr = curr->lstNext;
+ }
+ minX -= 50;
+ minY -= 50;
+ maxX += 50;
+ maxY += 50;
+
+
+ fprintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ fprintf(fp, "<svg xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%%\" height=\"100%%\" viewBox=\"%g %g %g %g\">\n", minX, minY, maxX - minX, maxY - minY);
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"ShapesRect\">\n");
+ ObstacleList::iterator obstacleIt = m_router->m_obstacles.begin();
+ while (obstacleIt != m_router->m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ bool isShape = (nullptr != dynamic_cast<ShapeRef *> (obstacle));
+
+ if ( ! isShape )
+ {
+ // Don't output obstacles here, for now.
+ ++obstacleIt;
+ continue;
+ }
+
+ Box bBox = obstacle->polygon().offsetBoundingBox(0.0);
+
+ fprintf(fp, "<rect id=\"rect-%u\" x=\"%g\" y=\"%g\" width=\"%g\" "
+ "height=\"%g\" style=\"stroke-width: 1px; stroke: %s; "
+ "fill: blue; fill-opacity: 0.3;\" />\n",
+ obstacle->id(), bBox.min.x, bBox.min.y,
+ bBox.max.x - bBox.min.x, bBox.max.y - bBox.min.y,
+ (isShape) ? "blue" : "red");
+ ++obstacleIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"Hyperedge-%u\">\n", pass);
+ if (activeSegment)
+ {
+ fprintf(fp, "<path d=\"M %g %g L %g %g\" "
+ "style=\"fill: none; stroke: %s; stroke-width: 12px; "
+ "stroke-opacity: 0.5;\" />\n",
+ activeSegment->lowPoint().x, activeSegment->lowPoint().y,
+ activeSegment->highPoint().x, activeSegment->highPoint().y,
+ activeSegment->settled() ? "red" : "orange");
+ }
+
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = m_hyperedge_tree_junctions[*curr];
+
+ node->outputEdgesExcept(fp, nullptr);
+ }
+ fprintf(fp, "</g>\n");
+ fprintf(fp, "</svg>\n");
+
+ fclose(fp);
+}
+
+// Given a junction, this method follows the attached connectors and
+// junctions to determine a hyperedge and returns the set of vertices
+// representing its endpoints.
+void HyperedgeImprover::getEndpoints(JunctionRef *junction, JunctionRef *ignore,
+ std::set<VertInf *>& endpoints)
+{
+ for (std::set<ConnEnd *>::iterator curr =
+ junction->m_following_conns.begin();
+ curr != junction->m_following_conns.end(); ++curr)
+ {
+ ConnEnd *connEnd = *curr;
+ COLA_ASSERT(connEnd->m_conn_ref != nullptr);
+ ConnRef *connRef = connEnd->m_conn_ref;
+ std::pair<Obstacle *, Obstacle *> anchors =
+ connRef->endpointAnchors();
+
+ JunctionRef *junction1 =
+ dynamic_cast<JunctionRef *> (anchors.first);
+ if (junction1)
+ {
+ if (junction1 != junction && junction1 != ignore)
+ {
+ getEndpoints(junction1, junction, endpoints);
+ }
+ }
+ else
+ {
+ endpoints.insert(connRef->m_src_vert);
+ }
+
+ JunctionRef *junction2 =
+ dynamic_cast<JunctionRef *> (anchors.second);
+ if (junction2)
+ {
+ if (junction2 != junction && junction2 != ignore)
+ {
+ getEndpoints(junction2, junction, endpoints);
+ }
+ }
+ else
+ {
+ endpoints.insert(connRef->m_dst_vert);
+ }
+ }
+}
+
+// Execute local improvement process.
+void HyperedgeImprover::execute(bool canMakeMajorChanges)
+{
+ m_can_make_major_changes = canMakeMajorChanges;
+
+ // Build Hyperedge trees.
+ ConnRefList::iterator connRefIt = m_router->connRefs.begin();
+ while (connRefIt != m_router->connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+ JunctionRef *jFront = nullptr;
+ JunctionRef *jBack = nullptr;
+
+ if (connRef->m_src_connend)
+ {
+ jFront = connRef->m_src_connend->junction();
+ }
+
+ if (connRef->m_dst_connend)
+ {
+ jBack = connRef->m_dst_connend->junction();
+ }
+
+ if ( ! jFront && ! jBack )
+ {
+ ++connRefIt;
+ continue;
+ }
+
+ bool seenFront = (m_hyperedge_tree_junctions.find(jFront) !=
+ m_hyperedge_tree_junctions.end());
+ bool seenBack = (m_hyperedge_tree_junctions.find(jBack) !=
+ m_hyperedge_tree_junctions.end());
+
+ HyperedgeTreeNode *nodeFront = nullptr;
+ HyperedgeTreeNode *nodeBack = nullptr;
+
+ if (jFront)
+ {
+ if ( ! seenFront)
+ {
+ nodeFront = new HyperedgeTreeNode();
+ nodeFront->point = jFront->position();
+ nodeFront->junction = jFront;
+
+ m_hyperedge_tree_junctions[jFront] = nodeFront;
+ }
+ else
+ {
+ nodeFront = m_hyperedge_tree_junctions[jFront];
+ }
+ }
+ else
+ {
+ nodeFront = new HyperedgeTreeNode();
+ }
+
+ if (jBack)
+ {
+ if ( ! seenBack)
+ {
+ nodeBack = new HyperedgeTreeNode();
+ nodeBack->point = jBack->position();
+ nodeBack->junction = jBack;
+
+ m_hyperedge_tree_junctions[jBack] = nodeBack;
+ }
+ else
+ {
+ nodeBack = m_hyperedge_tree_junctions[jBack];
+ }
+ }
+ else
+ {
+ nodeBack = new HyperedgeTreeNode();
+ }
+
+ PolyLine& route = connRef->displayRoute();
+ HyperedgeTreeNode *prev = nullptr;
+ for (unsigned int i = 1; i < route.size(); ++i)
+ {
+ HyperedgeTreeNode *node;
+ if (i + 1 == route.size())
+ {
+ node = nodeBack;
+ }
+ else
+ {
+ node = new HyperedgeTreeNode();
+ }
+ node->point = route.at(i);
+ if (i == 1)
+ {
+ prev = nodeFront;
+ nodeFront->point = route.at(0);
+ nodeFront->isConnectorSource = true;
+ }
+ new HyperedgeTreeEdge(prev, node, connRef);
+ prev = node;
+ }
+ ++connRefIt;
+ }
+
+ // Make a list that contains a single junction from each tree.
+ for (JunctionHyperedgeTreeNodeMap::iterator curr =
+ m_hyperedge_tree_junctions.begin();
+ curr != m_hyperedge_tree_junctions.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = curr->second;
+ m_hyperedge_tree_roots.insert(node->junction);
+ }
+ JunctionRefList cyclicHyperedgeTreeRoots;
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = m_hyperedge_tree_junctions[*curr];
+ bool containsCycle = node->removeOtherJunctionsFrom(nullptr,
+ m_hyperedge_tree_roots);
+ if (containsCycle)
+ {
+ // This hyperedge has a cycle. We will need to remove it.
+ cyclicHyperedgeTreeRoots.push_back(node->junction);
+ }
+ }
+ // Remove roots of cyclic hyperedges, we can't improve these.
+ for (JunctionRefList::iterator curr = cyclicHyperedgeTreeRoots.begin();
+ curr != cyclicHyperedgeTreeRoots.end(); ++curr)
+ {
+ JunctionRef *junction = *curr;
+ err_printf("Warning: Skipping cyclic hyperedge rooted at junction %u\n",
+ junction->id());
+ m_hyperedge_tree_roots.erase(junction);
+ }
+
+ TIMER_START(m_router, tmHyperedgeImprove);
+
+ // Debug output.
+ unsigned int versionNumber = 1;
+ outputHyperedgesToSVG(versionNumber);
+
+ // Remove zero length edges.
+ removeZeroLengthEdges();
+
+ // Move junctions to divergence points.
+ moveJunctionsAlongCommonEdges();
+
+ // Debug output.
+ outputHyperedgesToSVG(++versionNumber);
+
+ for (size_t count = 0; count < 4; ++count)
+ {
+ size_t dimension = count % 2;
+
+ // Set a version number for debug output.
+ versionNumber = 100 * (int)(dimension + 1);
+
+ // Build shift segments.
+ buildHyperedgeSegments(dimension);
+ // Calculate channel information for this dimension.
+ buildOrthogonalChannelInfo(m_router, dimension, m_all_shift_segments);
+ // Nudge hyperedge segments to locally improve the route.
+ nudgeHyperedgeSegments(dimension, versionNumber);
+ // Remove resulting zero length edges.
+ removeZeroLengthEdges();
+ // Move junctions to divergence points.
+ moveJunctionsAlongCommonEdges();
+ // Debug output.
+ outputHyperedgesToSVG(++versionNumber);
+
+ // Clean up shift segments.
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ ShiftSegmentList& segmentList = m_root_shift_segments[*curr];
+ for_each(segmentList.begin(), segmentList.end(),
+ delete_object());
+ }
+ m_root_shift_segments.clear();
+ m_all_shift_segments.clear();
+ }
+
+ // Rewrite updated connector attachments to junctions.
+ if (m_can_make_major_changes)
+ {
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ HyperedgeTreeNode *treeRoot = m_hyperedge_tree_junctions[*curr];
+ COLA_ASSERT(treeRoot);
+ treeRoot->updateConnEnds(nullptr, m_router, m_changed_connectors);
+
+ // Validate the rewrtten connections.
+ treeRoot->validateHyperedge(nullptr, 0);
+ }
+ }
+
+ // Write back final recommended positions to junctions.
+ for (JunctionHyperedgeTreeNodeMap::iterator curr =
+ m_hyperedge_tree_junctions.begin();
+ curr != m_hyperedge_tree_junctions.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = curr->second;
+
+ node->junction->setRecommendedPosition(node->point);
+ }
+
+ // Write paths from the hyperedge tree back into individual
+ // connector routes.
+ writeHyperedgeSegmentsBackToConnPaths();
+
+ // Free HyperedgeTree structure.
+ for (JunctionSet::iterator curr = m_hyperedge_tree_roots.begin();
+ curr != m_hyperedge_tree_roots.end(); ++curr)
+ {
+ HyperedgeTreeNode *node = m_hyperedge_tree_junctions[*curr];
+
+ node->deleteEdgesExcept(nullptr);
+ delete node;
+ }
+
+ // Tell the router that we are deleting the objects used for the
+ // previous path for the hyperedge.
+ for (ConnRefList::iterator curr = m_deleted_connectors.begin();
+ curr != m_deleted_connectors.end(); ++curr)
+ {
+ // Clear visibility assigned for connection pins.
+ (*curr)->assignConnectionPinVisibility(false);
+
+ m_router->deleteConnector(*curr);
+ }
+ for (JunctionRefList::iterator curr = m_deleted_junctions.begin();
+ curr != m_deleted_junctions.end(); ++curr)
+ {
+ m_router->deleteJunction(*curr);
+ }
+
+ TIMER_STOP(m_router);
+}
+
+
+HyperedgeNewAndDeletedObjectLists
+ HyperedgeImprover::newAndDeletedObjectLists(void) const
+{
+ HyperedgeNewAndDeletedObjectLists result;
+
+ result.newJunctionList = m_new_junctions;
+ result.deletedJunctionList = m_deleted_junctions;
+ result.newConnectorList = m_new_connectors;
+ result.deletedConnectorList = m_deleted_connectors;
+ result.changedConnectorList = m_changed_connectors;
+
+ return result;
+}
+
+
+// This method moves the junction at the given node along any shared paths
+// (so long as this action would not create any additional shared paths),
+// while also removing and freeing merged edges and nodes in the process.
+// It returns the new node where the junction is now located.
+//
+HyperedgeTreeNode *HyperedgeImprover::moveJunctionAlongCommonEdge(
+ HyperedgeTreeNode *self, bool& nodeMapHasChanged)
+{
+ COLA_ASSERT(self->junction);
+
+ HyperedgeTreeNode *newSelf = nullptr;
+ std::vector<HyperedgeTreeEdge *> commonEdges;
+ std::vector<HyperedgeTreeEdge *> otherEdges;
+
+ // Consider each edge from this node in turn.
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = self->edges.begin();
+ curr != self->edges.end(); ++curr)
+ {
+ HyperedgeTreeEdge *currEdge = *curr;
+ HyperedgeTreeNode *currNode = currEdge->followFrom(self);
+ commonEdges.clear();
+ otherEdges.clear();
+
+ if (currNode->junction)
+ {
+ // Don't shift junctions onto other junctions.
+ continue;
+ }
+ if (currEdge->hasFixedRoute)
+ {
+ // Don't move junctions along fixed edges.
+ continue;
+ }
+
+ // The current edge is a common edge we are looking to shift along.
+ commonEdges.push_back(currEdge);
+
+ // Consider each of the other edges.
+ for (std::list<HyperedgeTreeEdge *>::iterator curr2 =
+ self->edges.begin(); curr2 != self->edges.end(); ++curr2)
+ {
+ if (curr == curr2)
+ {
+ // Except the current (curr) one.
+ continue;
+ }
+
+ HyperedgeTreeEdge *otherEdge = *curr2;
+ if (otherEdge->hasFixedRoute)
+ {
+ // Don't shift junctions along fixed route connectors.
+ otherEdges.push_back(otherEdge);
+ continue;
+ }
+
+ HyperedgeTreeNode *otherNode = otherEdge->followFrom(self);
+ if (otherNode->point == currNode->point)
+ {
+ // A common edge can be at the same point, but can't have
+ // a junction at it.
+ if (otherNode->junction)
+ {
+ otherEdges.push_back(otherEdge);
+ }
+ else
+ {
+ commonEdges.push_back(otherEdge);
+ }
+ }
+ else if (pointOnLine(self->point, otherNode->point,
+ currNode->point))
+ {
+ // A common edge can be a (longer) collinear line, but we
+ // need to split the longer line at the other end of curr.
+ otherEdge->splitFromNodeAtPoint(self, currNode->point);
+ commonEdges.push_back(otherEdge);
+ }
+ else
+ {
+ // If the edge goes in another direction it is not common.
+ otherEdges.push_back(otherEdge);
+ }
+ }
+
+ // For the purpose of these changes a junction is considered fixed
+ // only when not performing major improvements.
+ bool selfFixed = self->junction->positionFixed() &&
+ !m_can_make_major_changes;
+
+ if ((commonEdges.size() > 1) && (otherEdges.size() <= 1) && !selfFixed)
+ {
+ // One of the common nodes becomes the target node, we move
+ // all connections from the other common nodes to this node.
+ // We also move the junction there and remove it from the
+ // current node.
+ HyperedgeTreeNode *targetNode = commonEdges[0]->followFrom(self);
+ for (size_t i = 1; i < commonEdges.size(); ++i)
+ {
+ HyperedgeTreeNode *thisNode = commonEdges[i]->followFrom(self);
+ commonEdges[i]->disconnectEdge();
+ targetNode->spliceEdgesFrom(thisNode);
+ delete thisNode;
+ delete commonEdges[i];
+ }
+ targetNode->junction = self->junction;
+ self->junction = nullptr;
+
+ if (otherEdges.empty())
+ {
+ // Nothing else connected to this node, so remove the node
+ // and the edge to the target node.
+ commonEdges[0]->disconnectEdge();
+
+ delete commonEdges[0];
+ delete self;
+ }
+ else
+ {
+ // We need to mark commonEdges[0] as being from the connector
+ // of the otherEdges[0].
+ commonEdges[0]->conn = otherEdges[0]->conn;
+ }
+ newSelf = targetNode;
+
+ break;
+ }
+ else if (m_can_make_major_changes && (commonEdges.size() > 1) &&
+ (otherEdges.size() > 1))
+ {
+ // Case where this is one junction we need to split into two,
+ // because we have a common path leading to it that we want to
+ // move the junction along, but multiple other edges leaving
+ // this junction that need to stay in place.
+
+ // One of the common nodes becomes the target node, we move
+ // all connections from the other common nodes to this node.
+ // We will also create a new junction there.
+ HyperedgeTreeNode *targetNode = commonEdges[0]->followFrom(self);
+ for (size_t i = 1; i < commonEdges.size(); ++i)
+ {
+ HyperedgeTreeNode *thisNode = commonEdges[i]->followFrom(self);
+ commonEdges[i]->disconnectEdge();
+ targetNode->spliceEdgesFrom(thisNode);
+ delete thisNode;
+ delete commonEdges[i];
+ }
+
+ // Create the additional junction at the target node for
+ // the otherEdges to attach to.
+ targetNode->junction = new JunctionRef(m_router, targetNode->point);
+ m_router->removeObjectFromQueuedActions(targetNode->junction);
+ targetNode->junction->makeActive();
+ m_hyperedge_tree_junctions[targetNode->junction] = targetNode;
+ nodeMapHasChanged = true;
+ m_new_junctions.push_back(targetNode->junction);
+
+ // And we create a new connector between the original junction
+ // and the new junction.
+ ConnRef *conn = new ConnRef(m_router);
+ m_router->removeObjectFromQueuedActions(conn);
+ conn->makeActive();
+ conn->m_initialised = true;
+ ConnEnd srcConnend(targetNode->junction);
+ conn->updateEndPoint(VertID::src, srcConnend);
+ ConnEnd tarConnend(self->junction);
+ conn->updateEndPoint(VertID::tar, tarConnend);
+ commonEdges[0]->conn = conn;
+ m_new_connectors.push_back(conn);
+
+#ifdef MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+ fprintf(stderr, "HyperedgeImprover: Split junction %u:\n",
+ self->junction->id());
+ fprintf(stderr, " Added junction %u\n",
+ targetNode->junction->id());
+ fprintf(stderr, " Added connector %u "
+ "(between junctions %u and %u)\n", conn->id(),
+ self->junction->id(), targetNode->junction->id());
+#endif
+
+ newSelf = self;
+
+ break;
+ }
+ }
+
+ return newSelf;
+}
+
+
+
+
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.h b/src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.h
new file mode 100644
index 0000000..958c877
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/hyperedgeimprover.h
@@ -0,0 +1,159 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#ifndef AVOID_IMPROVEHYPEREDGES_H
+#define AVOID_IMPROVEHYPEREDGES_H
+
+#include <map>
+#include <set>
+#include <list>
+
+
+namespace Avoid {
+
+struct HyperedgeTreeNode;
+struct HyperedgeTreeEdge;
+class HyperedgeShiftSegment;
+class ConnRef;
+class JunctionRef;
+class ShiftSegment;
+class VertInf;
+
+typedef std::list<ShiftSegment *> ShiftSegmentList;
+typedef std::map<JunctionRef *, ShiftSegmentList> RootSegmentsMap;
+typedef std::map<JunctionRef *, HyperedgeTreeNode *>
+ JunctionHyperedgeTreeNodeMap;
+typedef std::set<JunctionRef *> JunctionSet;
+typedef std::list<ConnRef *> ConnRefList;
+typedef std::list<JunctionRef *> JunctionRefList;
+
+class HyperedgeImprover
+{
+public:
+ // Constructor.
+ HyperedgeImprover();
+
+ void clear(void);
+
+ // Set the router that this HyperedgeImprover will act upon.
+ void setRouter(Router *router);
+
+ // Returns lists of junctions and connectors created and deleted during
+ // hyperedge improvement.
+ HyperedgeNewAndDeletedObjectLists newAndDeletedObjectLists(void) const;
+
+ // Execute local improvement process.
+ void execute(bool canMakeMajorChanges);
+
+private:
+ // Helper method for buildHyperedgeSegments() for hyperedge tree nodes.
+ void createShiftSegmentsForDimensionExcluding(HyperedgeTreeNode *node,
+ const size_t dim, HyperedgeTreeEdge *ignore,
+ ShiftSegmentList& segments);
+
+ // Helper method for buildHyperedgeSegments() for hyperedge tree edges.
+ void createShiftSegmentsForDimensionExcluding(HyperedgeTreeEdge *edge,
+ const size_t dim, HyperedgeTreeNode *ignore,
+ ShiftSegmentList& segments);
+
+ // During creation and nudging of shift segments it is often necessary
+ // to merge collinear or overlapping segments. This method does the
+ // merging for these cases. Effectively merging is done by adding
+ // additional vertex pointers to the shift segment.
+ void mergeOverlappingSegments(ShiftSegmentList& segments);
+
+ // Given a hyperedge tree and a dimension, this method creates shift
+ // segments for all edges in that orientation. These segments are the
+ // objects on which the local improvement nudging operates, and they
+ // in turn make changes back to the hyperedge tree.
+ void buildHyperedgeSegments(const size_t dim);
+
+ // This method looks for and corrects situations where the middle section
+ // of a zigzag is optimised away by bringing the outside segments in line
+ // and leading to the middle segment being zero length. These zero length
+ // edges are removed.
+ void removeZeroLengthEdges(void);
+
+ // This method looks for and correct situations where multiple overlapping
+ // edges lead to a junction and one or more of these segments could be
+ // removed by moving the junction (and thus divergence point) along the
+ // edge.
+ void moveJunctionsAlongCommonEdges(void);
+
+ // Given a set of hyperedge shift segments in a particular dimension,
+ // with limits and balance values precomputed, this method shifts and
+ // merges segments to improve the overall cost (length + bend penalties)
+ // for the hyperedge.
+ void nudgeHyperedgeSegments(size_t dimension, unsigned int& versionNumber);
+
+ // Write the paths from an improved hyperedgetree object back as routes
+ // to the component connectors that form the hyperedge.
+ void writeHyperedgeSegmentsBackToConnPaths(void);
+
+ // Output the hyperedge tree to an SVG file, optionally highlighting
+ // a segment of interest (usually the segment being moved).
+ void outputHyperedgesToSVG(unsigned int pass,
+ HyperedgeShiftSegment *activeSegment = nullptr);
+
+ // Given a junction, this method follows the attached connectors and
+ // junctions to determine a hyperedge and returns the set of vertices
+ // representing its endpoints.
+ void getEndpoints(JunctionRef *junction, JunctionRef *ignore,
+ std::set<VertInf *>& endpoints);
+
+ // This method moves the junction at the given node along any shared paths
+ // (so long as this action would not create any additional shared paths),
+ // while also removing and freeing merged edges and nodes in the process.
+ // It returns the new node where the junction is now located.
+ HyperedgeTreeNode *moveJunctionAlongCommonEdge(HyperedgeTreeNode *self,
+ bool& nodeMapHasChanged);
+
+ // This method traverses the hyperedge tree removing zero length edges.
+ //
+ void removeZeroLengthEdges(HyperedgeTreeNode *self,
+ HyperedgeTreeEdge *ignored);
+
+ // This method traverses the hyperedge tree removing zero length edges.
+ //
+ void removeZeroLengthEdges(HyperedgeTreeEdge *self,
+ HyperedgeTreeNode *ignored);
+
+ Router *m_router;
+ JunctionHyperedgeTreeNodeMap m_hyperedge_tree_junctions;
+ JunctionSet m_hyperedge_tree_roots;
+ RootSegmentsMap m_root_shift_segments;
+ ShiftSegmentList m_all_shift_segments;
+ JunctionRefList m_new_junctions;
+ JunctionRefList m_deleted_junctions;
+ ConnRefList m_new_connectors;
+ ConnRefList m_deleted_connectors;
+ ConnRefList m_changed_connectors;
+ int m_debug_count;
+ bool m_can_make_major_changes;
+};
+
+
+}
+#endif
+
diff --git a/src/3rdparty/adaptagrams/libavoid/hyperedgetree.cpp b/src/3rdparty/adaptagrams/libavoid/hyperedgetree.cpp
new file mode 100644
index 0000000..b9cf1a0
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/hyperedgetree.cpp
@@ -0,0 +1,821 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <algorithm>
+
+#include "libavoid/hyperedgetree.h"
+#include "libavoid/geometry.h"
+#include "libavoid/connector.h"
+#include "libavoid/router.h"
+#include "libavoid/connend.h"
+#include "libavoid/assertions.h"
+#include "libavoid/junction.h"
+#include "libavoid/debughandler.h"
+
+namespace Avoid {
+
+
+// Constructs a new hyperedge tree node.
+//
+HyperedgeTreeNode::HyperedgeTreeNode()
+ : junction(nullptr),
+ shiftSegmentNodeSet(nullptr),
+ finalVertex(nullptr),
+ isConnectorSource(false),
+ isPinDummyEndpoint(false),
+ visited(false)
+{
+}
+
+HyperedgeTreeNode::~HyperedgeTreeNode()
+{
+ if (shiftSegmentNodeSet)
+ {
+ shiftSegmentNodeSet->erase(this);
+ shiftSegmentNodeSet = nullptr;
+ }
+}
+
+
+// This method traverses the hyperedge tree and outputs each of the edges
+// and junction positions as SVG objects to the file fp.
+//
+void HyperedgeTreeNode::outputEdgesExcept(FILE *fp, HyperedgeTreeEdge *ignored)
+{
+ if (junction)
+ {
+ fprintf(fp, "<circle cx=\"%g\" cy=\"%g\" r=\"6\" "
+ "style=\"fill: green; stroke: none;\" />\n", point.x, point.y);
+ }
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if (*curr != ignored)
+ {
+ (*curr)->outputNodesExcept(fp, this);
+ }
+ }
+}
+
+
+// This method traverses the hyperedge tree and removes from treeRoots any
+// junction nodes (other than this one).
+
+bool HyperedgeTreeNode::removeOtherJunctionsFrom(HyperedgeTreeEdge *ignored,
+ JunctionSet& treeRoots)
+{
+ bool containsCycle = false;
+ if (visited)
+ {
+ // We've encountered this node before, so there must be cycles in
+ // the hyperedge. Don't recurse any further.
+ containsCycle = true;
+ return containsCycle;
+ }
+
+ if (junction && (ignored != nullptr))
+ {
+ // Remove junctions other than the first (when ignored == nullptr).
+ treeRoots.erase(junction);
+ }
+ visited = true;
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if (*curr != ignored)
+ {
+ containsCycle |= (*curr)->removeOtherJunctionsFrom(this, treeRoots);
+ }
+ }
+ return containsCycle;
+}
+
+
+// This method traverses the hyperedge tree and writes each of the paths
+// back to the individual connectors as routes.
+//
+void HyperedgeTreeNode::writeEdgesToConns(HyperedgeTreeEdge *ignored,
+ size_t pass)
+{
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if (*curr != ignored)
+ {
+ (*curr)->writeEdgesToConns(this, pass);
+ }
+ }
+}
+
+// This method traverses the hyperedge tree and creates connectors for each
+// segment bridging junction and/or terminals. It also sets the
+// appropriate ConnEnds for each connector.
+//
+void HyperedgeTreeNode::addConns(HyperedgeTreeEdge *ignored, Router *router,
+ ConnRefList& oldConns, ConnRef *conn)
+{
+ // If no connector is set, then we must be starting off at a junction.
+ COLA_ASSERT(conn || junction);
+
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if (*curr != ignored)
+ {
+ // If we're not at a junction, then use the connector value being
+ // passed in to the method.
+
+ if (junction)
+ {
+ // If we're at a junction, then we are effectively starting
+ // our traversal along a connector, so create this new connector
+ // and set it's start ConnEnd to be this junction.
+ conn = new ConnRef(router);
+ router->removeObjectFromQueuedActions(conn);
+ conn->makeActive();
+ conn->m_initialised = true;
+ ConnEnd connend(junction);
+ conn->updateEndPoint(VertID::src, connend);
+ }
+
+ // Set the connector for this edge.
+ (*curr)->conn = conn;
+
+ // Continue recursive traversal.
+ (*curr)->addConns(this, router, oldConns);
+ }
+ }
+}
+
+static bool travellingForwardOnConnector(ConnRef *conn, JunctionRef *junction)
+{
+ std::pair<ConnEnd, ConnEnd> connEnds = conn->endpointConnEnds();
+
+ if (connEnds.first.junction() == junction)
+ {
+ return true;
+ }
+ if (connEnds.second.junction() == junction)
+ {
+ return false;
+ }
+ if (connEnds.first.type() != ConnEndJunction &&
+ connEnds.first.type() != ConnEndEmpty)
+ {
+ return false;
+ }
+ if (connEnds.second.type() != ConnEndJunction &&
+ connEnds.second.type() != ConnEndEmpty)
+ {
+ return true;
+ }
+ return true;
+}
+
+// This method traverses the hyperedge tree and rewrites connector ends
+// that may have changed junctions due to major hyperedge improvement.
+//
+void HyperedgeTreeNode::updateConnEnds(HyperedgeTreeEdge *ignored,
+ bool forward, ConnRefList& changedConns)
+{
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ HyperedgeTreeEdge *edge = *curr;
+ if (edge != ignored)
+ {
+ if (junction)
+ {
+ // If we're at a junction, then we are effectively starting
+ // our traversal along a connector, so create this new connector
+ // and set it's start ConnEnd to be this junction.
+ forward = travellingForwardOnConnector(edge->conn, junction);
+
+ std::pair<ConnEnd, ConnEnd> existingEnds =
+ edge->conn->endpointConnEnds();
+ ConnEnd existingEnd = (forward) ?
+ existingEnds.first : existingEnds.second;
+ if (existingEnd.junction() != junction)
+ {
+#ifdef MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+ fprintf(stderr, "HyperedgeImprover: changed %s of "
+ "connector %u (from junction %u to %u)\n",
+ (forward) ? "src" : "tar", edge->conn->id(),
+ existingEnd.junction()->id(), junction->id());
+#endif
+ unsigned short end = (forward) ? VertID::src : VertID::tar;
+ ConnEnd connend(junction);
+ edge->conn->updateEndPoint(end, connend);
+ changedConns.push_back(edge->conn);
+ }
+ }
+
+ // Continue recursive traversal.
+ edge->updateConnEnds(this, forward, changedConns);
+ }
+ }
+}
+
+
+// This method traverses the hyperedge tree and returns a list of the junctions
+// and connectors that make up the hyperedge.
+//
+void HyperedgeTreeNode::listJunctionsAndConnectors(HyperedgeTreeEdge *ignored,
+ JunctionRefList& junctions, ConnRefList& connectors)
+{
+ if (junction)
+ {
+ junctions.push_back(junction);
+ }
+
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if (*curr != ignored)
+ {
+ (*curr)->listJunctionsAndConnectors(this, junctions, connectors);
+ }
+ }
+}
+
+
+void HyperedgeTreeNode::validateHyperedge(const HyperedgeTreeEdge *ignored,
+ const size_t dist) const
+{
+ size_t newDist = dist;
+#ifdef MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+ if (junction)
+ {
+ if (newDist == 0)
+ {
+ fprintf(stderr,"\nHyperedge topology:\n");
+ }
+ else
+ {
+ ++newDist;
+ }
+ for (size_t d = 0; d < newDist; ++d)
+ {
+ fprintf(stderr," ");
+ }
+ fprintf(stderr, "j(%d)\n", junction->id());
+ ++newDist;
+ }
+ else if (edges.size() == 1)
+ {
+ ++newDist;
+ for (size_t d = 0; d < newDist; ++d)
+ {
+ fprintf(stderr, " ");
+ }
+ fprintf(stderr, "t()\n");
+ ++newDist;
+ }
+#endif
+ for (std::list<HyperedgeTreeEdge *>::const_iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ HyperedgeTreeEdge *edge = *curr;
+ std::pair<ConnEnd, ConnEnd> connEnds = edge->conn->endpointConnEnds();
+
+ if (junction)
+ {
+ COLA_ASSERT((connEnds.first.junction() == junction) ||
+ (connEnds.second.junction() == junction));
+ COLA_ASSERT(connEnds.first.junction() != connEnds.second.junction());
+ }
+ else if (edges.size() == 1)
+ {
+ COLA_ASSERT(!connEnds.first.junction() ||
+ !connEnds.second.junction());
+ }
+
+ if (edge != ignored)
+ {
+ edge->validateHyperedge(this, newDist);
+ }
+ }
+}
+
+
+// This method traverses the hyperedge tree, clearing up the objects and
+// memory used to store the tree.
+//
+void HyperedgeTreeNode::deleteEdgesExcept(HyperedgeTreeEdge *ignored)
+{
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if (*curr != ignored)
+ {
+ (*curr)->deleteNodesExcept(this);
+ delete *curr;
+ }
+ }
+ edges.clear();
+}
+
+
+// This method disconnects a specific hyperedge tree edge from the given node.
+//
+void HyperedgeTreeNode::disconnectEdge(HyperedgeTreeEdge *edge)
+{
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = edges.begin();
+ curr != edges.end(); )
+ {
+ if (*curr == edge)
+ {
+ curr = edges.erase(curr);
+ }
+ else
+ {
+ ++curr;
+ }
+ }
+
+}
+
+
+// This method moves all edges attached to oldNode to instead be attached to
+// the given hyperedge tree node.
+//
+void HyperedgeTreeNode::spliceEdgesFrom(HyperedgeTreeNode *oldNode)
+{
+ COLA_ASSERT(oldNode != this);
+ for (std::list<HyperedgeTreeEdge *>::iterator curr = oldNode->edges.begin();
+ curr != oldNode->edges.end(); curr = oldNode->edges.begin())
+ {
+ (*curr)->replaceNode(oldNode, this);
+ }
+}
+
+
+bool HyperedgeTreeNode::isImmovable(void) const
+{
+ if ((edges.size() == 1) || (junction && junction->positionFixed()))
+ {
+ return true;
+ }
+ for (std::list<HyperedgeTreeEdge *>::const_iterator curr = edges.begin();
+ curr != edges.end(); ++curr)
+ {
+ if ((*curr)->hasFixedRoute)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+// Constructs a new hyperedge tree edge, given two endpoint nodes.
+//
+HyperedgeTreeEdge::HyperedgeTreeEdge(HyperedgeTreeNode *node1,
+ HyperedgeTreeNode *node2, ConnRef *conn)
+ : conn(conn),
+ hasFixedRoute(false)
+{
+ if (conn)
+ {
+ hasFixedRoute = conn->hasFixedRoute();
+ }
+ ends = std::make_pair(node1, node2);
+ node1->edges.push_back(this);
+ node2->edges.push_back(this);
+}
+
+
+// Given one endpoint of the hyperedge tree edge, returns the other endpoint.
+//
+HyperedgeTreeNode *HyperedgeTreeEdge::followFrom(HyperedgeTreeNode *from) const
+{
+ return (ends.first == from) ? ends.second : ends.first;
+}
+
+
+// Returns true if the length of this edge is zero, i.e., the endpoints are
+// located at the same position.
+//
+bool HyperedgeTreeEdge::zeroLength(void) const
+{
+ return (ends.first->point == ends.second->point);
+}
+
+
+// This method traverses the hyperedge tree and outputs each of the edges
+// and junction positions as SVG objects to the file fp.
+//
+void HyperedgeTreeEdge::outputNodesExcept(FILE *fp, HyperedgeTreeNode *ignored)
+{
+ fprintf(fp, "<path d=\"M %g %g L %g %g\" "
+ "style=\"fill: none; stroke: %s; stroke-width: 2px; "
+ "stroke-opacity: 0.5;\" />\n",
+ ends.first->point.x, ends.first->point.y,
+ ends.second->point.x, ends.second->point.y, "purple");
+ if (ends.first != ignored)
+ {
+ ends.first->outputEdgesExcept(fp, this);
+ }
+
+ if (ends.second != ignored)
+ {
+ ends.second->outputEdgesExcept(fp, this);
+ }
+}
+
+
+// This method returns true if the edge is in the dimension given, i.e.,
+// either horizontal or vertical.
+//
+bool HyperedgeTreeEdge::hasOrientation(const size_t dimension) const
+{
+ return (ends.first->point[dimension] == ends.second->point[dimension]);
+}
+
+
+// This method updates any of the given hyperedge tree edge's endpoints that
+// are attached to oldNode to instead be attached to newNode.
+//
+void HyperedgeTreeEdge::replaceNode(HyperedgeTreeNode *oldNode,
+ HyperedgeTreeNode *newNode)
+{
+ if (ends.first == oldNode)
+ {
+ oldNode->disconnectEdge(this);
+ newNode->edges.push_back(this);
+ ends.first = newNode;
+ }
+ else if (ends.second == oldNode)
+ {
+ oldNode->disconnectEdge(this);
+ newNode->edges.push_back(this);
+ ends.second = newNode;
+ }
+}
+
+
+// This method traverses the hyperedge tree and writes each of the paths
+// back to the individual connectors as routes.
+//
+void HyperedgeTreeEdge::writeEdgesToConns(HyperedgeTreeNode *ignored,
+ size_t pass)
+{
+ COLA_ASSERT(ignored != nullptr);
+ COLA_ASSERT(ends.first != nullptr);
+ COLA_ASSERT(ends.second != nullptr);
+
+ HyperedgeTreeNode *prevNode =
+ (ignored == ends.first) ? ends.first : ends.second;
+ HyperedgeTreeNode *nextNode =
+ (ignored == ends.first) ? ends.second : ends.first;
+
+ if (pass == 0)
+ {
+ conn->m_display_route.clear();
+ }
+ else if (pass == 1)
+ {
+ if (conn->m_display_route.empty())
+ {
+ //printf("[%u] - %g %g\n", conn->id(), prevNode->point.x, prevNode->point.y);
+ conn->m_display_route.ps.push_back(prevNode->point);
+ }
+ //printf("[%u] + %g %g\n", conn->id(), nextNode->point.x, nextNode->point.y);
+ conn->m_display_route.ps.push_back(nextNode->point);
+
+ size_t nextNodeEdges = nextNode->edges.size();
+ if (nextNodeEdges != 2)
+ {
+ // We have finished writing a connector. If the node has just
+ // two edges then it is an intermediate node on a connector.
+ bool shouldReverse = false;
+ if (nextNodeEdges == 1)
+ {
+ // This connector led to a terminal.
+ if (nextNode->isConnectorSource)
+ {
+ shouldReverse = true;
+ }
+
+ if (nextNode->isPinDummyEndpoint)
+ {
+ // If may be that the hyperedge has an extra segment or
+ // two leading to the centre dummy pin used for connection
+ // pin routing. If so, remove these points from the
+ // resulting route.
+ conn->m_display_route.ps.pop_back();
+ if (prevNode->point == nextNode->point)
+ {
+ // Duplicated dummy point. Remove second one.
+ conn->m_display_route.ps.pop_back();
+ }
+ }
+ }
+ else // if (nextNodeEdges > 2)
+ {
+ // This connector was between two junctions.
+ COLA_ASSERT(conn->m_dst_connend);
+ JunctionRef *correctEndJunction =
+ conn->m_dst_connend->junction();
+ if (nextNode->junction != correctEndJunction)
+ {
+ shouldReverse = true;
+ }
+ }
+
+ if (shouldReverse == true)
+ {
+ // Reverse the written connector route.
+ std::reverse(conn->m_display_route.ps.begin(),
+ conn->m_display_route.ps.end());
+ }
+ }
+
+#ifdef DEBUGHANDLER
+ if (conn->router()->debugHandler())
+ {
+ conn->router()->debugHandler()->updateConnectorRoute(
+ conn, -1, -1);
+ }
+#endif
+ }
+
+ nextNode->writeEdgesToConns(this, pass);
+}
+
+// This method traverses the hyperedge tree and creates connectors for each
+// segment bridging junction and/or terminals. It also sets the
+// appropriate ConnEnds for each connector.
+//
+void HyperedgeTreeEdge::addConns(HyperedgeTreeNode *ignored, Router *router,
+ ConnRefList& oldConns)
+{
+ COLA_ASSERT(conn != nullptr);
+ HyperedgeTreeNode *endNode = nullptr;
+ if (ends.first && (ends.first != ignored))
+ {
+ endNode = ends.first;
+ ends.first->addConns(this, router, oldConns, conn);
+ }
+
+ if (ends.second && (ends.second != ignored))
+ {
+ endNode = ends.second;
+ ends.second->addConns(this, router, oldConns, conn);
+ }
+
+ if (endNode->finalVertex)
+ {
+ // We have reached a terminal of the hyperedge, so set a ConnEnd for
+ // the original connector endpoint
+ ConnEnd connend;
+ bool result = false;
+ // Find the ConnEnd from the list of original connectors.
+ for (ConnRefList::iterator curr = oldConns.begin();
+ curr != oldConns.end(); ++curr)
+ {
+ result |= (*curr)->getConnEndForEndpointVertex(
+ endNode->finalVertex, connend);
+ if (result)
+ {
+ break;
+ }
+ }
+ if (result)
+ {
+ // XXX: Create new conn here.
+ conn->updateEndPoint(VertID::tar, connend);
+ }
+ }
+ else if (endNode->junction)
+ {
+ // Or, set a ConnEnd connecting to the junction we have reached.
+ ConnEnd connend(endNode->junction);
+ conn->updateEndPoint(VertID::tar, connend);
+ }
+}
+
+
+// This method traverses the hyperedge tree and rewrites connector ends
+// that may have changed junctions due to major hyperedge improvement.
+//
+void HyperedgeTreeEdge::updateConnEnds(HyperedgeTreeNode *ignored,
+ bool forward, ConnRefList& changedConns)
+{
+ HyperedgeTreeNode *endNode = nullptr;
+ if (ends.first && (ends.first != ignored))
+ {
+ endNode = ends.first;
+ ends.first->updateConnEnds(this, forward, changedConns);
+ }
+
+ if (ends.second && (ends.second != ignored))
+ {
+ endNode = ends.second;
+ ends.second->updateConnEnds(this, forward, changedConns);
+ }
+
+ if (endNode->junction)
+ {
+ // We've reached a junction at the end of this connector, and it's
+ // not an endpoint of the hyperedge. So the connector ConnEnd to
+ // connect to the junction we have reached.
+ std::pair<ConnEnd, ConnEnd> existingEnds = conn->endpointConnEnds();
+ ConnEnd existingEnd = (forward) ?
+ existingEnds.second : existingEnds.first;
+ if (existingEnd.junction() != endNode->junction)
+ {
+#ifdef MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+ fprintf(stderr, "HyperedgeImprover: changed %s of "
+ "connector %u (from junction %u to %u)\n",
+ (forward) ? "tar" : "src", conn->id(),
+ existingEnd.junction()->id(), endNode->junction->id());
+#endif
+ ConnEnd connend(endNode->junction);
+ unsigned short end = (forward) ? VertID::tar : VertID::src;
+ conn->updateEndPoint(end, connend);
+
+ // Record that this connector was changed (so long as it wasn't
+ // already recorded).
+ if (changedConns.empty() || (changedConns.back() != conn))
+ {
+ changedConns.push_back(conn);
+ }
+ }
+ }
+}
+
+// This method traverses the hyperedge tree and returns a list of the junctions
+// and connectors that make up the hyperedge.
+//
+void HyperedgeTreeEdge::listJunctionsAndConnectors(HyperedgeTreeNode *ignored,
+ JunctionRefList& junctions, ConnRefList& connectors)
+{
+ ConnRefList::iterator foundPosition =
+ std::find(connectors.begin(), connectors.end(), conn);
+ if (foundPosition == connectors.end())
+ {
+ // Add connector if it isn't already in the list.
+ connectors.push_back(conn);
+ }
+
+ if (ends.first != ignored)
+ {
+ ends.first->listJunctionsAndConnectors(this, junctions, connectors);
+ }
+ else if (ends.second != ignored)
+ {
+ ends.second->listJunctionsAndConnectors(this, junctions, connectors);
+ }
+}
+
+
+void HyperedgeTreeEdge::validateHyperedge(
+ const HyperedgeTreeNode *ignored, const size_t dist) const
+{
+#ifdef MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+ for (size_t d = 0; d < dist; ++d)
+ {
+ fprintf(stderr, " ");
+ }
+ fprintf(stderr, "-(%d)\n", conn->id());
+#endif
+ if (ends.first != ignored)
+ {
+ ends.first->validateHyperedge(this, dist);
+ }
+ else if (ends.second != ignored)
+ {
+ ends.second->validateHyperedge(this, dist);
+ }
+}
+
+
+// This method splits the current edge, adding a node at the given point.
+// The current edge will connect the source node and the newly created node.
+// A new edge will connect the new node and the node at the other end of the
+// original edge.
+//
+void HyperedgeTreeEdge::splitFromNodeAtPoint(HyperedgeTreeNode *source,
+ const Point& point)
+{
+ // Make the source the first of the two nodes.
+ if (ends.second == source)
+ {
+ std::swap(ends.second, ends.first);
+ }
+ COLA_ASSERT(ends.first == source);
+
+ // Remember the other end.
+ HyperedgeTreeNode *target = ends.second;
+
+ // Create a new node for the split point at the given position.
+ HyperedgeTreeNode *split = new HyperedgeTreeNode();
+ split->point = point;
+
+ // Create a new edge between the split point and the other end.
+ new HyperedgeTreeEdge(split, target, conn);
+
+ // Disconnect the current edge from the other end and connect it to
+ // the new split point node.
+ target->disconnectEdge(this);
+ ends.second = split;
+ split->edges.push_back(this);
+}
+
+
+// This method disconnects the hyperedge tree edge nodes that it's attached to.
+//
+void HyperedgeTreeEdge::disconnectEdge(void)
+{
+ COLA_ASSERT(ends.first != nullptr);
+ COLA_ASSERT(ends.second != nullptr);
+
+ ends.first->disconnectEdge(this);
+ ends.second->disconnectEdge(this);
+ ends.first = nullptr;
+ ends.second = nullptr;
+}
+
+
+// This method traverses the hyperedge tree and removes from treeRoots any
+// junction nodes.
+//
+bool HyperedgeTreeEdge::removeOtherJunctionsFrom(HyperedgeTreeNode *ignored,
+ JunctionSet& treeRoots)
+{
+ bool containsCycle = false;
+ if (ends.first && (ends.first != ignored))
+ {
+ containsCycle |= ends.first->removeOtherJunctionsFrom(this, treeRoots);
+ }
+
+ if (ends.second && (ends.second != ignored))
+ {
+ containsCycle |= ends.second->removeOtherJunctionsFrom(this, treeRoots);
+ }
+ return containsCycle;
+}
+
+
+// This method traverses the hyperedge tree, clearing up the objects and
+// memory used to store the tree.
+//
+void HyperedgeTreeEdge::deleteNodesExcept(HyperedgeTreeNode *ignored)
+{
+ if (ends.first && (ends.first != ignored))
+ {
+ ends.first->deleteEdgesExcept(this);
+ delete ends.first;
+ }
+ ends.first = nullptr;
+
+ if (ends.second && (ends.second != ignored))
+ {
+ ends.second->deleteEdgesExcept(this);
+ delete ends.second;
+ }
+ ends.second = nullptr;
+}
+
+
+CmpNodesInDim::CmpNodesInDim(const size_t dim)
+ : m_dimension(dim)
+{
+}
+
+
+// Nodes in set are ordered by position along a line in a certain dimension,
+// and then by Node pointer since multiple may exist at a particular position.
+bool CmpNodesInDim::operator()(const HyperedgeTreeNode *lhs,
+ const HyperedgeTreeNode *rhs) const
+{
+ if (lhs->point[m_dimension] != rhs->point[m_dimension])
+ {
+ return lhs->point[m_dimension] < rhs->point[m_dimension];
+ }
+ return lhs < rhs;
+}
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/hyperedgetree.h b/src/3rdparty/adaptagrams/libavoid/hyperedgetree.h
new file mode 100644
index 0000000..91c30ad
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/hyperedgetree.h
@@ -0,0 +1,143 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#ifndef AVOID_HYPEREDGETREE_H
+#define AVOID_HYPEREDGETREE_H
+
+#include <cstdio>
+#include <list>
+#include <map>
+#include <set>
+#include <utility>
+
+#include "libavoid/geomtypes.h"
+
+//#define MAJOR_HYPEREDGE_IMPROVEMENT_DEBUG
+
+namespace Avoid {
+
+// These classes are not intended for public use.
+// They are used to represent a hyperedge as a tree that certain
+// transformations can be easily performed on to improve the routing
+// of the hyperedge.
+
+class JunctionRef;
+class ConnRef;
+class HyperedgeShiftSegment;
+class VertInf;
+class Router;
+
+struct HyperedgeTreeEdge;
+struct HyperedgeTreeNode;
+
+typedef std::map<JunctionRef *, HyperedgeTreeNode *>
+ JunctionHyperedgeTreeNodeMap;
+typedef std::set<JunctionRef *> JunctionSet;
+typedef std::list<JunctionRef *> JunctionRefList;
+typedef std::list<ConnRef *> ConnRefList;
+
+class CmpNodesInDim;
+
+typedef std::set<HyperedgeTreeNode *, CmpNodesInDim> OrderedHENodeSet;
+
+struct HyperedgeTreeNode
+{
+ HyperedgeTreeNode();
+ ~HyperedgeTreeNode();
+
+ void deleteEdgesExcept(HyperedgeTreeEdge *ignored);
+ bool removeOtherJunctionsFrom(HyperedgeTreeEdge *ignored,
+ JunctionSet &treeRoots);
+ void outputEdgesExcept(FILE *fp, HyperedgeTreeEdge *ignored);
+ void disconnectEdge(HyperedgeTreeEdge *edge);
+ void spliceEdgesFrom(HyperedgeTreeNode *oldNode);
+ void writeEdgesToConns(HyperedgeTreeEdge *ignored, size_t pass);
+ void addConns(HyperedgeTreeEdge *ignored, Router *router,
+ ConnRefList& oldConns, ConnRef *conn);
+ void updateConnEnds(HyperedgeTreeEdge *ignored, bool forward,
+ ConnRefList& changedConns);
+ void listJunctionsAndConnectors(HyperedgeTreeEdge *ignored,
+ JunctionRefList& junctions, ConnRefList& connectors);
+ bool isImmovable(void) const;
+ void validateHyperedge(const HyperedgeTreeEdge *ignored,
+ const size_t dist) const;
+
+ std::list<HyperedgeTreeEdge *> edges;
+ JunctionRef *junction;
+ Point point;
+ OrderedHENodeSet *shiftSegmentNodeSet;
+ VertInf *finalVertex;
+ bool isConnectorSource;
+ bool isPinDummyEndpoint;
+ bool visited;
+};
+
+struct HyperedgeTreeEdge
+{
+ HyperedgeTreeEdge(HyperedgeTreeNode *node1, HyperedgeTreeNode *node2,
+ ConnRef *conn);
+
+ HyperedgeTreeNode *followFrom(HyperedgeTreeNode *from) const;
+ bool zeroLength(void) const;
+ void splitFromNodeAtPoint(HyperedgeTreeNode *source, const Point& point);
+ bool hasOrientation(const size_t dimension) const;
+ void outputNodesExcept(FILE *file, HyperedgeTreeNode *ignored);
+ void deleteNodesExcept(HyperedgeTreeNode *ignored);
+ bool removeOtherJunctionsFrom(HyperedgeTreeNode *ignored,
+ JunctionSet &treeRoots);
+ void writeEdgesToConns(HyperedgeTreeNode *ignored, size_t pass);
+ void addConns(HyperedgeTreeNode *ignored, Router *router,
+ ConnRefList& oldConns);
+ void updateConnEnds(HyperedgeTreeNode *ignored, bool forward,
+ ConnRefList& changedConns);
+ void disconnectEdge(void);
+ void replaceNode(HyperedgeTreeNode *oldNode,
+ HyperedgeTreeNode *newNode);
+ void listJunctionsAndConnectors(HyperedgeTreeNode *ignored,
+ JunctionRefList& junctions, ConnRefList& connectors);
+ void validateHyperedge(const HyperedgeTreeNode *ignored,
+ const size_t dist) const;
+
+ std::pair<HyperedgeTreeNode *, HyperedgeTreeNode *> ends;
+ ConnRef *conn;
+ bool hasFixedRoute;
+};
+
+
+typedef std::map<VertInf *, HyperedgeTreeNode *> VertexNodeMap;
+
+
+class CmpNodesInDim
+{
+ public:
+ CmpNodesInDim(const size_t dim);
+ bool operator()(const HyperedgeTreeNode *lhs,
+ const HyperedgeTreeNode *rhs) const;
+ private:
+ const size_t m_dimension;
+};
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/junction.cpp b/src/3rdparty/adaptagrams/libavoid/junction.cpp
new file mode 100644
index 0000000..f17e37e
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/junction.cpp
@@ -0,0 +1,233 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2010-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cstdlib>
+#include <algorithm>
+
+#include "libavoid/junction.h"
+#include "libavoid/router.h"
+#include "libavoid/connectionpin.h"
+#include "libavoid/debug.h"
+
+
+namespace Avoid {
+
+
+JunctionRef::JunctionRef(Router *router, Point position, const unsigned int id)
+ : Obstacle(router, makeRectangle(router, position), id),
+ m_position(position),
+ m_recommended_position(position),
+ m_position_fixed(false)
+{
+ // For Junctions we use a single non-exclusive pin.
+ ShapeConnectionPin *pin = new Avoid::ShapeConnectionPin(this,
+ Avoid::CONNECTIONPIN_CENTRE, ConnDirAll);
+ pin->setExclusive(false);
+ m_connection_pins.insert(pin);
+
+ m_router->addJunction(this);
+}
+
+JunctionRef::~JunctionRef()
+{
+ if (m_router->m_currently_calling_destructors == false)
+ {
+ err_printf("ERROR: JunctionRef::~JunctionRef() shouldn't be called directly.\n");
+ err_printf(" It is owned by the router. Call Router::deleteJunction() instead.\n");
+ abort();
+ }
+}
+
+
+Rectangle JunctionRef::makeRectangle(Router *router, const Point& position)
+{
+ COLA_ASSERT(router);
+
+ // A suitably small value.
+ double nudgeDist = router->routingParameter(idealNudgingDistance);
+ nudgeDist = std::min(1.0, nudgeDist);
+
+ Point low = position;
+ low.x -= nudgeDist;
+ low.y -= nudgeDist;
+
+ Point high = position;
+ high.x += nudgeDist;
+ high.y += nudgeDist;
+
+ return Rectangle(low, high);
+}
+
+
+void JunctionRef::setPositionFixed(bool fixed)
+{
+ m_position_fixed = fixed;
+ m_router->registerSettingsChange();
+}
+
+
+bool JunctionRef::positionFixed(void) const
+{
+ return m_position_fixed;
+}
+
+
+void JunctionRef::preferOrthogonalDimension(const size_t dim)
+{
+ const double smallPenalty = 1.0;
+ for (ShapeConnectionPinSet::iterator curr =
+ m_connection_pins.begin(); curr != m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *pin = *curr;
+ if (dim == YDIM)
+ {
+ if (pin->directions() & (ConnDirLeft | ConnDirRight))
+ {
+ pin->setConnectionCost(smallPenalty);
+ }
+ }
+ else if (dim == XDIM)
+ {
+ if (pin->directions() & (ConnDirUp | ConnDirDown))
+ {
+ pin->setConnectionCost(smallPenalty);
+ }
+ }
+ }
+}
+
+
+Point JunctionRef::position(void) const
+{
+ return m_position;
+}
+
+
+void JunctionRef::setPosition(const Point& position)
+{
+ m_position = position;
+ m_recommended_position = position;
+ m_polygon = makeRectangle(m_router, m_position);
+ setNewPoly(m_polygon);
+}
+
+
+Point JunctionRef::recommendedPosition(void) const
+{
+ return m_recommended_position;
+}
+
+
+void JunctionRef::setRecommendedPosition(const Point& position)
+{
+ m_recommended_position = position;
+}
+
+
+void JunctionRef::outputCode(FILE *fp) const
+{
+ fprintf(fp, " JunctionRef *junctionRef%u = new JunctionRef(router, "
+ "Point(%g, %g), %u);\n", id(), position().x, position().y, id());
+ if (m_position_fixed)
+ {
+ fprintf(fp, " junctionRef%u->setPositionFixed(true);\n", id());
+ }
+
+ fprintf(fp, " /*\n");
+ fprintf(fp, " // This may be useful if junction pins are modified.\n");
+ for (ShapeConnectionPinSet::const_iterator curr =
+ m_connection_pins.begin();
+ curr != m_connection_pins.end(); ++curr)
+ {
+ (*curr)->outputCode(fp);
+ }
+ fprintf(fp, " */\n");
+ fprintf(fp, "\n");
+}
+
+
+void JunctionRef::moveAttachedConns(const Point& newPosition)
+{
+ // Update positions of attached connector ends.
+ for (std::set<ConnEnd *>::iterator curr = m_following_conns.begin();
+ curr != m_following_conns.end(); ++curr)
+ {
+ ConnEnd *connEnd = *curr;
+ COLA_ASSERT(connEnd->m_conn_ref != nullptr);
+ m_router->modifyConnector(connEnd->m_conn_ref, connEnd->endpointType(),
+ *connEnd);
+ }
+ for (ShapeConnectionPinSet::iterator curr =
+ m_connection_pins.begin(); curr != m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *pin = *curr;
+ pin->updatePosition(newPosition);
+ }
+}
+
+
+ConnRef *JunctionRef::removeJunctionAndMergeConnectors(void)
+{
+ if (m_following_conns.size() != 2)
+ {
+ return nullptr;
+ }
+
+ std::set<ConnEnd *>::iterator curr = m_following_conns.begin();
+ ConnEnd *connEnd1 = *curr;
+ ++curr;
+ ConnEnd *connEnd2 = *curr;
+ COLA_ASSERT(connEnd2->m_conn_ref != nullptr);
+ COLA_ASSERT(connEnd1->m_conn_ref != nullptr);
+
+ // The second conn will be the one we will delete.
+ ConnRef *conn2 = connEnd2->m_conn_ref;
+ // Determine its endpoint that is not attached to the junction.
+ ConnEnd *connEnd2Other = (conn2->m_src_connend == connEnd2) ?
+ conn2->m_dst_connend : conn2->m_src_connend;
+ if (connEnd2Other == nullptr)
+ {
+ // If it doesn't have a valid other endpoint, then ignore.
+ return nullptr;
+ }
+ // Modify the first connector's junction endpoint to connect to the
+ // other end of the second connector.
+ m_router->modifyConnector(connEnd1->m_conn_ref,
+ connEnd1->endpointType(), *connEnd2Other);
+
+ // Delete the second connector.
+ m_router->deleteConnector(conn2);
+
+ // Remove the junction from the router scene. It should get deleted later.
+ m_router->deleteJunction(this);
+
+ // Return the first (i.e. merged) connector.
+ return connEnd1->m_conn_ref;
+}
+
+
+//============================================================================
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/junction.h b/src/3rdparty/adaptagrams/libavoid/junction.h
new file mode 100644
index 0000000..f348c39
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/junction.h
@@ -0,0 +1,197 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2010-2015 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file junction.h
+//! @brief Contains the interface for the JunctionRef class.
+
+
+#ifndef AVOID_JUNCTION_H
+#define AVOID_JUNCTION_H
+
+#include <list>
+#include <set>
+
+#include "libavoid/geomtypes.h"
+#include "libavoid/obstacle.h"
+#include "libavoid/dllexport.h"
+
+namespace Avoid {
+
+class Router;
+class VertInf;
+class ConnEnd;
+class ConnRef;
+class ShapeConnectionPin;
+class JunctionRef;
+typedef std::list<JunctionRef *> JunctionRefList;
+
+
+//! @brief The JunctionRef class represents a fixed or free-floating point that
+//! connectors can be attached to.
+//!
+//! A JunctionRef represents a junction between multiple connectors, or could
+//! be used to specify an intermediate point that a single connector must route
+//! through.
+//!
+class AVOID_EXPORT JunctionRef : public Obstacle
+{
+ public:
+ //! @brief Junction reference constructor.
+ //!
+ //! Creates a junction object reference, and adds it to the router
+ //! scene. This junction will be considered to be an obstacle.
+ //! This will cause connectors intersecting the newly added junction
+ //! to be marked as needing to be rerouted.
+ //!
+ //! If the router is using transactions, then changes will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! The junction can be moved with Router::moveJunction() and removed
+ //! from the scene and freed with Router::deleteJunction().
+ //!
+ //! libavoid expects junctions to have sensible positions (i.e.,
+ //! for junctions to be positioned outside of shapes). When routing
+ //! it will simplify hyperedges by moving junctions while preserving
+ //! hyperedge topology, i.e., not altering the sides of shapes the
+ //! hyperedge routes around.
+ //!
+ //! If you don't have sensible positions for junctions or want to
+ //! disregard the junction position and reroute the entire hyperedge
+ //! considering only the endpoints, then this can be achieved by
+ //! registering the hyperedge with the HyperedgeRerouter class
+ //! obtained by calling the Router::hyperedgeRerouter() method.
+ //!
+ //! When the improveHyperedgeRoutesMovingJunctions router option is
+ //! set (the default) the junction position is a suggestion used for
+ //! initial routing, but subsequent hyperedge path improvement may
+ //! suggest new junction positions for the updated routings. This
+ //! position can be accessed via the recommendedPosition() method.
+ //!
+ //! When the improveHyperedgeRoutesMovingAddingAndDeletingJunctions
+ //! router option is set (not the default) junctions and connectors
+ //! can be added or removed to further improve hyperedges, see also
+ //! Router::newAndDeletedObjectListsFromHyperedgeImprovement().
+ //!
+ //! @note Regarding IDs:
+ //! You can let libavoid manually handle IDs by not specifying
+ //! them. Alternatively, you can specify all IDs yourself, but
+ //! you must be careful to makes sure that each object in the
+ //! scene (shape, connector, cluster, etc.) is given a unique,
+ //! positive ID. This uniqueness is checked if assertions are
+ //! enabled, but if not and there are clashes then strange
+ //! things can happen.
+ //!
+ //! @param[in] router The router scene to place the junction into.
+ //! @param[in] position A Point representing the position of the
+ //! junction.
+ //! @param[in] id Optionally, a positive integer ID unique
+ //! among all objects.
+ //!
+ JunctionRef(Router *router, Point position, const unsigned int id = 0);
+
+// To prevent C++ objects from being destroyed in garbage collected languages
+// when the libraries are called from SWIG, we hide the declarations of the
+// destructors and prevent generation of default destructors.
+#ifndef SWIG
+ //! @brief Junction reference destructor.
+ //!
+ //! Do not call this yourself, instead call Router::deleteJunction().
+ //! Ownership of this object belongs to the router scene.
+ virtual ~JunctionRef();
+#endif
+
+ //! @brief Removes a junction that has only two connectors attached
+ //! to it and merges them into a single connector.
+ //!
+ //! The junction and one of the connectors will be removed from the
+ //! router scene and the connector deleted. A pointer to the
+ //! remaining (merged) connector will be returned by this method.
+ //!
+ //! Currently this method does not delete and free the Junction itself.
+ //! The user needs to do this after the transaction has been
+ //! processed by the router.
+ //!
+ //! If there are more than two connectors attached to the junction
+ //! then nothing will be changed and this method will return nullptr.
+ //!
+ //! @return The merged connector, or nullptr if the junction was not
+ //! removed.
+ ConnRef *removeJunctionAndMergeConnectors(void);
+
+ //! @brief Returns the position of this junction.
+ //! @returns A point representing the position of this junction.
+ Point position(void) const;
+
+ //! @brief Sets whether the junction has a fixed position and
+ //! therefore can't be moved by the Router during routing.
+ //!
+ //! This property is ignored for hyperedge improvement if the option
+ //! improveHyperedgeRoutesMovingAddingAndDeletingJunctions is set and
+ //! when it would lead to confusing hyperedge topology, such as two
+ //! overlapping junctions with a zero length connector between them
+ //! or an unnecessary junction bridging two connectors.
+ //!
+ //! @param[in] fixed Boolean indicating whether the junction position
+ //! should be marked as fixed.
+ void setPositionFixed(bool fixed);
+
+ //! @brief Returns whether this junction has a fixed position (that
+ //! can't be moved by the Router during routing).
+ //! @returns A point representing the position of this junction.
+ bool positionFixed(void) const;
+
+ //! @brief Returns a recommended position for the junction based on
+ //! improving hyperedge routes. This value will be set during
+ //! routing when the improveHyperedgeRoutesMovingJunctions
+ //! router option is set (the default).
+ //! @returns A point indicating the ideal position for this junction.
+ Point recommendedPosition(void) const;
+
+ Rectangle makeRectangle(Router *router, const Point& position);
+ void preferOrthogonalDimension(const size_t dim);
+
+ private:
+ friend class Router;
+ friend class ShapeConnectionPin;
+ friend class ConnEnd;
+ friend class HyperedgeImprover;
+
+ void outputCode(FILE *fp) const;
+ void setPosition(const Point& position);
+ void setRecommendedPosition(const Point& position);
+ void moveAttachedConns(const Point& newPosition);
+
+ Point m_position;
+ Point m_recommended_position;
+ bool m_position_fixed;
+};
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/libavoid.h b/src/3rdparty/adaptagrams/libavoid/libavoid.h
new file mode 100644
index 0000000..3151a3e
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/libavoid.h
@@ -0,0 +1,55 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file libavoid.h
+//! @brief Standard libavoid include file which includes all libavoid
+//! header files.
+
+/**
+ * @namespace Avoid
+ * @brief libavoid: Object-avoiding orthogonal and polyline connector
+ * routing library.
+ *
+ * You should use libavoid via an instance of the Router class.
+ */
+#ifndef AVOID_LIBAVOID_H
+#define AVOID_LIBAVOID_H
+
+#include "libavoid/geomtypes.h"
+#include "libavoid/shape.h"
+#include "libavoid/connector.h"
+#include "libavoid/connend.h"
+#include "libavoid/graph.h"
+#include "libavoid/debug.h"
+#include "libavoid/timer.h"
+#include "libavoid/vertices.h"
+#include "libavoid/visibility.h"
+#include "libavoid/router.h"
+#include "libavoid/connectionpin.h"
+#include "libavoid/junction.h"
+#include "libavoid/viscluster.h"
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/libavoid.pc.in b/src/3rdparty/adaptagrams/libavoid/libavoid.pc.in
new file mode 100644
index 0000000..8f16d06
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/libavoid.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libavoid
+Description: A library for object-avoiding polyline and orthogonal connector routing for use in interactive diagram editors.
+URL: http://www.adaptagrams.org/
+Version: @VERSION@
+Requires:
+Libs: -L${libdir} -lavoid
+Cflags: -I${includedir}/libavoid \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/libavoid.sln b/src/3rdparty/adaptagrams/libavoid/libavoid.sln
new file mode 100755
index 0000000..aa9f8e1
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/libavoid.sln
@@ -0,0 +1,196 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libavoid", "libavoid.vcxproj", "{798C3D94-BF71-4C72-A29D-0E74C2EB296A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2junctions", "tests\msctests\2junctions.vcxproj", "{4C07F666-EB74-44E9-811C-57CFCCC553C8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "tests\msctests\example.vcxproj", "{6943E11D-22DE-4F6A-A30E-C7D23681B507}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildOrthogonalChannelInfo1", "tests\msctests\buildOrthogonalChannelInfo1.vcxproj", "{022C18E8-4B2A-4CF0-8660-9B691473C20E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkpointNudging1", "tests\msctests\checkpointNudging1.vcxproj", "{33240DD8-FDA7-4157-B022-C71E0B29467B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkpointNudging2", "tests\msctests\checkpointNudging2.vcxproj", "{97CCD32F-F345-4B41-BC79-50EE7644FCCD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkpoints01", "tests\msctests\checkpoints01.vcxproj", "{6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "junction01", "tests\msctests\junction01.vcxproj", "{35D83117-8DA7-495E-A045-DFDC555227C8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complex", "tests\msctests\complex.vcxproj", "{EE121773-CBA2-473D-8C8C-4FCA709DE828}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connectionpin01", "tests\msctests\connectionpin01.vcxproj", "{F77FA86C-07F5-468C-A162-479EEE7AEC45}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connectionpin02", "tests\msctests\connectionpin02.vcxproj", "{E570E7C6-CFF4-4639-855E-4C1E02F0DD85}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connectionpin03", "tests\msctests\connectionpin03.vcxproj", "{69ED412A-63E6-4057-9517-D06A55DD99B0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connendmove", "tests\msctests\connendmove.vcxproj", "{980B4C23-428F-48A1-9111-40AA4777C246}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "corneroverlap01", "tests\msctests\corneroverlap01.vcxproj", "{8E4B6939-A58A-4DF0-B799-5662E25B7BAD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "finalSegmentNudging1", "tests\msctests\finalSegmentNudging1.vcxproj", "{DDD617A0-FFE1-4C05-8144-06F637FB1C7B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "finalSegmentNudging2", "tests\msctests\finalSegmentNudging2.vcxproj", "{A5A5A67A-A961-4AA1-A248-196D91406169}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "finalSegmentNudging3", "tests\msctests\finalSegmentNudging3.vcxproj", "{6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freeFloatingDirection01", "tests\msctests\freeFloatingDirection01.vcxproj", "{8DB197B1-20B2-485D-B89E-D9A7674193BD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Debug|Win32.Build.0 = Debug|Win32
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Debug|x64.ActiveCfg = Debug|x64
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Debug|x64.Build.0 = Debug|x64
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Release|Win32.ActiveCfg = Release|Win32
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Release|Win32.Build.0 = Release|Win32
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Release|x64.ActiveCfg = Release|x64
+ {798C3D94-BF71-4C72-A29D-0E74C2EB296A}.Release|x64.Build.0 = Release|x64
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Debug|Win32.Build.0 = Debug|Win32
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Debug|x64.ActiveCfg = Debug|x64
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Debug|x64.Build.0 = Debug|x64
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Release|Win32.ActiveCfg = Release|Win32
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Release|Win32.Build.0 = Release|Win32
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Release|x64.ActiveCfg = Release|x64
+ {4C07F666-EB74-44E9-811C-57CFCCC553C8}.Release|x64.Build.0 = Release|x64
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Debug|Win32.Build.0 = Debug|Win32
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Debug|x64.ActiveCfg = Debug|x64
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Debug|x64.Build.0 = Debug|x64
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Release|Win32.ActiveCfg = Release|Win32
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Release|Win32.Build.0 = Release|Win32
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Release|x64.ActiveCfg = Release|x64
+ {6943E11D-22DE-4F6A-A30E-C7D23681B507}.Release|x64.Build.0 = Release|x64
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Debug|Win32.Build.0 = Debug|Win32
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Debug|x64.ActiveCfg = Debug|x64
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Debug|x64.Build.0 = Debug|x64
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Release|Win32.ActiveCfg = Release|Win32
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Release|Win32.Build.0 = Release|Win32
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Release|x64.ActiveCfg = Release|x64
+ {022C18E8-4B2A-4CF0-8660-9B691473C20E}.Release|x64.Build.0 = Release|x64
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Debug|Win32.Build.0 = Debug|Win32
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Debug|x64.ActiveCfg = Debug|x64
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Debug|x64.Build.0 = Debug|x64
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Release|Win32.ActiveCfg = Release|Win32
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Release|Win32.Build.0 = Release|Win32
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Release|x64.ActiveCfg = Release|x64
+ {33240DD8-FDA7-4157-B022-C71E0B29467B}.Release|x64.Build.0 = Release|x64
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Debug|Win32.Build.0 = Debug|Win32
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Debug|x64.ActiveCfg = Debug|x64
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Debug|x64.Build.0 = Debug|x64
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Release|Win32.ActiveCfg = Release|Win32
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Release|Win32.Build.0 = Release|Win32
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Release|x64.ActiveCfg = Release|x64
+ {97CCD32F-F345-4B41-BC79-50EE7644FCCD}.Release|x64.Build.0 = Release|x64
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Debug|Win32.Build.0 = Debug|Win32
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Debug|x64.ActiveCfg = Debug|x64
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Debug|x64.Build.0 = Debug|x64
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Release|Win32.ActiveCfg = Release|Win32
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Release|Win32.Build.0 = Release|Win32
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Release|x64.ActiveCfg = Release|x64
+ {6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}.Release|x64.Build.0 = Release|x64
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Debug|Win32.Build.0 = Debug|Win32
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Debug|x64.ActiveCfg = Debug|x64
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Debug|x64.Build.0 = Debug|x64
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Release|Win32.ActiveCfg = Release|Win32
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Release|Win32.Build.0 = Release|Win32
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Release|x64.ActiveCfg = Release|x64
+ {35D83117-8DA7-495E-A045-DFDC555227C8}.Release|x64.Build.0 = Release|x64
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Debug|Win32.Build.0 = Debug|Win32
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Debug|x64.ActiveCfg = Debug|x64
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Debug|x64.Build.0 = Debug|x64
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Release|Win32.ActiveCfg = Release|Win32
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Release|Win32.Build.0 = Release|Win32
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Release|x64.ActiveCfg = Release|x64
+ {EE121773-CBA2-473D-8C8C-4FCA709DE828}.Release|x64.Build.0 = Release|x64
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Debug|Win32.Build.0 = Debug|Win32
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Debug|x64.ActiveCfg = Debug|x64
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Debug|x64.Build.0 = Debug|x64
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Release|Win32.ActiveCfg = Release|Win32
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Release|Win32.Build.0 = Release|Win32
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Release|x64.ActiveCfg = Release|x64
+ {F77FA86C-07F5-468C-A162-479EEE7AEC45}.Release|x64.Build.0 = Release|x64
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Debug|Win32.Build.0 = Debug|Win32
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Debug|x64.ActiveCfg = Debug|x64
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Debug|x64.Build.0 = Debug|x64
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Release|Win32.ActiveCfg = Release|Win32
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Release|Win32.Build.0 = Release|Win32
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Release|x64.ActiveCfg = Release|x64
+ {E570E7C6-CFF4-4639-855E-4C1E02F0DD85}.Release|x64.Build.0 = Release|x64
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Debug|Win32.Build.0 = Debug|Win32
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Debug|x64.ActiveCfg = Debug|x64
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Debug|x64.Build.0 = Debug|x64
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Release|Win32.ActiveCfg = Release|Win32
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Release|Win32.Build.0 = Release|Win32
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Release|x64.ActiveCfg = Release|x64
+ {69ED412A-63E6-4057-9517-D06A55DD99B0}.Release|x64.Build.0 = Release|x64
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Debug|Win32.ActiveCfg = Debug|Win32
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Debug|Win32.Build.0 = Debug|Win32
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Debug|x64.ActiveCfg = Debug|x64
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Debug|x64.Build.0 = Debug|x64
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Release|Win32.ActiveCfg = Release|Win32
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Release|Win32.Build.0 = Release|Win32
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Release|x64.ActiveCfg = Release|x64
+ {980B4C23-428F-48A1-9111-40AA4777C246}.Release|x64.Build.0 = Release|x64
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Debug|Win32.Build.0 = Debug|Win32
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Debug|x64.ActiveCfg = Debug|x64
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Debug|x64.Build.0 = Debug|x64
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Release|Win32.ActiveCfg = Release|Win32
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Release|Win32.Build.0 = Release|Win32
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Release|x64.ActiveCfg = Release|x64
+ {8E4B6939-A58A-4DF0-B799-5662E25B7BAD}.Release|x64.Build.0 = Release|x64
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Debug|Win32.Build.0 = Debug|Win32
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Debug|x64.ActiveCfg = Debug|x64
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Debug|x64.Build.0 = Debug|x64
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Release|Win32.ActiveCfg = Release|Win32
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Release|Win32.Build.0 = Release|Win32
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Release|x64.ActiveCfg = Release|x64
+ {DDD617A0-FFE1-4C05-8144-06F637FB1C7B}.Release|x64.Build.0 = Release|x64
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Debug|Win32.Build.0 = Debug|Win32
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Debug|x64.ActiveCfg = Debug|x64
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Debug|x64.Build.0 = Debug|x64
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Release|Win32.ActiveCfg = Release|Win32
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Release|Win32.Build.0 = Release|Win32
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Release|x64.ActiveCfg = Release|x64
+ {A5A5A67A-A961-4AA1-A248-196D91406169}.Release|x64.Build.0 = Release|x64
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Debug|Win32.Build.0 = Debug|Win32
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Debug|x64.ActiveCfg = Debug|x64
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Debug|x64.Build.0 = Debug|x64
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Release|Win32.ActiveCfg = Release|Win32
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Release|Win32.Build.0 = Release|Win32
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Release|x64.ActiveCfg = Release|x64
+ {6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}.Release|x64.Build.0 = Release|x64
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Debug|Win32.Build.0 = Debug|Win32
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Debug|x64.ActiveCfg = Debug|x64
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Debug|x64.Build.0 = Debug|x64
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Release|Win32.ActiveCfg = Release|Win32
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Release|Win32.Build.0 = Release|Win32
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Release|x64.ActiveCfg = Release|x64
+ {8DB197B1-20B2-485D-B89E-D9A7674193BD}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/3rdparty/adaptagrams/libavoid/libavoid.vcxproj b/src/3rdparty/adaptagrams/libavoid/libavoid.vcxproj
new file mode 100755
index 0000000..e563b75
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/libavoid.vcxproj
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{798C3D94-BF71-4C72-A29D-0E74C2EB296A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>libavoid</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBAVOID_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBAVOID_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBAVOID_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBAVOID_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="actioninfo.cpp" />
+ <ClCompile Include="connectionpin.cpp" />
+ <ClCompile Include="connector.cpp" />
+ <ClCompile Include="connend.cpp" />
+ <ClCompile Include="geometry.cpp" />
+ <ClCompile Include="geomtypes.cpp" />
+ <ClCompile Include="graph.cpp" />
+ <ClCompile Include="hyperedge.cpp" />
+ <ClCompile Include="hyperedgeimprover.cpp" />
+ <ClCompile Include="hyperedgetree.cpp" />
+ <ClCompile Include="junction.cpp" />
+ <ClCompile Include="makepath.cpp" />
+ <ClCompile Include="mtst.cpp" />
+ <ClCompile Include="obstacle.cpp" />
+ <ClCompile Include="orthogonal.cpp" />
+ <ClCompile Include="router.cpp" />
+ <ClCompile Include="scanline.cpp" />
+ <ClCompile Include="shape.cpp" />
+ <ClCompile Include="timer.cpp" />
+ <ClCompile Include="vertices.cpp" />
+ <ClCompile Include="viscluster.cpp" />
+ <ClCompile Include="visibility.cpp" />
+ <ClCompile Include="vpsc.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="actioninfo.h" />
+ <ClInclude Include="assertions.h" />
+ <ClInclude Include="connectionpin.h" />
+ <ClInclude Include="connector.h" />
+ <ClInclude Include="connend.h" />
+ <ClInclude Include="debug.h" />
+ <ClInclude Include="dllexport.h" />
+ <ClInclude Include="geometry.h" />
+ <ClInclude Include="geomtypes.h" />
+ <ClInclude Include="graph.h" />
+ <ClInclude Include="hyperedge.h" />
+ <ClInclude Include="hyperedgeimprover.h" />
+ <ClInclude Include="hyperedgetree.h" />
+ <ClInclude Include="junction.h" />
+ <ClInclude Include="libavoid.h" />
+ <ClInclude Include="makepath.h" />
+ <ClInclude Include="mtst.h" />
+ <ClInclude Include="obstacle.h" />
+ <ClInclude Include="orthogonal.h" />
+ <ClInclude Include="router.h" />
+ <ClInclude Include="scanline.h" />
+ <ClInclude Include="shape.h" />
+ <ClInclude Include="timer.h" />
+ <ClInclude Include="vertices.h" />
+ <ClInclude Include="viscluster.h" />
+ <ClInclude Include="visibility.h" />
+ <ClInclude Include="vpsc.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/makepath.cpp b/src/3rdparty/adaptagrams/libavoid/makepath.cpp
new file mode 100644
index 0000000..8e8f4f0
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/makepath.cpp
@@ -0,0 +1,1554 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+// For M_PI.
+// This should be first include for MSVC.
+#define _USE_MATH_DEFINES
+#include <cmath>
+
+#include <algorithm>
+#include <vector>
+#include <climits>
+#include <cfloat>
+
+#include "libavoid/makepath.h"
+#include "libavoid/vertices.h"
+#include "libavoid/geometry.h"
+#include "libavoid/connector.h"
+#include "libavoid/viscluster.h"
+#include "libavoid/graph.h"
+#include "libavoid/router.h"
+#include "libavoid/debug.h"
+#include "libavoid/assertions.h"
+#include "libavoid/debughandler.h"
+
+//#define ESTIMATED_COST_DEBUG
+
+namespace Avoid {
+
+class ANode
+{
+ public:
+ VertInf* inf;
+ double g; // Gone
+ double h; // Heuristic
+ double f; // Formula f = g + h
+
+ ANode *prevNode; // VertInf for the previous ANode.
+ int timeStamp; // Time-stamp used to determine exploration order of
+ // seemingly equal paths during orthogonal routing.
+
+ ANode(VertInf *vinf, int time)
+ : inf(vinf),
+ g(0),
+ h(0),
+ f(0),
+ prevNode(nullptr),
+ timeStamp(time)
+ {
+ }
+ ANode()
+ : inf(nullptr),
+ g(0),
+ h(0),
+ f(0),
+ prevNode(nullptr),
+ timeStamp(-1)
+ {
+ }
+};
+
+class AStarPathPrivate
+{
+ public:
+ AStarPathPrivate()
+ : m_available_nodes(),
+ m_available_array_size(0),
+ m_available_array_index(0),
+ m_available_node_index(0)
+ {
+ }
+ ~AStarPathPrivate()
+ {
+ // Free memory
+ for (size_t i = 0; i < m_available_nodes.size(); ++i)
+ {
+ delete[] m_available_nodes[i];
+ }
+ }
+ // Returns a pointer to an ANode for aStar search, but allocates
+ // these in blocks
+ ANode *newANode(const ANode& node, const bool addToPending = true)
+ {
+ const size_t blockSize = 5000;
+ if ((m_available_array_index + 1 > m_available_array_size) ||
+ (m_available_node_index >= blockSize))
+ {
+ m_available_nodes.push_back(new ANode[blockSize]);
+ ++m_available_array_size;
+ m_available_node_index = 0;
+ m_available_array_index = m_available_array_size - 1;
+ }
+
+ ANode *nodes = m_available_nodes[m_available_array_index];
+ ANode *newNode = &(nodes[m_available_node_index++]);
+ *newNode = node;
+ if (addToPending)
+ {
+ node.inf->aStarPendingNodes.push_back(newNode);
+ }
+ return newNode;
+ }
+ void search(ConnRef *lineRef, VertInf *src, VertInf *tar,
+ VertInf *start);
+
+ private:
+ void determineEndPointLocation(double dist, VertInf *start,
+ VertInf *target, VertInf *other, int level);
+ double estimatedCost(ConnRef *lineRef, const Point *last,
+ const Point& curr) const;
+
+ std::vector<ANode *> m_available_nodes;
+ size_t m_available_array_size;
+ size_t m_available_array_index;
+ size_t m_available_node_index;
+
+ // For determining estimated cost target.
+ std::vector<VertInf *> m_cost_targets;
+ std::vector<unsigned int> m_cost_targets_directions;
+ std::vector<double> m_cost_targets_displacements;
+};
+
+
+
+// This returns the opposite result (>) so that when used with stl::make_heap,
+// the head node of the heap will be the smallest value, rather than the
+// largest. This saves us from having to sort the heap (and then reorder
+// it back into a heap) when getting the next node to examine. This way we
+// get better complexity -- logarithmic pushes and pops to the heap.
+//
+class ANodeCmp
+{
+ public:
+ ANodeCmp()
+ {
+ }
+bool operator()(const ANode *a, const ANode *b)
+{
+ // We need to use an epsilon here since otherwise the multiple addition
+ // of floating point numbers that makes up the 'f' values cause a problem
+ // with routings occasionally being non-deterministic.
+ if (fabs(a->f - b->f) > 0.0000001)
+ {
+ return a->f > b->f;
+ }
+ if (a->timeStamp != b->timeStamp)
+ {
+ // Tiebreaker, if two paths have equal cost, then choose the one with
+ // the highest timeStamp. This corresponds to the furthest point
+ // explored along the straight-line path. When exploring we give the
+ // directions the following timeStamps; left:1, right:2 and forward:3,
+ // then we always try to explore forward first.
+ return a->timeStamp < b->timeStamp;
+ }
+ return false;
+}
+};
+
+
+static double Dot(const Point& l, const Point& r)
+{
+ return (l.x * r.x) + (l.y * r.y);
+}
+
+static double CrossLength(const Point& l, const Point& r)
+{
+ return (l.x * r.y) - (l.y * r.x);
+}
+
+
+// Return the angle between the two line segments made by the
+// points p1--p2 and p2--p3. Return value is in radians.
+//
+static double angleBetween(const Point& p1, const Point& p2, const Point& p3)
+{
+ if ((p1.x == p2.x && p1.y == p2.y) || (p2.x == p3.x && p2.y == p3.y))
+ {
+ // If two of the points are the same, then we can't say anything
+ // about the angle between. Treat them as being collinear.
+ return M_PI;
+ }
+
+ Point v1(p1.x - p2.x, p1.y - p2.y);
+ Point v2(p3.x - p2.x, p3.y - p2.y);
+
+ return fabs(atan2(CrossLength(v1, v2), Dot(v1, v2)));
+}
+
+
+// Construct a temporary Polygon path given several VertInf's for a connector.
+//
+static void constructPolygonPath(Polygon& connRoute, VertInf *inf2,
+ VertInf *inf3, ANode *inf1Node)
+{
+ // Don't include colinear points.
+ bool simplified = true;
+
+ int routeSize = 2;
+ for (ANode *curr = inf1Node; curr != nullptr; curr = curr->prevNode)
+ {
+ routeSize += 1;
+ }
+ connRoute.ps.resize(routeSize);
+ int arraySize = routeSize;
+ connRoute.ps[routeSize - 1] = inf3->point;
+ connRoute.ps[routeSize - 2] = inf2->point;
+ routeSize -= 3;
+ for (ANode *curr = inf1Node; curr != nullptr; curr = curr->prevNode)
+ {
+ // For connection pins, we stop and don't include the fake shape
+ // center as part of this path.
+ bool isConnectionPin = curr->inf->id.isConnectionPin();
+
+ if (!simplified)
+ {
+ // If this is non-simplified, we don't need to do anything
+ // clever and can simply add the new point.
+ connRoute.ps[routeSize] = curr->inf->point;
+ routeSize -= 1;
+
+ if (isConnectionPin)
+ {
+ // Stop at the connection pin.
+ break;
+ }
+ continue;
+ }
+
+ if ((curr == inf1Node) ||
+ vecDir(curr->inf->point, connRoute.ps[routeSize + 1],
+ connRoute.ps[routeSize + 2]) != 0)
+ {
+ // Add new point if this is the earlier than the last segment
+ // and it is not colinear with the other points.
+ // Note, you can't collapse the 'last' segment with previous
+ // segments, or if this just intersects another line you risk
+ // penalising it once for each collapsed line segment.
+ connRoute.ps[routeSize] = curr->inf->point;
+ routeSize -= 1;
+ }
+ else
+ {
+ // The last point is inline with this one, so update it.
+ connRoute.ps[routeSize + 1] = curr->inf->point;
+ }
+
+ if (isConnectionPin)
+ {
+ // Stop at the connection pin.
+ break;
+ }
+ }
+
+ // If the vector is not filled, move entries to the beginning and
+ // remove the unused end of the vector.
+ int diff = routeSize + 1;
+ COLA_ASSERT(simplified || (diff == 0));
+ if (diff > 0)
+ {
+ for (int i = diff; i < arraySize; ++i)
+ {
+ connRoute.ps[i - diff] = connRoute.ps[i];
+ }
+ connRoute.ps.resize(connRoute.size() - diff);
+ }
+}
+
+// Used to get an indication of if a diffence is positive (1),
+// negative (-1) or no different (0).
+static inline int dimDirection(double difference)
+{
+ if (difference > 0)
+ {
+ return 1;
+ }
+ else if (difference < 0)
+ {
+ return -1;
+ }
+ return 0;
+}
+
+// Given the two points for a new segment of a path (inf2 & inf3)
+// as well as the distance between these points (dist), as well as
+// possibly the previous point (inf1) [from inf1--inf2], return a
+// cost associated with this route.
+//
+static double cost(ConnRef *lineRef, const double dist, VertInf *inf2,
+ VertInf *inf3, ANode *inf1Node)
+{
+ bool isOrthogonal = (lineRef->routingType() == ConnType_Orthogonal);
+ VertInf *inf1 = (inf1Node) ? inf1Node->inf : nullptr;
+ double result = dist;
+ Polygon connRoute;
+
+ Router *router = inf2->_router;
+ if (inf1 != nullptr)
+ {
+ const double angle_penalty = router->routingParameter(anglePenalty);
+ const double segmt_penalty = router->routingParameter(segmentPenalty);
+
+ // This is not the first segment, so there is a bend
+ // between it and the last one in the existing path.
+ if ((angle_penalty > 0) || (segmt_penalty > 0))
+ {
+ Point p1 = inf1->point;
+ Point p2 = inf2->point;
+ Point p3 = inf3->point;
+
+ double rad = M_PI - angleBetween(p1, p2, p3);
+
+ if ((rad > 0) && !isOrthogonal)
+ {
+ // Make `xval' between 0--10 then take its log so small
+ // angles are not penalised as much as large ones.
+ //
+ double xval = rad * 10 / M_PI;
+ double yval = xval * log10(xval + 1) / 10.5;
+ result += (angle_penalty * yval);
+ //db_printf("deg from straight: %g\tpenalty: %g\n",
+ // rad * 180 / M_PI, (angle_penalty * yval));
+ }
+
+ if (rad == M_PI)
+ {
+ // Needs to double back
+ result += (2 * segmt_penalty);
+ }
+ else if (rad > 0)
+ {
+ // Only penalise as an extra segment if the two
+ // segments are not collinear.
+ result += segmt_penalty;
+ }
+ }
+ }
+
+ const double cluster_crossing_penalty =
+ router->routingParameter(clusterCrossingPenalty);
+ // XXX: Clustered routing doesn't yet work with orthogonal connectors.
+ if (router->ClusteredRouting && !router->clusterRefs.empty() &&
+ (cluster_crossing_penalty > 0))
+ {
+ if (connRoute.empty())
+ {
+ constructPolygonPath(connRoute, inf2, inf3, inf1Node);
+ }
+ // There are clusters so do cluster routing.
+ for (ClusterRefList::const_iterator cl = router->clusterRefs.begin();
+ cl != router->clusterRefs.end(); ++cl)
+ {
+ Polygon cBoundary = (isOrthogonal) ?
+ (*cl)->rectangularPolygon() : (*cl)->polygon();
+ if (cBoundary.size() <= 2)
+ {
+ continue;
+ }
+ COLA_ASSERT(cBoundary.ps[0] != cBoundary.ps[cBoundary.size() - 1]);
+ for (size_t j = 0; j < cBoundary.size(); ++j)
+ {
+ // Non-orthogonal cluster boundary points should correspond to
+ // shape vertices and hence already be in the list of vertices.
+ COLA_ASSERT(isOrthogonal ||
+ router->vertices.getVertexByPos(cBoundary.at(j)));
+ }
+
+ bool isConn = false;
+ Polygon dynamic_conn_route(connRoute);
+ const bool finalSegment = (inf3 == lineRef->dst());
+ ConnectorCrossings cross(cBoundary, isConn, dynamic_conn_route);
+ cross.checkForBranchingSegments = true;
+ cross.countForSegment(connRoute.size() - 1, finalSegment);
+
+ result += (cross.crossingCount * cluster_crossing_penalty);
+ }
+ }
+
+ // This penalty penalises route segments that head in a direction opposite
+ // of the direction(s) toward the target point.
+ const double reversePenalty = router->routingParameter(
+ reverseDirectionPenalty);
+ if (reversePenalty)
+ {
+ // X and Y direction of destination from source point.
+ const Point& srcPoint = lineRef->src()->point;
+ const Point& dstPoint = lineRef->dst()->point;
+ int xDir = dimDirection(dstPoint.x - srcPoint.x);
+ int yDir = dimDirection(dstPoint.y - srcPoint.y);
+
+ bool doesReverse = false;
+
+ if ((xDir != 0) &&
+ (-xDir == dimDirection(inf3->point.x - inf2->point.x)))
+ {
+ // Connector has an X component and the segment heads in the
+ // opposite direction.
+ doesReverse |= true;
+ }
+
+ if ((yDir != 0) &&
+ (-yDir == dimDirection(inf3->point.y - inf2->point.y)))
+ {
+ // Connector has an Y component and the segment heads in the
+ // opposite direction.
+ doesReverse |= true;
+ }
+
+ if (doesReverse)
+ {
+ result += reversePenalty;
+ }
+ }
+
+ if (!router->isInCrossingPenaltyReroutingStage())
+ {
+ // Return here if we are not in the post-processing stage
+ return result;
+ }
+
+ const double crossing_penalty = router->routingParameter(crossingPenalty);
+ const double shared_path_penalty =
+ router->routingParameter(fixedSharedPathPenalty);
+ if ((shared_path_penalty > 0) || (crossing_penalty > 0))
+ {
+ if (connRoute.empty())
+ {
+ constructPolygonPath(connRoute, inf2, inf3, inf1Node);
+ }
+ ConnRefList::const_iterator curr, finish = router->connRefs.end();
+ for (curr = router->connRefs.begin(); curr != finish; ++curr)
+ {
+ ConnRef *connRef = *curr;
+
+ if (connRef->id() == lineRef->id())
+ {
+ continue;
+ }
+ const Avoid::PolyLine& route2 = connRef->displayRoute();
+
+ bool isConn = true;
+ Polygon dynamic_route2(route2);
+ Polygon dynamic_conn_route(connRoute);
+ const bool finalSegment = (inf3->point == lineRef->dst()->point);
+ ConnectorCrossings cross(dynamic_route2, isConn,
+ dynamic_conn_route, connRef, lineRef);
+ cross.checkForBranchingSegments = true;
+ cross.countForSegment(connRoute.size() - 1, finalSegment);
+
+ if ((cross.crossingFlags & CROSSING_SHARES_PATH) &&
+ (cross.crossingFlags & CROSSING_SHARES_FIXED_SEGMENT) &&
+ (router->routingOption(
+ penaliseOrthogonalSharedPathsAtConnEnds) ||
+ !(cross.crossingFlags & CROSSING_SHARES_PATH_AT_END)))
+ {
+ // Penalise unnecessary shared paths in the middle of
+ // connectors.
+ result += shared_path_penalty;
+ }
+ result += (cross.crossingCount * crossing_penalty);
+ }
+ }
+
+ return result;
+}
+
+// Directions for estimated orthgonal cost, as bitflags.
+static const unsigned int CostDirectionN = 1;
+static const unsigned int CostDirectionE = 2;
+static const unsigned int CostDirectionS = 4;
+static const unsigned int CostDirectionW = 8;
+
+#ifdef ESTIMATED_COST_DEBUG
+static void printDirections(FILE *fp, unsigned int directions)
+{
+ if (directions & CostDirectionN)
+ {
+ fprintf(fp, "N ");
+ }
+ if (directions & CostDirectionE)
+ {
+ fprintf(fp, "E ");
+ }
+ if (directions & CostDirectionS)
+ {
+ fprintf(fp, "S ");
+ }
+ if (directions & CostDirectionW)
+ {
+ fprintf(fp, "W ");
+ }
+}
+#endif
+
+// Returns the number of directions for the argument.
+static unsigned int orthogonalDirectionsCount(const unsigned int directions)
+{
+ unsigned int count = 0;
+ if (directions & CostDirectionN)
+ {
+ ++count;
+ }
+ if (directions & CostDirectionE)
+ {
+ ++count;
+ }
+ if (directions & CostDirectionS)
+ {
+ ++count;
+ }
+ if (directions & CostDirectionW)
+ {
+ ++count;
+ }
+ return count;
+}
+
+// Returns the directions of point b from point a.
+static unsigned int orthogonalDirection(const Point &a, const Point &b)
+{
+ unsigned int result = 0;
+
+ if (b.y > a.y)
+ {
+ result |= CostDirectionS;
+ }
+ else if (b.y < a.y)
+ {
+ result |= CostDirectionN;
+ }
+
+ if (b.x > a.x)
+ {
+ result |= CostDirectionE;
+ }
+ else if (b.x < a.x)
+ {
+ result |= CostDirectionW;
+ }
+
+ return result;
+}
+
+// Returns the direction to the right of the given direction.
+static unsigned int dirRight(unsigned int direction)
+{
+ if (direction == CostDirectionN)
+ {
+ return CostDirectionE;
+ }
+ else if (direction == CostDirectionE)
+ {
+ return CostDirectionS;
+ }
+ else if (direction == CostDirectionS)
+ {
+ return CostDirectionW;
+ }
+ else if (direction == CostDirectionW)
+ {
+ return CostDirectionN;
+ }
+
+ // Should not be possible to reach here.
+ COLA_ASSERT(false);
+ return direction;
+}
+
+// Returns the direction to the left of the given direction.
+static unsigned int dirLeft(unsigned int direction)
+{
+ if (direction == CostDirectionN)
+ {
+ return CostDirectionW;
+ }
+ else if (direction == CostDirectionE)
+ {
+ return CostDirectionN;
+ }
+ else if (direction == CostDirectionS)
+ {
+ return CostDirectionE;
+ }
+ else if (direction == CostDirectionW)
+ {
+ return CostDirectionS;
+ }
+
+ // Should not be possible to reach here.
+ COLA_ASSERT(false);
+ return direction;
+}
+
+// Returns the reverse direction to the given direction.
+static unsigned int dirReverse(unsigned int direction)
+{
+ if (direction == CostDirectionN)
+ {
+ return CostDirectionS;
+ }
+ else if (direction == CostDirectionE)
+ {
+ return CostDirectionW;
+ }
+ else if (direction == CostDirectionS)
+ {
+ return CostDirectionN;
+ }
+ else if (direction == CostDirectionW)
+ {
+ return CostDirectionE;
+ }
+
+ // Should not be possible to reach here.
+ COLA_ASSERT(false);
+ return direction;
+}
+
+// Given Point curr with a direction of currDir, returns the nimimum number
+// of bends to reach Point dest with the entry direction of destDir
+//
+// This is used for estimating the bend penalty cost to the target point
+// from the current point of the search. The geometry was described in the
+// "Orthogonal Connector Routing" paper, although the version described
+// there is incorrect.
+//
+int bends(const Point& curr, unsigned int currDir, const Point& dest,
+ unsigned int destDir)
+{
+ // Bend counts from 'o' to 'D' should be:
+ //
+ // 1 1 3
+ // v v v
+ // 2 > o < 2 2 > o < 2 4 > o < 2
+ // ^ ^ ^
+ // 3 3 3
+ //
+ // 0 > o < 4 D--> 4 > o < 4
+ // ^ ^
+ // 1 3
+ //
+ COLA_ASSERT(currDir != 0);
+ unsigned int currToDestDir = orthogonalDirection(curr, dest);
+ unsigned int reverseDestDir = dirReverse(destDir);
+ bool currDirPerpendicularToDestDir =
+ (currDir == dirLeft(destDir)) || (currDir == dirRight(destDir));
+
+ if ((currDir == destDir) &&
+ (currToDestDir == currDir))
+ {
+ //
+ // 0 > o D-->
+ //
+ return 0;
+ }
+ else if (currDirPerpendicularToDestDir &&
+ (currToDestDir == (destDir | currDir)))
+ {
+ //
+ // 1
+ // v
+ // o
+ //
+ //
+ // D-->
+ //
+ return 1;
+ }
+ else if (currDirPerpendicularToDestDir &&
+ (currToDestDir == currDir))
+ {
+ //
+ // 1
+ // v
+ // o
+ //
+ //
+ // D-->
+ //
+ return 1;
+ }
+ else if (currDirPerpendicularToDestDir &&
+ (currToDestDir == destDir))
+ {
+ //
+ // o D-->
+ // ^
+ // 1
+ //
+ return 1;
+ }
+ else if ((currDir == destDir) &&
+ (currToDestDir != currDir) &&
+ !(currToDestDir & reverseDestDir))
+ {
+ //
+ // 2 > o 2 > o
+ //
+ //
+ // D-->
+ //
+ return 2;
+ }
+ else if (currDir == reverseDestDir &&
+ (currToDestDir != destDir) &&
+ (currToDestDir != currDir))
+ {
+ //
+ // o < 2 o < 2 o < 2
+ //
+ //
+ // D-->
+ //
+ return 2;
+ }
+ else if (currDirPerpendicularToDestDir &&
+ (currToDestDir != (destDir | currDir)) &&
+ (currToDestDir != currDir))
+ {
+ //
+ // 3
+ // v
+ // o o o
+ // ^ ^ ^
+ // 3 3 3
+ //
+ // D--> o
+ // ^
+ // 3
+ //
+ return 3;
+ }
+ else if ((currDir == reverseDestDir) &&
+ ((currToDestDir == destDir) || (currToDestDir == currDir)))
+ {
+ //
+ //
+ //
+ // o < 4 D--> o < 4
+ //
+ return 4;
+ }
+ else if ((currDir == destDir) &&
+ (currToDestDir & reverseDestDir))
+ {
+ //
+ // 4 > o
+ //
+ //
+ // D--> 4 > o
+ //
+ return 4;
+ }
+
+ // Should not be possible to reach here.
+ COLA_ASSERT(false);
+ return 0;
+}
+
+
+static double estimatedCostSpecific(ConnRef *lineRef, const Point *last,
+ const Point& curr, const VertInf *costTar,
+ const unsigned int costTarDirs)
+{
+ Point costTarPoint = costTar->point;
+
+ if (lineRef->routingType() == ConnType_PolyLine)
+ {
+ return euclideanDist(curr, costTarPoint);
+ }
+ else // Orthogonal
+ {
+ // Really doesn't make sense to route orthogonal paths without
+ // a segment penalty.
+ COLA_ASSERT(lineRef->router()->routingParameter(segmentPenalty) > 0);
+
+ double dist = manhattanDist(curr, costTarPoint);
+
+ int bendCount = 0;
+ double xmove = costTarPoint.x - curr.x;
+ double ymove = costTarPoint.y - curr.y;
+ if (last == nullptr)
+ {
+ // This is just the initial point. Penalise it simply if it is
+ // not inline with the target in either the x- or y-dimension.
+ if ((xmove != 0) && (ymove != 0))
+ {
+ bendCount += 1;
+ }
+ }
+ else if (dist > 0)
+ {
+ // We have two points and a non-zero distance, so we know
+ // the segment direction.
+
+ unsigned int currDir = orthogonalDirection(*last, curr);
+ if ((currDir > 0) && (orthogonalDirectionsCount(currDir) == 1))
+ {
+ // Suitably high value, then we find the minimum.
+ bendCount = 10;
+
+ // Find the minimum bent penalty given all the possible
+ // directions at the target point.
+ if (costTarDirs & CostDirectionN)
+ {
+ bendCount = std::min(bendCount,
+ bends(curr, currDir, costTarPoint, CostDirectionN));
+ }
+ if (costTarDirs & CostDirectionE)
+ {
+ bendCount = std::min(bendCount,
+ bends(curr, currDir, costTarPoint, CostDirectionE));
+ }
+ if (costTarDirs & CostDirectionS)
+ {
+ bendCount = std::min(bendCount,
+ bends(curr, currDir, costTarPoint, CostDirectionS));
+ }
+ if (costTarDirs & CostDirectionW)
+ {
+ bendCount = std::min(bendCount,
+ bends(curr, currDir, costTarPoint, CostDirectionW));
+ }
+ }
+ }
+ double penalty = bendCount *
+ lineRef->router()->routingParameter(segmentPenalty);
+
+ return dist + penalty;
+ }
+}
+
+
+
+double AStarPathPrivate::estimatedCost(ConnRef *lineRef, const Point *last,
+ const Point& curr) const
+{
+ double estimate = DBL_MAX;
+ COLA_ASSERT(m_cost_targets.size() > 0);
+
+ // Find the minimum cost from the estimates to each of the possible
+ // target points from this current point.
+ for (size_t i = 0; i < m_cost_targets.size(); ++i)
+ {
+ double iEstimate = estimatedCostSpecific(lineRef, last,
+ curr, m_cost_targets[i], m_cost_targets_directions[i]);
+
+ // Add on the distance to the real target, otherwise this difference
+ // might may make the comparisons unfair if they vary between targets.
+ iEstimate += m_cost_targets_displacements[i];
+
+ estimate = std::min(estimate, iEstimate);
+ }
+ return estimate;
+}
+
+
+class CmpVisEdgeRotation
+{
+ public:
+ CmpVisEdgeRotation(const VertInf* lastPt)
+ : _lastPt(lastPt)
+ {
+ }
+ bool operator() (const EdgeInf* u, const EdgeInf* v) const
+ {
+ // Dummy ShapeConnectionPin edges are not orthogonal and
+ // therefore can't be compared in the same way.
+ if (u->isOrthogonal() && v->isOrthogonal())
+ {
+ return u->rotationLessThan(_lastPt, v);
+ }
+ return u < v;
+ }
+ private:
+ const VertInf *_lastPt;
+};
+
+
+static inline bool pointAlignedWithOneOf(const Point& point,
+ const std::vector<Point>& points, const size_t dim)
+{
+ for (size_t i = 0; i < points.size(); ++i)
+ {
+ if (point[dim] == points[i][dim])
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+AStarPath::AStarPath(void)
+ : m_private(new AStarPathPrivate())
+{
+}
+
+AStarPath::~AStarPath(void)
+{
+ delete m_private;
+}
+
+void AStarPath::search(ConnRef *lineRef, VertInf *src, VertInf *tar, VertInf *start)
+{
+ m_private->search(lineRef, src, tar, start);
+}
+
+void AStarPathPrivate::determineEndPointLocation(double dist, VertInf *start,
+ VertInf *target, VertInf *other, int level)
+{
+ COLA_UNUSED(dist);
+ COLA_UNUSED(start);
+ COLA_UNUSED(level);
+
+ Point otherPoint = other->point;
+ unsigned int thisDirs = orthogonalDirection(otherPoint, target->point);
+ COLA_ASSERT(orthogonalDirectionsCount(thisDirs) > 0);
+ double displacement = manhattanDist(otherPoint, target->point);
+
+ m_cost_targets.push_back(other);
+ m_cost_targets_directions.push_back(thisDirs);
+ m_cost_targets_displacements.push_back(displacement);
+
+#ifdef ESTIMATED_COST_DEBUG
+ fprintf(stderr," - %g %g ", otherPoint.x, otherPoint.y);
+ if (manhattanDist(start->point, otherPoint) > dist)
+ {
+ fprintf(stderr,"far ");
+ }
+ fprintf(stderr, "%s", (level == 1) ? "--" : "- ");
+ printDirections(stderr, thisDirs);
+ fprintf(stderr,"\n");
+#endif
+}
+
+// Returns the best path from src to tar using the cost function.
+//
+// The path is worked out using the aStar algorithm, and is encoded via
+// prevNode values for each ANode which point back to the previous ANode.
+// At completion, this order is written into the pathNext links in each
+// of the VerInfs along the path.
+//
+// The aStar STL code is originally based on public domain code available
+// on the internet.
+//
+void AStarPathPrivate::search(ConnRef *lineRef, VertInf *src, VertInf *tar, VertInf *start)
+{
+ ANodeCmp pendingCmp;
+
+ bool isOrthogonal = (lineRef->routingType() == ConnType_Orthogonal);
+
+ if (start == nullptr)
+ {
+ start = src;
+ }
+
+#ifdef DEBUGHANDLER
+ if (lineRef->router()->debugHandler())
+ {
+ lineRef->router()->debugHandler()->beginningSearchWithEndpoints(start, tar);
+ }
+#endif
+
+ // Find a target point to use for cost estimate for orthogonal routing.
+ //
+ // If the connectivity is only on the far side we need to estimate to the
+ // point on the far side. Otherwise for orthogonal routing we can explore
+ // all the space in between before we pay the extra cost to explore this
+ // area. This is especially true given many orthogonal routes have
+ // equivalent costs.
+#ifdef ESTIMATED_COST_DEBUG
+ fprintf(stderr,"== aStar %g %g ==\n", tar->point.x, tar->point.y);
+#endif
+ if (isOrthogonal && tar->id.isConnPt() && !tar->id.isConnCheckpoint())
+ {
+ // The target is a connector endpoint and the connector is orthogonal.
+ double dist = manhattanDist(start->point, tar->point);
+ for (EdgeInfList::const_iterator it = tar->orthogVisList.begin();
+ it != tar->orthogVisList.end(); ++it)
+ {
+ // For each edge from the target endpoint, find the other vertex.
+ EdgeInf *edge = *it;
+ VertInf *other = edge->otherVert(tar);
+ if (other->id.isConnectionPin())
+ {
+ // If this is a connection pin we need to do this process
+ // another time since the current edge will be a dummy
+ // zero-length edge.
+ VertInf *replacementTar = other;
+ for (EdgeInfList::const_iterator it =
+ replacementTar->orthogVisList.begin();
+ it != replacementTar->orthogVisList.end(); ++it)
+ {
+ EdgeInf *edge = *it;
+ VertInf *other = edge->otherVert(replacementTar);
+ if ((other == tar) ||
+ (other->point == tar->point))
+ {
+ // Ignore edge we came from, or zero-length edges.
+ continue;
+ }
+
+ // Determine possible target endpoint directions and
+ // position.
+ determineEndPointLocation(dist, start, replacementTar,
+ other, 2);
+ }
+ continue;
+ }
+
+ // Determine possible target endpoint directions and position.
+ determineEndPointLocation(dist, start, tar, other, 1);
+ }
+ }
+
+
+ if (m_cost_targets.empty())
+ {
+ m_cost_targets.push_back(tar);
+ // For polyline routing, assume target has visibility is all
+ // directions for the purpose of cost estimations.
+ m_cost_targets_directions.push_back(CostDirectionN |
+ CostDirectionE | CostDirectionS | CostDirectionW);
+ m_cost_targets_displacements.push_back(0.0);
+ }
+
+#ifdef ESTIMATED_COST_DEBUG
+ fprintf(stderr, "------------\n");
+ for (size_t i = 0; i < m_cost_targets.size(); ++i)
+ {
+ fprintf(stderr,"== %g %g - ", m_cost_targets[i]->point.x,
+ m_cost_targets[i]->point.y);
+ printDirections(stderr, m_cost_targets_directions[i]);
+ fprintf(stderr,"\n");
+ }
+#endif
+
+
+ double (*dist)(const Point& a, const Point& b) =
+ (isOrthogonal) ? manhattanDist : euclideanDist;
+
+ // We need to know the possible endpoints for doing an orthogonal
+ // routing optimisation where we only turn when we are heading beside
+ // a shape or are in line with a possible endpoint.
+ std::vector<Point> endPoints;
+ if (isOrthogonal)
+ {
+ endPoints = lineRef->possibleDstPinPoints();
+ }
+ endPoints.push_back(tar->point);
+
+ // Heap of PENDING nodes.
+ std::vector<ANode *> PENDING;
+ PENDING.reserve(1000);
+
+ size_t exploredCount = 0;
+ ANode node, ati;
+ ANode *bestNode = nullptr; // Temporary bestNode
+ bool bNodeFound = false; // Flag if node is found in container
+ int timestamp = 1;
+
+ Router *router = lineRef->router();
+ if (router->RubberBandRouting && (start != src))
+ {
+ COLA_ASSERT(router->IgnoreRegions == true);
+
+ const PolyLine& currRoute = lineRef->route();
+ VertInf *last = nullptr;
+ int rIndx = 0;
+ while (last != start)
+ {
+ const Point& pnt = currRoute.at(rIndx);
+ VertIDProps props = (rIndx > 0) ? 0 : VertID::PROP_ConnPoint;
+ VertID vID(pnt.id, pnt.vn, props);
+
+#ifdef PATHDEBUG
+ db_printf("/// %d %d\n", pnt.id, pnt.vn);
+#endif
+ VertInf *curr = router->vertices.getVertexByID(vID);
+ COLA_ASSERT(curr != nullptr);
+
+ node = ANode(curr, timestamp++);
+ if (!last)
+ {
+ node.inf = src;
+ node.g = 0;
+ node.h = estimatedCost(lineRef, nullptr, node.inf->point);
+
+ node.f = node.g + node.h;
+ }
+ else
+ {
+ double edgeDist = dist(bestNode->inf->point, curr->point);
+
+ node.g = bestNode->g + cost(lineRef, edgeDist, bestNode->inf,
+ node.inf, bestNode->prevNode);
+
+ // Calculate the Heuristic.
+ node.h = estimatedCost(lineRef, &(bestNode->inf->point),
+ node.inf->point);
+
+ // The A* formula
+ node.f = node.g + node.h;
+
+ // Point parent to last bestNode
+ node.prevNode = bestNode;
+ }
+
+ if (curr != start)
+ {
+ bool addToPending = false;
+ bestNode = newANode(node, addToPending);
+ bestNode->inf->aStarDoneNodes.push_back(bestNode);
+ ++exploredCount;
+ }
+ else
+ {
+ ANode * newNode = newANode(node);
+ PENDING.push_back(newNode);
+ }
+
+ rIndx++;
+ last = curr;
+ }
+ }
+ else
+ {
+ if (start->pathNext)
+ {
+ // If we are doing checkpoint routing and have already done one
+ // path, then we have an existing segment to consider for the
+ // cost of the choice from the start node, so we add a dummy
+ // nodes as if they were already in the Done set. This causes
+ // us to first search in a collinear direction from the previous
+ // segment.
+ bool addToPending = false;
+ bestNode = newANode(ANode(start->pathNext, timestamp++),
+ addToPending);
+ bestNode->inf->aStarDoneNodes.push_back(bestNode);
+ ++exploredCount;
+ }
+
+ // Create the start node
+ node = ANode(src, timestamp++);
+ node.g = 0;
+ node.h = estimatedCost(lineRef, nullptr, node.inf->point);
+ node.f = node.g + node.h;
+ // Set a nullptr parent, so cost function knows this is the first segment.
+ node.prevNode = bestNode;
+
+ // Populate the PENDING container with the first location
+ ANode *newNode = newANode(node);
+ PENDING.push_back(newNode);
+ }
+
+ tar->pathNext = nullptr;
+
+ // Create a heap from PENDING for sorting
+ using std::make_heap; using std::push_heap; using std::pop_heap;
+ make_heap( PENDING.begin(), PENDING.end(), pendingCmp);
+
+ // Continue until the queue is empty.
+ while (!PENDING.empty())
+ {
+ TIMER_VAR_ADD(router, 0, 1);
+ // Set the Node with lowest f value to BESTNODE.
+ // Since the ANode operator< is reversed, the head of the
+ // heap is the node with the lowest f value.
+ bestNode = PENDING.front();
+ VertInf *bestNodeInf = bestNode->inf;
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ PolyLine currentSearchPath;
+
+ ANode *curr = bestNode;
+ while (curr)
+ {
+ currentSearchPath.ps.push_back(curr->inf->point);
+ curr = curr->prevNode;
+ }
+ router->debugHandler()->updateCurrentSearchPath(currentSearchPath);
+ }
+#endif
+
+ // Remove this node from the aStarPendingList
+ std::list<ANode *>::iterator finishIt =
+ bestNodeInf->aStarPendingNodes.end();
+ for (std::list<ANode *>::iterator currInd =
+ bestNodeInf->aStarPendingNodes.begin(); currInd != finishIt;
+ ++currInd)
+ {
+ if (*currInd == bestNode)
+ {
+ bestNodeInf->aStarPendingNodes.erase(currInd);
+ break;
+ }
+ }
+
+ // Pop off the heap. Actually this moves the
+ // far left value to the far right. The node
+ // is not actually removed since the pop is to
+ // the heap and not the container.
+ pop_heap(PENDING.begin(), PENDING.end(), pendingCmp);
+ // Remove node from right (the value we pop_heap'd)
+ PENDING.pop_back();
+
+ // Add the bestNode into the Done set.
+ bestNodeInf->aStarDoneNodes.push_back(bestNode);
+ ++exploredCount;
+
+ VertInf *prevInf = (bestNode->prevNode) ? bestNode->prevNode->inf : nullptr;
+#ifdef ASTAR_DEBUG
+ db_printf("Considering... ");
+ db_printf(" %g %g ", bestNodeInf->point.x, bestNodeInf->point.y);
+ bestNodeInf->id.db_print();
+ db_printf(" - g: %3.1f h: %3.1f back: ", bestNode->g, bestNode->h);
+ if (prevInf)
+ {
+ db_printf(" %g %g", prevInf->point.x, prevInf->point.y);
+ //prevInf->id.db_print();
+ }
+ db_printf("\n");
+#endif
+
+ if (bestNodeInf == tar)
+ {
+ TIMER_VAR_ADD(router, 1, PENDING.size());
+ // This node is our goal.
+#ifdef ASTAR_DEBUG
+ db_printf("LINE %10d Steps: %4d Cost: %g\n", lineRef->id(),
+ (int) exploredCount, bestNode->f);
+#endif
+
+ // Correct all the pathNext pointers.
+ for (ANode *curr = bestNode; curr->prevNode; curr = curr->prevNode)
+ {
+#ifdef ASTAR_DEBUG
+ db_printf("[%.12f, %.12f]\n", curr->inf->point.x, curr->inf->point.y);
+#endif
+ curr->inf->pathNext = curr->prevNode->inf;
+ }
+#ifdef ASTAR_DEBUG
+ db_printf("\n");
+#endif
+
+ // Exit from the search
+ break;
+ }
+
+ // Check adjacent points in graph and add them to the queue.
+ EdgeInfList& visList = (!isOrthogonal) ?
+ bestNodeInf->visList : bestNodeInf->orthogVisList;
+ if (isOrthogonal)
+ {
+ // We would like to explore in a structured way,
+ // so sort the points in the visList...
+ CmpVisEdgeRotation compare(prevInf);
+ visList.sort(compare);
+ }
+ EdgeInfList::const_iterator finish = visList.end();
+ for (EdgeInfList::const_iterator edge = visList.begin();
+ edge != finish; ++edge)
+ {
+ if ((*edge)->isDisabled())
+ {
+ // Skip disabled edges.
+ continue;
+ }
+
+ node = ANode((*edge)->otherVert(bestNodeInf), timestamp++);
+
+ // Set the index to the previous ANode that we reached
+ // this ANode via.
+ node.prevNode = bestNode;
+
+ VertInf *prevInf = (bestNode->prevNode) ?
+ bestNode->prevNode->inf : nullptr;
+
+ // Don't bother looking at the segment we just arrived along.
+ if (prevInf && (prevInf == node.inf))
+ {
+ continue;
+ }
+ if (node.inf->id.isConnectionPin() &&
+ !node.inf->id.isConnCheckpoint())
+ {
+ if ( !( (bestNodeInf == lineRef->src()) &&
+ lineRef->src()->id.isDummyPinHelper()
+ ) &&
+ !( node.inf->hasNeighbour(lineRef->dst(), isOrthogonal) &&
+ lineRef->dst()->id.isDummyPinHelper())
+ )
+ {
+ // Don't check connection pins if they don't have the
+ // target vertex as a direct neighbour, or are directly
+ // leaving the source vertex.
+ continue;
+ }
+ }
+ else if (node.inf->id.isConnPt())
+ {
+ if ((node.inf != tar))
+ {
+ // Don't check connector endpoints vertices unless they
+ // are the target endpoint.
+ continue;
+ }
+ }
+
+ if (isOrthogonal && !(*edge)->isDummyConnection())
+ {
+ // Orthogonal routing optimisation.
+ // Skip the edges that don't lead to shape edges, or the
+ // connection point we are looking for. Though allow them
+ // if we haven't yet turned from the source point, since it
+ // may be a free-floating endpoint with directional visibility.
+ // Also, don't check if the previous point was a dummy for a
+ // connection pin and this happens to be placed diagonally
+ // from here, i.e., when both of notInline{X,Y} are true.
+ Point& bestPt = bestNodeInf->point;
+ Point& nextPt = node.inf->point;
+
+ bool notInlineX = prevInf && (prevInf->point.x != bestPt.x);
+ bool notInlineY = prevInf && (prevInf->point.y != bestPt.y);
+ if ((bestPt.x == nextPt.x) && notInlineX && !notInlineY &&
+ (bestPt[YDIM] != src->point[YDIM]))
+ {
+ if (nextPt.y < bestPt.y)
+ {
+ if (!(bestNodeInf->orthogVisPropFlags & YL_EDGE) &&
+ !pointAlignedWithOneOf(bestPt, endPoints, XDIM))
+ {
+ continue;
+ }
+ }
+ else if (nextPt.y > bestPt.y)
+ {
+ if (!(bestNodeInf->orthogVisPropFlags & YH_EDGE) &&
+ !pointAlignedWithOneOf(bestPt, endPoints, XDIM))
+ {
+ continue;
+ }
+ }
+ }
+ if ((bestPt.y == nextPt.y) && notInlineY && !notInlineX &&
+ (bestPt[XDIM] != src->point[XDIM]))
+ {
+ if (nextPt.x < bestPt.x)
+ {
+ if (!(bestNodeInf->orthogVisPropFlags & XL_EDGE) &&
+ !pointAlignedWithOneOf(bestPt, endPoints, YDIM))
+ {
+ continue;
+ }
+ }
+ else if (nextPt.x > bestPt.x)
+ {
+ if (!(bestNodeInf->orthogVisPropFlags & XH_EDGE) &&
+ !pointAlignedWithOneOf(bestPt, endPoints, YDIM))
+ {
+ continue;
+ }
+ }
+ }
+ }
+
+ double edgeDist = (*edge)->getDist();
+
+ if (edgeDist == 0)
+ {
+ continue;
+ }
+
+ if (!isOrthogonal &&
+ (!router->RubberBandRouting || (start == src)) &&
+ (validateBendPoint(prevInf, bestNodeInf, node.inf) == false))
+ {
+ // The bendpoint is not valid, i.e., is a zigzag corner, so...
+ continue;
+ // For RubberBand routing we want to allow these routes and
+ // unwind them later, otherwise instead or unwinding, paths
+ // can go the *really* long way round.
+ }
+
+ // Figure out if we are at one of the cost targets.
+ bool atCostTarget = false;
+ for (size_t i = 0; i < m_cost_targets.size(); ++i)
+ {
+ if (bestNode->inf == m_cost_targets[i])
+
+ {
+ atCostTarget = true;
+ break;
+ }
+ }
+
+ if (atCostTarget &&
+ (node.inf->id.isConnectionPin() || (node.inf == tar)))
+ {
+ // This is a point on the side of an obstacle that connects
+ // to the target or a connection pin. It should have no
+ // further cost and the heuristic should be zero.
+ node.g = bestNode->g;
+ node.h = 0;
+ }
+ else
+ {
+ if (node.inf == tar)
+ {
+ // We've reached the target. The heuristic should be zero.
+ node.h = 0;
+ }
+ else
+ {
+ // Otherwise, calculate the heuristic value.
+ node.h = estimatedCost(lineRef, &(bestNodeInf->point),
+ node.inf->point);
+ }
+
+ if (node.inf->id.isDummyPinHelper())
+ {
+ // This is connecting to a connection pin helper vertex.
+ // There should be no additional cost for this step.
+ node.g = bestNode->g;
+ }
+ else
+ {
+ // Otherwise, calculate the cost of this step.
+ node.g = bestNode->g + cost(lineRef, edgeDist, bestNodeInf,
+ node.inf, bestNode->prevNode);
+ }
+ }
+
+ // The A* formula
+ node.f = node.g + node.h;
+
+#ifdef ASTAR_DEBUG
+ db_printf("-- Adding: %g %g ", node.inf->point.x,
+ node.inf->point.y);
+ node.inf->id.db_print();
+ db_printf(" - g: %3.1f h: %3.1f \n", node.g, node.h);
+#endif
+
+ bNodeFound = false;
+
+
+ // Check to see if already on PENDING
+ std::list<ANode *>::const_iterator finish = node.inf->aStarPendingNodes.end();
+ for (std::list<ANode *>::const_iterator currInd =
+ node.inf->aStarPendingNodes.begin(); currInd != finish; ++currInd)
+ {
+ ati = **currInd;
+ // The (node.prevNode == ati.prevNode) is redundant, but may
+ // save checking the mosre costly prevNode->inf test if the
+ // Nodes are the same.
+ if ((node.inf == ati.inf) &&
+ ((node.prevNode == ati.prevNode) ||
+ (node.prevNode->inf == ati.prevNode->inf)))
+ {
+ // If already on PENDING
+ if (node.g < ati.g)
+ {
+ // Replace the existing node in PENDING
+ **currInd = node;
+ make_heap( PENDING.begin(), PENDING.end(), pendingCmp);
+ }
+ bNodeFound = true;
+ break;
+ }
+ }
+ if ( !bNodeFound ) // If Node NOT found on PENDING
+ {
+ // Check to see if it is already in the Done set for this
+ // vertex.
+ for (std::list<ANode *>::const_iterator currInd =
+ node.inf->aStarDoneNodes.begin();
+ currInd != node.inf->aStarDoneNodes.end(); ++currInd)
+ {
+ ati = **currInd;
+ // The (node.prevNode == ati.prevNode) is redundant, but may
+ // save checking the mosre costly prevNode->inf test if the
+ // Nodes are the same.
+ if ((node.inf == ati.inf) && ati.prevNode &&
+ ((node.prevNode == ati.prevNode) ||
+ (node.prevNode->inf == ati.prevNode->inf)))
+ {
+ //COLA_ASSERT(node.g >= (ati.g - 10e-10));
+ // This node is already in the Done set and the
+ // current node also has a higher g-value, so we
+ // don't need to consider this node.
+ bNodeFound = true;
+ break;
+ }
+ }
+ }
+
+ if (!bNodeFound ) // If Node NOT in either Pending or Done.
+ {
+ // Push NewNode onto PENDING
+ ANode *newNode = newANode(node);
+ PENDING.push_back(newNode);
+ // Push NewNode onto heap
+ push_heap( PENDING.begin(), PENDING.end(), pendingCmp);
+
+#if 0
+ using std::cout; using std::endl;
+ // Display PENDING container (For Debugging)
+ cout << "PENDING: ";
+ for (unsigned int i = 0; i < PENDING.size(); i++)
+ {
+ cout << PENDING[i]->g << "," << PENDING[i]->h << ",";
+ cout << PENDING[i]->inf << "," << PENDING[i]->pp << " ";
+ }
+ cout << endl << endl;
+#endif
+ }
+ }
+ }
+
+ // Cleanup lists used to store Done and Pending sets for each vertex.
+ VertInf *endVert = router->vertices.end();
+ for (VertInf *k = router->vertices.connsBegin(); k != endVert;
+ k = k->lstNext)
+ {
+ k->aStarDoneNodes.clear();
+ k->aStarPendingNodes.clear();
+ }
+}
+
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/makepath.h b/src/3rdparty/adaptagrams/libavoid/makepath.h
new file mode 100644
index 0000000..2e4b5ba
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/makepath.h
@@ -0,0 +1,52 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2008 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_MAKEPATH_H
+#define AVOID_MAKEPATH_H
+
+
+namespace Avoid {
+
+class ConnRef;
+class AStarPathPrivate;
+class ANode;
+class VertInf;
+
+class AStarPath
+{
+ public:
+ AStarPath();
+ ~AStarPath();
+ void search(ConnRef *lineRef, VertInf *src, VertInf *tar,
+ VertInf *start);
+ private:
+ AStarPathPrivate *m_private;
+};
+
+}
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/mtst.cpp b/src/3rdparty/adaptagrams/libavoid/mtst.cpp
new file mode 100644
index 0000000..d6c288f
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/mtst.cpp
@@ -0,0 +1,1094 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2014 Monash University
+ *
+ * --------------------------------------------------------------------
+ * Sequential Construction of the Minimum Terminal Spanning Tree is an
+ * extended version of the method described in Section IV.B of:
+ * Long, J., Zhou, H., Memik, S.O. (2008). EBOARST: An efficient
+ * edge-based obstacle-avoiding rectilinear Steiner tree construction
+ * algorithm. IEEE Trans. on Computer-Aided Design of Integrated
+ * Circuits and Systems 27(12), pages 2169--2182.
+ * --------------------------------------------------------------------
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cfloat>
+#include <vector>
+#include <algorithm>
+#include <string>
+#include <cstring>
+
+
+#include "libavoid/hyperedgetree.h"
+#include "libavoid/router.h"
+#include "libavoid/mtst.h"
+#include "libavoid/vertices.h"
+#include "libavoid/timer.h"
+#include "libavoid/junction.h"
+#include "libavoid/debughandler.h"
+
+namespace Avoid {
+
+
+// Comparison for the vertex heap in the extended Dijkstra's algorithm.
+bool HeapCmpVertInf::operator()(const VertInf *a, const VertInf *b) const
+{
+ return a->sptfDist > b->sptfDist;
+}
+
+
+// Comparison for the bridging edge heap in the extended Kruskal's algorithm.
+bool CmpEdgeInf::operator()(const EdgeInf *a, const EdgeInf *b) const
+{
+ return a->mtstDist() > b->mtstDist();
+}
+
+
+struct delete_vertex
+{
+ void operator()(VertInf *ptr)
+ {
+ ptr->removeFromGraph(false);
+ delete ptr;
+ }
+};
+
+
+MinimumTerminalSpanningTree::MinimumTerminalSpanningTree(Router *router,
+ std::set<VertInf *> terminals, JunctionHyperedgeTreeNodeMap *hyperedgeTreeJunctions)
+ : router(router),
+ isOrthogonal(true),
+ terminals(terminals),
+ hyperedgeTreeJunctions(hyperedgeTreeJunctions),
+ m_rootJunction(nullptr),
+ bendPenalty(2000),
+ dimensionChangeVertexID(0, 42)
+{
+
+}
+
+MinimumTerminalSpanningTree::~MinimumTerminalSpanningTree()
+{
+ // Free the temporary hyperedge tree representation.
+ m_rootJunction->deleteEdgesExcept(nullptr);
+ delete m_rootJunction;
+ m_rootJunction = nullptr;
+}
+
+
+HyperedgeTreeNode *MinimumTerminalSpanningTree::rootJunction(void) const
+{
+ return m_rootJunction;
+}
+
+
+void MinimumTerminalSpanningTree::makeSet(VertInf *vertex)
+{
+ VertexSet newSet;
+ newSet.insert(vertex);
+ allsets.push_back(newSet);
+}
+
+VertexSetList::iterator MinimumTerminalSpanningTree::findSet(VertInf *vertex)
+{
+ for (VertexSetList::iterator it = allsets.begin();
+ it != allsets.end(); ++it)
+ {
+ if (it->find(vertex) != it->end())
+ {
+ return it;
+ }
+ }
+ return allsets.end();
+}
+
+void MinimumTerminalSpanningTree::unionSets(VertexSetList::iterator s1,
+ VertexSetList::iterator s2)
+{
+ std::set<VertInf *> s = *s1;
+ s.insert(s2->begin(), s2->end());
+
+ allsets.erase(s1);
+ allsets.erase(s2);
+ allsets.push_back(s);
+}
+
+HyperedgeTreeNode *MinimumTerminalSpanningTree::addNode(VertInf *vertex,
+ HyperedgeTreeNode *prevNode)
+{
+ HyperedgeTreeNode *node = nullptr;
+
+ // Do we already have a node for this vertex?
+ VertexNodeMap::iterator match = nodes.find(vertex);
+ if (match == nodes.end())
+ {
+ // Not found. Create new node.
+ HyperedgeTreeNode *newNode = new HyperedgeTreeNode();
+ newNode->point = vertex->point;
+ // Remember it.
+ nodes[vertex] = newNode;
+
+ node = newNode;
+ }
+ else
+ {
+ // Found.
+ HyperedgeTreeNode *junctionNode = match->second;
+ if (junctionNode->junction == nullptr)
+ {
+ // Create a junction, if one has not already been created.
+ junctionNode->junction = new JunctionRef(router, vertex->point);
+ if (m_rootJunction == nullptr)
+ {
+ // Remember the first junction node, so we can use it to
+ // traverse the tree, added and connecting connectors to
+ // junctions and endpoints.
+ m_rootJunction = junctionNode;
+ }
+ router->removeObjectFromQueuedActions(junctionNode->junction);
+ junctionNode->junction->makeActive();
+ }
+ node = junctionNode;
+ }
+
+ if (prevNode)
+ {
+ // Join this node to the previous node.
+ new HyperedgeTreeEdge(prevNode, node, nullptr);
+ }
+
+ return node;
+}
+
+void MinimumTerminalSpanningTree::buildHyperedgeTreeToRoot(VertInf *currVert,
+ HyperedgeTreeNode *prevNode, VertInf *prevVert, bool markEdges)
+{
+ if (prevNode->junction)
+ {
+ // We've reached a junction, so stop.
+ return;
+ }
+
+ COLA_ASSERT(currVert != nullptr);
+
+ // This method follows branches in a shortest path tree back to the
+ // root, generating hyperedge tree nodes and branches as it goes.
+ while (currVert)
+ {
+ // Add the node, if necessary.
+ HyperedgeTreeNode *currentNode = addNode(currVert, prevNode);
+
+ if (markEdges)
+ {
+ //COLA_ASSERT( !(currVert->id == dimensionChangeVertexID) );
+ //COLA_ASSERT( !(prevVert->id == dimensionChangeVertexID) );
+ EdgeInf *edge = prevVert->hasNeighbour(currVert, isOrthogonal);
+ if (edge == nullptr && (currVert->id == dimensionChangeVertexID))
+ {
+ VertInf *modCurr = (currVert->id == dimensionChangeVertexID) ?
+ currVert->m_orthogonalPartner : currVert;
+ VertInf *modPrev = (prevVert->id == dimensionChangeVertexID) ?
+ prevVert->m_orthogonalPartner : prevVert;
+ edge = modPrev->hasNeighbour(modCurr, isOrthogonal);
+ }
+ COLA_ASSERT(edge);
+ edge->setHyperedgeSegment(true);
+ }
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstCommitToEdge(currVert, prevVert, false);
+ }
+#endif
+
+ if (currentNode->junction)
+ {
+ // We've reached a junction, so stop.
+ break;
+ }
+
+ if (currVert->pathNext == nullptr)
+ {
+ // This is a terminal of the hyperedge, mark the node with the
+ // vertex representing the endpoint of the connector so we can
+ // later use this to set the correct ConnEnd for the connector.
+ currentNode->finalVertex = currVert;
+ }
+
+ if (currVert->id.isDummyPinHelper())
+ {
+ // Note if we have an extra dummy vertex for connecting
+ // to possible connection pins.
+ currentNode->isPinDummyEndpoint = true;
+ }
+
+ prevNode = currentNode;
+ prevVert = currVert;
+ currVert = currVert->pathNext;
+ }
+}
+
+
+VertInf **MinimumTerminalSpanningTree::resetDistsForPath(VertInf *currVert, VertInf **newRootVertPtr)
+{
+ COLA_ASSERT(currVert != nullptr);
+
+ // This method follows branches in a shortest path tree back to the
+ // root, generating hyperedge tree nodes and branches as it goes.
+ while (currVert)
+ {
+ if (currVert->sptfDist == 0)
+ {
+ VertInf **oldTreeRootPtr = currVert->treeRootPointer();
+ // We've reached a junction, so stop.
+ rewriteRestOfHyperedge(currVert, newRootVertPtr);
+ return oldTreeRootPtr;
+ }
+
+ currVert->sptfDist = 0;
+ currVert->setTreeRootPointer(newRootVertPtr);
+
+ terminals.insert(currVert);
+
+ currVert = currVert->pathNext;
+ }
+
+ // Shouldn't get here.
+ COLA_ASSERT(false);
+ return nullptr;
+}
+
+
+void MinimumTerminalSpanningTree::constructSequential(void)
+{
+ // First, perform extended Dijkstra's algorithm
+ // ============================================
+ //
+ TIMER_START(router, tmHyperedgeForest);
+
+ // Vertex heap for extended Dijkstra's algorithm.
+ std::vector<VertInf *> vHeap;
+ HeapCmpVertInf vHeapCompare;
+
+ // Bridging edge heap for the extended Kruskal's algorithm.
+ std::vector<EdgeInf *> beHeap;
+ CmpEdgeInf beHeapCompare;
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->beginningHyperedgeReroutingWithEndpoints(
+ terminals);
+ }
+#endif
+
+ // Initialisation
+ //
+ VertInf *endVert = router->vertices.end();
+ for (VertInf *k = router->vertices.connsBegin(); k != endVert;
+ k = k->lstNext)
+ {
+ k->sptfDist = DBL_MAX;
+ k->pathNext = nullptr;
+ k->setSPTFRoot(k);
+ }
+ for (std::set<VertInf *>::iterator ti = terminals.begin();
+ ti != terminals.end(); ++ti)
+ {
+ VertInf *t = *ti;
+ // This is a terminal, set a distance of zero.
+ t->sptfDist = 0;
+ makeSet(t);
+ vHeap.push_back(t);
+
+ }
+ std::make_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+
+ // Shortest path terminal forest construction
+ //
+ while ( ! vHeap.empty() )
+ {
+ // Take the lowest vertex from heap.
+ VertInf *u = vHeap.front();
+
+ // Pop the lowest vertex off the heap.
+ std::pop_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+ vHeap.pop_back();
+
+ // For each edge from this vertex...
+ EdgeInfList& visList = (!isOrthogonal) ? u->visList : u->orthogVisList;
+ EdgeInfList::const_iterator finish = visList.end();
+ VertInf *extraVertex = nullptr;
+ for (EdgeInfList::const_iterator edge = visList.begin();
+ edge != finish; ++edge)
+ {
+ VertInf *v = (*edge)->otherVert(u);
+ double edgeDist = (*edge)->getDist();
+
+ // Assign a distance (length) of 1 for dummy visibility edges
+ // which may not accurately reflect the real distance of the edge.
+ if (v->id.isDummyPinHelper() || u->id.isDummyPinHelper())
+ {
+ edgeDist = 1;
+ }
+
+ // Ignore an edge we have already explored.
+ if (u->pathNext == v ||
+ (u->pathNext && u->pathNext->pathNext == v))
+ {
+ continue;
+ }
+
+ // Don't do anything more here if this is an intra-tree edge that
+ // would just bridge branches of the same tree.
+ if (u->sptfRoot() == v->sptfRoot())
+ {
+ continue;
+ }
+
+ // This is an extension to the original method that takes a bend
+ // cost into account. When edges from this node, we take into
+ // account the direction of the branch in the tree that got us
+ // here. For an edge colinear to this we do the normal thing,
+ // and add it to the heap. For edges at right angle, we don't
+ // immediately add these, but instead add a dummy segment and node
+ // at the current position and give the edge an distance equal to
+ // the bend penalty. We add equivalent edges for the right-angled
+ // original edges, so these may be explored when the algorithm
+ // explores the dummy node. Obviously we also need to clean up
+ // these dummy nodes and edges later.
+ double newCost = (u->sptfDist + edgeDist);
+
+ double freeConnection = connectsWithoutBend(u, v);
+ COLA_ASSERT(!freeConnection == (u->pathNext && ! colinear(u->pathNext->point,
+ u->point, v->point)));
+ if (!freeConnection)
+ {
+ // This edge is not colinear, so add it to the dummy node and
+ // ignore it.
+ COLA_ASSERT(u->id != dimensionChangeVertexID);
+ if ( ! extraVertex )
+ {
+ // Create the dummy node if necessary.
+ extraVertex = new VertInf(router, dimensionChangeVertexID,
+ u->point, false);
+ extraVertices.push_back(extraVertex);
+ extraVertex->sptfDist = bendPenalty + u->sptfDist;
+ extraVertex->pathNext = u;
+ extraVertex->setSPTFRoot(u->sptfRoot());
+ vHeap.push_back(extraVertex);
+ std::push_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+ }
+ // Add a copy of the ignored edge to the dummy node, so it
+ // may be explored later.
+ EdgeInf *extraEdge = new EdgeInf(extraVertex, v, isOrthogonal);
+ extraEdge->setDist(edgeDist);
+ continue;
+ }
+
+ if (newCost < v->sptfDist && v->sptfRoot() == v)
+ {
+ // We have got to a node we haven't explored to from any tree.
+ // So attach it to the tree and update it with the distance
+ // from the root to reach this vertex. Then add the vertex
+ // to the heap of potentials to explore.
+ v->sptfDist = newCost;
+ v->pathNext = u;
+ v->setSPTFRoot(u->sptfRoot());
+ vHeap.push_back(v);
+ std::push_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstGrowForestWithEdge(u, v, true);
+ }
+#endif
+ }
+ else
+ {
+ // We have reached a node that has been reached already through
+ // a different tree. Set the MTST distance for the bridging
+ // edge and push it to the priority queue of edges to consider
+ // during the extended Kruskal's algorithm.
+ double secondJoinCost = connectsWithoutBend(v, u) ?
+ 0.0 : bendPenalty;
+
+ // The default cost is the cost back to the root of each
+ // forest plus the length of this edge.
+ double cost = (*edge)->m_vert1->sptfDist +
+ (*edge)->m_vert2->sptfDist + secondJoinCost +
+ (*edge)->getDist();
+ (*edge)->setMtstDist(cost);
+ beHeap.push_back(*edge);
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstPotentialBridgingEdge(u, v);
+ }
+#endif
+ }
+ }
+ }
+ // Make the bridging edge heap.
+ std::make_heap(beHeap.begin(), beHeap.end(), beHeapCompare);
+ TIMER_STOP(router);
+
+ // Next, perform extended Kruskal's algorithm
+ // ==========================================
+ //
+ TIMER_START(router, tmHyperedgeMTST);
+ while ( ! beHeap.empty() )
+ {
+ // Take the lowest cost edge.
+ EdgeInf *e = beHeap.front();
+
+ // Pop the lowest cost edge off of the heap.
+ std::pop_heap(beHeap.begin(), beHeap.end(), beHeapCompare);
+ beHeap.pop_back();
+
+ // Find the sets of terminals that each of the trees connects.
+ VertexSetList::iterator s1 = findSet(e->m_vert1->sptfRoot());
+ VertexSetList::iterator s2 = findSet(e->m_vert2->sptfRoot());
+
+ if ((s1 == allsets.end()) || (s2 == allsets.end()))
+ {
+ // This is a special case if we would be connecting to something
+ // that isn't a standard terminal shortest path tree, and thus
+ // doesn't have a root.
+ continue;
+ }
+
+ // We ignore edges that don't connect us to anything new, i.e., when
+ // the terminal sets are the same.
+ if (s1 != s2)
+ {
+ // This is bridging us to one or more new terminals.
+
+ // Union the terminal sets.
+ unionSets(s1, s2);
+
+ // Connect this edge into the MTST by building HyperedgeTree nodes
+ // and edges for this edge and the path back to the tree root.
+ HyperedgeTreeNode *node1 = nullptr;
+ HyperedgeTreeNode *node2 = nullptr;
+ if (hyperedgeTreeJunctions)
+ {
+ node1 = addNode(e->m_vert1, nullptr);
+ node2 = addNode(e->m_vert2, node1);
+ }
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstCommitToEdge(
+ e->m_vert1, e->m_vert2, true);
+ }
+#endif
+
+ buildHyperedgeTreeToRoot(e->m_vert1->pathNext, node1, e->m_vert1);
+ buildHyperedgeTreeToRoot(e->m_vert2->pathNext, node2, e->m_vert2);
+ }
+ }
+
+ // Free the dummy nodes and edges created earlier.
+ for_each(extraVertices.begin(), extraVertices.end(), delete_vertex());
+ extraVertices.clear();
+ nodes.clear();
+ allsets.clear();
+
+ TIMER_STOP(router);
+}
+
+VertInf *MinimumTerminalSpanningTree::orthogonalPartner(VertInf *vert,
+ double penalty)
+{
+ if (penalty == 0)
+ {
+ penalty = bendPenalty;
+ }
+ if (vert->m_orthogonalPartner == nullptr)
+ {
+ vert->m_orthogonalPartner = new VertInf(router,
+ dimensionChangeVertexID, vert->point, false);
+ vert->m_orthogonalPartner->m_orthogonalPartner = vert;
+ extraVertices.push_back(vert->m_orthogonalPartner);
+ EdgeInf *extraEdge = new EdgeInf(vert->m_orthogonalPartner, vert,
+ isOrthogonal);
+ extraEdge->setDist(penalty);
+ }
+ return vert->m_orthogonalPartner;
+}
+
+void MinimumTerminalSpanningTree::removeInvalidBridgingEdges()
+{
+ // Look through the bridging edge heap for any now invalidated edges and
+ // remove these by only copying valid edges to the beHeapNew array.
+ size_t beHeapSize = beHeap.size();
+ std::vector<EdgeInf *> beHeapNew(beHeapSize);
+ size_t j = 0;
+ for (size_t i = 0; i < beHeapSize; ++i)
+ {
+ EdgeInf *e = beHeap[i];
+
+ VertexPair ends = realVerticesCountingPartners(e);
+ bool valid = (ends.first->treeRoot() != ends.second->treeRoot()) &&
+ ends.first->treeRoot() && ends.second->treeRoot() &&
+ (origTerminals.find(ends.first->treeRoot()) != origTerminals.end()) &&
+ (origTerminals.find(ends.second->treeRoot()) != origTerminals.end());
+ if (!valid)
+ {
+ // This is an invalid edge, don't copy it to beHeapNew.
+ continue;
+ }
+
+ // Copy the other bridging edges to beHeapNew.
+ beHeapNew[j] = beHeap[i];
+ ++j;
+ }
+ beHeapNew.resize(j);
+ // Replace beHeap with beHeapNew
+ beHeap = beHeapNew;
+
+ // Remake the bridging edge heap, since we've deleted many elements.
+ std::make_heap(beHeap.begin(), beHeap.end(), beHeapCompare);
+}
+
+LayeredOrthogonalEdgeList MinimumTerminalSpanningTree::
+ getOrthogonalEdgesFromVertex(VertInf *vert, VertInf *prev)
+{
+ LayeredOrthogonalEdgeList edgeList;
+
+ COLA_ASSERT(vert);
+
+ double penalty = (prev == nullptr) ? 0.1 : 0;
+ orthogonalPartner(vert, penalty);
+
+ bool isRealVert = (vert->id != dimensionChangeVertexID);
+ VertInf *realVert = (isRealVert) ? vert : orthogonalPartner(vert);
+ COLA_ASSERT(realVert->id != dimensionChangeVertexID);
+ EdgeInfList& visList = (!isOrthogonal) ? realVert->visList : realVert->orthogVisList;
+ EdgeInfList::const_iterator finish = visList.end();
+ for (EdgeInfList::const_iterator edge = visList.begin(); edge != finish; ++edge)
+ {
+ VertInf *other = (*edge)->otherVert(realVert);
+
+ if (other == orthogonalPartner(realVert))
+ {
+ VertInf *partner = (isRealVert) ? other : orthogonalPartner(other);
+ if (partner != prev)
+ {
+ edgeList.push_back(std::make_pair(*edge, partner));
+ }
+ continue;
+ }
+
+ VertInf *partner = (isRealVert) ? other : orthogonalPartner(other);
+ COLA_ASSERT(partner);
+
+ if (other->point.y == realVert->point.y)
+ {
+ if (isRealVert && (prev != partner))
+ {
+ edgeList.push_back(std::make_pair(*edge, partner));
+ }
+ }
+ else if (other->point.x == realVert->point.x)
+ {
+ if (!isRealVert && (prev != partner))
+ {
+ edgeList.push_back(std::make_pair(*edge, partner));
+ }
+ }
+ else
+ {
+ printf("Warning, nonorthogonal edge.\n");
+ edgeList.push_back(std::make_pair(*edge, other));
+ }
+ }
+
+ return edgeList;
+}
+
+void MinimumTerminalSpanningTree::constructInterleaved(void)
+{
+ // Perform an interleaved construction of the MTST and SPTF
+ // ========================================================
+ //
+ TIMER_START(router, tmHyperedgeAlt);
+
+ origTerminals = terminals;
+
+ // Initialisation
+ //
+ VertInf *endVert = router->vertices.end();
+ for (VertInf *k = router->vertices.connsBegin(); k != endVert;
+ k = k->lstNext)
+ {
+ k->sptfDist = DBL_MAX;
+ k->pathNext = nullptr;
+ k->setTreeRootPointer(nullptr);
+ k->m_orthogonalPartner = nullptr;
+ }
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->beginningHyperedgeReroutingWithEndpoints(
+ terminals);
+ }
+#endif
+
+ COLA_ASSERT(rootVertexPointers.empty());
+ for (std::set<VertInf *>::iterator ti = terminals.begin();
+ ti != terminals.end(); ++ti)
+ {
+ VertInf *t = *ti;
+ // This is a terminal, set a distance of zero.
+ t->sptfDist = 0;
+ rootVertexPointers.push_back(t->makeTreeRootPointer(t));
+ vHeap.push_back(t);
+ }
+ for (EdgeInf *t = router->visOrthogGraph.begin();
+ t != router->visOrthogGraph.end(); t = t->lstNext)
+ {
+ t->setHyperedgeSegment(false);
+ }
+
+ std::make_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+
+ // Shortest Path Terminal Forest construction
+ //
+ while ( ! vHeap.empty() )
+ {
+ // Take the lowest vertex from heap.
+ VertInf *u = vHeap.front();
+
+ // There should be no orphaned vertices.
+ COLA_ASSERT(u->treeRoot() != nullptr);
+ COLA_ASSERT(u->pathNext || (u->sptfDist == 0));
+
+ if (!beHeap.empty() && u->sptfDist >= (0.5 * beHeap.front()->mtstDist()))
+ {
+ // Take the lowest cost edge.
+ EdgeInf *e = beHeap.front();
+
+ // Pop the lowest cost edge off of the heap.
+ std::pop_heap(beHeap.begin(), beHeap.end(), beHeapCompare);
+ beHeap.pop_back();
+
+#ifndef NDEBUG
+ VertexPair ends = realVerticesCountingPartners(e);
+#endif
+ COLA_ASSERT(origTerminals.find(ends.first->treeRoot()) != origTerminals.end());
+ COLA_ASSERT(origTerminals.find(ends.second->treeRoot()) != origTerminals.end());
+
+ commitToBridgingEdge(e);
+
+ if (origTerminals.size() == 1)
+ {
+ break;
+ }
+
+ removeInvalidBridgingEdges();
+
+ // Don't pop this vertex, but continue.
+ continue;
+ }
+
+ // Pop the lowest vertex off the heap.
+ std::pop_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+ vHeap.pop_back();
+
+ // For each edge from this vertex...
+ LayeredOrthogonalEdgeList edgeList = getOrthogonalEdgesFromVertex(u,
+ u->pathNext);
+ for (LayeredOrthogonalEdgeList::const_iterator edge = edgeList.begin();
+ edge != edgeList.end(); ++edge)
+ {
+ VertInf *v = edge->second;
+ EdgeInf *e = edge->first;
+ double edgeDist = e->getDist();
+
+ // Assign a distance (length) of 1 for dummy visibility edges
+ // which may not accurately reflect the real distance of the edge.
+ if (v->id.isDummyPinHelper() || u->id.isDummyPinHelper())
+ {
+ edgeDist = 1;
+ }
+
+ // Don't do anything more here if this is an intra-tree edge that
+ // would just bridge branches of the same tree.
+ if (u->treeRoot() == v->treeRoot())
+ {
+ continue;
+ }
+
+ // This is an extension to the original method that takes a bend
+ // cost into account. For edges from this node, we take into
+ // account the direction of the branch in the tree that got us
+ // here. For an edge colinear to this we do the normal thing,
+ // and add it to the heap. For edges at right angle, we don't
+ // immediately add these, but instead add a dummy segment and node
+ // at the current position and give the edge an distance equal to
+ // the bend penalty. We add equivalent edges for the right-angled
+ // original edges, so these may be explored when the algorithm
+ // explores the dummy node. Obviously we also need to clean up
+ // these dummy nodes and edges later.
+ if (v->treeRoot() == nullptr)
+ {
+ double newCost = (u->sptfDist + edgeDist);
+
+ // We have got to a node we haven't explored to from any tree.
+ // So attach it to the tree and update it with the distance
+ // from the root to reach this vertex. Then add the vertex
+ // to the heap of potentials to explore.
+ v->sptfDist = newCost;
+ v->pathNext = u;
+ v->setTreeRootPointer(u->treeRootPointer());
+ vHeap.push_back(v);
+ // This can change the cost of other vertices in the heap,
+ // so we need to remake it.
+ std::make_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstGrowForestWithEdge(u, v, true);
+ }
+#endif
+ }
+ else
+ {
+ // We have reached a node that has been reached already through
+ // a different tree. Set the MTST distance for the bridging
+ // edge and push it to the priority queue of edges to consider
+ // during the extended Kruskal's algorithm.
+ double cost = v->sptfDist + u->sptfDist + e->getDist();
+ bool found = std::find(beHeap.begin(), beHeap.end(), e) != beHeap.end();
+ if (!found)
+ {
+ // We need to add the edge to the bridging edge heap.
+ e->setMtstDist(cost);
+ beHeap.push_back(e);
+ std::push_heap(beHeap.begin(), beHeap.end(), beHeapCompare);
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstPotentialBridgingEdge(u, v);
+ }
+#endif
+ }
+ else
+ {
+ // This edge is already in the bridging edge heap.
+ if (cost < e->mtstDist())
+ {
+ // Update the edge's mtstDist if we compute a lower
+ // cost than we had before.
+ e->setMtstDist(cost);
+ std::make_heap(beHeap.begin(), beHeap.end(), beHeapCompare);
+ }
+ }
+ }
+ }
+ }
+ COLA_ASSERT(origTerminals.size() == 1);
+ TIMER_STOP(router);
+
+ // Free Root Vertex Points from all vertices.
+ for (std::list<VertInf **>::iterator curr = rootVertexPointers.begin();
+ curr != rootVertexPointers.end(); ++curr)
+ {
+ free(*curr);
+ }
+ rootVertexPointers.clear();
+
+ // Free the dummy nodes and edges created earlier.
+ for_each(extraVertices.begin(), extraVertices.end(), delete_vertex());
+ extraVertices.clear();
+}
+
+bool MinimumTerminalSpanningTree::connectsWithoutBend(VertInf *oldLeaf,
+ VertInf *newLeaf)
+{
+ COLA_ASSERT(isOrthogonal);
+
+ if (oldLeaf->sptfDist == 0)
+ {
+ bool hyperedgeConnection = false;
+ EdgeInfList& visList = (!isOrthogonal) ?
+ oldLeaf->visList : oldLeaf->orthogVisList;
+ EdgeInfList::const_iterator finish = visList.end();
+ for (EdgeInfList::const_iterator edge = visList.begin();
+ edge != finish; ++edge)
+ {
+ VertInf *other = (*edge)->otherVert(oldLeaf);
+
+ if (other == newLeaf)
+ {
+ continue;
+ }
+
+ if (other->point == oldLeaf->point)
+ {
+ continue;
+ }
+
+ if ((*edge)->isHyperedgeSegment())
+ {
+ hyperedgeConnection = true;
+ if (colinear(other->point, oldLeaf->point, newLeaf->point))
+ {
+ return true;
+ }
+ }
+ }
+ // If there was no hyperedge to connect to, then its a tree source
+ // and we can connect without a bend.
+ return (!hyperedgeConnection) ? true : false;
+ }
+ else
+ {
+ if (oldLeaf->pathNext)
+ {
+ return colinear(oldLeaf->pathNext->point, oldLeaf->point,
+ newLeaf->point);
+ }
+ else
+ {
+ // No penalty.
+ return true;
+ }
+ }
+}
+
+void MinimumTerminalSpanningTree::rewriteRestOfHyperedge(VertInf *vert,
+ VertInf **newTreeRootPtr)
+{
+ vert->setTreeRootPointer(newTreeRootPtr);
+
+ LayeredOrthogonalEdgeList edgeList = getOrthogonalEdgesFromVertex(vert,
+ nullptr);
+ for (LayeredOrthogonalEdgeList::const_iterator edge = edgeList.begin();
+ edge != edgeList.end(); ++edge)
+ {
+ VertInf *v = edge->second;
+
+ if (v->treeRootPointer() == newTreeRootPtr)
+ {
+ // Already marked.
+ continue;
+ }
+
+ if (v->sptfDist == 0)
+ {
+ // This is part of the rest of an existing hyperedge,
+ // so mark it and continue.
+ rewriteRestOfHyperedge(v, newTreeRootPtr);
+ }
+ }
+}
+
+void MinimumTerminalSpanningTree::drawForest(VertInf *vert, VertInf *prev)
+{
+ if (prev == nullptr)
+ {
+ std::string colour = "green";
+ /*
+ if (vert->id == dimensionChangeVertexID)
+ {
+ colour = "blue";
+ }
+ */
+
+ if (vert->treeRoot() == nullptr)
+ {
+ colour = "red";
+ }
+
+ COLA_ASSERT(vert->treeRootPointer() != nullptr);
+ COLA_ASSERT(vert->treeRoot() != nullptr);
+ //fprintf(debug_fp, "<circle cx=\"%g\" cy=\"%g\" r=\"3\" db:sptfDist=\"%g\" "
+ // "style=\"fill: %s; stroke: %s; fill-opacity: 0.5; "
+ // "stroke-width: 1px; stroke-opacity:0.5\" />\n",
+ // vert->point.x, vert->point.y, vert->sptfDist, colour.c_str(), "black");
+ }
+
+ LayeredOrthogonalEdgeList edgeList = getOrthogonalEdgesFromVertex(vert,
+ prev);
+ for (LayeredOrthogonalEdgeList::const_iterator edge = edgeList.begin();
+ edge != edgeList.end(); ++edge)
+ {
+ VertInf *v = edge->second;
+
+ if (v->sptfDist == 0)
+ {
+ continue;
+ }
+
+ if (v->treeRoot() == vert->treeRoot())
+ {
+ if (v->pathNext == vert)
+ {
+ if (vert->point != v->point)
+ {
+ router->debugHandler()->mtstGrowForestWithEdge(vert, v, false);
+ }
+ drawForest(v, vert);
+ }
+ }
+ }
+}
+
+VertexPair MinimumTerminalSpanningTree::
+ realVerticesCountingPartners(EdgeInf *edge)
+{
+ VertInf *v1 = edge->m_vert1;
+ VertInf *v2 = edge->m_vert2;
+
+ VertexPair realVertices = std::make_pair(v1, v2);
+
+ if ((v1->id != dimensionChangeVertexID) &&
+ (v2->id != dimensionChangeVertexID) &&
+ (v1->point != v2->point) &&
+ (v1->point.x == v2->point.x))
+ {
+ if (v1->m_orthogonalPartner)
+ {
+ realVertices.first = v1->m_orthogonalPartner;
+ }
+ if (v2->m_orthogonalPartner)
+ {
+ realVertices.second = v2->m_orthogonalPartner;
+ }
+ }
+
+ return realVertices;
+}
+
+
+void MinimumTerminalSpanningTree::commitToBridgingEdge(EdgeInf *e)
+{
+ VertexPair ends = realVerticesCountingPartners(e);
+ VertInf *newRoot = std::min(ends.first->treeRoot(), ends.second->treeRoot());
+ VertInf *oldRoot = std::max(ends.first->treeRoot(), ends.second->treeRoot());
+
+ // Connect this edge into the MTST by building HyperedgeTree nodes
+ // and edges for this edge and the path back to the tree root.
+ HyperedgeTreeNode *node1 = nullptr;
+ HyperedgeTreeNode *node2 = nullptr;
+
+ VertInf *vert1 = ends.first;
+ VertInf *vert2 = ends.second;
+ if (hyperedgeTreeJunctions)
+ {
+ node1 = addNode(vert1, nullptr);
+ node2 = addNode(vert2, node1);
+ e->setHyperedgeSegment(true);
+ }
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ router->debugHandler()->mtstCommitToEdge(vert1, vert2, true);
+ for (std::set<VertInf *>::iterator ti = terminals.begin();
+ ti != terminals.end(); ++ti)
+ {
+ drawForest(*ti, nullptr);
+ }
+ }
+#endif
+
+ buildHyperedgeTreeToRoot(vert1->pathNext, node1, vert1, true);
+ buildHyperedgeTreeToRoot(vert2->pathNext, node2, vert2, true);
+
+ // We are commmitting to a particular path and pruning back the shortest
+ // path terminal forests from the roots of that path. We do this by
+ // rewriting the treeRootPointers for all the points on the current
+ // hyperedge path to newTreeRootPtr. The rest of the vertices in the
+ // forest will be pruned by rewriting their treeRootPointer to nullptr.
+ VertInf **oldTreeRootPtr1 = vert1->treeRootPointer();
+ VertInf **oldTreeRootPtr2 = vert2->treeRootPointer();
+ origTerminals.erase(oldRoot);
+ VertInf **newTreeRootPtr = vert1->makeTreeRootPointer(newRoot);
+ rootVertexPointers.push_back(newTreeRootPtr);
+ vert2->setTreeRootPointer(newTreeRootPtr);
+
+ // Zero paths and rewrite the vertices on the hyperedge path to the
+ // newTreeRootPtr. Also, add vertices on path to the terminal set.
+ COLA_ASSERT(newRoot);
+ resetDistsForPath(vert1, newTreeRootPtr);
+ resetDistsForPath(vert2, newTreeRootPtr);
+
+ // Prune the forests from the joined vertex sets by setting their
+ // treeRootPointers to nullptr.
+ COLA_ASSERT(oldTreeRootPtr1);
+ COLA_ASSERT(oldTreeRootPtr2);
+ *oldTreeRootPtr1 = nullptr;
+ *oldTreeRootPtr2 = nullptr;
+
+ // We have found the full hyperedge path when we have joined all the
+ // terminal sets into one.
+ if (origTerminals.size() == 1)
+ {
+ return;
+ }
+
+ // Remove newly orphaned vertices from vertex heap by only copying the
+ // valid vertices to vHeapNew array which then replaces vHeap.
+ std::vector<VertInf *> vHeapNew(vHeap.size());
+ size_t j = 0;
+ size_t vHeapSize = vHeap.size();
+ for (size_t i = 0; i < vHeapSize; ++i)
+ {
+ VertInf *v = vHeap[i];
+
+ if ((v->treeRoot() == nullptr))
+ {
+ // This is an orphaned vertex.
+ continue;
+ }
+
+ // Copy the other vertices to vHeapNew.
+ vHeapNew[j] = vHeap[i];
+ ++j;
+ }
+ vHeapNew.resize(j);
+ // Replace vHeap with vHeapNew
+ vHeap = vHeapNew;
+
+ // Reset all terminals to zero.
+ for (std::set<VertInf *>::iterator v2 = terminals.begin();
+ v2 != terminals.end(); ++v2)
+ {
+ COLA_ASSERT((*v2)->sptfDist == 0);
+ vHeap.push_back(*v2);
+ }
+
+ // Rebuild the heap since some terminals will have had distances
+ // rewritten as well as the orphaned vertices being removed.
+ std::make_heap(vHeap.begin(), vHeap.end(), vHeapCompare);
+}
+
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/mtst.h b/src/3rdparty/adaptagrams/libavoid/mtst.h
new file mode 100644
index 0000000..3789ad4
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/mtst.h
@@ -0,0 +1,134 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2011-2013 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#ifndef AVOID_MTST_H
+#define AVOID_MTST_H
+
+#include <cstdio>
+#include <set>
+#include <list>
+#include <utility>
+
+#include "libavoid/vertices.h"
+#include "libavoid/hyperedgetree.h"
+
+
+namespace Avoid {
+
+class VertInf;
+class Router;
+class ConnRef;
+class EdgeInf;
+
+typedef std::list<VertexSet> VertexSetList;
+
+typedef std::pair<EdgeInf *, VertInf *> LayeredOrthogonalEdge;
+typedef std::list<LayeredOrthogonalEdge> LayeredOrthogonalEdgeList;
+
+// Comparison for the vertex heap in the extended Dijkstra's algorithm.
+struct HeapCmpVertInf
+{
+ bool operator()(const VertInf *a, const VertInf *b) const;
+};
+
+
+// Comparison for the bridging edge heap in the extended Kruskal's algorithm.
+struct CmpEdgeInf
+{
+ bool operator()(const EdgeInf *a, const EdgeInf *b) const;
+};
+
+
+// This class is not intended for public use.
+// It is used by the hyperedge routing code to build a minimum terminal
+// spanning tree for a set of terminal vertices.
+class MinimumTerminalSpanningTree
+{
+ public:
+ MinimumTerminalSpanningTree(Router *router,
+ std::set<VertInf *> terminals,
+ JunctionHyperedgeTreeNodeMap *hyperedgeTreeJunctions = nullptr);
+ ~MinimumTerminalSpanningTree();
+
+ // Uses Interleaved construction of the MTST and SPTF (heuristic 2
+ // from paper). This is the preferred construction approach.
+ void constructInterleaved(void);
+ // Uses Sequential construction of the MTST (heuristic 1 from paper).
+ void constructSequential(void);
+
+ void setDebuggingOutput(FILE *fp, unsigned int counter);
+ HyperedgeTreeNode *rootJunction(void) const;
+
+ private:
+ void buildHyperedgeTreeToRoot(VertInf *curr,
+ HyperedgeTreeNode *prevNode, VertInf *prevVert,
+ bool markEdges = false);
+ VertInf **resetDistsForPath(VertInf *currVert, VertInf **newRootVertPtr);
+ void rewriteRestOfHyperedge(VertInf *vert, VertInf **newTreeRootPtr);
+ void drawForest(VertInf *vert, VertInf *prev);
+
+ void makeSet(VertInf *vertex);
+ VertexSetList::iterator findSet(VertInf *vertex);
+ void unionSets(VertexSetList::iterator s1, VertexSetList::iterator s2);
+ HyperedgeTreeNode *addNode(VertInf *vertex, HyperedgeTreeNode *prevNode);
+
+ void removeInvalidBridgingEdges(void);
+ void commitToBridgingEdge(EdgeInf *e);
+ bool connectsWithoutBend(VertInf *oldLeaf, VertInf *newLeaf);
+ LayeredOrthogonalEdgeList getOrthogonalEdgesFromVertex(VertInf *vert,
+ VertInf *prev);
+ VertInf *orthogonalPartner(VertInf *vert, double penalty = 0);
+ VertexPair realVerticesCountingPartners(EdgeInf *edge);
+
+
+ Router *router;
+ bool isOrthogonal;
+ std::set<VertInf *> terminals;
+ std::set<VertInf *> origTerminals;
+ JunctionHyperedgeTreeNodeMap *hyperedgeTreeJunctions;
+
+ VertexNodeMap nodes;
+ HyperedgeTreeNode *m_rootJunction;
+ double bendPenalty;
+ VertexSetList allsets;
+ std::list<VertInf *> visitedVertices;
+ std::list<VertInf *> extraVertices;
+ std::list<VertInf *> unusedVertices;
+ std::list<VertInf **> rootVertexPointers;
+
+ // Vertex heap for extended Dijkstra's algorithm.
+ std::vector<VertInf *> vHeap;
+ HeapCmpVertInf vHeapCompare;
+
+ // Bridging edge heap for the extended Kruskal's algorithm.
+ std::vector<EdgeInf *> beHeap;
+ CmpEdgeInf beHeapCompare;
+
+ const VertID dimensionChangeVertexID;
+};
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/obstacle.cpp b/src/3rdparty/adaptagrams/libavoid/obstacle.cpp
new file mode 100644
index 0000000..ac7139b
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/obstacle.cpp
@@ -0,0 +1,355 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include "libavoid/obstacle.h"
+#include "libavoid/router.h"
+#include "libavoid/connectionpin.h"
+#include "libavoid/debug.h"
+
+namespace Avoid {
+
+
+Obstacle::Obstacle(Router *router, Polygon ply, const unsigned int id)
+ : m_router(router),
+ m_polygon(ply),
+ m_active(false),
+ m_first_vert(nullptr),
+ m_last_vert(nullptr)
+{
+ COLA_ASSERT(m_router != nullptr);
+ m_id = m_router->assignId(id);
+
+ VertID i = VertID(m_id, 0);
+
+ Polygon routingPoly = routingPolygon();
+ const bool addToRouterNow = false;
+ VertInf *last = nullptr;
+ VertInf *node = nullptr;
+ for (size_t pt_i = 0; pt_i < routingPoly.size(); ++pt_i)
+ {
+ node = new VertInf(m_router, i, routingPoly.ps[pt_i], addToRouterNow);
+
+ if (!m_first_vert)
+ {
+ m_first_vert = node;
+ }
+ else
+ {
+ node->shPrev = last;
+ last->shNext = node;
+ //node->lstPrev = last;
+ //last->lstNext = node;
+ }
+
+ last = node;
+ i++;
+ }
+ m_last_vert = node;
+
+ m_last_vert->shNext = m_first_vert;
+ m_first_vert->shPrev = m_last_vert;
+}
+
+
+Obstacle::~Obstacle()
+{
+ COLA_ASSERT(m_active == false);
+ COLA_ASSERT(m_first_vert != nullptr);
+
+ VertInf *it = m_first_vert;
+ do
+ {
+ VertInf *tmp = it;
+ it = it->shNext;
+
+ delete tmp;
+ }
+ while (it != m_first_vert);
+ m_first_vert = m_last_vert = nullptr;
+
+ // Free and clear any connection pins.
+ while (!m_connection_pins.empty())
+ {
+ delete *(m_connection_pins.begin());
+ }
+}
+
+
+void Obstacle::setNewPoly(const Polygon& poly)
+{
+ COLA_ASSERT(m_first_vert != nullptr);
+ COLA_ASSERT(m_polygon.size() == poly.size());
+
+ m_polygon = poly;
+ Polygon routingPoly = routingPolygon();
+
+ VertInf *curr = m_first_vert;
+ for (size_t pt_i = 0; pt_i < routingPoly.size(); ++pt_i)
+ {
+ COLA_ASSERT(curr->visListSize == 0);
+ COLA_ASSERT(curr->invisListSize == 0);
+
+ // Reset with the new polygon point.
+ curr->Reset(routingPoly.ps[pt_i]);
+ curr->pathNext = nullptr;
+
+ curr = curr->shNext;
+ }
+ COLA_ASSERT(curr == m_first_vert);
+
+ // It may be that the polygon for the obstacle has been updated after
+ // creating the shape. These events may have been combined for a single
+ // transaction, so update pin positions.
+ for (ShapeConnectionPinSet::iterator curr =
+ m_connection_pins.begin(); curr != m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *pin = *curr;
+ pin->updatePosition(m_polygon);
+ }
+}
+
+
+void Obstacle::makeActive(void)
+{
+ COLA_ASSERT(!m_active);
+
+ // Add to shapeRefs list.
+ m_router_obstacles_pos = m_router->m_obstacles.insert(
+ m_router->m_obstacles.begin(), this);
+
+ // Add points to vertex list.
+ VertInf *it = m_first_vert;
+ do
+ {
+ VertInf *tmp = it;
+ it = it->shNext;
+
+ m_router->vertices.addVertex(tmp);
+ }
+ while (it != m_first_vert);
+
+ m_active = true;
+}
+
+
+void Obstacle::makeInactive(void)
+{
+ COLA_ASSERT(m_active);
+
+ // Remove from shapeRefs list.
+ m_router->m_obstacles.erase(m_router_obstacles_pos);
+
+ // Remove points from vertex list.
+ VertInf *it = m_first_vert;
+ do
+ {
+ VertInf *tmp = it;
+ it = it->shNext;
+
+ m_router->vertices.removeVertex(tmp);
+ }
+ while (it != m_first_vert);
+
+ m_active = false;
+
+ // Turn attached ConnEnds into manual points.
+ bool deletedShape = true;
+ while (!m_following_conns.empty())
+ {
+ ConnEnd *connEnd = *(m_following_conns.begin());
+ connEnd->disconnect(deletedShape);
+ }
+}
+
+
+void Obstacle::updatePinPolyLineVisibility(void)
+{
+ for (ShapeConnectionPinSet::iterator curr =
+ m_connection_pins.begin();
+ curr != m_connection_pins.end(); ++curr)
+ {
+ (*curr)->updateVisibility();
+ }
+}
+
+
+std::vector<Point> Obstacle::possiblePinPoints(unsigned int pinClassId) const
+{
+ std::vector<Point> points;
+ for (ShapeConnectionPinSet::const_iterator curr =
+ m_connection_pins.begin();
+ curr != m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *currPin = *curr;
+ if ((currPin->m_class_id == pinClassId) &&
+ (!currPin->m_exclusive || currPin->m_connend_users.empty()))
+ {
+ points.push_back(currPin->m_vertex->point);
+ }
+ }
+ return points;
+}
+
+
+size_t Obstacle::addConnectionPin(ShapeConnectionPin *pin)
+{
+ m_connection_pins.insert(pin);
+ m_router->modifyConnectionPin(pin);
+
+ return m_connection_pins.size();
+}
+
+void Obstacle::removeConnectionPin(ShapeConnectionPin *pin)
+{
+ m_connection_pins.erase(pin);
+ m_router->modifyConnectionPin(pin);
+}
+
+
+bool Obstacle::isActive(void) const
+{
+ return m_active;
+}
+
+
+VertInf *Obstacle::firstVert(void)
+{
+ return m_first_vert;
+}
+
+
+VertInf *Obstacle::lastVert(void)
+{
+ return m_last_vert;
+}
+
+
+unsigned int Obstacle::id(void) const
+{
+ return m_id;
+}
+
+
+const Polygon& Obstacle::polygon(void) const
+{
+ return m_polygon;
+}
+
+
+Router *Obstacle::router(void) const
+{
+ return m_router;
+}
+
+
+Box Obstacle::routingBox(void) const
+{
+ COLA_ASSERT(!m_polygon.empty());
+ COLA_ASSERT(m_router);
+
+ double bufferSpace = m_router->routingParameter(shapeBufferDistance);
+ return m_polygon.offsetBoundingBox(bufferSpace);
+}
+
+
+Polygon Obstacle::routingPolygon(void) const
+{
+ COLA_ASSERT(!m_polygon.empty());
+ COLA_ASSERT(m_router);
+
+ double bufferSpace = m_router->routingParameter(shapeBufferDistance);
+ return m_polygon.offsetPolygon(bufferSpace);
+}
+
+
+Point Obstacle::shapeCentre(void)
+{
+ Box bb = routingBox();
+
+ Point centre;
+ centre.x = bb.min.x + (0.5 * (bb.max.x - bb.min.x));
+ centre.y = bb.min.y + (0.5 * (bb.max.y - bb.min.y));
+ return centre;
+}
+
+
+void Obstacle::removeFromGraph(void)
+{
+ bool isConnPt = false;
+ for (VertInf *iter = firstVert(); iter != lastVert()->lstNext; )
+ {
+ VertInf *tmp = iter;
+ iter = iter->lstNext;
+
+ tmp->removeFromGraph(isConnPt);
+ }
+}
+
+
+VertInf *Obstacle::getPointVertex(const Point& point)
+{
+ VertInf *curr = m_first_vert;
+ do
+ {
+ if (curr->point == point)
+ {
+ return curr;
+ }
+ curr = curr->shNext;
+ }
+ while (curr != m_first_vert);
+
+ return nullptr;
+}
+
+
+void Obstacle::addFollowingConnEnd(ConnEnd *connEnd)
+{
+ m_following_conns.insert(connEnd);
+}
+
+
+void Obstacle::removeFollowingConnEnd(ConnEnd *connEnd)
+{
+ m_following_conns.erase(connEnd);
+}
+
+
+ConnRefList Obstacle::attachedConnectors(void) const
+{
+ ConnRefList attachedConns;
+ for (std::set<ConnEnd *>::const_iterator curr = m_following_conns.begin();
+ curr != m_following_conns.end(); ++curr)
+ {
+ ConnEnd *connEnd = *curr;
+ COLA_ASSERT(connEnd->m_conn_ref != nullptr);
+ attachedConns.push_back(connEnd->m_conn_ref);
+ }
+ return attachedConns;
+}
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/obstacle.h b/src/3rdparty/adaptagrams/libavoid/obstacle.h
new file mode 100644
index 0000000..12c5eca
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/obstacle.h
@@ -0,0 +1,150 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file obstacle.h
+//! @brief Contains the interface for the Obstacle class,
+//! the superclass for ShapeRef and JunctionRef.
+
+
+#ifndef AVOID_OBSTACLE_H
+#define AVOID_OBSTACLE_H
+
+#include <list>
+#include <set>
+
+#include <cstdio>
+
+#include "libavoid/geometry.h"
+#include "libavoid/connectionpin.h"
+
+
+namespace Avoid {
+
+class VertInf;
+class Router;
+class Obstacle;
+class ConnEnd;
+class ConnRef;
+typedef std::list<Obstacle *> ObstacleList;
+typedef std::list<ConnRef *> ConnRefList;
+
+
+// @brief The Obstacle class represents an obstacle that must be
+// routed around. Superclass of ShapeRef and JunctionRef.
+//
+class Obstacle
+{
+ public:
+ //! @brief Obstacle reference constructor.
+ //!
+ //! Creates an obstacle object reference. It is expected that you
+ //! would not instantiate an Obstacle directly, but would instead
+ //! use either ShapeRef() or JunctionRef().
+ //!
+ //! @param[in] router The router scene to place the shape into.
+ //! @param[in] poly A Polygon representing the boundary of the
+ //! shape.
+ //! @param[in] id A unique positive integer ID for the shape.
+ Obstacle(Router *router, Polygon poly, const unsigned int id = 0);
+
+// To prevent C++ objects from being destroyed in garbage collected languages
+// when the libraries are called from SWIG, we hide the declarations of the
+// destructors and prevent generation of default destructors.
+#ifndef SWIG
+ //! @brief Obstacle reference destructor.
+ //!
+ virtual ~Obstacle();
+#endif
+
+ //! @brief Returns the ID of this obstacle.
+ //! @returns The ID of the obstacle.
+ unsigned int id(void) const;
+ //! @brief Returns a reference to the polygon boundary of this
+ //! obstacle.
+ //! @returns A reference to the polygon boundary of the obstacle.
+ const Polygon& polygon(void) const;
+ //! @brief Returns a pointer to the router scene this obstacle
+ //! is in.
+ //! @returns A pointer to the router scene for this obstacle.
+ Router *router(void) const;
+ //! @brief Returns the position of this obstacle.
+ //! @returns A point representing the position of this obstacle.
+ virtual Point position(void) const = 0;
+
+ void setNewPoly(const Polygon& poly);
+ VertInf *firstVert(void);
+ VertInf *lastVert(void);
+ Box routingBox(void) const;
+ Polygon routingPolygon(void) const;
+ ConnRefList attachedConnectors(void) const;
+
+ private:
+ friend class Router;
+ friend class ConnEnd;
+ friend class ShapeConnectionPin;
+ friend class HyperedgeRerouter;
+ friend class HyperedgeImprover;
+ friend class MinimumTerminalSpanningTree;
+
+ // Defined in visibility.cpp:
+ void computeVisibilityNaive(void);
+ void computeVisibilitySweep(void);
+
+ virtual void outputCode(FILE *fp) const = 0;
+ void makeActive(void);
+ void makeInactive(void);
+ bool isActive(void) const;
+ void updatePinPolyLineVisibility(void);
+ void removeFromGraph(void);
+ Point shapeCentre(void);
+
+ VertInf *getPointVertex(const Point& point);
+
+ void addFollowingConnEnd(ConnEnd *connEnd);
+ void removeFollowingConnEnd(ConnEnd *connEnd);
+ size_t addConnectionPin(ShapeConnectionPin *pin);
+ void removeConnectionPin(ShapeConnectionPin *pin);
+ void assignPinVisibilityTo(const unsigned int pinClassId,
+ VertInf *dummyConnectionVert);
+ std::vector<Point> possiblePinPoints(unsigned int pinClassId) const;
+
+ protected:
+ Router *m_router;
+ unsigned int m_id;
+ Polygon m_polygon;
+ bool m_active;
+ ObstacleList::iterator m_router_obstacles_pos;
+ VertInf *m_first_vert;
+ VertInf *m_last_vert;
+ std::set<ConnEnd *> m_following_conns;
+ ShapeConnectionPinSet m_connection_pins;
+};
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/orthogonal.cpp b/src/3rdparty/adaptagrams/libavoid/orthogonal.cpp
new file mode 100644
index 0000000..f213955
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/orthogonal.cpp
@@ -0,0 +1,3259 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2009-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <cstdlib>
+#include <cfloat>
+#include <cmath>
+#include <set>
+#include <list>
+#include <algorithm>
+
+#include "libavoid/router.h"
+#include "libavoid/geomtypes.h"
+#include "libavoid/shape.h"
+#include "libavoid/orthogonal.h"
+#include "libavoid/connend.h"
+#include "libavoid/connector.h"
+#include "libavoid/junction.h"
+#include "libavoid/vpsc.h"
+#include "libavoid/assertions.h"
+#include "libavoid/scanline.h"
+#include "libavoid/debughandler.h"
+
+// For debugging:
+//#define NUDGE_DEBUG
+//#define DEBUG_JUST_UNIFY
+
+
+namespace Avoid {
+
+
+// IDs:
+static const int freeSegmentID = 0;
+static const int fixedSegmentID = 1;
+static const int channelLeftID = 2;
+static const int channelRightID = 3;
+// Weights:
+static const double freeWeight = 0.00001;
+static const double strongWeight = 0.001;
+static const double strongerWeight = 1.0;
+static const double fixedWeight = 100000;
+
+
+// A pair of unsigned values that can be compared and used as the keys
+// for sets and maps.
+class UnsignedPair
+{
+ public:
+ UnsignedPair(unsigned ind1, unsigned ind2)
+ {
+ COLA_ASSERT(ind1 != ind2);
+ // Assign the lesser value to m_index1.
+ m_index1 = (ind1 < ind2) ? ind1 : ind2;
+ // Assign the greater value to m_index2.
+ m_index2 = (ind1 > ind2) ? ind1 : ind2;
+ }
+
+ bool operator<(const UnsignedPair& rhs) const
+ {
+ if (m_index1 != rhs.m_index1)
+ {
+ return m_index1 < rhs.m_index1;
+ }
+ return m_index2 < rhs.m_index2;
+ }
+ private:
+ unsigned short m_index1;
+ unsigned short m_index2;
+};
+typedef std::set<UnsignedPair> UnsignedPairSet;
+
+
+// Used to sort points when merging NudgingShiftSegments.
+// Sorts the indexes, by point position in one dimension.
+class CmpIndexes
+{
+ public:
+ CmpIndexes(ConnRef *conn, size_t dim)
+ : connRef(conn),
+ dimension(dim)
+ {
+ }
+ bool operator()(size_t lhs, size_t rhs)
+ {
+ return connRef->displayRoute().ps[lhs][dimension] <
+ connRef->displayRoute().ps[rhs][dimension];
+ }
+ private:
+ ConnRef *connRef;
+ size_t dimension;
+};
+
+
+class NudgingShiftSegment : public ShiftSegment
+{
+ public:
+ // For shiftable segments.
+ NudgingShiftSegment(ConnRef *conn, const size_t low, const size_t high,
+ bool isSBend, bool isZBend, const size_t dim, double minLim,
+ double maxLim)
+ : ShiftSegment(dim),
+ connRef(conn),
+ variable(nullptr),
+ fixed(false),
+ finalSegment(false),
+ endsInShape(false),
+ singleConnectedSegment(false),
+ sBend(isSBend),
+ zBend(isZBend)
+ {
+ indexes.push_back(low);
+ indexes.push_back(high);
+ minSpaceLimit = minLim;
+ maxSpaceLimit = maxLim;
+ }
+ // For fixed segments.
+ NudgingShiftSegment(ConnRef *conn, const size_t low, const size_t high,
+ const size_t dim)
+ : ShiftSegment(dim),
+ connRef(conn),
+ variable(nullptr),
+ fixed(true),
+ finalSegment(false),
+ endsInShape(false),
+ singleConnectedSegment(false),
+ sBend(false),
+ zBend(false)
+ {
+ indexes.push_back(low);
+ indexes.push_back(high);
+ // This has no space to shift.
+ minSpaceLimit = lowPoint()[dim];
+ maxSpaceLimit = lowPoint()[dim];
+ }
+ virtual ~NudgingShiftSegment()
+ {
+ }
+ Point& lowPoint(void)
+ {
+ return connRef->displayRoute().ps[indexes.front()];
+ }
+ Point& highPoint(void)
+ {
+ return connRef->displayRoute().ps[indexes.back()];
+ }
+ const Point& lowPoint(void) const
+ {
+ return connRef->displayRoute().ps[indexes.front()];
+ }
+ const Point& highPoint(void) const
+ {
+ return connRef->displayRoute().ps[indexes.back()];
+ }
+ double nudgeDistance(void) const
+ {
+ return connRef->router()->routingParameter(idealNudgingDistance);
+ }
+ bool immovable(void) const
+ {
+ return ! zigzag();
+ }
+ void createSolverVariable(const bool justUnifying)
+ {
+ bool nudgeFinalSegments = connRef->router()->routingOption(
+ nudgeOrthogonalSegmentsConnectedToShapes);
+ int varID = freeSegmentID;
+ double varPos = lowPoint()[dimension];
+ double weight = freeWeight;
+ if (nudgeFinalSegments && finalSegment)
+ {
+ weight = strongWeight;
+
+ if (singleConnectedSegment && !justUnifying)
+ {
+ // This is a single segment connector bridging
+ // two shapes. So, we want to try to keep it
+ // centred rather than shift it.
+ // Don't do this during Unifying stage, or else
+ // these connectors could end up at slightly
+ // different positions and get the wrong ordering
+ // for nudging.
+ weight = strongerWeight;
+ }
+ }
+ else if (checkpoints.size() > 0)
+ {
+ weight = strongWeight;
+ }
+ else if (zigzag())
+ {
+ COLA_ASSERT(minSpaceLimit > -CHANNEL_MAX);
+ COLA_ASSERT(maxSpaceLimit < CHANNEL_MAX);
+
+ // For zigzag bends, take the middle as ideal.
+ varPos = minSpaceLimit + ((maxSpaceLimit - minSpaceLimit) / 2);
+ }
+ else if (fixed)
+ {
+ // Fixed segments shouldn't get moved.
+ weight = fixedWeight;
+ varID = fixedSegmentID;
+ }
+ else if ( ! finalSegment )
+ {
+ // Set a higher weight for c-bends to stop them sometimes
+ // getting pushed out into channels by more-free connectors
+ // to the "inner" side of them.
+ weight = strongWeight;
+ }
+
+ variable = new Variable(varID, varPos, weight);
+ }
+
+ void updatePositionsFromSolver(const bool justUnifying)
+ {
+ if (fixed)
+ {
+ return;
+ }
+ double newPos = variable->finalPosition;
+
+ // The solver can sometimes cause variables to be outside their
+ // limits by a tiny amount, since all variables are held by
+ // weights. Thus, just make sure they stay in their limits.
+ newPos = std::max(newPos, minSpaceLimit);
+ newPos = std::min(newPos, maxSpaceLimit);
+
+#ifdef NUDGE_DEBUG
+ printf("Pos: %lX, %.16f\n", (long) connRef, newPos);
+#endif
+ for (size_t it = 0; it < indexes.size(); ++it)
+ {
+ size_t index = indexes[it];
+ connRef->displayRoute().ps[index][dimension] = newPos;
+ }
+
+#ifdef DEBUGHANDLER
+ if (!justUnifying && connRef->router()->debugHandler())
+ {
+ connRef->router()->debugHandler()->updateConnectorRoute(
+ connRef, indexes[0], indexes[indexes.size() - 1]);
+ }
+#endif
+ }
+ int fixedOrder(bool& isFixed) const
+ {
+ double nudgeDist = nudgeDistance();
+ double pos = lowPoint()[dimension];
+ bool minLimited = ((pos - minSpaceLimit) < nudgeDist);
+ bool maxLimited = ((maxSpaceLimit - pos) < nudgeDist);
+
+ if (fixed || (minLimited && maxLimited))
+ {
+ isFixed = true;
+ return 0;
+ }
+ else if (minLimited)
+ {
+ return 1;
+ }
+ else if (maxLimited)
+ {
+ return -1;
+ }
+ return 0;
+ }
+ int order(void) const
+ {
+ if (lowC())
+ {
+ return -1;
+ }
+ else if (highC())
+ {
+ return 1;
+ }
+ return 0;
+ }
+ bool zigzag(void) const
+ {
+ return sBend || zBend;
+ }
+ // This counts segments that are collinear and share an endpoint as
+ // overlapping. This allows them to be nudged apart where possible.
+ bool overlapsWith(const ShiftSegment *rhsSuper, const size_t dim) const
+ {
+ const NudgingShiftSegment *rhs =
+ static_cast<const NudgingShiftSegment *> (rhsSuper);
+ size_t altDim = (dim + 1) % 2;
+ const Point& lowPt = lowPoint();
+ const Point& highPt = highPoint();
+ const Point& rhsLowPt = rhs->lowPoint();
+ const Point& rhsHighPt = rhs->highPoint();
+ if ( (lowPt[altDim] < rhsHighPt[altDim]) &&
+ (rhsLowPt[altDim] < highPt[altDim]))
+ {
+ // The segments overlap.
+ if ( (minSpaceLimit <= rhs->maxSpaceLimit) &&
+ (rhs->minSpaceLimit <= maxSpaceLimit) )
+ {
+ return true;
+ }
+ }
+ else if ( (lowPt[altDim] == rhsHighPt[altDim]) ||
+ (rhsLowPt[altDim] == highPt[altDim]) )
+ {
+ bool nudgeColinearSegments = connRef->router()->routingOption(
+ nudgeOrthogonalTouchingColinearSegments);
+
+ if ( (minSpaceLimit <= rhs->maxSpaceLimit) &&
+ (rhs->minSpaceLimit <= maxSpaceLimit) )
+ {
+ // The segments could touch at one end.
+ if (connRef->router()->routingParameter(
+ fixedSharedPathPenalty) > 0)
+ {
+ // If we are routing with a fixedSharedPathPenalty
+ // then we don't want these segments to ever touch
+ // or slide past each other, so they are always
+ // considered to be overlapping.
+ return true;
+ }
+ else if ((rhs->sBend && sBend) || (rhs->zBend && zBend))
+ {
+ // Count them as overlapping for nudging if they
+ // are both s-bends or both z-bends, i.e., when
+ // the ordering would matter.
+ return nudgeColinearSegments;
+ }
+ else if ((rhs->finalSegment && finalSegment) &&
+ (rhs->connRef == connRef))
+ {
+ return nudgeColinearSegments;
+ }
+ }
+ }
+ return false;
+ }
+ // These segments are allowed to drift into alignment but don't have to.
+ bool canAlignWith(const NudgingShiftSegment *rhs,
+ const size_t dim) const
+ {
+ COLA_UNUSED(dim);
+
+ if (connRef != rhs->connRef)
+ {
+ return false;
+ }
+
+ // Don't allow segments of the same connector to drift together
+ // where one of them goes via a checkpoint. We want the path
+ // through the checkpoint to be maintained.
+ bool hasCheckpoints = checkpoints.size() > 0;
+ bool rhsHasCheckpoints = rhs->checkpoints.size() > 0;
+ if (hasCheckpoints || rhsHasCheckpoints)
+ {
+ return false;
+ }
+ return true;
+ }
+ // These segments should align with each other.
+ bool shouldAlignWith(const ShiftSegment *rhsSuper,
+ const size_t dim) const
+ {
+ const NudgingShiftSegment *rhs =
+ static_cast<const NudgingShiftSegment *> (rhsSuper);
+ if ((connRef == rhs->connRef) && finalSegment &&
+ rhs->finalSegment && overlapsWith(rhs, dim))
+ {
+ // If both the segments are in shapes then we know limits
+ // and can align. Otherwise we do this just for segments
+ // that are very close together, since these will often
+ // prevent nudging, or force it to have a tiny separation
+ // value.
+ if ((endsInShape && rhs->endsInShape) ||
+ (fabs(lowPoint()[dim] - rhs->lowPoint()[dim]) < 10))
+ {
+ return true;
+ }
+ }
+ else if ((connRef == rhs->connRef) &&
+ // Not both final
+ ((finalSegment & rhs->finalSegment) != true))
+ {
+ bool hasCheckpoints = checkpoints.size() > 0;
+ bool rhsHasCheckpoints = rhs->checkpoints.size() > 0;
+
+ if (hasCheckpoints != rhsHasCheckpoints)
+ {
+ // At least one segment has checkpoints, but not both.
+
+ size_t altDim = (dim + 1) % 2;
+ double space = fabs(lowPoint()[dim] - rhs->lowPoint()[dim]);
+ double touchPos;
+ bool couldTouch = false;
+ if (lowPoint()[altDim] == rhs->highPoint()[altDim])
+ {
+ couldTouch = true;
+ touchPos = lowPoint()[altDim];
+ }
+ else if (highPoint()[altDim] == rhs->lowPoint()[altDim])
+ {
+ couldTouch = true;
+ touchPos = highPoint()[altDim];
+ }
+
+ // We should align these so long as they are close
+ // together (<= 10) and there isn't a checkpoint at the
+ // touch point, i.e., we'd be altering the edges leading
+ // into the checkpoint. We want to keep these in place
+ // and opportunistically move other edges to align with
+ // them.
+ return couldTouch && (space <= 10) &&
+ !hasCheckpointAtPosition(touchPos, altDim) &&
+ !rhs->hasCheckpointAtPosition(touchPos, altDim);
+ }
+ }
+ return false;
+ }
+ // Used for merging segments with end segments that should appear as
+ // a single segment.
+ void mergeWith(const ShiftSegment *rhsSuper, const size_t dim)
+ {
+ // Adjust limits.
+ minSpaceLimit = std::max(minSpaceLimit, rhsSuper->minSpaceLimit);
+ maxSpaceLimit = std::min(maxSpaceLimit, rhsSuper->maxSpaceLimit);
+
+ // Find a new position for the segment, taking into account
+ // the two original positions and the combined limits.
+ double segmentPos = lowPoint()[dimension];
+ double segment2Pos = rhsSuper->lowPoint()[dimension];
+ if (segment2Pos < segmentPos)
+ {
+ segmentPos -= ((segmentPos - segment2Pos) / 2.0);
+ }
+ else if (segment2Pos > segmentPos)
+ {
+ segmentPos += ((segment2Pos - segmentPos) / 2.0);
+ }
+ segmentPos = std::max(minSpaceLimit, segmentPos);
+ segmentPos = std::min(maxSpaceLimit, segmentPos);
+
+ // Merge the index lists and sort the new list.
+ const NudgingShiftSegment *rhs =
+ static_cast<const NudgingShiftSegment *> (rhsSuper);
+ indexes.insert(indexes.end(), rhs->indexes.begin(), rhs->indexes.end());
+ size_t altDim = (dim + 1) % 2;
+ CmpIndexes compare(connRef, altDim);
+ sort(indexes.begin(), indexes.end(), compare);
+
+ // Apply the new positon to all points to keep them constant.
+ for (size_t it = 0; it < indexes.size(); ++it)
+ {
+ size_t index = indexes[it];
+ connRef->displayRoute().ps[index][dimension] = segmentPos;
+ }
+ }
+ bool hasCheckpointAtPosition(const double position,
+ const size_t dim) const
+ {
+ for (size_t cp = 0; cp < checkpoints.size(); ++cp)
+ {
+ if (checkpoints[cp][dim] == position)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ ConnRef *connRef;
+ Variable *variable;
+ std::vector<size_t> indexes;
+ bool fixed;
+ bool finalSegment;
+ bool endsInShape;
+ bool singleConnectedSegment;
+ std::vector<Point> checkpoints;
+ private:
+ bool sBend;
+ bool zBend;
+ bool lowC(void) const
+ {
+ // This is true if this is a cBend and its adjoining points
+ // are at lower positions.
+ if (!finalSegment && !zigzag() && !fixed &&
+ (minSpaceLimit == lowPoint()[dimension]))
+ {
+ return true;
+ }
+ return false;
+ }
+ bool highC(void) const
+ {
+ // This is true if this is a cBend and its adjoining points
+ // are at higher positions.
+ if (!finalSegment && !zigzag() && !fixed &&
+ (maxSpaceLimit == lowPoint()[dimension]))
+ {
+ return true;
+ }
+ return false;
+ }
+};
+
+
+
+enum ScanVisDirFlag {
+ VisDirNone = 0,
+ VisDirUp = 1,
+ VisDirDown = 2
+};
+typedef unsigned int ScanVisDirFlags;
+
+
+// Returns a bitfield of the directions of visibility in terms of the scanline
+// in a particular dimension dimension. It will return either ConnDirDown
+// (meaning visibility to lower position values) or ConnDirUp (for visibility
+// towards higher position values).
+//
+static ScanVisDirFlags getPosVertInfDirections(VertInf *v, size_t dim)
+{
+ if (dim == XDIM) // X-dimension
+ {
+ unsigned int dirs = v->visDirections & (ConnDirLeft | ConnDirRight);
+ if (dirs == (ConnDirLeft | ConnDirRight))
+ {
+ return (VisDirDown | VisDirUp);
+ }
+ else if (dirs == ConnDirLeft)
+ {
+ return VisDirDown;
+ }
+ else if (dirs == ConnDirRight)
+ {
+ return VisDirUp;
+ }
+ }
+ else if (dim == YDIM) // Y-dimension
+ {
+ unsigned int dirs = v->visDirections & (ConnDirDown | ConnDirUp);
+ if (dirs == (ConnDirDown | ConnDirUp))
+ {
+ return (VisDirDown | VisDirUp);
+ }
+ else if (dirs == ConnDirDown)
+ {
+ // libavoid's Y-axis points downwards, so where the user has
+ // specified visibility downwards, this results in visibility to
+ // higher scanline positition values.
+ return VisDirUp;
+ }
+ else if (dirs == ConnDirUp)
+ {
+ // libavoid's Y-axis points downwards, so where the user has
+ // specified visibility upwards, this results in visibility to
+ // lower scanline positition values.
+ return VisDirDown;
+ }
+ }
+
+ // Can occur for ConnDirNone visibility.
+ return VisDirNone;
+}
+
+
+struct PosVertInf
+{
+ PosVertInf(double p, VertInf *vI, ScanVisDirFlags d = VisDirNone)
+ : pos(p),
+ vert(vI),
+ dirs(d)
+ {
+ }
+
+ bool operator<(const PosVertInf& rhs) const
+ {
+ if (pos != rhs.pos)
+ {
+ return pos < rhs.pos;
+ }
+ if ((vert->id == rhs.vert->id) && (vert->id == dummyOrthogID))
+ {
+ // Multiple dummy nodes can get placed at the same point for
+ // multiple ShapeConnectionPins on junctions (outside of shapes).
+ // We only need one at each position, so multiples can be seen
+ // as equal here.
+ return false;
+ }
+ if (vert->id != rhs.vert->id)
+ {
+ return vert->id < rhs.vert->id;
+ }
+ return dirs < rhs.dirs;
+ }
+
+ double pos;
+ VertInf *vert;
+
+ // A bitfield marking the direction of visibility (in this dimension)
+ // made up of VisDirDown (for visibility towards lower position values)
+ // and VisDirUp (for visibility towards higher position values).
+ //
+ ScanVisDirFlags dirs;
+};
+
+
+struct CmpVertInf
+{
+ bool operator()(const VertInf* u, const VertInf* v) const
+ {
+ // Comparator for VertSet, an ordered set of VertInf pointers.
+ // It is assumed vertical sets of points will all have the same
+ // x position and horizontal sets all share a y position, so this
+ // method can be used to sort both these sets.
+ COLA_ASSERT((u->point.x == v->point.x) || (u->point.y == v->point.y));
+ if (u->point.x != v->point.x)
+ {
+ return u->point.x < v->point.x;
+ }
+ else if (u->point.y != v->point.y)
+ {
+ return u->point.y < v->point.y;
+ }
+ return u < v;
+ }
+};
+
+
+typedef std::set<VertInf *, CmpVertInf> VertSet;
+
+// A set of points to break the line segment,
+// along with vertices for these points.
+typedef std::set<PosVertInf> BreakpointSet;
+
+// Temporary structure used to store the possible horizontal visibility
+// lines arising from the vertical sweep.
+class LineSegment
+{
+public:
+ LineSegment(const double& b, const double& f, const double& p,
+ bool ss = false, VertInf *bvi = nullptr, VertInf *fvi = nullptr)
+ : begin(b),
+ finish(f),
+ pos(p),
+ shapeSide(ss)
+ {
+ COLA_ASSERT(begin < finish);
+
+ if (bvi)
+ {
+ vertInfs.insert(bvi);
+ }
+ if (fvi)
+ {
+ vertInfs.insert(fvi);
+ }
+ }
+ LineSegment(const double& bf, const double& p, VertInf *bfvi = nullptr)
+ : begin(bf),
+ finish(bf),
+ pos(p),
+ shapeSide(false)
+ {
+ if (bfvi)
+ {
+ vertInfs.insert(bfvi);
+ }
+ }
+
+ // Order by begin, pos, finish.
+ bool operator<(const LineSegment& rhs) const
+ {
+ if (begin != rhs.begin)
+ {
+ return begin < rhs.begin;
+ }
+ if (pos != rhs.pos)
+ {
+ return pos < rhs.pos;
+ }
+ if (finish != rhs.finish)
+ {
+ return finish < rhs.finish;
+ }
+ COLA_ASSERT(shapeSide == rhs.shapeSide);
+ return false;
+ }
+
+ bool overlaps(const LineSegment& rhs) const
+ {
+ if ((begin == rhs.begin) && (pos == rhs.pos) &&
+ (finish == rhs.finish))
+ {
+ // Lines are exactly equal.
+ return true;
+ }
+
+ if (pos == rhs.pos)
+ {
+ if (((begin >= rhs.begin) && (begin <= rhs.finish)) ||
+ ((rhs.begin >= begin) && (rhs.begin <= finish)) )
+ {
+ // They are colinear and overlap by some amount.
+ return true;
+ }
+ }
+ return false;
+ }
+
+ void mergeVertInfs(const LineSegment& segment)
+ {
+ begin = std::min(begin, segment.begin);
+ finish = std::max(finish, segment.finish);
+ vertInfs.insert(segment.vertInfs.begin(), segment.vertInfs.end());
+ }
+
+ VertInf *beginVertInf(void) const
+ {
+ if (vertInfs.empty())
+ {
+ return nullptr;
+ }
+ VertInf *inf = *vertInfs.begin();
+ if ( ((inf->point.y == begin) && (inf->point.x == pos)) ||
+ ((inf->point.x == begin) && (inf->point.y == pos)) )
+ {
+ // Only return the point if it is actually at the begin pos.
+ return inf;
+ }
+ return nullptr;
+ }
+ VertInf *finishVertInf(void) const
+ {
+ if (vertInfs.empty())
+ {
+ return nullptr;
+ }
+ VertInf *inf = *vertInfs.rbegin();
+ if ( ((inf->point.y == finish) && (inf->point.x == pos)) ||
+ ((inf->point.x == finish) && (inf->point.y == pos)) )
+ {
+ // Only return the point if it is actually at the finish pos.
+ return inf;
+ }
+ return nullptr;
+ }
+
+ VertInf *commitPositionX(Router *router, double posX)
+ {
+ VertInf *found = nullptr;
+ for (VertSet::iterator v = vertInfs.begin();
+ v != vertInfs.end(); ++v)
+ {
+ if ((*v)->point.x == posX)
+ {
+ found = *v;
+ break;
+ }
+ }
+ if (!found)
+ {
+ found = new VertInf(router, dummyOrthogID, Point(posX, pos));
+ vertInfs.insert(found);
+ }
+ return found;
+ }
+ // Set begin endpoint vertex if none has been assigned.
+ void horiCommitBegin(Router *router, VertInf *vert = nullptr)
+ {
+ if (vert)
+ {
+ vertInfs.insert(vert);
+ }
+
+ if (vertInfs.empty() ||
+ ((*vertInfs.begin())->point.x != begin))
+ {
+ if (begin != -DBL_MAX)
+ {
+ vertInfs.insert(new
+ VertInf(router, dummyOrthogID, Point(begin, pos)));
+ }
+ }
+ }
+
+ // Set begin endpoint vertex if none has been assigned.
+ void horiCommitFinish(Router *router, VertInf *vert = nullptr)
+ {
+ if (vert)
+ {
+ vertInfs.insert(vert);
+ }
+
+ if (vertInfs.empty() ||
+ ((*vertInfs.rbegin())->point.x != finish))
+ {
+ if (finish != DBL_MAX)
+ {
+ vertInfs.insert(new
+ VertInf(router, dummyOrthogID, Point(finish, pos)));
+ }
+ }
+ }
+
+ // Converts a section of the points list to a set of breakPoints.
+ // Returns the first of the intersection points occurring at finishPos.
+ VertSet::iterator addSegmentsUpTo(double finishPos)
+ {
+ VertSet::iterator firstIntersectionPt = vertInfs.end();
+ for (VertSet::iterator vert = vertInfs.begin();
+ vert != vertInfs.end(); ++vert)
+ {
+ if ((*vert)->point.x > finishPos)
+ {
+ // We're done.
+ break;
+ }
+
+ breakPoints.insert(PosVertInf((*vert)->point.x, (*vert),
+ getPosVertInfDirections(*vert, XDIM)));
+
+ if ((firstIntersectionPt == vertInfs.end()) &&
+ ((*vert)->point.x == finishPos))
+ {
+ firstIntersectionPt = vert;
+ }
+ }
+ // Returns the first of the intersection points at finishPos.
+ return firstIntersectionPt;
+ }
+
+ // Add visibility edge(s) for this segment. There may be multiple if
+ // one of the endpoints is shared by multiple connector endpoints.
+ void addEdgeHorizontal(Router *router)
+ {
+ horiCommitBegin(router);
+ horiCommitFinish(router);
+
+ addSegmentsUpTo(finish);
+ }
+
+ // Set flags to show what can be passed on this visibility line.
+ // This can be used later to disregard some edges in the visibility
+ // graph when routing particular connectors.
+ void setLongRangeVisibilityFlags(size_t dim)
+ {
+ // First, travel in one direction
+ bool seenConnPt = false;
+ bool seenShapeEdge = false;
+ for (BreakpointSet::iterator nvert = breakPoints.begin();
+ nvert != breakPoints.end(); ++nvert)
+ {
+ VertIDProps mask = 0;
+ if (dim == XDIM)
+ {
+ if (seenConnPt)
+ {
+ mask |= XL_CONN;
+ }
+ if (seenShapeEdge)
+ {
+ mask |= XL_EDGE;
+ }
+ }
+ else // if (dim == YDIM)
+ {
+ if (seenConnPt)
+ {
+ mask |= YL_CONN;
+ }
+ if (seenShapeEdge)
+ {
+ mask |= YL_EDGE;
+ }
+ }
+ nvert->vert->orthogVisPropFlags |= mask;
+
+ if (nvert->vert->id.isConnPt())
+ {
+ seenConnPt = true;
+ }
+ if (nvert->vert->id.isOrthShapeEdge())
+ {
+ seenShapeEdge = true;
+ }
+ }
+ // Then in the other direction
+ seenConnPt = false;
+ seenShapeEdge = false;
+ for (BreakpointSet::reverse_iterator rvert = breakPoints.rbegin();
+ rvert != breakPoints.rend(); ++rvert)
+ {
+ VertIDProps mask = 0;
+ if (dim == XDIM)
+ {
+ if (seenConnPt)
+ {
+ mask |= XH_CONN;
+ }
+ if (seenShapeEdge)
+ {
+ mask |= XH_EDGE;
+ }
+ }
+ else // if (dim == YDIM)
+ {
+ if (seenConnPt)
+ {
+ mask |= YH_CONN;
+ }
+ if (seenShapeEdge)
+ {
+ mask |= YH_EDGE;
+ }
+ }
+ rvert->vert->orthogVisPropFlags |= mask;
+
+ if (rvert->vert->id.isConnPt())
+ {
+ seenConnPt = true;
+ }
+ if (rvert->vert->id.isOrthShapeEdge())
+ {
+ seenShapeEdge = true;
+ }
+ }
+ }
+
+ // Add visibility edge(s) for this segment up until an intersection.
+ // Then, move the segment beginning to the intersection point, so we
+ // later only consider the remainder of the segment.
+ // There may be multiple segments added to the graph if the beginning
+ // endpoint of the segment is shared by multiple connector endpoints.
+ VertSet addEdgeHorizontalTillIntersection(Router *router,
+ LineSegment& vertLine)
+ {
+ VertSet intersectionSet;
+
+ horiCommitBegin(router);
+
+ // Does a vertex already exist for this point.
+ commitPositionX(router, vertLine.pos);
+
+ // Generate segments and set end iterator to the first point
+ // at the intersection position.
+ VertSet::iterator restBegin = addSegmentsUpTo(vertLine.pos);
+
+ // Add the intersections points to intersectionSet.
+ VertSet::iterator restEnd = restBegin;
+ while ((restEnd != vertInfs.end()) &&
+ (*restEnd)->point.x == vertLine.pos)
+ {
+ ++restEnd;
+ }
+ intersectionSet.insert(restBegin, restEnd);
+
+ // Adjust segment to remove processed portion.
+ begin = vertLine.pos;
+ vertInfs.erase(vertInfs.begin(), restBegin);
+
+ return intersectionSet;
+ }
+
+ // Insert vertical breakpoints.
+ void insertBreakpointsBegin(Router *router, LineSegment& vertLine)
+ {
+ VertInf *vert = nullptr;
+ if (pos == vertLine.begin && vertLine.beginVertInf())
+ {
+ vert = vertLine.beginVertInf();
+ }
+ else if (pos == vertLine.finish && vertLine.finishVertInf())
+ {
+ vert = vertLine.finishVertInf();
+ }
+ horiCommitBegin(router, vert);
+
+ for (VertSet::iterator v = vertInfs.begin();
+ v != vertInfs.end(); ++v)
+ {
+ if ((*v)->point.x == begin)
+ {
+ vertLine.breakPoints.insert(PosVertInf(pos, *v,
+ getPosVertInfDirections(*v, YDIM)));
+ }
+ }
+ }
+
+ // Insert vertical breakpoints.
+ void insertBreakpointsFinish(Router *router, LineSegment& vertLine)
+ {
+ VertInf *vert = nullptr;
+ if (pos == vertLine.begin && vertLine.beginVertInf())
+ {
+ vert = vertLine.beginVertInf();
+ }
+ else if (pos == vertLine.finish && vertLine.finishVertInf())
+ {
+ vert = vertLine.finishVertInf();
+ }
+ horiCommitFinish(router, vert);
+
+ for (VertSet::iterator v = vertInfs.begin();
+ v != vertInfs.end(); ++v)
+ {
+ if ((*v)->point.x == finish)
+ {
+ vertLine.breakPoints.insert(PosVertInf(pos, *v,
+ getPosVertInfDirections(*v, YDIM)));
+ }
+ }
+ }
+ void generateVisibilityEdgesFromBreakpointSet(Router *router, size_t dim)
+ {
+ if (breakPoints.empty() || ((breakPoints.begin())->pos > begin))
+ {
+ // Add a begin point if there was not already an intersection
+ // found at that point. Though, don't do this if the line
+ // segment goes off to infinity -- we can't reach anything
+ // by going in that direction!
+ if (begin == -DBL_MAX)
+ {
+ // Shorten line to first intersection point.
+ COLA_ASSERT(!breakPoints.empty());
+ begin = breakPoints.begin()->pos;
+ }
+ else
+ {
+ // Add begin point.
+ Point point(pos, pos);
+ point[dim] = begin;
+ VertInf *vert = new VertInf(router, dummyOrthogID, point);
+ breakPoints.insert(PosVertInf(begin, vert));
+ }
+ }
+ if (breakPoints.empty() || ((breakPoints.rbegin())->pos < finish))
+ {
+ // Add a finish point if there was not already an intersection
+ // found at that point. Though, don't do this if the line
+ // segment goes off to infinity -- we can't reach anything
+ // by going in that direction!
+ if (finish == DBL_MAX)
+ {
+ // Shorten line to last intersection point.
+ finish = breakPoints.rbegin()->pos;
+ }
+ else
+ {
+ // Add finish point.
+ Point point(pos, pos);
+ point[dim] = finish;
+ VertInf *vert = new VertInf(router, dummyOrthogID, point);
+ breakPoints.insert(PosVertInf(finish, vert));
+ }
+ }
+
+ // Set flags for orthogonal routing optimisation.
+ setLongRangeVisibilityFlags(dim);
+
+ const bool orthogonal = true;
+ BreakpointSet::iterator vert, last;
+#if 0
+ last = breakPoints.end();
+ for (vert = breakPoints.begin(); vert != breakPoints.end();)
+ {
+ if (vert->vert->id == dummyOrthogID)
+ {
+ if (last == breakPoints.end() ||
+ (last->vert->point != vert->vert->point))
+ {
+ last = vert;
+ }
+ else
+ {
+ // Already seen a dummy orthogonal point at this
+ // position, delete it.
+
+ }
+ else
+ {
+ ++vert;
+ }
+ }
+#endif
+ for (vert = last = breakPoints.begin(); vert != breakPoints.end();)
+ {
+ BreakpointSet::iterator firstPrev = last;
+ while (last->vert->point[dim] != vert->vert->point[dim])
+ {
+ COLA_ASSERT(vert != last);
+ // Assert points are not at the same position.
+ COLA_ASSERT(vert->vert->point != last->vert->point);
+
+ if (vert->vert->id.isConnPt() && last->vert->id.isConnPt())
+ {
+ // Here we have a pair of two endpoints that are both
+ // connector endpoints and both are inside a shape.
+
+ // Give vert visibility back to the first non-connector
+ // endpoint vertex (i.e., the side of the shape).
+ BreakpointSet::iterator side = last;
+ while (side->vert->id.isConnPt())
+ {
+ if (side == breakPoints.begin())
+ {
+ break;
+ }
+ --side;
+ }
+ bool canSeeDown = (vert->dirs & VisDirDown);
+ if (canSeeDown && !(side->vert->id.isConnPt()))
+ {
+ EdgeInf *edge = new
+ EdgeInf(side->vert, vert->vert, orthogonal);
+ edge->setDist(vert->vert->point[dim] -
+ side->vert->point[dim]);
+ }
+
+ // Give last visibility back to the first non-connector
+ // endpoint vertex (i.e., the side of the shape).
+ side = vert;
+ while ((side != breakPoints.end()) &&
+ side->vert->id.isConnPt())
+ {
+ ++side;
+ }
+ bool canSeeUp = (last->dirs & VisDirUp);
+ if (canSeeUp && (side != breakPoints.end()))
+ {
+ EdgeInf *edge = new
+ EdgeInf(last->vert, side->vert, orthogonal);
+ edge->setDist(side->vert->point[dim] -
+ last->vert->point[dim]);
+ }
+ }
+
+ // The normal case.
+ //
+ // Note: It's okay to give two connector endpoints visibility
+ // here since we only consider the partner endpoint as a
+ // candidate while searching if it is the other endpoint of
+ // the connector in question.
+ //
+ bool generateEdge = true;
+ if (last->vert->id.isConnPt() && !(last->dirs & VisDirUp))
+ {
+ // Don't generate the visibility segment if the ConnEnd
+ // doesn't have visibility in that direction.
+ generateEdge = false;
+ }
+ else if (vert->vert->id.isConnPt() && !(vert->dirs & VisDirDown))
+ {
+ // Don't generate the visibility segment if the ConnEnd
+ // doesn't have visibility in that direction.
+ generateEdge = false;
+ }
+ if (generateEdge)
+ {
+ EdgeInf *edge =
+ new EdgeInf(last->vert, vert->vert, orthogonal);
+ edge->setDist(vert->vert->point[dim] -
+ last->vert->point[dim]);
+ }
+
+ ++last;
+ }
+
+ ++vert;
+
+ if ((vert != breakPoints.end()) &&
+ (last->vert->point[dim] == vert->vert->point[dim]))
+ {
+ // Still looking at same pair, just reset prev number pointer.
+ last = firstPrev;
+ }
+ else
+ {
+ // vert has moved to the beginning of a group at a new
+ // position. Last is now in the right place, so do nothing.
+ }
+ }
+ }
+
+ double begin;
+ double finish;
+ double pos;
+
+ // XXX shapeSide is unused and could possibly be removed?
+ bool shapeSide;
+
+ VertSet vertInfs;
+ BreakpointSet breakPoints;
+private:
+ // MSVC wants to generate the assignment operator and the default
+ // constructor, but fails. Therefore we declare them private and
+ // don't implement them.
+ LineSegment & operator=(LineSegment const &);
+ LineSegment();
+};
+
+typedef std::list<LineSegment> SegmentList;
+
+class SegmentListWrapper
+{
+ public:
+ LineSegment *insert(LineSegment segment)
+ {
+ SegmentList::iterator found = _list.end();
+ for (SegmentList::iterator curr = _list.begin();
+ curr != _list.end(); ++curr)
+ {
+ if (curr->overlaps(segment))
+ {
+ if (found != _list.end())
+ {
+ // This is not the first segment that overlaps,
+ // so we need to merge and then delete an existing
+ // segment.
+ curr->mergeVertInfs(*found);
+ _list.erase(found);
+ found = curr;
+ }
+ else
+ {
+ // This is the first overlapping segment, so just
+ // merge the new segment with this one.
+ curr->mergeVertInfs(segment);
+ found = curr;
+ }
+ }
+ }
+
+ if (found == _list.end())
+ {
+ // Add this line.
+ _list.push_back(segment);
+ return &(_list.back());
+ }
+
+ return &(*found);
+ }
+ SegmentList& list(void)
+ {
+ return _list;
+ }
+ private:
+ SegmentList _list;
+};
+
+
+// Given a router instance and a set of possible horizontal segments, and a
+// possible vertical visibility segment, compute and add edges to the
+// orthogonal visibility graph for all the visibility edges.
+static void intersectSegments(Router *router, SegmentList& segments,
+ LineSegment& vertLine)
+{
+ // XXX: It seems that this case can sometimes occur... maybe when
+ // there are many overlapping rectangles.
+ //COLA_ASSERT(vertLine.beginVertInf() == nullptr);
+ //COLA_ASSERT(vertLine.finishVertInf() == nullptr);
+
+ COLA_ASSERT(!segments.empty());
+ for (SegmentList::iterator it = segments.begin(); it != segments.end(); )
+ {
+ LineSegment& horiLine = *it;
+
+ bool inVertSegRegion = ((vertLine.begin <= horiLine.pos) &&
+ (vertLine.finish >= horiLine.pos));
+
+ if (vertLine.pos < horiLine.begin)
+ {
+ // We've yet to reach this segment in the sweep, so ignore.
+ ++it;
+ continue;
+ }
+ else if (vertLine.pos == horiLine.begin)
+ {
+ if (inVertSegRegion)
+ {
+ horiLine.insertBreakpointsBegin(router, vertLine);
+ }
+ }
+ else if (vertLine.pos == horiLine.finish)
+ {
+ if (inVertSegRegion)
+ {
+ // Add horizontal visibility segment.
+ horiLine.addEdgeHorizontal(router);
+
+ horiLine.insertBreakpointsFinish(router, vertLine);
+
+ size_t dim = XDIM; // x-dimension
+ horiLine.generateVisibilityEdgesFromBreakpointSet(router, dim);
+
+ // And we've now finished with the segment, so delete.
+ it = segments.erase(it);
+ continue;
+ }
+ }
+ else if (vertLine.pos > horiLine.finish)
+ {
+ // Add horizontal visibility segment.
+ horiLine.addEdgeHorizontal(router);
+
+ size_t dim = XDIM; // x-dimension
+ horiLine.generateVisibilityEdgesFromBreakpointSet(router, dim);
+
+ // We've now swept past this horizontal segment, so delete.
+ it = segments.erase(it);
+ continue;
+ }
+ else
+ {
+ COLA_ASSERT(vertLine.pos > horiLine.begin);
+ COLA_ASSERT(vertLine.pos < horiLine.finish);
+
+ if (inVertSegRegion)
+ {
+ // Add horizontal visibility segment.
+ VertSet intersectionVerts =
+ horiLine.addEdgeHorizontalTillIntersection(
+ router, vertLine);
+
+ for (VertSet::iterator v = intersectionVerts.begin();
+ v != intersectionVerts.end(); ++v)
+ {
+ vertLine.breakPoints.insert(PosVertInf(horiLine.pos, *v,
+ getPosVertInfDirections(*v, YDIM)));
+ }
+ }
+ }
+ ++it;
+ }
+
+ // Split breakPoints set into visibility segments.
+ size_t dimension = YDIM; // y-dimension
+ vertLine.generateVisibilityEdgesFromBreakpointSet(router, dimension);
+}
+
+
+// Processes an event for the vertical sweep used for computing the static
+// orthogonal visibility graph. This adds possible horizontal visibility
+// segments to the segments list.
+// The first pass is adding the event to the scanline, the second is for
+// processing the event and the third for removing it from the scanline.
+static void processEventVert(Router *router, NodeSet& scanline,
+ SegmentListWrapper& segments, Event *e, unsigned int pass)
+{
+ Node *v = e->v;
+
+ if ( ((pass == 1) && (e->type == Open)) ||
+ ((pass == 2) && (e->type == ConnPoint)) )
+ {
+ std::pair<NodeSet::iterator, bool> result = scanline.insert(v);
+ v->iter = result.first;
+ COLA_ASSERT(result.second);
+
+ NodeSet::iterator it = v->iter;
+ // Work out neighbours
+ if (it != scanline.begin())
+ {
+ Node *u = *(--it);
+ v->firstAbove = u;
+ u->firstBelow = v;
+ }
+ it = v->iter;
+ if (++it != scanline.end())
+ {
+ Node *u = *it;
+ v->firstBelow = u;
+ u->firstAbove = v;
+ }
+ }
+
+ if (pass == 2)
+ {
+ if ((e->type == Open) || (e->type == Close))
+ {
+ // Only difference between Open and Close is whether the line
+ // segments are at the top or bottom of the shape. Decide here.
+ double lineY = (e->type == Open) ? v->min[YDIM] : v->max[YDIM];
+
+ // Shape edge positions.
+ double minShape = v->min[XDIM];
+ double maxShape = v->max[XDIM];
+ // As far as we can see.
+ double minLimit, maxLimit;
+ double minLimitMax, maxLimitMin;
+ v->findFirstPointAboveAndBelow(XDIM, lineY, minLimit, maxLimit,
+ minLimitMax, maxLimitMin);
+
+ // Insert possible visibility segments.
+ if (minLimitMax >= maxLimitMin)
+ {
+ // These vertices represent the shape corners.
+ VertInf *vI1 = new VertInf(router, dummyOrthogShapeID,
+ Point(minShape, lineY));
+ VertInf *vI2 = new VertInf(router, dummyOrthogShapeID,
+ Point(maxShape, lineY));
+
+ // There are no overlapping shapes, so give full visibility.
+ if (minLimit < minShape)
+ {
+ segments.insert(LineSegment(minLimit, minShape, lineY,
+ true, nullptr, vI1));
+ }
+ segments.insert(LineSegment(minShape, maxShape, lineY,
+ true, vI1, vI2));
+ if (maxShape < maxLimit)
+ {
+ segments.insert(LineSegment(maxShape, maxLimit, lineY,
+ true, vI2, nullptr));
+ }
+ }
+ else
+ {
+ // There are overlapping shapes along this shape edge.
+
+ if ((minLimitMax > minLimit) && (minLimitMax >= minShape))
+ {
+ LineSegment *line = segments.insert(
+ LineSegment(minLimit, minLimitMax, lineY, true));
+ // Shape corner:
+ VertInf *vI1 = new VertInf(router, dummyOrthogShapeID,
+ Point(minShape, lineY));
+ line->vertInfs.insert(vI1);
+ }
+ if ((maxLimitMin < maxLimit) && (maxLimitMin <= maxShape))
+ {
+ LineSegment *line = segments.insert(
+ LineSegment(maxLimitMin, maxLimit, lineY, true));
+ // Shape corner:
+ VertInf *vI2 = new VertInf(router, dummyOrthogShapeID,
+ Point(maxShape, lineY));
+ line->vertInfs.insert(vI2);
+ }
+ }
+ }
+ else if (e->type == ConnPoint)
+ {
+ // Connection point.
+ VertInf *centreVert = e->v->c;
+ Point& cp = centreVert->point;
+
+ // As far as we can see.
+ double minLimit = v->firstPointAbove(XDIM);
+ double maxLimit = v->firstPointBelow(XDIM);
+ bool inShape = v->isInsideShape(XDIM);
+
+ // Insert if we have visibility in that direction and the segment
+ // length is greater than zero.
+ LineSegment *line1 = nullptr, *line2 = nullptr;
+ if ((centreVert->visDirections & ConnDirLeft) && (minLimit < cp.x))
+ {
+ line1 = segments.insert(LineSegment(minLimit, cp.x, e->pos,
+ true, nullptr, centreVert));
+ }
+ if ((centreVert->visDirections & ConnDirRight) && (cp.x < maxLimit))
+ {
+ line2 = segments.insert(LineSegment(cp.x, maxLimit, e->pos,
+ true, centreVert, nullptr));
+ // If there was a line1, then we just merged with it, so
+ // that pointer will be invalid (and now unnecessary).
+ line1 = nullptr;
+ }
+ if (!line1 && !line2)
+ {
+ // Add a point segment for the centre point.
+ segments.insert(LineSegment(cp.x, e->pos, centreVert));
+ }
+
+ if (!inShape)
+ {
+ // This is not contained within a shape so add a normal
+ // visibility graph point here too (since paths won't route
+ // *through* connector endpoint vertices).
+ if (line1 || line2)
+ {
+ VertInf *cent = new VertInf(router, dummyOrthogID, cp);
+ if (line1)
+ {
+ line1->vertInfs.insert(cent);
+ }
+ if (line2)
+ {
+ line2->vertInfs.insert(cent);
+ }
+ }
+ }
+ }
+ }
+
+ if ( ((pass == 3) && (e->type == Close)) ||
+ ((pass == 2) && (e->type == ConnPoint)) )
+ {
+ // Clean up neighbour pointers.
+ Node *l = v->firstAbove, *r = v->firstBelow;
+ if (l != nullptr)
+ {
+ l->firstBelow = v->firstBelow;
+ }
+ if (r != nullptr)
+ {
+ r->firstAbove = v->firstAbove;
+ }
+
+ if (e->type == ConnPoint)
+ {
+ scanline.erase(v->iter);
+ delete v;
+ }
+ else // if (e->type == Close)
+ {
+ size_t result;
+ result = scanline.erase(v);
+ COLA_ASSERT(result == 1);
+ COLA_UNUSED(result); // Avoid warning.
+ delete v;
+ }
+ }
+}
+
+
+// Processes an event for the vertical sweep used for computing the static
+// orthogonal visibility graph. This adds possible vertical visibility
+// segments to the segments list.
+// The first pass is adding the event to the scanline, the second is for
+// processing the event and the third for removing it from the scanline.
+static void processEventHori(Router *router, NodeSet& scanline,
+ SegmentListWrapper& segments, Event *e, unsigned int pass)
+{
+ Node *v = e->v;
+
+ if ( ((pass == 1) && (e->type == Open)) ||
+ ((pass == 2) && (e->type == ConnPoint)) )
+ {
+ std::pair<NodeSet::iterator, bool> result = scanline.insert(v);
+ v->iter = result.first;
+ COLA_ASSERT(result.second);
+
+ NodeSet::iterator it = v->iter;
+ // Work out neighbours
+ if (it != scanline.begin())
+ {
+ Node *u = *(--it);
+ v->firstAbove = u;
+ u->firstBelow = v;
+ }
+ it = v->iter;
+ if (++it != scanline.end())
+ {
+ Node *u = *it;
+ v->firstBelow = u;
+ u->firstAbove = v;
+ }
+ }
+
+ if (pass == 2)
+ {
+ if ((e->type == Open) || (e->type == Close))
+ {
+ // Only difference between Open and Close is whether the line
+ // segments are at the left or right of the shape. Decide here.
+ double lineX = (e->type == Open) ? v->min[XDIM] : v->max[XDIM];
+
+ // Shape edge positions.
+ double minShape = v->min[YDIM];
+ double maxShape = v->max[YDIM];
+ // As far as we can see.
+ double minLimit, maxLimit;
+ double minLimitMax, maxLimitMin;
+ v->findFirstPointAboveAndBelow(YDIM, lineX, minLimit, maxLimit,
+ minLimitMax, maxLimitMin);
+
+ if (minLimitMax >= maxLimitMin)
+ {
+ LineSegment *line = segments.insert(
+ LineSegment(minLimit, maxLimit, lineX));
+
+ // Shape corners:
+ VertInf *vI1 = new VertInf(router, dummyOrthogShapeID,
+ Point(lineX, minShape));
+ VertInf *vI2 = new VertInf(router, dummyOrthogShapeID,
+ Point(lineX, maxShape));
+ line->vertInfs.insert(vI1);
+ line->vertInfs.insert(vI2);
+ }
+ else
+ {
+ if ((minLimitMax > minLimit) && (minLimitMax >= minShape))
+ {
+ LineSegment *line = segments.insert(
+ LineSegment(minLimit, minLimitMax, lineX));
+
+ // Shape corner:
+ VertInf *vI1 = new VertInf(router, dummyOrthogShapeID,
+ Point(lineX, minShape));
+ line->vertInfs.insert(vI1);
+ }
+ if ((maxLimitMin < maxLimit) && (maxLimitMin <= maxShape))
+ {
+ LineSegment *line = segments.insert(
+ LineSegment(maxLimitMin, maxLimit, lineX));
+
+ // Shape corner:
+ VertInf *vI2 = new VertInf(router, dummyOrthogShapeID,
+ Point(lineX, maxShape));
+ line->vertInfs.insert(vI2);
+ }
+ }
+ }
+ else if (e->type == ConnPoint)
+ {
+ // Connection point.
+ VertInf *centreVert = e->v->c;
+ Point& cp = centreVert->point;
+
+ // As far as we can see.
+ double minLimit = v->firstPointAbove(YDIM);
+ double maxLimit = v->firstPointBelow(YDIM);
+
+ // Insert if we have visibility in that direction and the segment
+ // length is greater than zero.
+ if ((centreVert->visDirections & ConnDirUp) && (minLimit < cp.y))
+ {
+ segments.insert(LineSegment(minLimit, cp.y, e->pos));
+ }
+
+ if ((centreVert->visDirections & ConnDirDown) && (cp.y < maxLimit))
+ {
+ segments.insert(LineSegment(cp.y, maxLimit, e->pos));
+ }
+ }
+ }
+
+ if ( ((pass == 3) && (e->type == Close)) ||
+ ((pass == 2) && (e->type == ConnPoint)) )
+ {
+ // Clean up neighbour pointers.
+ Node *l = v->firstAbove, *r = v->firstBelow;
+ if (l != nullptr)
+ {
+ l->firstBelow = v->firstBelow;
+ }
+ if (r != nullptr)
+ {
+ r->firstAbove = v->firstAbove;
+ }
+
+ if (e->type == ConnPoint)
+ {
+ scanline.erase(v->iter);
+ delete v;
+ }
+ else // if (e->type == Close)
+ {
+ size_t result;
+ result = scanline.erase(v);
+ COLA_ASSERT(result == 1);
+ COLA_UNUSED(result); // Avoid warning.
+ delete v;
+ }
+ }
+}
+
+// Correct visibility for pins or connector endpoints on the leading or
+// trailing edge of the visibility graph which may only have visibility in
+// the outward direction where there will not be a possible path.
+void fixConnectionPointVisibilityOnOutsideOfVisibilityGraph(Event **events,
+ size_t totalEvents, ConnDirFlags addedVisibility)
+{
+ if (totalEvents > 0)
+ {
+ double firstPos = events[0]->pos;
+ size_t index = 0;
+ while (index < totalEvents)
+ {
+ if (events[index]->pos > firstPos)
+ {
+ break;
+ }
+
+ if (events[index]->v->c)
+ {
+ events[index]->v->c->visDirections |= addedVisibility;
+ }
+ ++index;
+ }
+ index = 0;
+ double lastPos = events[totalEvents - 1]->pos;
+ while (index < totalEvents)
+ {
+ size_t revIndex = totalEvents - 1 - index;
+ if (events[revIndex]->pos < lastPos)
+ {
+ break;
+ }
+
+ if (events[revIndex]->v->c)
+ {
+ events[revIndex]->v->c->visDirections |= addedVisibility;
+ }
+ ++index;
+ }
+ }
+}
+
+extern void generateStaticOrthogonalVisGraph(Router *router)
+{
+ const size_t n = router->m_obstacles.size();
+ const unsigned cpn = router->vertices.connsSize();
+ // Set up the events for the vertical sweep.
+ size_t totalEvents = (2 * n) + cpn;
+ Event **events = new Event*[totalEvents];
+ unsigned ctr = 0;
+ ObstacleList::iterator obstacleIt = router->m_obstacles.begin();
+ for (unsigned i = 0; i < n; i++)
+ {
+ Obstacle *obstacle = *obstacleIt;
+#ifndef PAPER
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (obstacle);
+ if (junction && ! junction->positionFixed())
+ {
+ // Junctions that are free to move are not treated as obstacles.
+ ++obstacleIt;
+ totalEvents -= 2;
+ continue;
+ }
+#endif
+
+ Box bbox = obstacle->routingBox();
+ double midX = bbox.min.x + ((bbox.max.x - bbox.min.x) / 2);
+ Node *v = new Node(obstacle, midX);
+ events[ctr++] = new Event(Open, v, bbox.min.y);
+ events[ctr++] = new Event(Close, v, bbox.max.y);
+
+ ++obstacleIt;
+ }
+
+#ifdef DEBUGHANDLER
+ if (router->debugHandler())
+ {
+ std::vector<Box> obstacleBoxes;
+ ObstacleList::iterator obstacleIt = router->m_obstacles.begin();
+ for (unsigned i = 0; i < n; i++)
+ {
+ Obstacle *obstacle = *obstacleIt;
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (obstacle);
+ if (junction && ! junction->positionFixed())
+ {
+ // Junctions that are free to move are not treated as obstacles.
+ ++obstacleIt;
+ continue;
+ }
+ Box bbox = obstacle->routingBox();
+ obstacleBoxes.push_back(bbox);
+ ++obstacleIt;
+ }
+ router->debugHandler()->updateObstacleBoxes(obstacleBoxes);
+ }
+#endif
+
+ for (VertInf *curr = router->vertices.connsBegin();
+ curr && (curr != router->vertices.shapesBegin());
+ curr = curr->lstNext)
+ {
+ if (curr->visDirections == ConnDirNone)
+ {
+ // This is a connector endpoint that is attached to a connection
+ // pin on a shape, so it doesn't need to be given visibility.
+ // Thus, skip it and record that there is one less total event.
+ --totalEvents;
+ continue;
+ }
+ Point& point = curr->point;
+
+ Node *v = new Node(curr, point.x);
+ events[ctr++] = new Event(ConnPoint, v, point.y);
+ }
+ qsort((Event*)events, (size_t) totalEvents, sizeof(Event*), compare_events);
+
+ // Correct visibility for pins or connector endpoints on the leading or
+ // trailing edge of the visibility graph which may only have visibility in
+ // the outward direction where there will not be a possible path. We
+ // fix this by giving them visibility left and right.
+ fixConnectionPointVisibilityOnOutsideOfVisibilityGraph(events, totalEvents,
+ (ConnDirLeft | ConnDirRight));
+
+ // Process the vertical sweep -- creating cadidate horizontal edges.
+ // We do multiple passes over sections of the list so we can add relevant
+ // entries to the scanline that might follow, before processing them.
+ SegmentListWrapper segments;
+ NodeSet scanline;
+ double thisPos = (totalEvents > 0) ? events[0]->pos : 0;
+ unsigned int posStartIndex = 0;
+ unsigned int posFinishIndex = 0;
+ for (unsigned i = 0; i <= totalEvents; ++i)
+ {
+ // Progress reporting and continuation check.
+ router->performContinuationCheck(
+ TransactionPhaseOrthogonalVisibilityGraphScanX,
+ i, totalEvents);
+
+ // If we have finished the current scanline or all events, then we
+ // process the events on the current scanline in a couple of passes.
+ if ((i == totalEvents) || (events[i]->pos != thisPos))
+ {
+ posFinishIndex = i;
+ for (int pass = 2; pass <= 3; ++pass)
+ {
+ for (unsigned j = posStartIndex; j < posFinishIndex; ++j)
+ {
+ processEventVert(router, scanline, segments,
+ events[j], pass);
+ }
+ }
+
+ if (i == totalEvents)
+ {
+ // We have cleaned up, so we can now break out of loop.
+ break;
+ }
+
+ thisPos = events[i]->pos;
+ posStartIndex = i;
+ }
+
+ // Do the first sweep event handling -- building the correct
+ // structure of the scanline.
+ const int pass = 1;
+ processEventVert(router, scanline, segments, events[i], pass);
+ }
+ COLA_ASSERT(scanline.size() == 0);
+ for (unsigned i = 0; i < totalEvents; ++i)
+ {
+ delete events[i];
+ }
+
+ segments.list().sort();
+
+ // Set up the events for the horizontal sweep.
+ SegmentListWrapper vertSegments;
+ ctr = 0;
+ obstacleIt = router->m_obstacles.begin();
+ for (unsigned i = 0; i < n; i++)
+ {
+ Obstacle *obstacle = *obstacleIt;
+#ifndef PAPER
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (obstacle);
+ if (junction && ! junction->positionFixed())
+ {
+ // Junctions that are free to move are not treated as obstacles.
+ ++obstacleIt;
+ continue;
+ }
+#endif
+ Box bbox = obstacle->routingBox();
+ double midY = bbox.min.y + ((bbox.max.y - bbox.min.y) / 2);
+ Node *v = new Node(obstacle, midY);
+ events[ctr++] = new Event(Open, v, bbox.min.x);
+ events[ctr++] = new Event(Close, v, bbox.max.x);
+
+ ++obstacleIt;
+ }
+ for (VertInf *curr = router->vertices.connsBegin();
+ curr && (curr != router->vertices.shapesBegin());
+ curr = curr->lstNext)
+ {
+ if (curr->visDirections == ConnDirNone)
+ {
+ // This is a connector endpoint that is attached to a connection
+ // pin on a shape, so it doesn't need to be given visibility.
+ // Thus, skip it.
+ continue;
+ }
+ Point& point = curr->point;
+
+ Node *v = new Node(curr, point.y);
+ events[ctr++] = new Event(ConnPoint, v, point.x);
+ }
+ qsort((Event*)events, (size_t) totalEvents, sizeof(Event*), compare_events);
+
+ // Correct visibility for pins or connector endpoints on the leading or
+ // trailing edge of the visibility graph which may only have visibility in
+ // the outward direction where there will not be a possible path. We
+ // fix this by giving them visibility up and down.
+ fixConnectionPointVisibilityOnOutsideOfVisibilityGraph(events, totalEvents,
+ (ConnDirUp | ConnDirDown));
+
+ // Process the horizontal sweep -- creating vertical visibility edges.
+ thisPos = (totalEvents > 0) ? events[0]->pos : 0;
+ posStartIndex = 0;
+ for (unsigned i = 0; i <= totalEvents; ++i)
+ {
+ // Progress reporting and continuation check.
+ router->performContinuationCheck(
+ TransactionPhaseOrthogonalVisibilityGraphScanY,
+ i, totalEvents);
+
+ // If we have finished the current scanline or all events, then we
+ // process the events on the current scanline in a couple of passes.
+ if ((i == totalEvents) || (events[i]->pos != thisPos))
+ {
+ posFinishIndex = i;
+ for (int pass = 2; pass <= 3; ++pass)
+ {
+ for (unsigned j = posStartIndex; j < posFinishIndex; ++j)
+ {
+ processEventHori(router, scanline, vertSegments,
+ events[j], pass);
+ }
+ }
+
+ // Process the merged line segments.
+ vertSegments.list().sort();
+ for (SegmentList::iterator curr = vertSegments.list().begin();
+ curr != vertSegments.list().end(); ++curr)
+ {
+ intersectSegments(router, segments.list(), *curr);
+ }
+ vertSegments.list().clear();
+
+ if (i == totalEvents)
+ {
+ // We have cleaned up, so we can now break out of loop.
+ break;
+ }
+
+ thisPos = events[i]->pos;
+ posStartIndex = i;
+ }
+
+ // Do the first sweep event handling -- building the correct
+ // structure of the scanline.
+ const int pass = 1;
+ processEventHori(router, scanline, vertSegments, events[i], pass);
+ }
+ COLA_ASSERT(scanline.size() == 0);
+ for (unsigned i = 0; i < totalEvents; ++i)
+ {
+ delete events[i];
+ }
+ delete [] events;
+
+ // Add portions of horizontal lines that are after the final vertical
+ // position we considered.
+ for (SegmentList::iterator it = segments.list().begin();
+ it != segments.list().end(); )
+ {
+ LineSegment& horiLine = *it;
+
+ horiLine.addEdgeHorizontal(router);
+
+ size_t dim = XDIM; // x-dimension
+ horiLine.generateVisibilityEdgesFromBreakpointSet(router, dim);
+
+ it = segments.list().erase(it);
+ }
+}
+
+
+//============================================================================
+// Path Adjustment code
+//============================================================================
+
+
+typedef std::pair<Point, Point> RectBounds;
+
+static bool insideRectBounds(const Point& point, const RectBounds& rectBounds)
+{
+ Point zero(0, 0);
+ if ((rectBounds.first == zero) && (rectBounds.second == zero))
+ {
+ // We can't be inside the invalid rectangle.
+ return false;
+ }
+
+ for (size_t i = 0; i < 2; ++i)
+ {
+ if (point[i] < rectBounds.first[i])
+ {
+ return false;
+ }
+ if (point[i] > rectBounds.second[i])
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+
+static void buildOrthogonalNudgingSegments(Router *router,
+ const size_t dim, ShiftSegmentList& segmentList)
+{
+ if (router->routingParameter(segmentPenalty) == 0)
+ {
+ // The nudging code assumes the routes are pretty optimal. This will
+ // only be true if a segment penalty is set, so just return if this
+ // is not the case.
+ return;
+ }
+ bool nudgeFinalSegments =
+ router->routingOption(nudgeOrthogonalSegmentsConnectedToShapes);
+ std::vector<RectBounds> shapeLimits;
+ if (nudgeFinalSegments)
+ {
+ // If we're going to nudge final segments, then cache the shape
+ // rectangles to save us rebuilding them multiple times.
+ const size_t n = router->m_obstacles.size();
+ shapeLimits = std::vector<RectBounds>(n);
+
+ double zeroBufferDist = 0.0;
+
+ ObstacleList::iterator obstacleIt = router->m_obstacles.begin();
+ for (unsigned i = 0; i < n; i++)
+ {
+ ShapeRef *shape = dynamic_cast<ShapeRef *> (*obstacleIt);
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (*obstacleIt);
+ if (shape)
+ {
+ // Take the real bounds of the shape
+ Box bBox = shape->polygon().offsetBoundingBox(zeroBufferDist);
+ shapeLimits[i] = std::make_pair(bBox.min, bBox.max);
+ }
+ else if (junction)
+ {
+ // Don't nudge segments attached to junctions,
+ // so just use the junction position here.
+ Point pos = junction->position();
+ shapeLimits[i] = std::make_pair(pos, pos);
+ }
+ ++obstacleIt;
+ }
+ }
+
+ size_t altDim = (dim + 1) % 2;
+ // For each connector.
+ for (ConnRefList::const_iterator curr = router->connRefs.begin();
+ curr != router->connRefs.end(); ++curr)
+ {
+ if ((*curr)->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+ Polygon& displayRoute = (*curr)->displayRoute();
+ // Determine all line segments that we are interested in shifting.
+ // We don't consider the first or last segment of a path.
+ for (size_t i = 1; i < displayRoute.size(); ++i)
+ {
+ if (displayRoute.ps[i - 1][dim] == displayRoute.ps[i][dim])
+ {
+ // It's a segment in the dimension we are processing,
+ size_t indexLow = i - 1;
+ size_t indexHigh = i;
+ if (displayRoute.ps[i - 1][altDim] ==
+ displayRoute.ps[i][altDim])
+ {
+ // This is a zero length segment, so ignore it.
+ continue;
+ }
+ else if (displayRoute.ps[i - 1][altDim] >
+ displayRoute.ps[i][altDim])
+ {
+ indexLow = i;
+ indexHigh = i - 1;
+ }
+
+ // Find the checkpoints on the current segment and the
+ // checkpoints on the adjoining segments that aren't on
+ // the corner (hence the +1 and -1 modifiers).
+ std::vector<Point> checkpoints =
+ displayRoute.checkpointsOnSegment(i - 1);
+ std::vector<Point> prevCheckpoints =
+ displayRoute.checkpointsOnSegment(i - 2, -1);
+ std::vector<Point> nextCheckpoints =
+ displayRoute.checkpointsOnSegment(i, +1);
+ bool hasCheckpoints = (checkpoints.size() > 0);
+ if (hasCheckpoints && !nudgeFinalSegments)
+ {
+ // This segment includes one of the routing
+ // checkpoints so we shouldn't shift it.
+ segmentList.push_back(new NudgingShiftSegment(
+ *curr, indexLow, indexHigh, dim));
+ continue;
+ }
+
+ double thisPos = displayRoute.ps[i][dim];
+
+ if ((i == 1) || ((i + 1) == displayRoute.size()))
+ {
+ // Is first or last segment of route.
+
+ if (nudgeFinalSegments)
+ {
+ // Determine available space for nudging these
+ // final segments.
+ double minLim = -CHANNEL_MAX;
+ double maxLim = CHANNEL_MAX;
+
+ // If the position of the opposite end of the
+ // attached segment is within the shape boundaries
+ // then we want to use this as an ideal position
+ // for the segment.
+
+ // Bitflags indicating whether this segment starts
+ // and/or ends in a shape.
+ unsigned int endsInShapes = 0;
+ // Also limit their movement to the edges of the
+ // shapes they begin or end within.
+ for (size_t k = 0; k < shapeLimits.size(); ++k)
+ {
+ double shapeMin = shapeLimits[k].first[dim];
+ double shapeMax = shapeLimits[k].second[dim];
+ if (insideRectBounds(displayRoute.ps[i - 1],
+ shapeLimits[k]))
+ {
+ minLim = std::max(minLim, shapeMin);
+ maxLim = std::min(maxLim, shapeMax);
+ endsInShapes |= 0x01;
+ }
+ if (insideRectBounds(displayRoute.ps[i],
+ shapeLimits[k]))
+ {
+ minLim = std::max(minLim, shapeMin);
+ maxLim = std::min(maxLim, shapeMax);
+ endsInShapes |= 0x10;
+ }
+ }
+
+ if ( endsInShapes == 0 )
+ {
+ // If the segment is not within a shape, then we
+ // should limit it's nudging buffer so we don't
+ // combine many unnecessary regions.
+ double pos = displayRoute.ps[i - 1][dim];
+ double freeConnBuffer = 15;
+ minLim = std::max(minLim, pos - freeConnBuffer);
+ maxLim = std::min(maxLim, pos + freeConnBuffer);
+ }
+
+ if ((minLim == maxLim) || (*curr)->hasFixedRoute())
+ {
+ // Fixed.
+ segmentList.push_back(new NudgingShiftSegment(*curr,
+ indexLow, indexHigh, dim));
+ }
+ else
+ {
+ // Shiftable.
+ NudgingShiftSegment *segment = new NudgingShiftSegment(
+ *curr, indexLow, indexHigh, false, false, dim,
+ minLim, maxLim);
+ segment->finalSegment = true;
+ segment->endsInShape = (endsInShapes > 0);
+ if ((displayRoute.size() == 2) &&
+ (endsInShapes == 0x11))
+ {
+ // This is a single segment connector bridging
+ // two shapes. So, we want to try to keep the
+ // segment centred rather than shift it.
+ segment->singleConnectedSegment = true;
+ }
+ segmentList.push_back(segment);
+ }
+ }
+ else
+ {
+ // The first and last segment of a connector can't be
+ // shifted. We call them fixed segments.
+ segmentList.push_back(new NudgingShiftSegment(*curr,
+ indexLow, indexHigh, dim));
+ }
+ continue;
+ }
+
+
+ // The segment probably has space to be shifted.
+ double minLim = -CHANNEL_MAX;
+ double maxLim = CHANNEL_MAX;
+
+ // Constrain these segments by checkpoints along the
+ // adjoining segments. Ignore checkpoints at ends of
+ // those segments. XXX Perhaps this should not
+ // affect the ideal centre position in the channel.
+ for (size_t cp = 0; cp < nextCheckpoints.size(); ++cp)
+ {
+ if (nextCheckpoints[cp][dim] < thisPos)
+ {
+ // Not at thisPoint, so constrain.
+ minLim = std::max(minLim, nextCheckpoints[cp][dim]);
+ }
+ else if (nextCheckpoints[cp][dim] > thisPos)
+ {
+ // Not at thisPoint, so constrain.
+ maxLim = std::min(maxLim, nextCheckpoints[cp][dim]);
+ }
+ }
+ for (size_t cp = 0; cp < prevCheckpoints.size(); ++cp)
+ {
+ if (prevCheckpoints[cp][dim] < thisPos)
+ {
+ // Not at thisPoint, so constrain.
+ minLim = std::max(minLim, prevCheckpoints[cp][dim]);
+ }
+ else if (prevCheckpoints[cp][dim] > thisPos)
+ {
+ // Not at thisPoint, so constrain.
+ maxLim = std::min(maxLim, prevCheckpoints[cp][dim]);
+ }
+ }
+
+ bool isSBend = false;
+ bool isZBend = false;
+
+ if (checkpoints.empty())
+ {
+ // Segments with checkpoints are held in place, but for
+ // other segments, we should limit their movement based
+ // on the limits of the segments at either end.
+
+ double prevPos = displayRoute.ps[i - 2][dim];
+ double nextPos = displayRoute.ps[i + 1][dim];
+ if ( ((prevPos < thisPos) && (nextPos > thisPos)) ||
+ ((prevPos > thisPos) && (nextPos < thisPos)) )
+ {
+ // Determine limits if the s-bend is not due to an
+ // obstacle. In this case we need to limit the channel
+ // to the span of the adjoining segments to this one.
+ if ((prevPos < thisPos) && (nextPos > thisPos))
+ {
+ minLim = std::max(minLim, prevPos);
+ maxLim = std::min(maxLim, nextPos);
+ isZBend = true;
+ }
+ else // if ((prevPos > thisPos) && (nextPos < thisPos))
+ {
+ minLim = std::max(minLim, nextPos);
+ maxLim = std::min(maxLim, prevPos);
+ isSBend = true;
+ }
+ }
+ }
+
+ NudgingShiftSegment *nss = new NudgingShiftSegment(*curr,
+ indexLow, indexHigh, isSBend, isZBend, dim,
+ minLim, maxLim);
+ nss->checkpoints = checkpoints;
+ segmentList.push_back(nss);
+ }
+ }
+ }
+}
+
+
+typedef std::vector<ConnRef *> ConnRefVector;
+typedef std::vector<Polygon> RouteVector;
+
+
+class CmpLineOrder
+{
+ public:
+ CmpLineOrder(PtOrderMap& ord, const size_t dim)
+ : orders(ord),
+ dimension(dim)
+ {
+ }
+ bool operator()(const ShiftSegment *lhsSuper,
+ const ShiftSegment *rhsSuper,
+ bool *comparable = nullptr) const
+ {
+ const NudgingShiftSegment *lhs =
+ static_cast<const NudgingShiftSegment *> (lhsSuper);
+ const NudgingShiftSegment *rhs =
+ static_cast<const NudgingShiftSegment *> (rhsSuper);
+ if (comparable)
+ {
+ *comparable = true;
+ }
+ Point lhsLow = lhs->lowPoint();
+ Point rhsLow = rhs->lowPoint();
+ size_t altDim = (dimension + 1) % 2;
+#ifndef NDEBUG
+ const Point& lhsHigh = lhs->highPoint();
+ const Point& rhsHigh = rhs->highPoint();
+ COLA_ASSERT(lhsLow[dimension] == lhsHigh[dimension]);
+ COLA_ASSERT(rhsLow[dimension] == rhsHigh[dimension]);
+#endif
+
+ // We consider things at effectively the same position to
+ // be ordered based on their order and fixedOrder, so only
+ // compare segments further apart than the nudgeDistance.
+ if (lhsLow[dimension] != rhsLow[dimension])
+ {
+ return lhsLow[dimension] < rhsLow[dimension];
+ }
+
+ // If one of these is fixed, then determine order based on
+ // fixed segment, that is, order so the fixed segment doesn't
+ // block movement.
+ bool oneIsFixed = false;
+ const int lhsFixedOrder = lhs->fixedOrder(oneIsFixed);
+ const int rhsFixedOrder = rhs->fixedOrder(oneIsFixed);
+ if (oneIsFixed && (lhsFixedOrder != rhsFixedOrder))
+ {
+ return lhsFixedOrder < rhsFixedOrder;
+ }
+
+ // C-bends that did not have a clear order with s-bends might
+ // not have a good ordering here, so compare their order in
+ // terms of C-bend direction and S-bends and use that if it
+ // differs for the two segments.
+ const int lhsOrder = lhs->order();
+ const int rhsOrder = rhs->order();
+ if (lhsOrder != rhsOrder)
+ {
+ return lhsOrder < rhsOrder;
+ }
+
+ // Need to index using the original point into the map, so find it.
+ Point& unchanged = (lhsLow[altDim] > rhsLow[altDim]) ?
+ lhsLow : rhsLow;
+
+ PtOrder& lowOrder = orders[unchanged];
+ int lhsPos = lowOrder.positionFor(dimension, lhs->connRef);
+ int rhsPos = lowOrder.positionFor(dimension, rhs->connRef);
+ if ((lhsPos == -1) || (rhsPos == -1))
+ {
+ // A value for rhsPos or lhsPos mean the points are not directly
+ // comparable, meaning they are at the same position but cannot
+ // overlap (they are just collinear. The relative order for
+ // these segments is not important since we do not constrain
+ // them against each other.
+ //COLA_ASSERT(lhs->overlapsWith(rhs, dimension) == false);
+ // We do need to be consistent though.
+ if (comparable)
+ {
+ *comparable = false;
+ }
+ return lhsLow[altDim] < rhsLow[altDim];
+ }
+ return lhsPos < rhsPos;
+ }
+
+ PtOrderMap& orders;
+ const size_t dimension;
+};
+
+
+// We can't use the normal sort algorithm for lists since it is not possible
+// to compare all elements, but there will be an ordering defined between
+// most of the elements. Hence we order these, using insertion sort, and
+// the case of them not being able to be compared is handled by not setting
+// up any constraints between such segments when doing the nudging.
+//
+static ShiftSegmentList linesort(bool nudgeFinalSegments,
+ ShiftSegmentList origList, CmpLineOrder& comparison)
+{
+ // Cope with end segments that are getting moved and will line up with
+ // other segments of the same connector. We do this by merging them into
+ // a single NudgingShiftSegment.
+ if (nudgeFinalSegments)
+ {
+ for (ShiftSegmentList::iterator currSegIt = origList.begin();
+ currSegIt != origList.end(); ++currSegIt)
+ {
+ for (ShiftSegmentList::iterator otherSegIt = currSegIt;
+ otherSegIt != origList.end(); )
+ {
+ NudgingShiftSegment *currSeg =
+ static_cast<NudgingShiftSegment *> (*currSegIt);
+ NudgingShiftSegment *otherSeg =
+ static_cast<NudgingShiftSegment *> (*otherSegIt);
+ if ((currSegIt != otherSegIt) && currSeg && otherSeg &&
+ currSeg->shouldAlignWith(otherSeg, comparison.dimension))
+ {
+ currSeg->mergeWith(otherSeg, comparison.dimension);
+ delete otherSeg;
+ otherSegIt = origList.erase(otherSegIt);
+ }
+ else
+ {
+ ++otherSegIt;
+ }
+ }
+ }
+ }
+
+ ShiftSegmentList resultList;
+
+ size_t origListSize = origList.size();
+ size_t deferredN = 0;
+ while (!origList.empty())
+ {
+ // Get and remove the first element from the origList.
+ ShiftSegment *segment = origList.front();
+ origList.pop_front();
+
+ // Find the insertion point in the resultList.
+ bool allComparable = true;
+ ShiftSegmentList::iterator curr;
+ for (curr = resultList.begin(); curr != resultList.end(); ++curr)
+ {
+ bool comparable = false;
+ bool lessThan = comparison(segment, *curr, &comparable);
+ allComparable &= comparable;
+
+ if (comparable && lessThan)
+ {
+ // If it is comparable and lessThan, then we have found the
+ // insertion point.
+ break;
+ }
+ }
+
+ if (resultList.empty() || allComparable || (deferredN >= origListSize))
+ {
+ // Insert the element into the resultList at the required point.
+ resultList.insert(curr, segment);
+ // Reset the origListSize and deferred counter.
+ deferredN = 0;
+ origListSize = origList.size();
+ }
+ else
+ {
+ // This wasn't comparable to anything in the sorted list,
+ // so defer addition of the segment till later.
+ origList.push_back(segment);
+ deferredN++;
+ }
+ }
+
+ return resultList;
+}
+
+
+typedef std::list<ShiftSegment *> ShiftSegmentPtrList;
+
+class PotentialSegmentConstraint
+{
+ public:
+ PotentialSegmentConstraint(size_t index1, size_t index2,
+ const Variables& vs)
+ : index1(index1),
+ index2(index2),
+ vs(vs)
+ {
+ }
+
+ bool operator<(const PotentialSegmentConstraint rhs) const
+ {
+ return sepDistance() < rhs.sepDistance();
+ }
+ double sepDistance(void) const
+ {
+ if (!stillValid())
+ {
+ return 0;
+ }
+ return fabs(vs[index1]->finalPosition - vs[index2]->finalPosition);
+ }
+ bool stillValid(void) const
+ {
+ return (index1 != index2);
+ }
+ void rewriteIndex(size_t oldIndex, size_t newIndex)
+ {
+ if (index1 == oldIndex)
+ {
+ index1 = newIndex;
+ }
+
+ if (index2 == oldIndex)
+ {
+ index2 = newIndex;
+ }
+ }
+
+ size_t index1;
+ size_t index2;
+
+ private:
+ const Variables& vs;
+};
+
+
+class ImproveOrthogonalRoutes
+{
+public:
+ ImproveOrthogonalRoutes(Router *router);
+ void execute(void);
+
+private:
+ void simplifyOrthogonalRoutes(void);
+ void buildOrthogonalNudgingOrderInfo(void);
+ void nudgeOrthogonalRoutes(size_t dimension,
+ bool justUnifying = false);
+
+ Router *m_router;
+ PtOrderMap m_point_orders;
+ UnsignedPairSet m_shared_path_connectors_with_common_endpoints;
+ ShiftSegmentList m_segment_list;
+};
+
+
+ImproveOrthogonalRoutes::ImproveOrthogonalRoutes(Router *router)
+ : m_router(router)
+{
+}
+
+void ImproveOrthogonalRoutes::execute(void)
+{
+ TIMER_START(m_router, tmOrthogNudge);
+
+ m_shared_path_connectors_with_common_endpoints.clear();
+
+ // Simplify routes.
+ simplifyOrthogonalRoutes();
+
+ // Build a cache that denotes whether a certain segment of a connector
+ // contains a checkpoint. We can't just compare positions, since routes
+ // can be moved away from their original positions during nudging.
+ buildConnectorRouteCheckpointCache(m_router);
+
+ // Do Unifying first, by itself. This greedily tries to position free
+ // segments in overlapping channels at the same position. This way they
+ // have correct nudging orders determined for them since they will form
+ // shared paths, rather than segments just positioned as an results of
+ // the routing process. Of course, don't do this when rerouting with
+ // a fixedSharedPathPenalty since these routes include extra segments
+ // we want to keep apart which prevent some shared paths.
+ if (m_router->routingOption(performUnifyingNudgingPreprocessingStep) &&
+ (m_router->routingParameter(fixedSharedPathPenalty) == 0))
+ {
+ for (size_t dimension = 0; dimension < 2; ++dimension)
+ {
+ // Just perform Unifying operation.
+ bool justUnifying = true;
+ m_segment_list.clear();
+ buildOrthogonalNudgingSegments(m_router, dimension, m_segment_list);
+ buildOrthogonalChannelInfo(m_router, dimension, m_segment_list);
+ nudgeOrthogonalRoutes(dimension, justUnifying);
+ }
+ }
+
+#ifndef DEBUG_JUST_UNIFY
+ // Do the Nudging and centring.
+ for (size_t dimension = 0; dimension < 2; ++dimension)
+ {
+ m_point_orders.clear();
+ // Build nudging info.
+ // XXX Needs to be rebuilt for each dimension, cause of shifting
+ // points. Maybe we could modify the point orders.
+ buildOrthogonalNudgingOrderInfo();
+
+ // Do the centring and nudging.
+ m_segment_list.clear();
+ buildOrthogonalNudgingSegments(m_router, dimension, m_segment_list);
+ buildOrthogonalChannelInfo(m_router, dimension, m_segment_list);
+ nudgeOrthogonalRoutes(dimension);
+ }
+#endif // DEBUG_JUST_UNIFY
+
+ // Resimplify all the display routes that may have been split.
+ simplifyOrthogonalRoutes();
+
+ m_router->improveOrthogonalTopology();
+
+ // Clear the segment-checkpoint cache for connectors.
+ clearConnectorRouteCheckpointCache(m_router);
+
+ TIMER_STOP(m_router);
+}
+
+void ImproveOrthogonalRoutes::nudgeOrthogonalRoutes(size_t dimension,
+ bool justUnifying)
+{
+ bool nudgeFinalSegments = m_router->routingOption(
+ nudgeOrthogonalSegmentsConnectedToShapes);
+ bool nudgeSharedPathsWithCommonEnd = m_router->routingOption(
+ nudgeSharedPathsWithCommonEndPoint);
+ double baseSepDist = m_router->routingParameter(idealNudgingDistance);
+ COLA_ASSERT(baseSepDist >= 0);
+ // If we can fit things with the desired separation distance, then
+ // we try 10 times, reducing each time by a 10th of the original amount.
+ double reductionSteps = 10.0;
+
+ size_t totalSegmentsToShift = m_segment_list.size();
+ size_t numOfSegmentsShifted = 0;
+ // Do the actual nudging.
+ ShiftSegmentList currentRegion;
+ while (!m_segment_list.empty())
+ {
+ // Progress reporting and continuation check.
+ numOfSegmentsShifted = totalSegmentsToShift - m_segment_list.size();
+ m_router->performContinuationCheck(
+ (dimension == XDIM) ? TransactionPhaseOrthogonalNudgingX :
+ TransactionPhaseOrthogonalNudgingY, numOfSegmentsShifted,
+ totalSegmentsToShift);
+
+ // Take a reference segment
+ ShiftSegment *currentSegment = m_segment_list.front();
+ // Then, find the segments that overlap this one.
+ currentRegion.clear();
+ currentRegion.push_back(currentSegment);
+ m_segment_list.erase(m_segment_list.begin());
+ for (ShiftSegmentList::iterator curr = m_segment_list.begin();
+ curr != m_segment_list.end(); )
+ {
+ bool overlaps = false;
+ for (ShiftSegmentList::iterator curr2 = currentRegion.begin();
+ curr2 != currentRegion.end(); ++curr2)
+ {
+ if ((*curr)->overlapsWith(*curr2, dimension))
+ {
+ overlaps = true;
+ break;
+ }
+ }
+ if (overlaps)
+ {
+ currentRegion.push_back(*curr);
+ m_segment_list.erase(curr);
+ // Consider segments from the beginning, since we may have
+ // since passed segments that overlap with the new set.
+ curr = m_segment_list.begin();
+ }
+ else
+ {
+ ++curr;
+ }
+ }
+
+ if (! justUnifying)
+ {
+ CmpLineOrder lineSortComp(m_point_orders, dimension);
+ currentRegion = linesort(nudgeFinalSegments, currentRegion,
+ lineSortComp);
+ }
+
+ if (currentRegion.size() == 1)
+ {
+ // Save creating the solver instance if there is just one
+ // immovable segment, or if we are in the unifying stage.
+ if (currentRegion.front()->immovable() || justUnifying)
+ {
+ delete currentRegion.front();
+ continue;
+ }
+ }
+
+ // Process these segments.
+ std::list<size_t> freeIndexes;
+ Variables vs;
+ Constraints cs;
+ Constraints gapcs;
+ ShiftSegmentPtrList prevVars;
+ double sepDist = baseSepDist;
+#ifdef NUDGE_DEBUG
+ fprintf(stderr, "-------------------------------------------------------\n");
+ fprintf(stderr, "%s -- size: %d\n", (justUnifying) ? "Unifying" : "Nudging",
+ (int) currentRegion.size());
+#endif
+#ifdef NUDGE_DEBUG_SVG
+ printf("\n\n");
+#endif
+ for (ShiftSegmentList::iterator currSegmentIt = currentRegion.begin();
+ currSegmentIt != currentRegion.end(); ++currSegmentIt )
+ {
+ NudgingShiftSegment *currSegment = static_cast<NudgingShiftSegment *> (*currSegmentIt);
+
+ // Create a solver variable for the position of this segment.
+ currSegment->createSolverVariable(justUnifying);
+
+ vs.push_back(currSegment->variable);
+ size_t index = vs.size() - 1;
+#ifdef NUDGE_DEBUG
+ fprintf(stderr,"line(%d) %.15f dim: %d pos: %.16f\n"
+ "min: %.16f max: %.16f\n"
+ "minEndPt: %.16f maxEndPt: %.16f weight: %g cc: %d\n",
+ currSegment->connRef->id(),
+ currSegment->lowPoint()[dimension], (int) dimension,
+ currSegment->variable->desiredPosition,
+ currSegment->minSpaceLimit, currSegment->maxSpaceLimit,
+ currSegment->lowPoint()[!dimension], currSegment->highPoint()[!dimension],
+ currSegment->variable->weight,
+ (int) currSegment->checkpoints.size());
+#endif
+#ifdef NUDGE_DEBUG_SVG
+ // Debugging info:
+ double minP = std::max(currSegment->minSpaceLimit, -5000.0);
+ double maxP = std::min(currSegment->maxSpaceLimit, 5000.0);
+ fprintf(stdout, "<rect style=\"fill: #f00; opacity: 0.2;\" "
+ "x=\"%g\" y=\"%g\" width=\"%g\" height=\"%g\" />\n",
+ currSegment->lowPoint()[XDIM], minP,
+ currSegment->highPoint()[XDIM] - currSegment->lowPoint()[XDIM],
+ maxP - minP);
+ fprintf(stdout, "<line style=\"stroke: #000;\" x1=\"%g\" "
+ "y1=\"%g\" x2=\"%g\" y2=\"%g\" />\n",
+ currSegment->lowPoint()[XDIM], currSegment->lowPoint()[YDIM],
+ currSegment->highPoint()[XDIM], currSegment->highPoint()[YDIM]);
+#endif
+
+ if (justUnifying)
+ {
+ // Just doing centring, not nudging.
+ // Record the index of the variable so we can use it as
+ // a segment to potentially constrain to other segments.
+ if (currSegment->variable->weight == freeWeight)
+ {
+ freeIndexes.push_back(index);
+ }
+ // Thus, we don't need to constrain position against other
+ // segments.
+ prevVars.push_back(&(*currSegment));
+ continue;
+ }
+
+ // The constraints generated here must be in order of
+ // leftBoundary-segment ... segment-segment ... segment-rightBoundary
+ // since this order is leveraged later for rewriting the
+ // separations of unsatisfable channel groups.
+
+ // Constrain to channel boundary.
+ if (!currSegment->fixed)
+ {
+ // If this segment sees a channel boundary to its left,
+ // then constrain its placement as such.
+ if (currSegment->minSpaceLimit > -CHANNEL_MAX)
+ {
+ vs.push_back(new Variable(channelLeftID,
+ currSegment->minSpaceLimit, fixedWeight));
+ cs.push_back(new Constraint(vs[vs.size() - 1], vs[index],
+ 0.0));
+ }
+ }
+
+ // Constrain position in relation to previously seen segments,
+ // if necessary (i.e. when they could overlap).
+ for (ShiftSegmentPtrList::iterator prevVarIt = prevVars.begin();
+ prevVarIt != prevVars.end(); ++prevVarIt)
+ {
+ NudgingShiftSegment *prevSeg =
+ static_cast<NudgingShiftSegment *> (*prevVarIt);
+ Variable *prevVar = prevSeg->variable;
+
+ if (currSegment->overlapsWith(prevSeg, dimension) &&
+ (!(currSegment->fixed) || !(prevSeg->fixed)))
+ {
+ // If there is a previous segment to the left that
+ // could overlap this in the shift direction, then
+ // constrain the two segments to be separated.
+ // Though don't add the constraint if both the
+ // segments are fixed in place.
+ double thisSepDist = sepDist;
+ bool equality = false;
+ if (currSegment->shouldAlignWith(prevSeg, dimension))
+ {
+ // Handles the case where the two end segments can
+ // be brought together to make a single segment. This
+ // can help in situations where having the small kink
+ // can restrict other kinds of nudging.
+ thisSepDist = 0;
+ equality = true;
+ }
+ else if (currSegment->canAlignWith(prevSeg, dimension))
+ {
+ // We need to address the problem of two neighbouring
+ // segments of the same connector being kept separated
+ // due only to a kink created in the other dimension.
+ // Here, we let such segments drift back together.
+ thisSepDist = 0;
+ }
+ else if (!nudgeSharedPathsWithCommonEnd &&
+ (m_shared_path_connectors_with_common_endpoints.count(
+ UnsignedPair(currSegment->connRef->id(), prevSeg->connRef->id())) > 0))
+ {
+ // We don't want to nudge apart these two segments
+ // since they are from a shared path with a common
+ // endpoint. There might be multiple chains of
+ // segments that don't all have the same endpoints
+ // so we need to make this an equality to prevent
+ // some of them possibly getting nudged apart.
+ thisSepDist = 0;
+ equality = true;
+ }
+
+ Constraint *constraint = new Constraint(prevVar,
+ vs[index], thisSepDist, equality);
+ cs.push_back(constraint);
+ if (thisSepDist)
+ {
+ // Add to the list of gap constraints so we can
+ // rewrite the separation distance later.
+ gapcs.push_back(constraint);
+ }
+ }
+ }
+
+ if (!currSegment->fixed)
+ {
+ // If this segment sees a channel boundary to its right,
+ // then constrain its placement as such.
+ if (currSegment->maxSpaceLimit < CHANNEL_MAX)
+ {
+ vs.push_back(new Variable(channelRightID,
+ currSegment->maxSpaceLimit, fixedWeight));
+ cs.push_back(new Constraint(vs[index], vs[vs.size() - 1],
+ 0.0));
+ }
+ }
+
+ prevVars.push_back(&(*currSegment));
+ }
+
+ std::list<PotentialSegmentConstraint> potentialConstraints;
+ if (justUnifying)
+ {
+ for (std::list<size_t>::iterator curr = freeIndexes.begin();
+ curr != freeIndexes.end(); ++curr)
+ {
+ for (std::list<size_t>::iterator curr2 = curr;
+ curr2 != freeIndexes.end(); ++curr2)
+ {
+ if (curr == curr2)
+ {
+ continue;
+ }
+ potentialConstraints.push_back(
+ PotentialSegmentConstraint(*curr, *curr2, vs));
+ }
+ }
+ }
+#ifdef NUDGE_DEBUG
+ for (unsigned i = 0;i < vs.size(); ++i)
+ {
+ fprintf(stderr, "-vs[%d]=%f\n", i, vs[i]->desiredPosition);
+ }
+#endif
+ // Repeatedly try solving this. There are two cases:
+ // - When Unifying, we greedily place as many free segments as
+ // possible at the same positions, that way they have more
+ // accurate nudging orders determined for them in the Nudging
+ // stage.
+ // - When Nudging, if we can't fit all the segments with the
+ // default nudging distance we try smaller separation
+ // distances till we find a solution that is satisfied.
+ bool justAddedConstraint = false;
+ bool satisfied;
+
+ typedef std::pair<size_t, size_t> UnsatisfiedRange;
+ std::list<UnsatisfiedRange> unsatisfiedRanges;
+ do
+ {
+ IncSolver f(vs, cs);
+ f.solve();
+
+ // Determine if the problem was satisfied.
+ satisfied = true;
+ for (size_t i = 0; i < vs.size(); ++i)
+ {
+ // For each variable...
+ if (vs[i]->id != freeSegmentID)
+ {
+ // If it is a fixed segment (should stay still)...
+ if (fabs(vs[i]->finalPosition -
+ vs[i]->desiredPosition) > 0.0001)
+ {
+ // and it is not at it's desired position, then
+ // we consider the problem to be unsatisfied.
+ satisfied = false;
+
+ // We record ranges of unsatisfied variables based on
+ // the channel edges.
+ if (vs[i]->id == channelLeftID)
+ {
+ // This is the left-hand-side of a channel.
+ if (unsatisfiedRanges.empty() ||
+ (unsatisfiedRanges.back().first !=
+ unsatisfiedRanges.back().second))
+ {
+ // There are no existing unsatisfied ranges,
+ // or there are but they are a valid range
+ // (we've encountered the right-hand channel
+ // edges already).
+ // So, start a new unsatisfied range.
+ unsatisfiedRanges.push_back(
+ std::make_pair(i, i + 1));
+ }
+ }
+ else if (vs[i]->id == channelRightID)
+ {
+ // This is the right-hand-side of a channel.
+ if (unsatisfiedRanges.empty())
+ {
+ // There are no existing unsatisfied ranges,
+ // so start a new unsatisfied range.
+ // We are looking at a unsatisfied right side
+ // where the left side was satisfied, so the
+ // range begins at the previous variable
+ // which should be a left channel side.
+ COLA_ASSERT(i > 0);
+ COLA_ASSERT(vs[i - 1]->id == channelLeftID);
+ unsatisfiedRanges.push_back(
+ std::make_pair(i - 1, i));
+ }
+ else
+ {
+ // Expand the existing range to include index.
+ unsatisfiedRanges.back().second = i;
+ }
+ }
+ else if (vs[i]->id == fixedSegmentID)
+ {
+ // Fixed connector segments can also start and
+ // extend unsatisfied variable ranges.
+ if (unsatisfiedRanges.empty())
+ {
+ // There are no existing unsatisfied ranges,
+ // so start a new unsatisfied range.
+ unsatisfiedRanges.push_back(
+ std::make_pair(i, i));
+ }
+ else
+ {
+ // Expand the existing range to include index.
+ unsatisfiedRanges.back().second = i;
+ }
+ }
+ }
+ }
+ }
+
+#ifdef NUDGE_DEBUG
+ if (!satisfied)
+ {
+ fprintf(stderr,"unsatisfied\n");
+ }
+#endif
+
+ if (justUnifying)
+ {
+ // When we're centring, we'd like to greedily place as many
+ // segments as possible at the same positions, that way they
+ // have more accurate nudging orders determined for them.
+ //
+ // We do this by taking pairs of adjoining free segments and
+ // attempting to constrain them to have the same position,
+ // starting from the closest up to the furthest.
+
+ if (justAddedConstraint)
+ {
+ COLA_ASSERT(potentialConstraints.size() > 0);
+ if (!satisfied)
+ {
+ // We couldn't satisfy the problem with the added
+ // potential constraint, so we can't position these
+ // segments together. Roll back.
+ potentialConstraints.pop_front();
+ delete cs.back();
+ cs.pop_back();
+ }
+ else
+ {
+ // We could position these two segments together.
+ PotentialSegmentConstraint& pc =
+ potentialConstraints.front();
+
+ // Rewrite the indexes of these two variables to
+ // one, so we need not worry about redundant
+ // equality constraints.
+ for (std::list<PotentialSegmentConstraint>::iterator
+ it = potentialConstraints.begin();
+ it != potentialConstraints.end(); ++it)
+ {
+ it->rewriteIndex(pc.index1, pc.index2);
+ }
+ potentialConstraints.pop_front();
+ }
+ }
+ potentialConstraints.sort();
+ justAddedConstraint = false;
+
+ // Remove now invalid potential segment constraints.
+ // This could have been caused by the variable rewriting.
+ while (!potentialConstraints.empty() &&
+ !potentialConstraints.front().stillValid())
+ {
+ potentialConstraints.pop_front();
+ }
+
+ if (!potentialConstraints.empty())
+ {
+ // We still have more possibilities to consider.
+ // Create a constraint for this, add it, and mark as
+ // unsatisfied, so the problem gets re-solved.
+ PotentialSegmentConstraint& pc =
+ potentialConstraints.front();
+ COLA_ASSERT(pc.index1 != pc.index2);
+ cs.push_back(new Constraint(vs[pc.index1], vs[pc.index2],
+ 0, true));
+ satisfied = false;
+ justAddedConstraint = true;
+ }
+ }
+ else
+ {
+ if (!satisfied)
+ {
+ COLA_ASSERT(unsatisfiedRanges.size() > 0);
+ // Reduce the separation distance.
+ sepDist -= (baseSepDist / reductionSteps);
+#ifndef NDEBUG
+ for (std::list<UnsatisfiedRange>::iterator it =
+ unsatisfiedRanges.begin();
+ it != unsatisfiedRanges.end(); ++it)
+ {
+ COLA_ASSERT(vs[it->first]->id != freeSegmentID);
+ COLA_ASSERT(vs[it->second]->id != freeSegmentID);
+ }
+#endif
+#ifdef NUDGE_DEBUG
+ for (std::list<UnsatisfiedRange>::iterator it =
+ unsatisfiedRanges.begin();
+ it != unsatisfiedRanges.end(); ++it)
+ {
+ fprintf(stderr, "unsatisfiedVarRange(%ld, %ld)\n",
+ it->first, it->second);
+ }
+ fprintf(stderr, "unsatisfied, trying %g\n", sepDist);
+#endif
+ // And rewrite all the gap constraints to have the new
+ // reduced separation distance.
+ bool withinUnsatisfiedGroup = false;
+ for (Constraints::iterator cIt = cs.begin();
+ cIt != cs.end(); ++cIt)
+ {
+ UnsatisfiedRange& range = unsatisfiedRanges.front();
+ Constraint *constraint = *cIt;
+
+ if (constraint->left == vs[range.first])
+ {
+ // Entered an unsatisfied range of variables.
+ withinUnsatisfiedGroup = true;
+ }
+
+ if (withinUnsatisfiedGroup && (constraint->gap > 0))
+ {
+ // Rewrite constraints in unsatisfied ranges
+ // that have a non-zero gap.
+ constraint->gap = sepDist;
+ }
+
+ if (constraint->right == vs[range.second])
+ {
+ // Left an unsatisfied range of variables.
+ withinUnsatisfiedGroup = false;
+ unsatisfiedRanges.pop_front();
+ if (unsatisfiedRanges.empty())
+ {
+ // And there are no more unsatisfied variables.
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ while (!satisfied && (sepDist > 0.0001));
+
+ if (satisfied)
+ {
+#ifdef NUDGE_DEBUG
+ fprintf(stderr,"satisfied at nudgeDist = %g\n", sepDist);
+#endif
+ for (ShiftSegmentList::iterator currSegment = currentRegion.begin();
+ currSegment != currentRegion.end(); ++currSegment)
+ {
+ NudgingShiftSegment *segment =
+ static_cast<NudgingShiftSegment *> (*currSegment);
+
+ segment->updatePositionsFromSolver(justUnifying);
+ }
+ }
+#ifdef NUDGE_DEBUG
+ for(unsigned i=0;i<vs.size();i++) {
+ fprintf(stderr, "+vs[%d]=%f\n",i,vs[i]->finalPosition);
+ }
+#endif
+#ifdef NUDGE_DEBUG_SVG
+ for (ShiftSegmentList::iterator currSegment = currentRegion.begin();
+ currSegment != currentRegion.end(); ++currSegment)
+ {
+ NudgingShiftSegment *segment =
+ static_cast<NudgingShiftSegment *> (*currSegment);
+
+ fprintf(stdout, "<line style=\"stroke: #00F;\" x1=\"%g\" "
+ "y1=\"%g\" x2=\"%g\" y2=\"%g\" />\n",
+ segment->lowPoint()[XDIM], segment->variable->finalPosition,
+ segment->highPoint()[XDIM], segment->variable->finalPosition);
+ }
+#endif
+ for_each(currentRegion.begin(), currentRegion.end(), delete_object());
+ for_each(vs.begin(), vs.end(), delete_object());
+ for_each(cs.begin(), cs.end(), delete_object());
+ }
+}
+
+
+void ImproveOrthogonalRoutes::simplifyOrthogonalRoutes(void)
+{
+ // Simplify routes.
+ for (ConnRefList::const_iterator curr = m_router->connRefs.begin();
+ curr != m_router->connRefs.end(); ++curr)
+ {
+ if ((*curr)->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+ (*curr)->set_route((*curr)->displayRoute().simplify());
+ }
+}
+
+
+// Populates m_point_orders and m_shared_path_connectors_with_common_endpoints.
+void ImproveOrthogonalRoutes::buildOrthogonalNudgingOrderInfo(void)
+{
+ // Simplify routes.
+ simplifyOrthogonalRoutes();
+
+ int crossingsN = 0;
+
+ bool buildSharedPathInfo = false;
+ if (!m_router->routingOption(Avoid::nudgeSharedPathsWithCommonEndPoint) &&
+ m_shared_path_connectors_with_common_endpoints.empty())
+ {
+ // We're not going to nudge apart shared paths with common ends so we
+ // will need to store information about this during the crossing
+ // detection.
+ buildSharedPathInfo = true;
+ }
+
+
+ // Make a vector of the ConnRefList, for convenience.
+ ConnRefVector connRefs(m_router->connRefs.begin(), m_router->connRefs.end());
+
+ // Make a temporary copy of all the connector displayRoutes.
+ RouteVector connRoutes(connRefs.size());
+ for (size_t ind = 0; ind < connRefs.size(); ++ind)
+ {
+ connRoutes[ind] = connRefs[ind]->displayRoute();
+ }
+
+ // Do segment splitting.
+ for (size_t ind1 = 0; ind1 < connRefs.size(); ++ind1)
+ {
+ ConnRef *conn = connRefs[ind1];
+ if (conn->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+
+ for (size_t ind2 = 0; ind2 < connRefs.size(); ++ind2)
+ {
+ if (ind1 == ind2)
+ {
+ continue;
+ }
+
+ ConnRef *conn2 = connRefs[ind2];
+ if (conn2->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+
+ Avoid::Polygon& route = connRoutes[ind1];
+ Avoid::Polygon& route2 = connRoutes[ind2];
+ splitBranchingSegments(route2, true, route);
+ }
+ }
+
+ for (size_t ind1 = 0; ind1 < connRefs.size(); ++ind1)
+ {
+ ConnRef *conn = connRefs[ind1];
+ if (conn->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+
+ for (size_t ind2 = ind1 + 1; ind2 < connRefs.size(); ++ind2)
+ {
+ ConnRef *conn2 = connRefs[ind2];
+ if (conn2->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+
+ Avoid::Polygon& route = connRoutes[ind1];
+ Avoid::Polygon& route2 = connRoutes[ind2];
+ int crossings = 0;
+ unsigned int crossingFlags = 0;
+ ConnectorCrossings cross(route2, true, route, conn2, conn);
+ cross.pointOrders = &m_point_orders;
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ const bool finalSegment = ((i + 1) == route.size());
+ cross.countForSegment(i, finalSegment);
+
+ crossings += cross.crossingCount;
+ crossingFlags |= cross.crossingFlags;
+ }
+ if (crossings > 0)
+ {
+ crossingsN += crossings;
+ }
+
+ if (buildSharedPathInfo &&
+ (crossingFlags & CROSSING_SHARES_PATH_AT_END))
+ {
+ // Record if these two connectors have a shared path with a
+ // common end point.
+ m_shared_path_connectors_with_common_endpoints.insert(
+ UnsignedPair(conn->id(), conn2->id()));
+ }
+ }
+ }
+}
+
+
+extern void improveOrthogonalRoutes(Router *router)
+{
+ ImproveOrthogonalRoutes improver(router);
+ improver.execute();
+}
+
+
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/orthogonal.h b/src/3rdparty/adaptagrams/libavoid/orthogonal.h
new file mode 100644
index 0000000..00ee465
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/orthogonal.h
@@ -0,0 +1,39 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2009-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_ORTHOGONAL_H
+#define AVOID_ORTHOGONAL_H
+
+namespace Avoid {
+
+class Router;
+
+extern void generateStaticOrthogonalVisGraph(Router *router);
+extern void improveOrthogonalRoutes(Router *router);
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/router.cpp b/src/3rdparty/adaptagrams/libavoid/router.cpp
new file mode 100644
index 0000000..f10e933
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/router.cpp
@@ -0,0 +1,3131 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <algorithm>
+#include <cmath>
+#include <cfloat>
+
+#include "libavoid/shape.h"
+#include "libavoid/router.h"
+#include "libavoid/visibility.h"
+#include "libavoid/connector.h"
+#include "libavoid/junction.h"
+#include "libavoid/viscluster.h"
+#include "libavoid/connend.h"
+#include "libavoid/debug.h"
+#include "libavoid/orthogonal.h"
+#include "libavoid/assertions.h"
+#include "libavoid/connectionpin.h"
+
+
+namespace Avoid {
+
+
+Router::Router(const unsigned int flags)
+ : visOrthogGraph(),
+ PartialTime(false),
+ SimpleRouting(false),
+ ClusteredRouting(true),
+ // Poly-line algorithm options:
+ IgnoreRegions(true),
+ UseLeesAlgorithm(true),
+ InvisibilityGrph(true),
+ // General algorithm options:
+ SelectiveReroute(true),
+ PartialFeedback(false),
+ RubberBandRouting(false),
+ // Instrumentation:
+ st_checked_edges(0),
+ m_largest_assigned_id(0),
+ m_consolidate_actions(true),
+ m_currently_calling_destructors(false),
+ m_topology_addon(new TopologyAddonInterface()),
+ // Mode options:
+ m_allows_polyline_routing(false),
+ m_allows_orthogonal_routing(false),
+ m_static_orthogonal_graph_invalidated(true),
+ m_in_crossing_rerouting_stage(false),
+ m_settings_changes(false),
+ m_debug_handler(nullptr)
+{
+ // At least one of the Routing modes must be set.
+ COLA_ASSERT(flags & (PolyLineRouting | OrthogonalRouting));
+
+ if (flags & PolyLineRouting)
+ {
+ m_allows_polyline_routing = true;
+ }
+ if (flags & OrthogonalRouting)
+ {
+ m_allows_orthogonal_routing = true;
+ }
+
+ for (size_t p = 0; p < lastRoutingParameterMarker; ++p)
+ {
+ m_routing_parameters[p] = 0.0;
+ }
+ m_routing_parameters[segmentPenalty] = 10;
+ m_routing_parameters[clusterCrossingPenalty] = 4000;
+ m_routing_parameters[idealNudgingDistance] = 4.0;
+
+ m_routing_options[nudgeOrthogonalSegmentsConnectedToShapes] = false;
+ m_routing_options[improveHyperedgeRoutesMovingJunctions] = true;
+ m_routing_options[penaliseOrthogonalSharedPathsAtConnEnds] = false;
+ m_routing_options[nudgeOrthogonalTouchingColinearSegments] = false;
+ m_routing_options[performUnifyingNudgingPreprocessingStep] = true;
+ m_routing_options[improveHyperedgeRoutesMovingAddingAndDeletingJunctions] =
+ false;
+ m_routing_options[nudgeSharedPathsWithCommonEndPoint] = true;
+
+ m_hyperedge_improver.setRouter(this);
+ m_hyperedge_rerouter.setRouter(this);
+}
+
+
+Router::~Router()
+{
+ m_currently_calling_destructors = true;
+
+ // Delete remaining connectors.
+ ConnRefList::iterator conn = connRefs.begin();
+ while (conn != connRefs.end())
+ {
+ db_printf("Deleting connector %u in ~Router()\n", (*conn)->id());
+ delete *conn;
+ conn = connRefs.begin();
+ }
+
+ // Remove remaining obstacles (shapes and junctions).
+ ObstacleList::iterator obstacle = m_obstacles.begin();
+ while (obstacle != m_obstacles.end())
+ {
+ Obstacle *obstaclePtr = *obstacle;
+ ShapeRef *shape = dynamic_cast<ShapeRef *> (obstaclePtr);
+ db_printf("Deleting %s %u in ~Router()\n",
+ (shape) ? "shape" : "junction", obstaclePtr->id());
+ if (obstaclePtr->isActive())
+ {
+ obstaclePtr->removeFromGraph();
+ obstaclePtr->makeInactive();
+ }
+ delete obstaclePtr;
+ obstacle = m_obstacles.begin();
+ }
+ m_currently_calling_destructors = false;
+
+ // Cleanup orphaned orthogonal graph vertices.
+ destroyOrthogonalVisGraph();
+
+ COLA_ASSERT(m_obstacles.size() == 0);
+ COLA_ASSERT(connRefs.size() == 0);
+ COLA_ASSERT(visGraph.size() == 0);
+
+ delete m_topology_addon;
+}
+
+void Router::setDebugHandler(DebugHandler *handler)
+{
+ m_debug_handler = handler;
+}
+
+DebugHandler *Router::debugHandler(void) const
+{
+ return m_debug_handler;
+}
+
+ShapeRef *Router::shapeContainingPoint(const Point& point)
+{
+ // Count points on the border as being inside.
+ bool countBorder = true;
+
+ // Compute enclosing shapes.
+ ObstacleList::const_iterator finish = m_obstacles.end();
+ for (ObstacleList::const_iterator i = m_obstacles.begin(); i != finish; ++i)
+ {
+ ShapeRef *shape = dynamic_cast<ShapeRef *>(*i);
+ if (shape && inPoly(shape->routingPolygon(), point, countBorder))
+ {
+ return shape;
+ }
+ }
+ return nullptr;
+}
+
+void Router::modifyConnector(ConnRef *conn, const unsigned int type,
+ const ConnEnd& connEnd, bool connPinMoveUpdate)
+{
+ ActionInfo modInfo(ConnChange, conn);
+
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), modInfo);
+ if (found == actionList.end())
+ {
+ // Matching action not found, so add.
+ modInfo.conns.push_back(std::make_pair(type, connEnd));
+ actionList.push_back(modInfo);
+ }
+ else
+ {
+ // Update the found action as necessary.
+ found->addConnEndUpdate(type, connEnd, connPinMoveUpdate);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::modifyConnector(ConnRef *conn)
+{
+ ActionInfo modInfo(ConnChange, conn);
+
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), modInfo);
+ if (found == actionList.end())
+ {
+ actionList.push_back(modInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::modifyConnectionPin(ShapeConnectionPin *pin)
+{
+ ActionInfo modInfo(ConnectionPinChange, pin);
+
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), modInfo);
+ if (found == actionList.end())
+ {
+ actionList.push_back(modInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::removeObjectFromQueuedActions(const void *object)
+{
+ for (ActionInfoList::iterator curr = actionList.begin();
+ curr != actionList.end(); )
+ {
+ if (curr->objPtr == object)
+ {
+ curr = actionList.erase(curr);
+ }
+ else
+ {
+ ++curr;
+ }
+ }
+}
+
+
+void Router::addShape(ShapeRef *shape)
+{
+ // There shouldn't be remove events or move events for the same shape
+ // already in the action list.
+ // XXX: Possibly we could handle this by ordering them intelligently.
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(ShapeRemove, shape)) == actionList.end());
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(ShapeMove, shape)) == actionList.end());
+
+ ActionInfo addInfo(ShapeAdd, shape);
+
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), addInfo);
+ if (found == actionList.end())
+ {
+ actionList.push_back(addInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::deleteShape(ShapeRef *shape)
+{
+ // There shouldn't be add events events for the same shape already
+ // in the action list.
+ // XXX: Possibly we could handle this by ordering them intelligently.
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(ShapeAdd, shape)) == actionList.end());
+
+ // Delete any ShapeMove entries for this shape in the action list.
+ ActionInfoList::iterator found = find(actionList.begin(),
+ actionList.end(), ActionInfo(ShapeMove, shape));
+ if (found != actionList.end())
+ {
+ actionList.erase(found);
+ }
+
+ // Add the ShapeRemove entry.
+ ActionInfo remInfo(ShapeRemove, shape);
+ found = find(actionList.begin(), actionList.end(), remInfo);
+ if (found == actionList.end())
+ {
+ actionList.push_back(remInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::deleteConnector(ConnRef *connector)
+{
+ m_currently_calling_destructors = true;
+ delete connector;
+ m_currently_calling_destructors = false;
+}
+
+void Router::moveShape(ShapeRef *shape, const double xDiff, const double yDiff)
+{
+ ActionInfo moveInfo(ShapeMove, shape, Polygon(), false);
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), moveInfo);
+
+ Polygon newPoly;
+ if (found != actionList.end())
+ {
+ // The shape already has a queued move, so use that shape position.
+ newPoly = found->newPoly;
+ }
+ else
+ {
+ // Just use the existing position.
+ newPoly = shape->polygon();
+ }
+ newPoly.translate(xDiff, yDiff);
+
+ moveShape(shape, newPoly);
+}
+
+
+void Router::markAllObstaclesAsMoved(void)
+{
+ for (ObstacleList::iterator obstacleIt = m_obstacles.begin();
+ obstacleIt != m_obstacles.end(); ++obstacleIt)
+ {
+ ShapeRef *shape = dynamic_cast<ShapeRef *> (*obstacleIt);
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (*obstacleIt);
+ if (shape)
+ {
+ moveShape(shape, 0, 0);
+ }
+ else if (junction)
+ {
+ moveJunction(junction, 0, 0);
+ }
+ }
+}
+
+void Router::moveShape(ShapeRef *shape, const Polygon& newPoly,
+ const bool first_move)
+{
+ // There shouldn't be remove events or add events for the same shape
+ // already in the action list.
+ // XXX: Possibly we could handle this by ordering them intelligently.
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(ShapeRemove, shape)) == actionList.end());
+
+ ActionInfoList::iterator found = find(actionList.begin(),
+ actionList.end(), ActionInfo(ShapeAdd, shape));
+ if (found != actionList.end())
+ {
+ // The Add is enough, no need for the Move action too.
+ // The shape will be added with it's existing polygon,
+ // so set this to be the newPoly passed for the move.
+ found->shape()->setNewPoly(newPoly);
+ return;
+ }
+
+ ActionInfo moveInfo(ShapeMove, shape, newPoly, first_move);
+ // Sanely cope with the case where the user requests moving the same
+ // shape multiple times before rerouting connectors.
+ found = find(actionList.begin(), actionList.end(), moveInfo);
+
+ if (found != actionList.end())
+ {
+ // Just update the ActionInfo with the second polygon, but
+ // leave the firstMove setting alone.
+ found->newPoly = newPoly;
+ }
+ else
+ {
+ actionList.push_back(moveInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::setStaticGraphInvalidated(const bool invalidated)
+{
+ m_static_orthogonal_graph_invalidated = invalidated;
+}
+
+
+void Router::destroyOrthogonalVisGraph(void)
+{
+ // Remove orthogonal visibility graph edges.
+ visOrthogGraph.clear();
+
+ // Remove the now orphaned vertices.
+ VertInf *curr = vertices.shapesBegin();
+ while (curr)
+ {
+ if (curr->orphaned() && (curr->id == dummyOrthogID))
+ {
+ VertInf *following = vertices.removeVertex(curr);
+ delete curr;
+ curr = following;
+ continue;
+ }
+ curr = curr->lstNext;
+ }
+}
+
+
+void Router::regenerateStaticBuiltGraph(void)
+{
+ // Here we do talks involved in updating the static-built visibility
+ // graph (if necessary) before we do any routing.
+ if (m_static_orthogonal_graph_invalidated)
+ {
+ if (m_allows_orthogonal_routing)
+ {
+ destroyOrthogonalVisGraph();
+
+ TIMER_START(this, tmOrthogGraph);
+ // Regenerate a new visibility graph.
+ generateStaticOrthogonalVisGraph(this);
+
+ TIMER_STOP(this);
+ }
+ m_static_orthogonal_graph_invalidated = false;
+ }
+}
+
+
+bool Router::transactionUse(void) const
+{
+ return m_consolidate_actions;
+}
+
+
+void Router::setTransactionUse(const bool transactions)
+{
+ m_consolidate_actions = transactions;
+}
+
+
+// Processes the action list.
+void Router::processActions(void)
+{
+ bool notPartialTime = !(PartialFeedback && PartialTime);
+ bool seenShapeMovesOrDeletes = false;
+
+ m_transaction_start_time = clock();
+ m_abort_transaction = false;
+
+ std::list<unsigned int> deletedObstacles;
+ actionList.sort();
+ ActionInfoList::iterator curr;
+ ActionInfoList::iterator finish = actionList.end();
+ for (curr = actionList.begin(); curr != finish; ++curr)
+ {
+ ActionInfo& actInf = *curr;
+ if (!((actInf.type == ShapeRemove) || (actInf.type == ShapeMove) ||
+ (actInf.type == JunctionRemove) || (actInf.type == JunctionMove)))
+ {
+ // Not a move or remove action, so don't do anything.
+ continue;
+ }
+ seenShapeMovesOrDeletes = true;
+
+ Obstacle *obstacle = actInf.obstacle();
+ ShapeRef *shape = actInf.shape();
+ JunctionRef *junction = actInf.junction();
+ bool isMove = (actInf.type == ShapeMove) ||
+ (actInf.type == JunctionMove);;
+ bool first_move = actInf.firstMove;
+
+ unsigned int pid = obstacle->id();
+
+ // o Remove entries related to this shape's vertices
+ obstacle->removeFromGraph();
+
+ if (SelectiveReroute && (!isMove || notPartialTime || first_move))
+ {
+ markPolylineConnectorsNeedingReroutingForDeletedObstacle(obstacle);
+ }
+
+ adjustContainsWithDel(pid);
+
+ if (isMove)
+ {
+ if (shape)
+ {
+ shape->moveAttachedConns(actInf.newPoly);
+ }
+ else if (junction)
+ {
+ junction->moveAttachedConns(actInf.newPosition);
+ }
+ }
+
+ // Ignore this shape for visibility.
+ // XXX: We don't really need to do this if we're not using Partial
+ // Feedback. Without this the blocked edges still route
+ // around the shape until it leaves the connector.
+ obstacle->makeInactive();
+
+ if (!isMove)
+ {
+ // Free deleted obstacle.
+ m_currently_calling_destructors = true;
+ deletedObstacles.push_back(obstacle->id());
+ delete obstacle;
+ m_currently_calling_destructors = false;
+ }
+ }
+
+ if (seenShapeMovesOrDeletes && m_allows_polyline_routing)
+ {
+ if (InvisibilityGrph)
+ {
+ // Check edges for obstacles that were moved or removed.
+ for (curr = actionList.begin(); curr != finish; ++curr)
+ {
+ ActionInfo& actInf = *curr;
+ if ((actInf.type == ShapeMove) || (actInf.type == JunctionMove))
+ {
+ // o Check all edges that were blocked by moved obstacle.
+ checkAllBlockedEdges(actInf.obstacle()->id());
+ }
+ }
+
+ for (std::list<unsigned int>::iterator it = deletedObstacles.begin();
+ it != deletedObstacles.end(); ++it)
+ {
+ // o Check all edges that were blocked by deleted obstacle.
+ checkAllBlockedEdges(*it);
+ }
+ }
+ else
+ {
+ // check all edges not in graph
+ checkAllMissingEdges();
+ }
+ }
+
+ for (curr = actionList.begin(); curr != finish; ++curr)
+ {
+ ActionInfo& actInf = *curr;
+ if (!((actInf.type == ShapeAdd) || (actInf.type == ShapeMove) ||
+ (actInf.type == JunctionAdd) || (actInf.type == JunctionMove)))
+ {
+ // Not a move or add action, so don't do anything.
+ continue;
+ }
+
+ Obstacle *obstacle = actInf.obstacle();
+ ShapeRef *shape = actInf.shape();
+ JunctionRef *junction = actInf.junction();
+ Polygon& newPoly = actInf.newPoly;
+ bool isMove = (actInf.type == ShapeMove) ||
+ (actInf.type == JunctionMove);
+
+ unsigned int pid = obstacle->id();
+
+ // Restore this shape for visibility.
+ obstacle->makeActive();
+
+ if (isMove)
+ {
+ if (shape)
+ {
+ shape->setNewPoly(newPoly);
+ }
+ else
+ {
+ junction->setPosition(actInf.newPosition);
+ }
+ }
+ const Polygon& shapePoly = obstacle->routingPolygon();
+
+ adjustContainsWithAdd(shapePoly, pid);
+
+ if (m_allows_polyline_routing)
+ {
+ // o Check all visibility edges to see if this one shape
+ // blocks them.
+ if (!isMove || notPartialTime)
+ {
+ newBlockingShape(shapePoly, pid);
+ }
+
+ // o Calculate visibility for the new vertices.
+ if (UseLeesAlgorithm)
+ {
+ obstacle->computeVisibilitySweep();
+ }
+ else
+ {
+ obstacle->computeVisibilityNaive();
+ }
+ obstacle->updatePinPolyLineVisibility();
+ }
+ }
+
+ // Update connector endpoints.
+ for (curr = actionList.begin(); curr != finish; ++curr)
+ {
+ ActionInfo& actInf = *curr;
+ if (actInf.type != ConnChange)
+ {
+ continue;
+ }
+ for (ConnUpdateList::iterator conn = actInf.conns.begin();
+ conn != actInf.conns.end(); ++conn)
+ {
+ actInf.conn()->updateEndPoint(conn->first, conn->second);
+ }
+ }
+ // Clear the actionList.
+ actionList.clear();
+}
+
+bool Router::processTransaction(void)
+{
+ // If SimpleRouting, then don't update here.
+ if ((actionList.empty() && (m_hyperedge_rerouter.count() == 0) &&
+ (m_settings_changes == false)) || SimpleRouting)
+ {
+ return false;
+ }
+ m_settings_changes = false;
+
+ processActions();
+
+ m_static_orthogonal_graph_invalidated = true;
+ rerouteAndCallbackConnectors();
+
+ return true;
+}
+
+
+void Router::addJunction(JunctionRef *junction)
+{
+ // There shouldn't be remove events or move events for the same junction
+ // already in the action list.
+ // XXX: Possibly we could handle this by ordering them intelligently.
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(JunctionRemove, junction)) == actionList.end());
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(JunctionMove, junction)) == actionList.end());
+
+ ActionInfo addInfo(JunctionAdd, junction);
+
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), addInfo);
+ if (found == actionList.end())
+ {
+ actionList.push_back(addInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::deleteJunction(JunctionRef *junction)
+{
+ // There shouldn't be add events events for the same junction already
+ // in the action list.
+ // XXX: Possibly we could handle this by ordering them intelligently.
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(JunctionAdd, junction)) == actionList.end());
+
+ // Delete any ShapeMove entries for this shape in the action list.
+ ActionInfoList::iterator found = find(actionList.begin(),
+ actionList.end(), ActionInfo(JunctionMove, junction));
+ if (found != actionList.end())
+ {
+ actionList.erase(found);
+ }
+
+ // Add the ShapeRemove entry.
+ ActionInfo remInfo(JunctionRemove, junction);
+ found = find(actionList.begin(), actionList.end(), remInfo);
+ if (found == actionList.end())
+ {
+ actionList.push_back(remInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+
+void Router::moveJunction(JunctionRef *junction, const double xDiff,
+ const double yDiff)
+{
+ ActionInfo moveInfo(JunctionMove, junction, Point());
+ ActionInfoList::iterator found =
+ find(actionList.begin(), actionList.end(), moveInfo);
+
+ Point newPosition;
+ if (found != actionList.end())
+ {
+ // The junction already has a queued move, so use that position.
+ newPosition = found->newPosition;
+ }
+ else
+ {
+ // Just use the existing position.
+ newPosition = junction->position();
+ }
+ newPosition.x += xDiff;
+ newPosition.y += yDiff;
+
+ moveJunction(junction, newPosition);
+}
+
+
+void Router::moveJunction(JunctionRef *junction, const Point& newPosition)
+{
+ // There shouldn't be remove events or add events for the same junction
+ // already in the action list.
+ // XXX: Possibly we could handle this by ordering them intelligently.
+ COLA_ASSERT(find(actionList.begin(), actionList.end(),
+ ActionInfo(JunctionRemove, junction)) == actionList.end());
+
+ ActionInfoList::iterator found = find(actionList.begin(),
+ actionList.end(), ActionInfo(JunctionAdd, junction));
+ if (found != actionList.end())
+ {
+ // The Add is enough, no need for the Move action too.
+ // The junction will be added with the new position.
+ found->junction()->setPosition(newPosition);
+ return;
+ }
+
+ ActionInfo moveInfo(JunctionMove, junction, newPosition);
+ // Sanely cope with the case where the user requests moving the same
+ // shape multiple times before rerouting connectors.
+ found = find(actionList.begin(), actionList.end(), moveInfo);
+
+ if (found != actionList.end())
+ {
+ // Just update the ActionInfo with the second position.
+ found->newPosition = newPosition;
+ }
+ else
+ {
+ actionList.push_back(moveInfo);
+ }
+
+ if (!m_consolidate_actions)
+ {
+ processTransaction();
+ }
+}
+
+void Router::addCluster(ClusterRef *cluster)
+{
+ cluster->makeActive();
+
+ unsigned int pid = cluster->id();
+ ReferencingPolygon& poly = cluster->polygon();
+
+ adjustClustersWithAdd(poly, pid);
+}
+
+
+void Router::deleteCluster(ClusterRef *cluster)
+{
+ cluster->makeInactive();
+
+ unsigned int pid = cluster->id();
+
+ adjustClustersWithDel(pid);
+}
+
+
+unsigned int Router::newObjectId(void) const
+{
+ return m_largest_assigned_id + 1;
+}
+
+
+unsigned int Router::assignId(const unsigned int suggestedId)
+{
+ // If the suggestedId is zero, then we assign the object the next
+ // smallest unassigned ID, otherwise we trust the ID given is unique.
+ unsigned int assignedId = (suggestedId == 0) ? newObjectId() : suggestedId;
+
+ // If assertions are enabled, then we check that this ID really is unique.
+ COLA_ASSERT(objectIdIsUnused(assignedId));
+
+ // Have the router record if this ID is larger than the largest assigned ID.
+ m_largest_assigned_id = std::max(m_largest_assigned_id, assignedId);
+
+ return assignedId;
+}
+
+
+ // Returns whether the given ID is unique among all objects known by the
+ // router. It is expected this is only going to be called from assertions
+ // while debugging, so efficiency is not an issue and we just iterate over
+ // all objects.
+bool Router::objectIdIsUnused(const unsigned int id) const
+{
+ // Examine shapes/junctions.
+ for (ObstacleList::const_iterator i = m_obstacles.begin();
+ i != m_obstacles.end(); ++i)
+ {
+ if ((*i)->id() == id)
+ {
+ return false;
+ }
+ }
+
+ // Examine connectors.
+ for (ConnRefList::const_iterator i = connRefs.begin();
+ i != connRefs.end(); ++i)
+ {
+ if ((*i)->id() == id)
+ {
+ return false;
+ }
+ }
+
+ // Examine clusters.
+ for (ClusterRefList::const_iterator i = clusterRefs.begin();
+ i != clusterRefs.end(); ++i)
+ {
+ if ((*i)->id() == id)
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+//----------------------------------------------------------------------------
+
+ // Returns a list of connector Ids of all the connectors of type
+ // 'type' attached to the shape with the ID 'shapeId'.
+void Router::attachedConns(IntList &conns, const unsigned int shapeId,
+ const unsigned int type)
+{
+ ConnRefList::const_iterator fin = connRefs.end();
+ for (ConnRefList::const_iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ std::pair<Obstacle *, Obstacle *> anchors = (*i)->endpointAnchors();
+
+ if ((type & runningTo) &&
+ (anchors.second && (anchors.second->id() == shapeId)))
+ {
+ conns.push_back((*i)->id());
+ }
+ else if ((type & runningFrom) &&
+ (anchors.first && (anchors.first->id() == shapeId)))
+ {
+ conns.push_back((*i)->id());
+ }
+ }
+}
+
+
+ // Returns a list of shape Ids of all the shapes attached to the
+ // shape with the ID 'shapeId' with connection type 'type'.
+void Router::attachedShapes(IntList &shapes, const unsigned int shapeId,
+ const unsigned int type)
+{
+ ConnRefList::const_iterator fin = connRefs.end();
+ for (ConnRefList::const_iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ std::pair<Obstacle *, Obstacle *> anchors = (*i)->endpointAnchors();
+
+ if ((type & runningTo) &&
+ (anchors.second && (anchors.second->id() == shapeId)))
+ {
+ if (anchors.first)
+ {
+ // Only if there is a shape attached to the other end.
+ shapes.push_back(anchors.first->id());
+ }
+ }
+ else if ((type & runningFrom) &&
+ (anchors.first && (anchors.first->id() == shapeId)))
+ {
+ if (anchors.second)
+ {
+ // Only if there is a shape attached to the other end.
+ shapes.push_back(anchors.second->id());
+ }
+ }
+ }
+}
+
+
+ // It's intended this function is called after visibility changes
+ // resulting from shape movement have happened. It will alert
+ // rerouted connectors (via a callback) that they need to be redrawn.
+void Router::rerouteAndCallbackConnectors(void)
+{
+ ConnRefList reroutedConns;
+ ConnRefList::const_iterator fin = connRefs.end();
+
+ this->m_conn_reroute_flags.alertConns();
+
+ // Updating the orthogonal visibility graph if necessary.
+ regenerateStaticBuiltGraph();
+
+ for (ConnRefList::const_iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ (*i)->freeActivePins();
+ }
+
+ // Calculate and return connectors that are part of hyperedges and will
+ // be completely rerouted by that code and thus don't need to have routes
+ // generated here.
+ ConnRefSet hyperedgeConns =
+ m_hyperedge_rerouter.calcHyperedgeConnectors();
+
+ // TODO: It might be worth sorting connectors and routing them from
+ // smallest to largest estimated cost. This way we likely get
+ // better exclusive pin assignment during initial routing.
+
+ size_t totalConns = connRefs.size();
+ size_t numOfReroutedConns = 0;
+ for (ConnRefList::const_iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ // Progress reporting and continuation check.
+ performContinuationCheck(TransactionPhaseRouteSearch,
+ numOfReroutedConns, totalConns);
+ ++numOfReroutedConns;
+
+ ConnRef *connector = *i;
+ if (hyperedgeConns.find(connector) != hyperedgeConns.end())
+ {
+ // This will be rerouted by the hyperedge code, so do nothing.
+ continue;
+ }
+
+ if (connector->hasFixedRoute())
+ {
+ // We don't reroute connectors with fixed routes.
+ continue;
+ }
+
+ TIMER_START(this, tmOrthogRoute);
+ connector->m_needs_repaint = false;
+ bool rerouted = connector->generatePath();
+ if (rerouted)
+ {
+ reroutedConns.push_back(connector);
+ }
+ TIMER_STOP(this);
+ }
+
+
+ // Perform any complete hyperedge rerouting that has been requested.
+ m_hyperedge_rerouter.performRerouting();
+
+ // Find and reroute crossing connectors if crossing penalties are set.
+ improveCrossings();
+
+ bool withMinorImprovements = routingOption(
+ improveHyperedgeRoutesMovingJunctions);
+ bool withMajorImprovements = routingOption(
+ improveHyperedgeRoutesMovingAddingAndDeletingJunctions);
+ if (withMinorImprovements || withMajorImprovements)
+ {
+ m_hyperedge_improver.clear();
+ m_hyperedge_improver.execute(withMajorImprovements);
+ }
+
+ // Perform centring and nudging for orthogonal routes.
+ improveOrthogonalRoutes(this);
+
+ // Find a list of all the deleted connectors in hyperedges.
+ HyperedgeNewAndDeletedObjectLists changedHyperedgeObjs =
+ m_hyperedge_improver.newAndDeletedObjectLists();
+ ConnRefList deletedConns = changedHyperedgeObjs.deletedConnectorList;
+ for (size_t index = 0; index < m_hyperedge_rerouter.count(); ++index)
+ {
+ changedHyperedgeObjs =
+ m_hyperedge_rerouter.newAndDeletedObjectLists(index);
+ deletedConns.merge(changedHyperedgeObjs.deletedConnectorList);
+ }
+
+ // Alert connectors that they need redrawing.
+ fin = reroutedConns.end();
+ for (ConnRefList::const_iterator i = reroutedConns.begin(); i != fin; ++i)
+ {
+ ConnRef *conn = *i;
+
+ // Skip hyperedge connectors which have been deleted.
+ ConnRefList::iterator findIt = std::find(
+ deletedConns.begin(), deletedConns.end(), conn);
+ if (findIt != deletedConns.end())
+ {
+ // Connector deleted, skip.
+ continue;
+ }
+
+ conn->m_needs_repaint = true;
+ conn->performCallback();
+ }
+
+ // Progress reporting.
+ performContinuationCheck(TransactionPhaseCompleted, 1, 1);
+}
+
+// Type holding a cost estimate and ConnRef.
+typedef std::pair<double, ConnRef *> ConnCostRef;
+
+// A comparison class used to order a set of ConnCostRefs.
+class CmpConnCostRef
+{
+ public:
+ CmpConnCostRef()
+ {
+ }
+ bool operator() (const ConnCostRef& u, const ConnCostRef& v) const
+ {
+ return (u.second->id() < v.second->id());
+ }
+};
+
+typedef std::set<ConnCostRef, CmpConnCostRef> ConnCostRefSet;
+typedef std::list<ConnCostRefSet> ConnCostRefSetList;
+
+
+static double cheapEstimatedCost(ConnRef *lineRef)
+{
+ // We use an estimate of overall connector length, reduced by a count
+ // of the number of segments. In the case of equal length, This causes
+ // straight line connectors to be left alone and connectors with more
+ // complex paths to be rerouted.
+ bool isPolyLine = (lineRef->routingType() == ConnType_PolyLine);
+ const PolyLine& route = lineRef->displayRoute();
+ double length = 0;
+
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ const Point& a = route.ps[i - 1];
+ const Point& b = route.ps[i];
+
+ double segmentLength = (isPolyLine) ?
+ euclideanDist(a, b) : manhattanDist(a, b);
+ length += segmentLength;
+ }
+ return length - (route.size() + 1);
+}
+
+// A map of connectors to the set of connectors that cross them.
+typedef std::map<ConnRef *, std::set<ConnRef *> > CrossingConnectorsMap;
+
+// A list of connector crossing maps that don't interact with each other.
+typedef std::list<CrossingConnectorsMap> CrossingConnectorsMapList;
+
+// This class maintains the list of connector crossing maps and provides
+// methods for adding crossing connector pairs and getting the minimal sets
+// of connectors that can be removed from each group to prevent crossings.
+class CrossingConnectorsInfo
+{
+ public:
+
+ // Add information that a pair of connectors cross.
+ void addCrossing(ConnRef *conn1, ConnRef *conn2)
+ {
+ // Find the existing or new group that this crossing
+ // should be recorded in.
+ CrossingConnectorsMapList::iterator it =
+ groupForCrossingConns(conn1, conn2);
+ CrossingConnectorsMap& pairsSet = *it;
+
+ // Record the crossing.
+ pairsSet[conn1].insert(conn2);
+ pairsSet[conn2].insert(conn1);
+ }
+
+ // This method builds and returns a list of non-interacting sets of
+ // connectors (with crossing counts) that need to be removed so there
+ // are no crossings. These are the connectors we reroute. Where
+ // these connectors attach to exclusive connection pins, we return
+ // and thus reroute all connectors attached to the exlcusive pins. We
+ // do this so we are no so committed to possible bad pin assignemnts.
+ ConnCostRefSetList crossingSetsListToRemoveCrossingsFromGroups(void)
+ {
+ // A list of the minimal sets of connectors that cause crossings
+ // in all groups of crossingconnectors.
+ ConnCostRefSetList crossingSetsList;
+
+ // For each group of crossing connectors.
+ for (CrossingConnectorsMapList::iterator it = pairsSetList.begin();
+ it != pairsSetList.end(); ++it)
+ {
+ // The minimal set of crossing-causing connectors.
+ // We will build this.
+ ConnCostRefSet crossingSet;
+
+ // Set of exclusive pins that the crossing-causing connectors
+ // attach to.
+ std::set<ConnectionPinIds> exclusivePins;
+
+ // The group of all crossing pairs.
+ CrossingConnectorsMap& pairsSet = *it;
+
+ // For each crossing-causing connector.
+ ConnCostRef crossingCausingConnector;
+ while ( (crossingCausingConnector =
+ removeConnectorWithMostCrossings(pairsSet)).second != nullptr )
+ {
+ // Add it to our crossing-causing set.
+ crossingSet.insert(crossingCausingConnector);
+
+ // Determine if it attaches to any exclusive pins and
+ // record these.
+ std::pair<ConnEnd, ConnEnd> ends =
+ crossingCausingConnector.second->endpointConnEnds();
+ // Look at one end.
+ ShapeConnectionPin *pin = ends.first.m_active_pin;
+ if (pin && pin->isExclusive())
+ {
+ exclusivePins.insert(pin->ids());
+ }
+ // Look at other end.
+ pin = ends.second.m_active_pin;
+ if (pin && pin->isExclusive())
+ {
+ exclusivePins.insert(pin->ids());
+ }
+ }
+
+ // For each of the remaining connectors which are not
+ // crossing-causing, add them to our crossing set if they
+ // attach to one of the exclusive pin classes which the
+ // crossing-causing connectors attached to.
+ for (CrossingConnectorsMap::const_iterator it2 =
+ pairsSet.begin(); it2 != pairsSet.end(); ++it2)
+ {
+ ConnRef *conn = it2->first;
+ std::pair<ConnEnd, ConnEnd> ends = conn->endpointConnEnds();
+ // Look at one end.
+ ShapeConnectionPin *pin = ends.first.m_active_pin;
+ if (pin && pin->isExclusive())
+ {
+ if (exclusivePins.count(pin->ids()) > 0)
+ {
+ // Attaches to an exclusive pin and it matches
+ // one attached to by the crossing-causing
+ // connectors. So add the conn to the
+ // crossing set and continue..
+ crossingSet.insert(std::make_pair(0, conn));
+ continue;
+ }
+ }
+ // Look at other end.
+ pin = ends.second.m_active_pin;
+ if (pin && pin->isExclusive())
+ {
+ if (exclusivePins.count(pin->ids()) > 0)
+ {
+ // Attaches to an exclusive pin and it matches
+ // one attached to by the crossing-causing
+ // connectors. So add the conn to the
+ // crossing set.
+ crossingSet.insert(std::make_pair(0, conn));
+ }
+ }
+ }
+
+ if (!crossingSet.empty())
+ {
+ crossingSetsList.push_back(crossingSet);
+ }
+ }
+ return crossingSetsList;
+ }
+
+ // Returns whether this pair of connector is already known to cross.
+ bool connsKnownToCross(ConnRef *conn1, ConnRef *conn2)
+ {
+ CrossingConnectorsMapList::iterator it1 = groupForConn(conn1);
+ CrossingConnectorsMapList::iterator it2 = groupForConn(conn2);
+
+ // The connectors cross if
+ if ((it1 == it2) && (it1 != pairsSetList.end()))
+ {
+ // They are in the same group and conn2 is in crossing
+ // connectors set of conn1.
+ CrossingConnectorsMap& pairsSet = *it1;
+ return ((pairsSet.count(conn1) > 0) &&
+ (pairsSet[conn1].count(conn2) > 0));
+ }
+ return false;
+ }
+
+ private:
+
+ // Given a particular group (pairsSet), removes the connector with
+ // the most crossings withing the group and returns it along with its
+ // crossing count.
+ ConnCostRef removeConnectorWithMostCrossings(
+ CrossingConnectorsMap& pairsSet)
+ {
+ // Tracking of the greatest number of crossings.
+ ConnRef *candidateConnector = nullptr;
+ size_t candidateCrossingCount = 0;
+ double candidateEstimatedCost = 0;
+
+ // For each connector in the group...
+ for (CrossingConnectorsMap::const_iterator it = pairsSet.begin();
+ it != pairsSet.end(); ++it)
+ {
+ // ... check if it has any crossings.
+ size_t crossings = it->second.size();
+ if (crossings == 0)
+ {
+ // If not, skip.
+ continue;
+ }
+
+ // It has crossings. Determine if it has the most crossings
+ // of the connectors we've seen, or if it is tied but has
+ // a greater estimated cost. If so, it is our new candidate.
+ double cost = cheapEstimatedCost(it->first);
+ if ((crossings > candidateCrossingCount) ||
+ ((crossings == candidateCrossingCount) &&
+ (cost > candidateEstimatedCost)))
+ {
+ // Update with new candidate.
+ candidateConnector = it->first;
+ candidateCrossingCount = crossings;
+ candidateEstimatedCost = cost;
+ }
+ }
+
+ if (candidateConnector == nullptr)
+ {
+ // If no candidate, return nullptr connector.
+ return std::make_pair(0, (ConnRef *) nullptr);
+ }
+
+ // Remove the candidate from the group. To do this we find the
+ // set of all connectors it crosses.
+ std::set<ConnRef *>& connSet = pairsSet[candidateConnector];
+ // For each of these
+ for (std::set<ConnRef *>::const_iterator it = connSet.begin();
+ it != connSet.end(); ++it)
+ {
+ // we remove the candidate from their crossing lists
+ pairsSet[*it].erase(candidateConnector);
+ }
+ // And then clear the crossing list for the candidate itself.
+ connSet.clear();
+
+ // Return the candidate connector and its original crossing count.
+ return std::make_pair(static_cast<double>(candidateCrossingCount), candidateConnector);
+ }
+
+ // Returns the iterator to the group that the given conn is in,
+ // if it is part of any crossing group.
+ CrossingConnectorsMapList::iterator groupForConn(ConnRef *conn)
+ {
+ // For each group...
+ for (CrossingConnectorsMapList::iterator it = pairsSetList.begin();
+ it != pairsSetList.end(); ++it)
+ {
+ // ... check if the connector is in it.
+ if (it->count(conn) > 0)
+ {
+ // If so, return it.
+ return it;
+ }
+ }
+ // Connector was not in any existing group.
+ return pairsSetList.end();
+ }
+
+ // Given a pair of crossing connectors, returns an iterator to the
+ // crossing connector group they are part of. If neither are part
+ // of any group, one is created and returned. If one connector is
+ // part of an exisitng group, that group is returned. If they are
+ // part of two different groups, the groups are merged and the
+ // merged group is returned.
+ CrossingConnectorsMapList::iterator groupForCrossingConns(
+ ConnRef *conn1, ConnRef *conn2)
+ {
+ CrossingConnectorsMapList::iterator it1 = groupForConn(conn1);
+ CrossingConnectorsMapList::iterator it2 = groupForConn(conn2);
+
+ // groupIt will be the iterator to the appropriate group.
+ CrossingConnectorsMapList::iterator groupIt = pairsSetList.end();
+
+ if ((it1 == pairsSetList.end()) && (it2 == pairsSetList.end()))
+ {
+ // Neither are part of a group. Create one.
+ CrossingConnectorsMap newSet;
+ groupIt = pairsSetList.insert(pairsSetList.end(), newSet);
+ }
+ else if ((it1 != pairsSetList.end()) && (it2 == pairsSetList.end()))
+ {
+ // it1 is the appropriate existing group.
+ groupIt = it1;
+ }
+ else if ((it1 == pairsSetList.end()) && (it2 != pairsSetList.end()))
+ {
+ // it2 is the appropriate exisitng group.
+ groupIt = it2;
+ }
+ else if (it1 != it2)
+ {
+ // There are two different existing groups, so merge them.
+ COLA_ASSERT(it1 != pairsSetList.end());
+ COLA_ASSERT(it2 != pairsSetList.end());
+ it1->insert(it2->begin(), it2->end());
+ pairsSetList.erase(it2);
+ groupIt = it1;
+ }
+ else
+ {
+ // These are already part of the same group. Do nothing.
+ COLA_ASSERT(it1 == it2);
+ groupIt = it1;
+ }
+ return groupIt;
+ }
+
+ CrossingConnectorsMapList pairsSetList;
+};
+
+
+void Router::performContinuationCheck(unsigned int phaseNumber,
+ size_t stepNumber, size_t totalSteps)
+{
+ // Compute the elapsed time in msec since the beginning of the transaction.
+ unsigned int elapsedMsec = (unsigned int)
+ ((clock() - m_transaction_start_time) /
+ (CLOCKS_PER_SEC / (double) 1000));
+
+ bool shouldContinue = shouldContinueTransactionWithProgress(elapsedMsec,
+ phaseNumber, TransactionPhaseCompleted,
+ stepNumber / (double)totalSteps);
+ if (shouldContinue == false)
+ {
+ // Host program has asked us not to continue the transaction.
+ m_abort_transaction = true;
+ }
+}
+
+
+bool Router::shouldContinueTransactionWithProgress(unsigned int elapsedTime,
+ unsigned int phaseNumber, unsigned int totalPhases,
+ double proportion)
+{
+ COLA_UNUSED(elapsedTime);
+ COLA_UNUSED(phaseNumber);
+ COLA_UNUSED(totalPhases);
+ COLA_UNUSED(proportion);
+
+#if 0
+ printf("Progress: %8u, phase %u of %u... %.2f%%\n", elapsedTime,
+ phaseNumber, totalPhases, proportion * 100);
+#endif
+
+ // We always continue. Subclasses can override this behaviour.
+ return true;
+}
+
+
+class CmpOrderedConnCostRef
+{
+ public:
+ CmpOrderedConnCostRef()
+ {
+ }
+ bool operator() (const ConnCostRef& u, const ConnCostRef& v) const
+ {
+ return (u.first < v.first);
+ }
+};
+typedef std::list<ConnCostRef> ConnCostRefList;
+
+
+void Router::improveCrossings(void)
+{
+ const double crossing_penalty = routingParameter(crossingPenalty);
+ const double shared_path_penalty = routingParameter(fixedSharedPathPenalty);
+ if ((crossing_penalty == 0) && (shared_path_penalty == 0))
+ {
+ // No penalties, return.
+ return;
+ }
+
+ // Information on crossing connector groups.
+ CrossingConnectorsInfo crossingConnInfo;
+
+ size_t numOfConns = connRefs.size();
+ size_t numOfConnsChecked = 0;
+
+ // Find crossings and reroute connectors.
+ m_in_crossing_rerouting_stage = true;
+ ConnRefList::iterator fin = connRefs.end();
+ for (ConnRefList::iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ // Progress reporting and continuation check.
+ ++numOfConnsChecked;
+ performContinuationCheck(TransactionPhaseCrossingDetection,
+ numOfConnsChecked, numOfConns);
+ if (m_abort_transaction)
+ {
+ m_in_crossing_rerouting_stage = false;
+ return;
+ }
+
+ Avoid::Polygon& iRoute = (*i)->routeRef();
+ if (iRoute.size() == 0)
+ {
+ // Rerouted hyperedges will have an empty route.
+ // We can't reroute these.
+ continue;
+ }
+ ConnRefList::iterator j = i;
+ for (++j; j != fin; ++j)
+ {
+ if (crossingConnInfo.connsKnownToCross(*i, *j))
+ {
+ // We already know both these have crossings.
+ continue;
+ }
+
+ // Determine if this pair cross.
+ Avoid::Polygon& jRoute = (*j)->routeRef();
+ ConnectorCrossings cross(iRoute, true, jRoute, *i, *j);
+ for (size_t jInd = 1; jInd < jRoute.size(); ++jInd)
+ {
+ const bool finalSegment = ((jInd + 1) == jRoute.size());
+ cross.countForSegment(jInd, finalSegment);
+
+ if ((shared_path_penalty > 0) &&
+ (cross.crossingFlags & CROSSING_SHARES_PATH) &&
+ (cross.crossingFlags & CROSSING_SHARES_FIXED_SEGMENT) &&
+ (m_routing_options[penaliseOrthogonalSharedPathsAtConnEnds] ||
+ !(cross.crossingFlags & CROSSING_SHARES_PATH_AT_END)))
+ {
+ // We are penalising fixedSharedPaths and there is a
+ // fixedSharedPath.
+ crossingConnInfo.addCrossing(*i, *j);
+ break;
+ }
+ else if ((crossing_penalty > 0) && (cross.crossingCount > 0))
+ {
+ // We are penalising crossings and this is a crossing.
+ crossingConnInfo.addCrossing(*i, *j);
+ break;
+ }
+ }
+ }
+ }
+
+ // Find the list of connector sets that need to be removed to avoid any
+ // crossings in all crossing groups. This is our candidate set for
+ // rerouting. Where these connectors connect to exlusive pins, all
+ // connectors attached to exclusive pins with the same IDs will also
+ // be rerouted, starting with the shortest.
+ ConnCostRefSetList crossingConnsGroups =
+ crossingConnInfo.crossingSetsListToRemoveCrossingsFromGroups();
+
+ // At this point we have a list containing crossings for rerouting.
+ // We do this rerouting via two passes, for each group of interacting
+ // crossing connectors:
+ // 1) clear existing routes and free pin assignments, and
+ // 2) compute new routes.
+ unsigned int numOfConnsToReroute = 1;
+ unsigned int numOfConnsRerouted = 1;
+ for (ConnCostRefSetList::iterator setIt = crossingConnsGroups.begin();
+ setIt != crossingConnsGroups.end(); ++setIt)
+ {
+ // Sort the connectors we will be rerouting from lowest to
+ // highest cost.
+ ConnCostRefList orderedConnList(setIt->begin(), setIt->end());
+ orderedConnList.sort(CmpOrderedConnCostRef());
+
+ // Perform rerouting of this set of connectors.
+ for (int pass = 0; pass < 2; ++pass)
+ {
+ for (ConnCostRefList::iterator connIt = orderedConnList.begin();
+ connIt != orderedConnList.end(); ++connIt)
+ {
+ ConnRef *conn = connIt->second;
+ if (pass == 0)
+ {
+ ++numOfConnsToReroute;
+
+ // Mark the fixed shared path as being invalid.
+ conn->makePathInvalid();
+
+ // Free the previous path, so it is not noticed by other
+ // connectors during rerouting.
+ conn->freeRoutes();
+
+ // Free pin assignments.
+ conn->freeActivePins();
+ }
+ else if (pass == 1)
+ {
+ // Progress reporting and continuation check.
+ performContinuationCheck(TransactionPhaseRerouteSearch,
+ numOfConnsRerouted, numOfConnsToReroute);
+ if (m_abort_transaction)
+ {
+ m_in_crossing_rerouting_stage = false;
+ return;
+ }
+ ++numOfConnsRerouted;
+
+ // Recompute this path.
+ conn->generatePath();
+ }
+ }
+ }
+ }
+ m_in_crossing_rerouting_stage = false;
+}
+
+
+void Router::newBlockingShape(const Polygon& poly, int pid)
+{
+ // o Check all visibility edges to see if this one shape
+ // blocks them.
+ EdgeInf *finish = visGraph.end();
+ for (EdgeInf *iter = visGraph.begin(); iter != finish ; )
+ {
+ EdgeInf *tmp = iter;
+ iter = iter->lstNext;
+
+ if (tmp->getDist() != 0)
+ {
+ std::pair<VertID, VertID> ids(tmp->ids());
+ VertID eID1 = ids.first;
+ VertID eID2 = ids.second;
+ std::pair<Point, Point> points(tmp->points());
+ Point e1 = points.first;
+ Point e2 = points.second;
+ bool blocked = false;
+
+ bool countBorder = false;
+ bool ep_in_poly1 = (eID1.isConnPt()) ?
+ inPoly(poly, e1, countBorder) : false;
+ bool ep_in_poly2 = (eID2.isConnPt()) ?
+ inPoly(poly, e2, countBorder) : false;
+ if (ep_in_poly1 || ep_in_poly2)
+ {
+ // Don't check edges that have a connector endpoint
+ // and are inside the shape being added.
+ continue;
+ }
+
+ bool seenIntersectionAtEndpoint = false;
+ for (size_t pt_i = 0; pt_i < poly.size(); ++pt_i)
+ {
+ size_t pt_n = (pt_i == (poly.size() - 1)) ? 0 : pt_i + 1;
+ const Point& pi = poly.ps[pt_i];
+ const Point& pn = poly.ps[pt_n];
+ if (segmentShapeIntersect(e1, e2, pi, pn,
+ seenIntersectionAtEndpoint))
+ {
+ blocked = true;
+ break;
+ }
+ }
+ if (blocked)
+ {
+ db_printf("\tRemoving newly blocked edge (by shape %3d)"
+ "... \n\t\t", pid);
+ tmp->alertConns();
+ tmp->db_print();
+ if (InvisibilityGrph)
+ {
+ tmp->addBlocker(pid);
+ }
+ else
+ {
+ delete tmp;
+ }
+ }
+ }
+ }
+}
+
+
+void Router::checkAllBlockedEdges(int pid)
+{
+ COLA_ASSERT(InvisibilityGrph);
+
+ for (EdgeInf *iter = invisGraph.begin(); iter != invisGraph.end() ; )
+ {
+ EdgeInf *tmp = iter;
+ iter = iter->lstNext;
+
+ if (tmp->blocker() == -1)
+ {
+ tmp->alertConns();
+ tmp->checkVis();
+ }
+ else if (tmp->blocker() == pid)
+ {
+ tmp->checkVis();
+ }
+ }
+}
+
+
+void Router::checkAllMissingEdges(void)
+{
+ COLA_ASSERT(!InvisibilityGrph);
+
+ VertInf *first = vertices.connsBegin();
+
+ VertInf *pend = vertices.end();
+ for (VertInf *i = first; i != pend; i = i->lstNext)
+ {
+ VertID iID = i->id;
+
+ // Check remaining, earlier vertices
+ for (VertInf *j = first ; j != i; j = j->lstNext)
+ {
+ VertID jID = j->id;
+ if (iID.isConnPt() && !iID.isConnectionPin() &&
+ (iID.objID != jID.objID))
+ {
+ // Don't keep visibility between edges of different conns
+ continue;
+ }
+
+ // See if the edge is already there?
+ bool found = (EdgeInf::existingEdge(i, j) != nullptr);
+
+ if (!found)
+ {
+ // Didn't already exist, check.
+ bool knownNew = true;
+ EdgeInf::checkEdgeVisibility(i, j, knownNew);
+ }
+ }
+ }
+}
+
+
+void Router::generateContains(VertInf *pt)
+{
+ contains[pt->id].clear();
+ enclosingClusters[pt->id].clear();
+
+ // Don't count points on the border as being inside.
+ bool countBorder = false;
+
+ // Compute enclosing shapes.
+ ObstacleList::const_iterator finish = m_obstacles.end();
+ for (ObstacleList::const_iterator i = m_obstacles.begin(); i != finish; ++i)
+ {
+ if (inPoly((*i)->routingPolygon(), pt->point, countBorder))
+ {
+ contains[pt->id].insert((*i)->id());
+ }
+ }
+
+ // Computer enclosing Clusters
+ ClusterRefList::const_iterator clFinish = clusterRefs.end();
+ for (ClusterRefList::const_iterator i = clusterRefs.begin();
+ i != clFinish; ++i)
+ {
+ if (inPolyGen((*i)->polygon(), pt->point))
+ {
+ enclosingClusters[pt->id].insert((*i)->id());
+ }
+ }
+}
+
+
+void Router::adjustClustersWithAdd(const PolygonInterface& poly,
+ const int p_cluster)
+{
+ for (VertInf *k = vertices.connsBegin(); k != vertices.shapesBegin();
+ k = k->lstNext)
+ {
+ if (inPolyGen(poly, k->point))
+ {
+ enclosingClusters[k->id].insert(p_cluster);
+ }
+ }
+}
+
+
+void Router::adjustClustersWithDel(const int p_cluster)
+{
+ for (ContainsMap::iterator k = enclosingClusters.begin();
+ k != enclosingClusters.end(); ++k)
+ {
+ (*k).second.erase(p_cluster);
+ }
+}
+
+
+void Router::adjustContainsWithAdd(const Polygon& poly, const int p_shape)
+{
+ // Don't count points on the border as being inside.
+ bool countBorder = false;
+
+ for (VertInf *k = vertices.connsBegin(); k != vertices.shapesBegin();
+ k = k->lstNext)
+ {
+ if (inPoly(poly, k->point, countBorder))
+ {
+ contains[k->id].insert(p_shape);
+ }
+ }
+}
+
+
+void Router::adjustContainsWithDel(const int p_shape)
+{
+ for (ContainsMap::iterator k = contains.begin(); k != contains.end(); ++k)
+ {
+ (*k).second.erase(p_shape);
+ }
+}
+
+
+#ifdef SELECTIVE_DEBUG
+static double AngleAFromThreeSides(const double a, const double b,
+ const double c)
+{
+ // returns angle A, the angle opposite from side a, in radians
+ return acos((pow(b, 2) + pow(c, 2) - pow(a, 2)) / (2 * b * c));
+}
+#endif
+
+// Given an deleted obstacle, uses a simple heauristic to determine polyline
+// connectors that may now have a better path through the region occupied by
+// the shape and mark them as needing to be rerouted.
+// See the "Incremental Connector Routing" paper which explains this code.
+//
+void Router::markPolylineConnectorsNeedingReroutingForDeletedObstacle(
+ Obstacle *obstacle)
+{
+ if (RubberBandRouting)
+ {
+ // When rubber-band routing, we do not reroute connectors that
+ // may have a better route, only invalid connectors.
+ return;
+ }
+
+ COLA_ASSERT(SelectiveReroute);
+
+ // For each connector...
+ ConnRefList::const_iterator end = connRefs.end();
+ for (ConnRefList::const_iterator it = connRefs.begin(); it != end; ++it)
+ {
+ ConnRef *conn = (*it);
+
+ if (conn->m_route.empty())
+ {
+ // Ignore uninitialised connectors.
+ continue;
+ }
+ else if (conn->m_needs_reroute_flag)
+ {
+ // Already marked, so skip.
+ continue;
+ }
+ else if (conn->routingType() != ConnType_PolyLine)
+ {
+ // This test only works for polyline connectors, so skip others.
+ continue;
+ }
+
+ Point start = conn->m_route.ps[0];
+ Point end = conn->m_route.ps[conn->m_route.size() - 1];
+
+ double conndist = conn->m_route_dist;
+
+ double estdist;
+ double e1, e2;
+
+ // For each vertex of the obstacle...
+ VertInf *beginV = obstacle->firstVert();
+ VertInf *endV = obstacle->lastVert()->lstNext;
+ for (VertInf *i = beginV; i != endV; i = i->lstNext)
+ {
+ const Point& p1 = i->point;
+ const Point& p2 = i->shNext->point;
+
+ double offy;
+ double a;
+ double b;
+ double c;
+ double d;
+
+ double min;
+ double max;
+
+ if (p1.y == p2.y)
+ {
+ // Standard case
+ offy = p1.y;
+ a = start.x;
+ b = start.y - offy;
+ c = end.x;
+ d = end.y - offy;
+
+ min = std::min(p1.x, p2.x);
+ max = std::max(p1.x, p2.x);
+ }
+ else if (p1.x == p2.x)
+ {
+ // Other Standard case
+ offy = p1.x;
+ a = start.y;
+ b = start.x - offy;
+ c = end.y;
+ d = end.x - offy;
+
+ min = std::min(p1.y, p2.y);
+ max = std::max(p1.y, p2.y);
+ }
+ else
+ {
+ // Need to do rotation
+ Point n_p2(p2.x - p1.x, p2.y - p1.y);
+ Point n_start(start.x - p1.x, start.y - p1.y);
+ Point n_end(end.x - p1.x, end.y - p1.y);
+ //db_printf("n_p2: (%.1f, %.1f)\n", n_p2.x, n_p2.y);
+ //db_printf("n_start: (%.1f, %.1f)\n", n_start.x, n_start.y);
+ //db_printf("n_end: (%.1f, %.1f)\n", n_end.x, n_end.y);
+
+ double theta = 0 - atan2(n_p2.y, n_p2.x);
+ //db_printf("theta = %.2f\n", theta * (180 / PI));
+
+ Point r_p1(0, 0);
+ Point r_p2 = n_p2;
+ start = n_start;
+ end = n_end;
+
+ double cosv = cos(theta);
+ double sinv = sin(theta);
+
+ r_p2.x = cosv * n_p2.x - sinv * n_p2.y;
+ r_p2.y = cosv * n_p2.y + sinv * n_p2.x;
+ start.x = cosv * n_start.x - sinv * n_start.y;
+ start.y = cosv * n_start.y + sinv * n_start.x;
+ end.x = cosv * n_end.x - sinv * n_end.y;
+ end.y = cosv * n_end.y + sinv * n_end.x;
+ //db_printf("r_p2: (%.1f, %.1f)\n", r_p2.x, r_p2.y);
+ //db_printf("r_start: (%.1f, %.1f)\n", start.x, start.y);
+ //db_printf("r_end: (%.1f, %.1f)\n", end.x, end.y);
+
+ // This might be slightly off.
+ if (fabs(r_p2.y) > 0.0001)
+ {
+ db_printf("r_p2.y: %f != 0\n", r_p2.y);
+ }
+ r_p2.y = 0;
+
+ offy = r_p1.y;
+ a = start.x;
+ b = start.y - offy;
+ c = end.x;
+ d = end.y - offy;
+
+ min = std::min(r_p1.x, r_p2.x);
+ max = std::max(r_p1.x, r_p2.x);
+
+ }
+
+ double x;
+ if ((b + d) == 0)
+ {
+ db_printf("WARNING: (b + d) == 0\n");
+ d = d * -1;
+ }
+
+ if ((b == 0) && (d == 0))
+ {
+ db_printf("WARNING: b == d == 0\n");
+ if (((a < min) && (c < min)) ||
+ ((a > max) && (c > max)))
+ {
+ // It's going to get adjusted.
+ x = a;
+ }
+ else
+ {
+ continue;
+ }
+ }
+ else
+ {
+ x = ((b*c) + (a*d)) / (b + d);
+ }
+
+ //db_printf("%.1f, %.1f, %.1f, %.1f\n", a, b, c, d);
+ //db_printf("x = %.1f\n", x);
+
+ x = std::max(min, x);
+ x = std::min(max, x);
+
+ //db_printf("x = %.1f\n", x);
+
+ Point xp;
+ if (p1.x == p2.x)
+ {
+ xp.x = offy;
+ xp.y = x;
+ }
+ else
+ {
+ xp.x = x;
+ xp.y = offy;
+ }
+ //db_printf("(%.1f, %.1f)\n", xp.x, xp.y);
+
+ e1 = euclideanDist(start, xp);
+ e2 = euclideanDist(xp, end);
+ estdist = e1 + e2;
+
+
+ //db_printf("is %.1f < %.1f\n", estdist, conndist);
+ if (estdist < conndist)
+ {
+#ifdef SELECTIVE_DEBUG
+ //double angle = AngleAFromThreeSides(dist(start, end),
+ // e1, e2);
+ db_printf("[%3d] - Possible better path found (%.1f < %.1f)\n",
+ conn->_id, estdist, conndist);
+#endif
+ conn->m_needs_reroute_flag = true;
+ break;
+ }
+
+ }
+ }
+}
+
+
+ConnType Router::validConnType(const ConnType select) const
+{
+ if (select != ConnType_None)
+ {
+ if ((select == ConnType_Orthogonal) && m_allows_orthogonal_routing)
+ {
+ return ConnType_Orthogonal;
+ }
+ else if ((select == ConnType_PolyLine) && m_allows_polyline_routing)
+ {
+ return ConnType_PolyLine;
+ }
+ }
+
+ if (m_allows_polyline_routing)
+ {
+ return ConnType_PolyLine;
+ }
+ else if (m_allows_orthogonal_routing)
+ {
+ return ConnType_Orthogonal;
+ }
+ return ConnType_None;
+}
+
+
+void Router::setRoutingParameter(const RoutingParameter parameter,
+ const double value)
+{
+ COLA_ASSERT(parameter < lastRoutingParameterMarker);
+ if (value < 0)
+ {
+ // Set some sensible parameter value for the parameter being 'active'.
+ switch (parameter)
+ {
+ case segmentPenalty:
+ m_routing_parameters[parameter] = 50;
+ break;
+ case fixedSharedPathPenalty:
+ m_routing_parameters[parameter] = 110;
+ break;
+ case anglePenalty:
+ m_routing_parameters[parameter] = 50;
+ break;
+ case crossingPenalty:
+ m_routing_parameters[parameter] = 200;
+ break;
+ case clusterCrossingPenalty:
+ m_routing_parameters[parameter] = 4000;
+ break;
+ case idealNudgingDistance:
+ m_routing_parameters[parameter] = 4.0;
+ break;
+ case portDirectionPenalty:
+ m_routing_parameters[parameter] = 100;
+ break;
+ default:
+ m_routing_parameters[parameter] = 50;
+ break;
+ }
+ }
+ else
+ {
+ m_routing_parameters[parameter] = value;
+ }
+ m_settings_changes = true;
+}
+
+
+double Router::routingParameter(const RoutingParameter parameter) const
+{
+ COLA_ASSERT(parameter < lastRoutingParameterMarker);
+ return m_routing_parameters[parameter];
+}
+
+
+void Router::setRoutingOption(const RoutingOption option, const bool value)
+{
+ COLA_ASSERT(option < lastRoutingOptionMarker);
+ m_routing_options[option] = value;
+ m_settings_changes = true;
+}
+
+
+bool Router::routingOption(const RoutingOption option) const
+{
+ COLA_ASSERT(option < lastRoutingOptionMarker);
+ return m_routing_options[option];
+}
+
+
+void Router::setRoutingPenalty(const RoutingParameter penType,
+ const double penValue)
+{
+ setRoutingParameter(penType, penValue);
+}
+
+void Router::registerSettingsChange(void)
+{
+ m_settings_changes = true;
+}
+
+HyperedgeRerouter *Router::hyperedgeRerouter(void)
+{
+ return &m_hyperedge_rerouter;
+}
+
+
+bool Router::isInCrossingPenaltyReroutingStage(void) const
+{
+ return m_in_crossing_rerouting_stage;
+}
+
+
+void Router::printInfo(void)
+{
+ FILE *fp = stdout;
+ fprintf(fp, "\nVisibility Graph info:\n");
+ fprintf(fp, "----------------------\n");
+
+ unsigned int currshape = 0;
+ int st_shapes = 0;
+ int st_vertices = 0;
+ int st_endpoints = 0;
+ int st_valid_shape_visedges = 0;
+ int st_valid_endpt_visedges = 0;
+ int st_orthogonal_visedges = 0;
+ int st_invalid_visedges = 0;
+ VertInf *finish = vertices.end();
+ for (VertInf *t = vertices.connsBegin(); t != finish; t = t->lstNext)
+ {
+ VertID pID = t->id;
+
+ if (!(pID.isConnPt()) && (pID.objID != currshape))
+ {
+ currshape = pID.objID;
+ st_shapes++;
+ }
+ if (!(pID.isConnPt()))
+ {
+ st_vertices++;
+ }
+ else
+ {
+ // The shape 0 ones are temporary and not considered.
+ st_endpoints++;
+ }
+ }
+ for (EdgeInf *t = visGraph.begin(); t != visGraph.end();
+ t = t->lstNext)
+ {
+ std::pair<VertID, VertID> idpair = t->ids();
+
+ if (idpair.first.isConnPt() || idpair.second.isConnPt())
+ {
+ st_valid_endpt_visedges++;
+ }
+ else
+ {
+ st_valid_shape_visedges++;
+ }
+ }
+ for (EdgeInf *t = invisGraph.begin(); t != invisGraph.end();
+ t = t->lstNext)
+ {
+ st_invalid_visedges++;
+ }
+ for (EdgeInf *t = visOrthogGraph.begin(); t != visOrthogGraph.end();
+ t = t->lstNext)
+ {
+ st_orthogonal_visedges++;
+ }
+ fprintf(fp, "Number of shapes: %d\n", st_shapes);
+ fprintf(fp, "Number of vertices: %d (%d real, %d endpoints)\n",
+ st_vertices + st_endpoints, st_vertices, st_endpoints);
+ fprintf(fp, "Number of orthog_vis_edges: %d\n", st_orthogonal_visedges);
+ fprintf(fp, "Number of vis_edges: %d (%d valid [%d normal, %d endpt], "
+ "%d invalid)\n", st_valid_shape_visedges + st_invalid_visedges +
+ st_valid_endpt_visedges, st_valid_shape_visedges +
+ st_valid_endpt_visedges, st_valid_shape_visedges,
+ st_valid_endpt_visedges, st_invalid_visedges);
+ fprintf(fp, "----------------------\n");
+ fprintf(fp, "checkVisEdge tally: %d\n", st_checked_edges);
+ fprintf(fp, "----------------------\n");
+
+#ifdef AVOID_PROFILE
+ timers.printAll(fp);
+ timers.reset();
+#endif
+}
+
+
+static const double LIMIT = 100000000;
+
+static void reduceRange(double& val)
+{
+ val = std::min(val, LIMIT);
+ val = std::max(val, -LIMIT);
+}
+
+
+//=============================================================================
+// The following methods are for testing and debugging.
+
+
+bool Router::existsOrthogonalSegmentOverlap(const bool atEnds)
+{
+ ConnRefList::iterator fin = connRefs.end();
+ for (ConnRefList::iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ Avoid::Polygon iRoute = (*i)->displayRoute();
+ ConnRefList::iterator j = i;
+ for (++j; j != fin; ++j)
+ {
+ // Determine if this pair overlap
+ Avoid::Polygon jRoute = (*j)->displayRoute();
+ ConnectorCrossings cross(iRoute, true, jRoute, *i, *j);
+ cross.checkForBranchingSegments = true;
+ for (size_t jInd = 1; jInd < jRoute.size(); ++jInd)
+ {
+ const bool finalSegment = ((jInd + 1) == jRoute.size());
+ cross.countForSegment(jInd, finalSegment);
+
+ if ((cross.crossingFlags & CROSSING_SHARES_PATH) &&
+ (atEnds ||
+ !(cross.crossingFlags & CROSSING_SHARES_PATH_AT_END)))
+ {
+ // We are looking for fixedSharedPaths and there is a
+ // fixedSharedPath.
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+
+bool Router::existsOrthogonalFixedSegmentOverlap(const bool atEnds)
+{
+ ConnRefList::iterator fin = connRefs.end();
+ for (ConnRefList::iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ Avoid::Polygon iRoute = (*i)->displayRoute();
+ ConnRefList::iterator j = i;
+ for (++j; j != fin; ++j)
+ {
+ // Determine if this pair overlap
+ Avoid::Polygon jRoute = (*j)->displayRoute();
+ ConnectorCrossings cross(iRoute, true, jRoute, *i, *j);
+ cross.checkForBranchingSegments = true;
+ for (size_t jInd = 1; jInd < jRoute.size(); ++jInd)
+ {
+ const bool finalSegment = ((jInd + 1) == jRoute.size());
+ cross.countForSegment(jInd, finalSegment);
+
+ if ((cross.crossingFlags & CROSSING_SHARES_PATH) &&
+ (cross.crossingFlags & CROSSING_SHARES_FIXED_SEGMENT) &&
+ (atEnds ||
+ !(cross.crossingFlags & CROSSING_SHARES_PATH_AT_END)))
+ {
+ // We are looking for fixedSharedPaths and there is a
+ // fixedSharedPath.
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+
+bool Router::existsOrthogonalTouchingPaths(void)
+{
+ ConnRefList::iterator fin = connRefs.end();
+ for (ConnRefList::iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ Avoid::Polygon iRoute = (*i)->displayRoute();
+ ConnRefList::iterator j = i;
+ for (++j; j != fin; ++j)
+ {
+ // Determine if this pair overlap
+ Avoid::Polygon jRoute = (*j)->displayRoute();
+ ConnectorCrossings cross(iRoute, true, jRoute, *i, *j);
+ cross.checkForBranchingSegments = true;
+ for (size_t jInd = 1; jInd < jRoute.size(); ++jInd)
+ {
+ const bool finalSegment = ((jInd + 1) == jRoute.size());
+ cross.countForSegment(jInd, finalSegment);
+
+ if (cross.crossingFlags & CROSSING_TOUCHES)
+ {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+
+// Counts the number of crossings between all connectors.
+//
+// If optimisedForConnectorType is set, This will only count crossings
+// between orthogonal connectors if they appear at segment endpoints.
+// Thus, it can be used on raw connectors but not on simplified orthogonal
+// connectors.
+//
+int Router::existsCrossings(const bool optimisedForConnectorType)
+{
+ int count = 0;
+ ConnRefList::iterator fin = connRefs.end();
+ for (ConnRefList::iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ Avoid::Polygon iRoute = (*i)->displayRoute();
+ ConnRefList::iterator j = i;
+ for (++j; j != fin; ++j)
+ {
+ // Determine if this pair overlap
+ Avoid::Polygon jRoute = (*j)->displayRoute();
+ ConnRef *iConn = (optimisedForConnectorType) ? *i : nullptr;
+ ConnRef *jConn = (optimisedForConnectorType) ? *j : nullptr;
+ ConnectorCrossings cross(iRoute, true, jRoute, iConn, jConn);
+ cross.checkForBranchingSegments = true;
+ for (size_t jInd = 1; jInd < jRoute.size(); ++jInd)
+ {
+ const bool finalSegment = ((jInd + 1) == jRoute.size());
+
+ // Normal crossings aren't counted if we pass the pointers
+ // for the connectors, so don't pass them.
+ cross.countForSegment(jInd, finalSegment);
+
+ count += cross.crossingCount;
+ }
+ }
+ }
+ return count;
+}
+
+// Looks for non-orthogonal segments in orthogonal connectors and
+// returns true if it finds any.
+bool Router::existsInvalidOrthogonalPaths(void)
+{
+ // For each connector...
+ ConnRefList::iterator fin = connRefs.end();
+ for (ConnRefList::iterator i = connRefs.begin(); i != fin; ++i)
+ {
+ // If it is an orthogonal connector...
+ if ((*i)->routingType() == Avoid::ConnType_Orthogonal)
+ {
+ // Check each segment of the path...
+ Avoid::Polygon iRoute = (*i)->displayRoute();
+ for (size_t iInd = 1; iInd < iRoute.size(); ++iInd)
+ {
+ // And if it isn't either vertical or horizontal...
+ if ( (iRoute.at(iInd - 1).x != iRoute.at(iInd).x) &&
+ (iRoute.at(iInd - 1).y != iRoute.at(iInd).y) )
+ {
+ // Then we've found an invalid path.
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+
+void Router::setTopologyAddon(TopologyAddonInterface *topologyAddon)
+{
+ COLA_ASSERT(m_topology_addon);
+ delete m_topology_addon;
+ if (topologyAddon)
+ {
+ m_topology_addon = topologyAddon->clone();
+ }
+ else
+ {
+ m_topology_addon = new TopologyAddonInterface();
+ }
+ registerSettingsChange();
+}
+
+void Router::improveOrthogonalTopology(void)
+{
+ COLA_ASSERT(m_topology_addon);
+ m_topology_addon->improveOrthogonalTopology(this);
+}
+
+void Router::outputInstanceToSVG(std::string instanceName)
+{
+ std::string filename;
+ if (!instanceName.empty())
+ {
+ filename = instanceName;
+ }
+ else
+ {
+ filename = "libavoid-debug";
+ }
+ filename += ".svg";
+ FILE *fp = fopen(filename.c_str(), "w");
+
+ if (fp == nullptr)
+ {
+ return;
+ }
+
+ double minX = LIMIT;
+ double minY = LIMIT;
+ double maxX = -LIMIT;
+ double maxY = -LIMIT;
+
+ VertInf *curr = vertices.connsBegin();
+ while (curr)
+ {
+ Point p = curr->point;
+
+ reduceRange(p.x);
+ reduceRange(p.y);
+
+ if (p.x > -LIMIT)
+ {
+ minX = std::min(minX, p.x);
+ }
+ if (p.x < LIMIT)
+ {
+ maxX = std::max(maxX, p.x);
+ }
+ if (p.y > -LIMIT)
+ {
+ minY = std::min(minY, p.y);
+ }
+ if (p.y < LIMIT)
+ {
+ maxY = std::max(maxY, p.y);
+ }
+ curr = curr->lstNext;
+ }
+ minX -= 8;
+ minY -= 8;
+ maxX += 8;
+ maxY += 8;
+
+ fprintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ fprintf(fp, "<svg xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%%\" height=\"100%%\" viewBox=\"%g %g %g %g\">\n", minX, minY, maxX - minX, maxY - minY);
+
+ // Output source code to generate this instance of the router.
+ fprintf(fp, "<!-- Source code to generate this instance:\n");
+ fprintf(fp, "#include \"libavoid/libavoid.h\"\n");
+ if (m_topology_addon->outputCode(nullptr))
+ {
+ fprintf(fp, "#include \"libcola/cola.h\"\n");
+ fprintf(fp, "#include \"libtopology/orthogonal_topology.h\"\n");
+ fprintf(fp, "using namespace cola;\n");
+ }
+ fprintf(fp, "using namespace Avoid;\n");
+ fprintf(fp, "int main(void) {\n");
+ fprintf(fp, " Router *router = new Router(");
+ if (m_allows_polyline_routing)
+ {
+ fprintf(fp, "PolyLineRouting");
+ }
+ if (m_allows_polyline_routing && m_allows_orthogonal_routing)
+ {
+ fprintf(fp, " | ");
+ }
+ if (m_allows_orthogonal_routing)
+ {
+ fprintf(fp, "OrthogonalRouting");
+ }
+ fprintf(fp, ");\n");
+ for (size_t p = 0; p < lastRoutingParameterMarker; ++p)
+ {
+ fprintf(fp, " router->setRoutingParameter((RoutingParameter)%lu, %g);\n",
+ (unsigned long)p, m_routing_parameters[p]);
+ }
+ for (size_t p = 0; p < lastRoutingOptionMarker; ++p)
+ {
+ fprintf(fp, " router->setRoutingOption((RoutingOption)%lu, %s);\n",
+ (unsigned long)p, (m_routing_options[p]) ? "true" : "false");
+ }
+ fprintf(fp, " Polygon polygon;\n");
+ fprintf(fp, " ConnRef *connRef = nullptr;\n");
+ fprintf(fp, " ConnEnd srcPt;\n");
+ fprintf(fp, " ConnEnd dstPt;\n");
+ fprintf(fp, " ConnEnd heConnPt;\n");
+ fprintf(fp, " PolyLine newRoute;\n");
+ fprintf(fp, " ShapeConnectionPin *connPin = nullptr;\n");
+ fprintf(fp, "\n");
+ ClusterRefList::reverse_iterator revClusterRefIt = clusterRefs.rbegin();
+ while (revClusterRefIt != clusterRefs.rend())
+ {
+ ClusterRef *cRef = *revClusterRefIt;
+ fprintf(fp, " polygon = Polygon(%lu);\n",
+ (unsigned long)cRef->polygon().size());
+ for (size_t i = 0; i <cRef->polygon().size(); ++i)
+ {
+ fprintf(fp, " polygon.ps[%lu] = Point(%g, %g);\n",
+ (unsigned long)i, cRef->polygon().at(i).x,
+ cRef->polygon().at(i).y);
+ }
+ fprintf(fp, " new ClusterRef(router, polygon, %u);\n", cRef->id());
+ ++revClusterRefIt;
+ }
+ ObstacleList::reverse_iterator revObstacleIt = m_obstacles.rbegin();
+ while (revObstacleIt != m_obstacles.rend())
+ {
+ Obstacle *obstacle = *revObstacleIt;
+ obstacle->outputCode(fp);
+ ++revObstacleIt;
+ }
+ ConnRefList::reverse_iterator revConnRefIt = connRefs.rbegin();
+ while (revConnRefIt != connRefs.rend())
+ {
+ ConnRef *connRef = *revConnRefIt;
+ connRef->outputCode(fp);
+ ++revConnRefIt;
+ }
+
+ m_topology_addon->outputCode(fp);
+
+ fprintf(fp, " router->processTransaction();\n");
+ fprintf(fp, " router->outputInstanceToSVG();\n");
+
+ m_topology_addon->outputDeletionCode(fp);
+ fprintf(fp, " delete router;\n");
+ fprintf(fp, " return 0;\n");
+ fprintf(fp, "};\n");
+ fprintf(fp, "-->\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"Clusters\">\n");
+ revClusterRefIt = clusterRefs.rbegin();
+ while (revClusterRefIt != clusterRefs.rend())
+ {
+ ClusterRef *cRef = *revClusterRefIt;
+ fprintf(fp, "<path id=\"cluster-%u\" style=\"stroke-width: 1px; "
+ "stroke: black; fill: green; opacity: 0.1;\" d=\"",
+ cRef->id());
+ for (size_t i = 0; i < cRef->polygon().size(); ++i)
+ {
+ fprintf(fp, "%c %g %g ", ((i == 0) ? 'M' : 'L'),
+ cRef->polygon().at(i).x, cRef->polygon().at(i).y);
+ }
+ fprintf(fp, "Z\" />\n");
+
+ fprintf(fp, "<path id=\"cluster-%u-rect\" style=\"stroke-width: 1px; "
+ "stroke: black; fill: green; opacity: 0.1;\" d=\"",
+ cRef->id());
+ for (size_t i = 0; i < cRef->rectangularPolygon().size(); ++i)
+ {
+ fprintf(fp, "%c %g %g ", ((i == 0) ? 'M' : 'L'),
+ cRef->rectangularPolygon().at(i).x,
+ cRef->rectangularPolygon().at(i).y);
+ }
+ fprintf(fp, "Z\" />\n");
+ ++revClusterRefIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"ShapePolygons\">\n");
+ ObstacleList::iterator obstacleIt = m_obstacles.begin();
+ while (obstacleIt != m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ bool isShape = (nullptr != dynamic_cast<ShapeRef *> (obstacle));
+
+ if ( ! isShape )
+ {
+ // Don't output obstacles here, for now.
+ ++obstacleIt;
+ continue;
+ }
+
+ fprintf(fp, "<path id=\"poly-%u\" style=\"stroke-width: 1px; "
+ "stroke: black; fill: %s; fill-opacity: 0.3;\" d=\"",
+ obstacle->id(), (isShape) ? "grey" : "red");
+ for (size_t i = 0; i < obstacle->polygon().size(); ++i)
+ {
+ fprintf(fp, "%c %g %g ", ((i == 0) ? 'M' : 'L'),
+ obstacle->polygon().at(i).x, obstacle->polygon().at(i).y);
+ }
+ fprintf(fp, "Z\" />\n");
+ ++obstacleIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"ObstaclePolygons\">\n");
+ obstacleIt = m_obstacles.begin();
+ while (obstacleIt != m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ bool isShape = (nullptr != dynamic_cast<ShapeRef *> (obstacle));
+
+ if ( ! isShape )
+ {
+ // Don't output obstacles here, for now.
+ ++obstacleIt;
+ continue;
+ }
+
+ Polygon polygon = obstacle->routingPolygon();
+ fprintf(fp, "<path id=\"poly-%u\" style=\"stroke-width: 1px; "
+ "stroke: black; fill: %s; fill-opacity: 0.3;\" d=\"",
+ obstacle->id(), (isShape) ? "grey" : "red");
+ for (size_t i = 0; i < polygon.size(); ++i)
+ {
+ fprintf(fp, "%c %g %g ", ((i == 0) ? 'M' : 'L'),
+ polygon.at(i).x, polygon.at(i).y);
+ }
+ fprintf(fp, "Z\" />\n");
+ ++obstacleIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"IdealJunctions\">\n");
+ for (ObstacleList::iterator obstacleIt = m_obstacles.begin();
+ obstacleIt != m_obstacles.end(); ++obstacleIt)
+ {
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (*obstacleIt);
+ if (junction)
+ {
+ fprintf(fp, "<circle id=\"idealJunction-%u\" cx=\"%g\" cy=\"%g\" "
+ "r=\"8\" style=\"stroke: none; fill: %s; "
+ "fill-opacity: 0.5;\" />\n", junction->id(),
+ junction->recommendedPosition().x,
+ junction->recommendedPosition().y, "green");
+ }
+
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"ObstacleRects\">\n");
+ obstacleIt = m_obstacles.begin();
+ while (obstacleIt != m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ bool isShape = (nullptr != dynamic_cast<ShapeRef *> (obstacle));
+
+ if ( ! isShape )
+ {
+ // Don't output obstacles here, for now.
+ ++obstacleIt;
+ continue;
+ }
+
+ Box bBox = obstacle->routingBox();
+
+ fprintf(fp, "<rect id=\"rect-%u\" x=\"%g\" y=\"%g\" width=\"%g\" "
+ "height=\"%g\" style=\"stroke-width: 1px; stroke: black; "
+ "fill: grey; stroke-opacity: 0.1; fill-opacity: 0.1;\" />\n",
+ obstacle->id(), bBox.min.x, bBox.min.y,
+ bBox.max.x - bBox.min.x, bBox.max.y - bBox.min.y);
+ ++obstacleIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"VisGraph\""
+ ">\n");
+ EdgeInf *finish = nullptr;
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"VisGraph-shape\""
+ ">\n");
+ finish = visGraph.end();
+ for (EdgeInf *t = visGraph.begin(); t != finish; t = t->lstNext)
+ {
+ std::pair<VertID, VertID> ids = t->ids();
+ bool isConn = ids.first.isConnPt() || ids.second.isConnPt();
+ if (isConn)
+ {
+ continue;
+ }
+ std::pair<Point, Point> ptpair = t->points();
+ Point p1 = ptpair.first;
+ Point p2 = ptpair.second;
+
+ reduceRange(p1.x);
+ reduceRange(p1.y);
+ reduceRange(p2.x);
+ reduceRange(p2.y);
+
+ fprintf(fp, "<path d=\"M %g %g L %g %g\" "
+ "style=\"fill: none; stroke: %s; stroke-width: 1px;\" />\n",
+ p1.x, p1.y, p2.x, p2.y,
+ (ids.first.isConnPt() || ids.second.isConnPt()) ? "blue" :
+ "red");
+ }
+ fprintf(fp, "</g>\n");
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"VisGraph-conn\""
+ ">\n");
+ finish = visGraph.end();
+ for (EdgeInf *t = visGraph.begin(); t != finish; t = t->lstNext)
+ {
+ std::pair<VertID, VertID> ids = t->ids();
+ bool isConn = ids.first.isConnPt() || ids.second.isConnPt();
+ if (!isConn)
+ {
+ continue;
+ }
+ std::pair<Point, Point> ptpair = t->points();
+ Point p1 = ptpair.first;
+ Point p2 = ptpair.second;
+
+ reduceRange(p1.x);
+ reduceRange(p1.y);
+ reduceRange(p2.x);
+ reduceRange(p2.y);
+
+ fprintf(fp, "<path d=\"M %g %g L %g %g\" "
+ "style=\"fill: none; stroke: %s; stroke-width: 1px;\" />\n",
+ p1.x, p1.y, p2.x, p2.y,
+ (ids.first.isConnPt() || ids.second.isConnPt()) ? "blue" :
+ "red");
+ }
+ fprintf(fp, "</g>\n");
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"OrthogVisGraph\">\n");
+ finish = visOrthogGraph.end();
+ for (EdgeInf *t = visOrthogGraph.begin(); t != finish; t = t->lstNext)
+ {
+ std::pair<Point, Point> ptpair = t->points();
+ Point p1 = ptpair.first;
+ Point p2 = ptpair.second;
+
+ reduceRange(p1.x);
+ reduceRange(p1.y);
+ reduceRange(p2.x);
+ reduceRange(p2.y);
+
+ std::pair<VertID, VertID> ids = t->ids();
+
+ fprintf(fp, "<path d=\"M %g %g L %g %g\" "
+ "style=\"fill: none; stroke: %s; stroke-width: 1px;\" />\n",
+ p1.x, p1.y, p2.x, p2.y,
+ (ids.first.isConnPt() || ids.second.isConnPt()) ? "green" :
+ "red");
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"RawConnectors\""
+ ">\n");
+ ConnRefList::iterator connRefIt = connRefs.begin();
+ while (connRefIt != connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+
+ PolyLine route = connRef->route();
+ if (!route.empty())
+ {
+ fprintf(fp, "<path id=\"raw-%u\" d=\"M %g %g ", connRef->id(),
+ route.ps[0].x, route.ps[0].y);
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ fprintf(fp, "L %g %g ", route.ps[i].x, route.ps[i].y);
+ }
+ fprintf(fp, "\" ");
+ if (connRef->src() && connRef->dst())
+ {
+ fprintf(fp, "debug=\"src: %d dst: %d\" ",
+ connRef->src()->visDirections,
+ connRef->dst()->visDirections);
+ }
+ fprintf(fp, "style=\"fill: none; stroke: black; "
+ "stroke-width: 1px;\" />\n");
+ }
+
+ ++connRefIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "style=\"display: none;\" "
+ "inkscape:label=\"CurvedDisplayConnectors\""
+ ">\n");
+ connRefIt = connRefs.begin();
+ while (connRefIt != connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+
+ PolyLine route = connRef->displayRoute().curvedPolyline(8);
+ if (!route.empty())
+ {
+ fprintf(fp, "<path id=\"curved-%u\" d=\"M %g %g ", connRef->id(),
+ route.ps[0].x, route.ps[0].y);
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ if (route.ts[i] == 'C')
+ {
+ fprintf(fp, "%c %g %g %g %g %g %g", route.ts[i],
+ route.ps[i].x, route.ps[i].y,
+ route.ps[i+1].x, route.ps[i+1].y,
+ route.ps[i+2].x, route.ps[i+2].y);
+ i += 2;
+ }
+ else
+ {
+ fprintf(fp, "%c %g %g ", route.ts[i],
+ route.ps[i].x, route.ps[i].y);
+ }
+ }
+ fprintf(fp, "\" ");
+ if (connRef->src() && connRef->dst())
+ {
+ fprintf(fp, "debug=\"src: %d dst: %d\" ",
+ connRef->src()->visDirections,
+ connRef->dst()->visDirections);
+ }
+ fprintf(fp, "style=\"fill: none; stroke: black; "
+ "stroke-width: 1px;\" />\n");
+ }
+
+ ++connRefIt;
+ }
+ fprintf(fp, "</g>\n");
+
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"DisplayConnectors\""
+ ">\n");
+ connRefIt = connRefs.begin();
+ while (connRefIt != connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+
+ PolyLine route = connRef->displayRoute();
+ if (!route.empty())
+ {
+ fprintf(fp, "<path id=\"disp-%u\" d=\"M %g %g ", connRef->id(),
+ route.ps[0].x, route.ps[0].y);
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ fprintf(fp, "L %g %g ", route.ps[i].x, route.ps[i].y);
+ }
+ fprintf(fp, "\" ");
+ if (connRef->src() && connRef->dst())
+ {
+ fprintf(fp, "debug=\"src: %d dst: %d\" ",
+ connRef->src()->visDirections,
+ connRef->dst()->visDirections);
+ }
+ fprintf(fp, "style=\"fill: none; stroke: black; "
+ "stroke-width: 1px;\" />\n");
+ }
+
+ ++connRefIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"ConnectorCheckpoints\""
+ ">\n");
+ connRefIt = connRefs.begin();
+ while (connRefIt != connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+
+ for (size_t i = 0; i < connRef->m_checkpoints.size(); ++i)
+ {
+ fprintf(fp, "<circle id=\"checkpoint-%u-%d\" cx=\"%g\" cy=\"%g\" "
+ "r=\"8\" style=\"stroke: none; fill: red; "
+ "fill-opacity: 0.25;\" />\n", connRef->id(), (int) i,
+ connRef->m_checkpoints[i].point.x,
+ connRef->m_checkpoints[i].point.y);
+ }
+
+ ++connRefIt;
+ }
+ fprintf(fp, "</g>\n");
+
+
+ fprintf(fp, "</svg>\n");
+ fclose(fp);
+ //printInfo();
+}
+
+void Router::outputDiagramSVG(std::string instanceName, LineReps *lineReps)
+{
+ std::string filename;
+ if (!instanceName.empty())
+ {
+ filename = instanceName;
+ }
+ else
+ {
+ filename = "libavoid-diagram";
+ }
+ filename += ".svg";
+ FILE *fp = fopen(filename.c_str(), "w");
+
+ if (fp == nullptr)
+ {
+ return;
+ }
+
+ double minX = LIMIT;
+ double minY = LIMIT;
+ double maxX = -LIMIT;
+ double maxY = -LIMIT;
+
+ VertInf *curr = vertices.connsBegin();
+ while (curr)
+ {
+ Point p = curr->point;
+
+ reduceRange(p.x);
+ reduceRange(p.y);
+
+ if (p.x > -LIMIT)
+ {
+ minX = std::min(minX, p.x);
+ }
+ if (p.x < LIMIT)
+ {
+ maxX = std::max(maxX, p.x);
+ }
+ if (p.y > -LIMIT)
+ {
+ minY = std::min(minY, p.y);
+ }
+ if (p.y < LIMIT)
+ {
+ maxY = std::max(maxY, p.y);
+ }
+ curr = curr->lstNext;
+ }
+ minX -= 8;
+ minY -= 8;
+ maxX += 8;
+ maxY += 8;
+
+ fprintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ fprintf(fp, "<svg xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%%\" height=\"100%%\" viewBox=\"%g %g %g %g\">\n", minX, minY, maxX - minX, maxY - minY);
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"ShapesRect\">\n");
+ ObstacleList::iterator obstacleIt = m_obstacles.begin();
+ while (obstacleIt != m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ bool isShape = (nullptr != dynamic_cast<ShapeRef *> (obstacle));
+
+ if ( ! isShape )
+ {
+ // Don't output non-shape obstacles here, for now.
+ ++obstacleIt;
+ continue;
+ }
+
+ Box bBox = obstacle->polygon().offsetBoundingBox(0.0);
+
+ fprintf(fp, "<rect id=\"rect-%u\" x=\"%g\" y=\"%g\" width=\"%g\" "
+ "height=\"%g\" style=\"stroke-width: 1px; stroke: black; "
+ "fill: grey; stroke-opacity: 0.5; fill-opacity: 0.4;\" />\n",
+ obstacle->id(), bBox.min.x, bBox.min.y,
+ bBox.max.x - bBox.min.x, bBox.max.y - bBox.min.y);
+ ++obstacleIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ fprintf(fp, "<g inkscape:groupmode=\"layer\" "
+ "inkscape:label=\"DisplayConnectors\""
+ ">\n");
+ ConnRefList::iterator connRefIt = connRefs.begin();
+ while (connRefIt != connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+
+ PolyLine route = connRef->displayRoute();
+ if (!route.empty())
+ {
+ fprintf(fp, "<path id=\"disp-%u\" d=\"M %g %g ", connRef->id(),
+ route.ps[0].x, route.ps[0].y);
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ fprintf(fp, "L %g %g ", route.ps[i].x, route.ps[i].y);
+ }
+ fprintf(fp, "\" ");
+ fprintf(fp, "style=\"fill: none; stroke: black; "
+ "stroke-width: 1px;\" />\n");
+
+ /*
+ for (size_t i = 1; i < route.size(); ++i)
+ {
+ if (route.segmentHasCheckpoint[i - 1])
+ {
+ fprintf(fp, "<path d=\"M %g %g ",
+ route.ps[i - 1].x, route.ps[i - 1].y);
+ fprintf(fp, "L %g %g\" ", route.ps[i].x, route.ps[i].y);
+ fprintf(fp, "style=\"fill: none; stroke: red; "
+ "stroke-width: 1px; stroke-opacity: 1;\" />\n");
+ }
+ }
+ */
+ }
+
+ ++connRefIt;
+ }
+ fprintf(fp, "</g>\n");
+
+ if (lineReps)
+ {
+
+ for (LineReps::iterator it = lineReps->begin(); it != lineReps->end();
+ ++it)
+ {
+ fprintf(fp, "<path d=\"M %g %g ",
+ it->begin.x, it->begin.y);
+ fprintf(fp, "L %g %g\" ", it->end.x, it->end.y);
+ fprintf(fp, "style=\"fill: none; stroke: red; "
+ "stroke-width: 1px; stroke-opacity: 0.7;\" />\n");
+ }
+ }
+
+ fprintf(fp, "</svg>\n");
+ fclose(fp);
+}
+
+void Router::outputDiagram(std::string instanceName)
+{
+ outputDiagramText(instanceName);
+#ifdef SVG_OUTPUT
+ outputInstanceToSVG(instanceName);
+#endif
+}
+
+void Router::outputDiagramText(std::string instanceName)
+{
+ std::string filename;
+ if (!instanceName.empty())
+ {
+ filename = instanceName;
+ }
+ else
+ {
+ filename = "libavoid-diagram";
+ }
+ filename += ".txt";
+ FILE *fp = fopen(filename.c_str(), "w");
+
+ if (fp == nullptr)
+ {
+ return;
+ }
+
+ ObstacleList::iterator obstacleIt = m_obstacles.begin();
+ while (obstacleIt != m_obstacles.end())
+ {
+ Obstacle *obstacle = *obstacleIt;
+ bool isShape = (nullptr != dynamic_cast<ShapeRef *> (obstacle));
+
+ if ( ! isShape )
+ {
+ // Don't output non-shape obstacles here, for now.
+ ++obstacleIt;
+ continue;
+ }
+
+ Box bBox = obstacle->polygon().offsetBoundingBox(0.0);
+
+ fprintf(fp, "rect\n");
+ fprintf(fp, "id=%u\n", obstacle->id());
+ fprintf(fp, "x=%g\n", bBox.min.x);
+ fprintf(fp, "y=%g\n", bBox.min.y);
+ fprintf(fp, "width=%g\n", bBox.max.x - bBox.min.x);
+ fprintf(fp, "height=%g\n", bBox.max.y - bBox.min.y);
+ fprintf(fp, "\n");
+
+ ++obstacleIt;
+ }
+
+ ConnRefList::iterator connRefIt = connRefs.begin();
+ while (connRefIt != connRefs.end())
+ {
+ ConnRef *connRef = *connRefIt;
+
+ PolyLine route = connRef->displayRoute();
+ if (!route.empty())
+ {
+ fprintf(fp, "path\n");
+ fprintf(fp, "id=%u\n", connRef->id());
+ for (size_t i = 0; i < route.size(); ++i)
+ {
+ fprintf(fp, "p%zu: %g %g ", i, route.ps[i].x, route.ps[i].y);
+ fprintf(fp, "\n");
+ }
+ fprintf(fp, "\n");
+ }
+
+ ++connRefIt;
+ }
+
+ fprintf(fp, "\n");
+
+ fclose(fp);
+}
+
+HyperedgeNewAndDeletedObjectLists
+ Router::newAndDeletedObjectListsFromHyperedgeImprovement(void) const
+{
+ return m_hyperedge_improver.newAndDeletedObjectLists();
+}
+
+
+ConnRerouteFlagDelegate::ConnRerouteFlagDelegate()
+{
+}
+
+ConnRerouteFlagDelegate::~ConnRerouteFlagDelegate()
+{
+}
+
+bool *ConnRerouteFlagDelegate::addConn(ConnRef *conn)
+{
+ m_mapping.push_back(std::make_pair(conn, false));
+ return &(m_mapping.back().second);
+}
+
+void ConnRerouteFlagDelegate::removeConn(ConnRef *conn)
+{
+ std::list<std::pair<ConnRef *, bool> >::iterator it;
+ for (it = m_mapping.begin(); it != m_mapping.end(); ++it)
+ {
+ if (it->first == conn)
+ {
+ it->first = nullptr;
+ }
+ }
+}
+
+
+void ConnRerouteFlagDelegate::alertConns(void)
+{
+ std::list<std::pair<ConnRef *, bool> >::iterator it;
+ for (it = m_mapping.begin(); it != m_mapping.end(); ++it)
+ {
+ if ((it->first != nullptr) && (it->second == true))
+ {
+ it->second = false;
+ it->first->m_needs_reroute_flag = true;
+ }
+ }
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/router.h b/src/3rdparty/adaptagrams/libavoid/router.h
new file mode 100644
index 0000000..4a551be
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/router.h
@@ -0,0 +1,888 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2015 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file router.h
+//! @brief Contains the interface for the Router class.
+
+
+#ifndef AVOID_ROUTER_H
+#define AVOID_ROUTER_H
+
+#include <ctime>
+#include <list>
+#include <utility>
+#include <string>
+
+#include "libavoid/dllexport.h"
+#include "libavoid/connector.h"
+#include "libavoid/vertices.h"
+#include "libavoid/graph.h"
+#include "libavoid/timer.h"
+#include "libavoid/hyperedge.h"
+#include "libavoid/actioninfo.h"
+#include "libavoid/hyperedgeimprover.h"
+
+
+namespace Avoid {
+
+// LineReps: Used for highlighting certain areas in debugging output.
+struct LineRep
+{
+ Point begin;
+ Point end;
+};
+typedef std::list<LineRep> LineReps;
+
+
+typedef std::list<unsigned int> IntList;
+
+class ShapeRef;
+class JunctionRef;
+class ClusterRef;
+typedef std::list<ClusterRef *> ClusterRefList;
+class Obstacle;
+typedef std::list<Obstacle *> ObstacleList;
+class DebugHandler;
+
+//! @brief Flags that can be passed to the router during initialisation
+//! to specify options.
+enum RouterFlag
+{
+ //! @brief This option specifies that the router should maintain the
+ //! structures necessary to allow poly-line connector routing.
+ PolyLineRouting = 1,
+ //! @brief This option specifies that the router should maintain the
+ //! structures necessary to allow orthogonal connector routing.
+ OrthogonalRouting = 2
+};
+
+
+static const unsigned int runningTo = 1;
+static const unsigned int runningFrom = 2;
+static const unsigned int runningToAndFrom = runningTo | runningFrom;
+
+//! @brief Types of routing parameters and penalties that can be used to
+//! tailor the style and improve the quality of the connector
+//! routes produced.
+enum RoutingParameter
+{
+ //! @brief This penalty is applied for each segment in the connector
+ //! path beyond the first. This should always normally be set
+ //! when doing orthogonal routing to prevent step-like connector
+ //! paths.
+ //! @note This penalty must be set (i.e., be greater than zero) in
+ //! order for orthogonal connector nudging to be performed, since
+ //! this requires reasonable initial routes.
+ segmentPenalty = 0,
+
+ //! @brief This penalty is applied in its full amount to tight acute
+ //! bends in the connector path. A smaller portion of the penalty
+ //! is applied for slight bends, i.e., where the bend is close to
+ //! 180 degrees. This is useful for polyline routing where there
+ //! is some evidence that tighter corners are worse for
+ //! readability, but that slight bends might not be so bad,
+ //! especially when smoothed by curves.
+ anglePenalty,
+
+ //! @brief This penalty is applied whenever a connector path crosses
+ //! another connector path. It takes shared paths into
+ //! consideration and the penalty is only applied if there
+ //! is an actual crossing.
+ //! @note This penalty is still experimental! It is not recommended
+ //! for normal use.
+ crossingPenalty,
+
+ //! @brief This penalty is applied whenever a connector path crosses
+ //! a cluster boundary.
+ //! @note This penalty is still experimental! It is not recommended
+ //! for normal use.
+ //! @note This penalty is very slow. You can override the method
+ //! Router::shouldContinueTransactionWithProgress() to check
+ //! progress and possibly cancel overly slow transactions.
+ clusterCrossingPenalty,
+
+ //! @brief This penalty is applied whenever a connector path shares
+ //! some segments with an immovable portion of an existing
+ //! connector route (such as the first or last segment of a
+ //! connector).
+ //! @note This penalty is still experimental! It is not recommended
+ //! for normal use.
+ fixedSharedPathPenalty,
+
+ //! @brief This penalty is applied to port selection choice when the
+ //! other end of the connector being routed does not appear in
+ //! any of the 90 degree visibility cones centered on the
+ //! visibility directions for the port.
+ //! @note This penalty is still experimental! It is not recommended
+ //! for normal use.
+ //! @note This penalty is very slow. You can override the method
+ //! Router::shouldContinueTransactionWithProgress() to check
+ //! progress and possibly cancel overly slow transactions.
+ portDirectionPenalty,
+
+ //! @brief This parameter defines the spacing distance that will be added
+ //! to the sides of each shape when determining obstacle sizes for
+ //! routing. This controls how closely connectors pass shapes, and
+ //! can be used to prevent connectors overlapping with shape
+ //! boundaries. By default, this distance is set to a value of 0.
+ shapeBufferDistance,
+
+ //! @brief This parameter defines the spacing distance that will be used
+ //! for nudging apart overlapping corners and line segments of
+ //! connectors. By default, this distance is set to a value of 4.
+ idealNudgingDistance,
+
+ //! @brief This penalty is applied whenever a connector path travels
+ //! in the direction opposite of the destination from the source
+ //! endpoint. By default this penalty is set to zero. This
+ //! shouldn't be needed in most cases but can be useful if you
+ //! use penalties such as ::crossingPenalty which cause connectors
+ //! to loop around obstacles.
+ reverseDirectionPenalty,
+
+ // Used for determining the size of the routing parameter array.
+ // This should always we the last value in the enum.
+ lastRoutingParameterMarker
+};
+
+// Backwards compatibility
+typedef enum RoutingParameter PenaltyType;
+
+
+//! @brief Types of routing options that can be enabled.
+enum RoutingOption
+{
+ //! This option causes the final segments of connectors, which are
+ //! attached to shapes, to be nudged apart. Usually these segments
+ //! are fixed, since they are considered to be attached to ports.
+ //!
+ //! Defaults to false.
+ //!
+ //! This option also causes routes running through the same checkpoint
+ //! to be nudged apart.
+ //!
+ //! This option has no effect if ::nudgeSharedPathsWithCommonEndPoint is
+ //! set to false,
+ //!
+ //! @note This will allow routes to be nudged up to the bounds of shapes.
+ //!
+ nudgeOrthogonalSegmentsConnectedToShapes = 0,
+
+ //! This option causes hyperedge routes to be locally improved fixing
+ //! obviously bad paths. As part of this process libavoid will
+ //! effectively move junctions, setting new ideal positions which can be
+ //! accessed via JunctionRef::recommendedPosition() for each junction.
+ //!
+ //! Defaults to true.
+ //!
+ //! This will not add or remove junctions, so will keep the hyperedge
+ //! topology the same. Better routes can be achieved by enabling the
+ //! ::improveHyperedgeRoutesMovingAddingAndDeletingJunctions option.
+ //!
+ //! If initial sensible positions for junctions in hyperedges are not
+ //! known you can register those hyperedges with the HyperedgeRerouter
+ //! class for complete rerouting.
+ //!
+ //! @sa improveHyperedgeRoutesMovingAddingAndDeletingJunctions
+ //! @sa Router::hyperedgeRerouter()
+ //!
+ improveHyperedgeRoutesMovingJunctions,
+
+ //! This option penalises and attempts to reroute orthogonal shared
+ //! connector paths terminating at a common junction or shape
+ //! connection pin. When multiple connector paths enter or leave
+ //! the same side of a junction (or shape pin), the router will
+ //! attempt to reroute these to different sides of the junction or
+ //! different shape pins.
+ //!
+ //! Defaults to false.
+ //!
+ //! This option depends on the ::fixedSharedPathPenalty penalty having
+ //! been set.
+ //!
+ //! @sa fixedSharedPathPenalty
+ //! @note This option is still experimental! It is not recommended
+ //! for normal use.
+ //!
+ penaliseOrthogonalSharedPathsAtConnEnds,
+
+ //! This option can be used to control whether collinear line
+ //! segments that touch just at their ends will be nudged apart.
+ //! The overlap will usually be resolved in the other dimension,
+ //! so this is not usually required.
+ //!
+ //! Defaults to false.
+ //!
+ nudgeOrthogonalTouchingColinearSegments,
+
+ //! This option can be used to control whether the router performs
+ //! a preprocessing step before orthogonal nudging where is tries
+ //! to unify segments and centre them in free space. This
+ //! generally results in better quality ordering and nudging.
+ //!
+ //! Defaults to true.
+ //!
+ //! You may wish to turn this off for large examples where it
+ //! can be very slow and will make little difference.
+ //!
+ performUnifyingNudgingPreprocessingStep,
+
+ //! This option causes hyperedge routes to be locally improved fixing
+ //! obviously bad paths.
+ //!
+ //! It can cause junctions and connectors to be added or removed from
+ //! hyperedges. To get details of these changes for each connector you can
+ //! call Router::newAndDeletedObjectListsFromHyperedgeImprovement().
+ //!
+ //! As part of this process libavoid will effectively move junctions by
+ //! setting new ideal positions for each remaining or added junction,
+ //! which can be read from JunctionRef::recommendedPosition() for each
+ //! junction.
+ //!
+ //! Defaults to false.
+ //!
+ //! If set, this option overrides the ::improveHyperedgeRoutesMovingJunctions
+ //! option.
+ //!
+ //! If initial sensible positions for junctions in hyperedges are not
+ //! known you can register those hyperedges with the HyperedgeRerouter
+ //! class for complete rerouting.
+ //!
+ //! @sa improveHyperedgeRoutesMovingJunctions
+ //! @sa Router::hyperedgeRerouter()
+ //!
+ improveHyperedgeRoutesMovingAddingAndDeletingJunctions,
+
+ //! This option determines whether intermediate segments of connectors that
+ //! are attached to common endpoints will be nudged apart. Usually these
+ //! segments get nudged apart, but you may want to turn this off if you would
+ //! prefer that entire shared paths terminating at a common end point should
+ //! overlap.
+ //!
+ //! Defaults to true.
+ //!
+ nudgeSharedPathsWithCommonEndPoint,
+
+
+ // Used for determining the size of the routing options array.
+ // This should always we the last value in the enum.
+ lastRoutingOptionMarker
+};
+
+//! @brief Types of routing phases reported by
+//! Router::shouldContinueTransactionWithProgress().
+//!
+//! This phases will occur in the order given here, but each phase may take
+//! varying amounts of time.
+//!
+enum TransactionPhases
+{
+ //! @brief The orthogonal visibility graph is built by conducting a
+ //! scan in each dimension. This is the x-dimension.
+ TransactionPhaseOrthogonalVisibilityGraphScanX = 1,
+ //! @brief The orthogonal visibility graph is built by conducting a
+ //! scan in each dimension. This is the y-dimension.
+ TransactionPhaseOrthogonalVisibilityGraphScanY,
+ //! @brief Initial routes are searched for in the visibility graph.
+ TransactionPhaseRouteSearch,
+ //! @brief With crossing penalties enabled, crossing detection is
+ //! performed to find all crossings.
+ TransactionPhaseCrossingDetection,
+ //! @brief Crossing connectors are rerouted to search for better routes.
+ TransactionPhaseRerouteSearch,
+ //! @brief Orthogonal edge segments are nudged apart in the x-dimension.
+ TransactionPhaseOrthogonalNudgingX,
+ //! @brief Orthogonal edge segments are nudged apart in the y-dimension.
+ TransactionPhaseOrthogonalNudgingY,
+ //! @brief Not a real phase, but represents the router is finished (or has
+ //! aborted) the transaction and you may interact with is again.
+ TransactionPhaseCompleted
+};
+
+// NOTE: This is an internal helper class that should not be used by the user.
+//
+// This class allows edges in the visibility graph to store a
+// pointer to a boolean registering when a connector needs to
+// reroute, while allowing connectors to be deleted without
+// needing to scan and remove these references from the visibility
+// graph. Instead the bool is stored in this delegate and the
+// connector is alerted later, so long as it hasn't since been
+// deleted.
+class ConnRerouteFlagDelegate {
+ public:
+ ConnRerouteFlagDelegate();
+ ~ConnRerouteFlagDelegate();
+ bool *addConn(ConnRef *conn);
+ void removeConn(ConnRef *conn);
+ void alertConns(void);
+ private:
+ std::list<std::pair<ConnRef *, bool> > m_mapping;
+};
+
+static const double zeroParamValue = 0;
+static const double chooseSensibleParamValue = -1;
+
+// NOTE: This is an internal helper class that should not be used by the user.
+//
+// It is used by libtopology to add additional functionality to libavoid
+// while keeping libavoid dependency free.
+class TopologyAddonInterface
+{
+ public:
+ TopologyAddonInterface()
+ {
+ }
+ virtual ~TopologyAddonInterface()
+ {
+ }
+ virtual TopologyAddonInterface *clone(void) const
+ {
+ return new TopologyAddonInterface(*this);
+ }
+
+ virtual void improveOrthogonalTopology(Router *router)
+ {
+ (void)(router); // Avoid unused parameter warning.
+ }
+ virtual bool outputCode(FILE *fp) const
+ {
+ (void)(fp); // Avoid unused parameter warning.
+ return false;
+ }
+ virtual bool outputDeletionCode(FILE *fp) const
+ {
+ (void)(fp); // Avoid unused parameter warning.
+ return false;
+ }
+};
+
+
+//! @brief The Router class represents a libavoid router instance.
+//!
+//! Usually you would keep a separate Router instance for each diagram
+//! or layout you have open in your application.
+//
+class AVOID_EXPORT Router {
+ public:
+ //! @brief Constructor for router instance.
+ //!
+ //! @param[in] flags One or more Avoid::RouterFlag options to
+ //! control the behaviour of the router.
+ Router(const unsigned int flags);
+
+ //! @brief Destructor for router instance.
+ //!
+ //! @note Destroying a router instance will delete all remaining
+ //! shapes and connectors, thereby invalidating any existing
+ //! pointers to them.
+ virtual ~Router();
+
+ ObstacleList m_obstacles;
+ ConnRefList connRefs;
+ ClusterRefList clusterRefs;
+ EdgeList visGraph;
+ EdgeList invisGraph;
+ EdgeList visOrthogGraph;
+ ContainsMap contains;
+ VertInfList vertices;
+ ContainsMap enclosingClusters;
+
+ bool PartialTime;
+ bool SimpleRouting;
+ bool ClusteredRouting;
+
+ // Poly-line routing options:
+ bool IgnoreRegions;
+ bool UseLeesAlgorithm;
+ bool InvisibilityGrph;
+
+ // General routing options:
+ bool SelectiveReroute;
+
+ bool PartialFeedback;
+ bool RubberBandRouting;
+
+
+ // Instrumentation:
+#ifdef AVOID_PROFILE
+ Timer timers;
+#endif
+ int st_checked_edges;
+
+ //! @brief Allows setting of the behaviour of the router in regard
+ //! to transactions. This controls whether transactions are
+ //! used to queue changes and process them efficiently at once
+ //! or they are instead processed immediately.
+ //!
+ //! It is more efficient to perform actions like shape movement,
+ //! addition or deletion as batch tasks, and reroute the necessary
+ //! connectors just once after these actions have been performed.
+ //! For this reason, libavoid allows you to group such actions into
+ //! "transactions" that are processed efficiently when the
+ //! processTransaction() method is called.
+ //!
+ //! By default, the router will process all actions as transactions.
+ //! If transactionUse() is set to false, then all actions will get
+ //! processed immediately, and cause immediate routing callbacks to
+ //! all affected connectors after each action.
+ //!
+ //! @param[in] transactions A boolean value specifying whether to
+ //! use transactions.
+ //!
+ void setTransactionUse(const bool transactions);
+
+ //! @brief Reports whether the router groups actions into transactions.
+ //!
+ //! @return A boolean value describing whether transactions are in use.
+ //!
+ //! @sa setTransactionUse
+ //! @sa processTransaction
+ //!
+ bool transactionUse(void) const;
+
+ //! @brief Finishes the current transaction and processes all the
+ //! queued object changes efficiently.
+ //!
+ //! This method will efficiently process all moves, additions and
+ //! deletions that have occurred since processTransaction() was
+ //! last called.
+ //!
+ //! If transactionUse() is false, then all actions will have been
+ //! processed immediately and this method will do nothing.
+ //!
+ //! @return A boolean value describing whether there were any actions
+ //! to process.
+ //!
+ //! @sa setTransactionUse
+ //!
+ bool processTransaction(void);
+
+ //! @brief Delete a shape from the router scene.
+ //!
+ //! Connectors that could have a better (usually shorter) path after
+ //! the removal of this shape will be marked as needing to be rerouted.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! You should not use the shape reference again after this call.
+ //! The router will handle freeing of the shape's memory.
+ //!
+ //! @param[in] shape Pointer reference to the shape being removed.
+ //!
+ void deleteShape(ShapeRef *shape);
+
+ //! @brief Move or resize an existing shape within the router scene.
+ //!
+ //! A new polygon for the shape can be given to effectively move or
+ //! resize the shape with the scene. Connectors that intersect the
+ //! new shape polygon, or that could have a better (usually shorter)
+ //! path after the change, will be marked as needing to be rerouted.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] shape Pointer reference to the shape being
+ //! moved/resized.
+ //! @param[in] newPoly The new polygon boundary for the shape.
+ //! @param[in] first_move This option is used for some advanced
+ //! (currently undocumented) behaviour and
+ //! it should be ignored for the moment.
+ //!
+ void moveShape(ShapeRef *shape, const Polygon& newPoly,
+ const bool first_move = false);
+
+ //! @brief Move an existing shape within the router scene by a relative
+ //! distance.
+ //!
+ //! Connectors that intersect the shape's new position, or that could
+ //! have a better (usually shorter) path after the change, will be
+ //! marked as needing to be rerouted.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] shape Pointer reference to the shape being moved.
+ //! @param[in] xDiff The distance to move the shape in the
+ //! x dimension.
+ //! @param[in] yDiff The distance to move the shape in the
+ //! y dimension.
+ //!
+ void moveShape(ShapeRef *shape, const double xDiff, const double yDiff);
+
+ //! @brief Remove a junction from the router scene.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! You should not use the junction reference again after this call.
+ //! The router will handle freeing of the junction's memory.
+ //!
+ //! @param[in] junction Pointer reference to the junction being
+ //! removed.
+ //!
+ void deleteJunction(JunctionRef *junction);
+
+ //! @brief Remove a connector from the router scene.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! You should not use the connector reference again after this call.
+ //! The router will handle freeing of the connector's memory.
+ //!
+ //! @param[in] connector Pointer reference to the connector being
+ //! removed.
+ //!
+ void deleteConnector(ConnRef *connector);
+
+ //! @brief Move an existing junction within the router scene.
+ //!
+ //! Connectors that are attached to this junction will be rerouted
+ //! as a result of the move.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] junction Pointer reference to the junction being
+ //! moved.
+ //! @param[in] newPosition The new position for the junction.
+ //!
+ void moveJunction(JunctionRef *junction, const Point& newPosition);
+
+ //! @brief Move an existing junction within the router scene by a
+ //! relative distance.
+ //!
+ //! Connectors that are attached to this junction will be rerouted
+ //! as a result of the move.
+ //!
+ //! If the router is using transactions, then this action will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! @param[in] junction Pointer reference to the junction being
+ //! moved.
+ //! @param[in] xDiff The distance to move the junction in the
+ //! x dimension.
+ //! @param[in] yDiff The distance to move the junction in the
+ //! y dimension.
+ //!
+ void moveJunction(JunctionRef *junction, const double xDiff,
+ const double yDiff);
+
+ //! @brief Sets values for routing parameters, including routing
+ //! penalties.
+ //!
+ //! libavoid uses a set of parameters to allow the user more control
+ //! over routing style and quality. These different parameters are
+ //! described and explained by the RoutingParameter enum. All
+ //! parameters have sensible defaults.
+ //!
+ //! Regarding routing penalties, libavoid will by default produce
+ //! shortest path routes between the source and destination points
+ //! for each connector. There are several penalties that can be
+ //! applied during this stage to penalise certain conditions and
+ //! thus improve the aesthetics of the routes generated.
+ //!
+ //! If a value of zero or Avoid::zeroParamValue is given then the
+ //! particular parameter value or penalty will be removed. If no
+ //! parameter value argument (or a negative value) is specified
+ //! when calling this method, then a sensible penalty value will
+ //! be automatically chosen.
+ //!
+ //! This method does not re-trigger processing of connectors. The new
+ //! parameter value will be used the next time rerouting is performed.
+ //!
+ //! @param[in] parameter The type of penalty, a RoutingParameter.
+ //! @param[in] value The value to be set for that parameter.
+ //!
+ void setRoutingParameter(const RoutingParameter parameter,
+ const double value = chooseSensibleParamValue);
+
+ //! @brief Returns the current value for a particular routing
+ //! parameter of a given type.
+ //!
+ //! @param[in] parameter The type of parameter, a RoutingParameter.
+ //! @return The value for the specified routing parameter.
+ //!
+ double routingParameter(const RoutingParameter parameter) const;
+
+ //! @brief Turn specific routing options on or off.
+ //!
+ //! @param[in] option The type of routing option, a RoutingOption.
+ //! @param[in] value A boolean representing the option state.
+ //!
+ void setRoutingOption(const RoutingOption option, const bool value);
+
+ //! @brief Returns the current state for a specific routing option.
+ //!
+ //! @param[in] option The type of routing option, a RoutingOption.
+ //! @return A boolean representing the option state.
+ //!
+ bool routingOption(const RoutingOption option) const;
+
+ //! @brief Sets or removes penalty values that are applied during
+ //! connector routing.
+ //!
+ //! @note This is a convenience wrapper for the setRoutingParameter()
+ // method. See its documentation for more details.
+ //!
+ //! @param[in] penType The type of penalty, a RoutingParameter.
+ //! @param[in] penVal The value to be applied for each occurrence
+ //! of the penalty case.
+ //!
+ void setRoutingPenalty(const RoutingParameter penType,
+ const double penVal = chooseSensibleParamValue);
+
+ //! @brief Returns a pointer to the hyperedge rerouter for the router.
+ //!
+ //! @return A HyperedgeRerouter object that can be used to register
+ //! hyperedges for rerouting.
+ //!
+ HyperedgeRerouter *hyperedgeRerouter(void);
+
+ //! @brief Generates an SVG file containing debug output and code that
+ //! can be used to regenerate the instance.
+ //!
+ //! If transactions are being used, then this method should be called
+ //! after processTransaction() has been called, so that it includes any
+ //! changes being queued by the router.
+ //!
+ //! @param[in] filename A string indicating the filename (without
+ //! extension) for the output file. Defaults to
+ //! "libavoid-debug.svg" if no filename is given.
+ //!
+ void outputInstanceToSVG(std::string filename = std::string());
+
+ //! @brief Returns the object ID used for automatically generated
+ //! objects, such as during hyperedge routing.
+ //!
+ //! Reimplement this in a subclass to set specific IDs for new objects.
+ //!
+ //! @note Your implementation should return a value that does not
+ //! fail objectIdIsUnused().
+ //!
+ //! @return The ID for a new object.
+ //!
+ virtual unsigned int newObjectId(void) const;
+
+ //! @brief Returns whether or not the given ID is already used.
+ //!
+ //! You should only need this if you reimplement newObjectId().
+ //!
+ //! @param[in] id An ID to test.
+ //! @return A boolean denoting that the given ID is unused.
+ //!
+ bool objectIdIsUnused(const unsigned int id) const;
+
+ //! @brief A method called at regular intervals during transaction
+ //! processing to report progress and ask if the Router
+ //! should continue the transaction.
+ //!
+ //! You can subclass the Avoid::Router class to implement your
+ //! own behaviour, such as to show a progress bar or cancel the
+ //! transaction at the user's request.
+ //!
+ //! Note that you can get a sense of progress by looking at the
+ //! phaseNumber divided by the totalPhases and the progress in the
+ //! current phase, but be aware that phases and the intervals and
+ //! proportions at which this method is called will vary, sometime
+ //! unpredictably.
+ //!
+ //! You can return false to request that the Router abort the current
+ //! transaction. Be aware that it may not abort in some phases. For
+ //! others it may need to clean up some state before it is safe for
+ //! you to interact with it again. Hence you should wait for a final
+ //! call to this method with the phase Avoid::TransactionPhaseCompleted
+ //! before continuing.
+ //!
+ //! @note Your implementation of this method should be very fast as
+ //! it will be called many times. Also, you should not change
+ //! or interact with the Router instance at all during these
+ //! calls. Wait till you have received a call with the
+ //! Avoid::TransactionPhaseCompleted phase.
+ //!
+ //! @param elapsedTime The number of msec spent on the transaction
+ //! since it began.
+ //! @param phaseNumber A Router::TransactionPhases representing the
+ //! current phase of the transaction.
+ //! @param totalPhases The total number of phases to be performed
+ //! during the transaction.
+ //! @param proportion A double representing the progress in the
+ //! current phase. Value will be between 0--1.
+ //!
+ //! @return Whether the router should continue the transaction.
+ //! This is true in the default (empty) implementation.
+ virtual bool shouldContinueTransactionWithProgress(
+ unsigned int elapsedTime, unsigned int phaseNumber,
+ unsigned int totalPhases, double proportion);
+
+ //! @brief Returns a HyperedgeNewAndDeletedObjectLists detailing the
+ //! lists of junctions and connectors created and deleted
+ //! during hyperedge improvement.
+ //!
+ //! This method will only return information once the router has
+ //! processed the transaction. You should read and act on this
+ //! information before processTransaction() is called again.
+ //!
+ //! After calling this you should no longer refer to any of the
+ //! objects in the "deleted" lists --- the router will delete these
+ //! and free their memory at its convenience.
+ //!
+ //! @return A HyperedgeNewAndDeletedObjectLists containing lists of
+ //! junctions and connectors created and deleted.
+ //!
+ HyperedgeNewAndDeletedObjectLists
+ newAndDeletedObjectListsFromHyperedgeImprovement(void) const;
+
+ void setDebugHandler(DebugHandler *handler);
+ DebugHandler *debugHandler(void) const;
+
+ // Processes the actions list for the transaction. You shouldn't
+ // need to cal this. Instead use processTransaction().
+ void processActions(void);
+
+ void deleteCluster(ClusterRef *cluster);
+ void attachedShapes(IntList &shapes, const unsigned int shapeId,
+ const unsigned int type);
+ void attachedConns(IntList &conns, const unsigned int shapeId,
+ const unsigned int type);
+ void markPolylineConnectorsNeedingReroutingForDeletedObstacle(
+ Obstacle *obstacle);
+ void generateContains(VertInf *pt);
+ void printInfo(void);
+ void regenerateStaticBuiltGraph(void);
+ void destroyOrthogonalVisGraph(void);
+ void setStaticGraphInvalidated(const bool invalidated);
+ ConnType validConnType(const ConnType select = ConnType_None) const;
+ bool isInCrossingPenaltyReroutingStage(void) const;
+ void markAllObstaclesAsMoved(void);
+ ShapeRef *shapeContainingPoint(const Point& point);
+ void performContinuationCheck(unsigned int phaseNumber,
+ size_t stepNumber, size_t totalSteps);
+ void registerSettingsChange(void);
+
+ /**
+ * @brief Set an addon for doing orthogonal topology improvement.
+ *
+ * It is expected that you would use the topology::AvoidTopologyAddon()
+ * from libtopology rather than write your own. This is done so that
+ * libavoid does not have to depend on libtopology.
+ */
+ void setTopologyAddon(TopologyAddonInterface *topologyAddon);
+ void improveOrthogonalTopology(void);
+
+ // Testing and debugging methods.
+ bool existsOrthogonalSegmentOverlap(const bool atEnds = false);
+ bool existsOrthogonalFixedSegmentOverlap(const bool atEnds = false);
+ bool existsOrthogonalTouchingPaths(void);
+ int existsCrossings(const bool optimisedForConnectorType = false);
+ bool existsInvalidOrthogonalPaths(void);
+
+ // Outputs the current diagram. Used for visualising individual
+ // steps of various algorithms. lineReps can be used to draw
+ // attention to specific parts of the diagram that have changed
+ // between steps.
+ void outputDiagramSVG(std::string instanceName = std::string(),
+ LineReps *lineReps = nullptr);
+
+ void outputDiagramText(std::string instanceName = std::string());
+ void outputDiagram(std::string instanceName = std::string());
+
+ private:
+ friend class ShapeRef;
+ friend class ConnRef;
+ friend class JunctionRef;
+ friend class Obstacle;
+ friend class ClusterRef;
+ friend class ShapeConnectionPin;
+ friend class MinimumTerminalSpanningTree;
+ friend class ConnEnd;
+ friend struct HyperedgeTreeNode;
+ friend class HyperedgeRerouter;
+ friend class HyperedgeImprover;
+
+ unsigned int assignId(const unsigned int suggestedId);
+ void addShape(ShapeRef *shape);
+ void addJunction(JunctionRef *junction);
+ void addCluster(ClusterRef *cluster);
+ void modifyConnector(ConnRef *conn);
+ void modifyConnector(ConnRef *conn, unsigned int type,
+ const ConnEnd &connEnd, bool connPinUpdate = false);
+ void modifyConnectionPin(ShapeConnectionPin *pin);
+
+ void removeObjectFromQueuedActions(const void *object);
+ void newBlockingShape(const Polygon& poly, int pid);
+ void checkAllBlockedEdges(int pid);
+ void checkAllMissingEdges(void);
+ void adjustContainsWithAdd(const Polygon& poly, const int p_shape);
+ void adjustContainsWithDel(const int p_shape);
+ void adjustClustersWithAdd(const PolygonInterface& poly,
+ const int p_cluster);
+ void adjustClustersWithDel(const int p_cluster);
+ void rerouteAndCallbackConnectors(void);
+ void improveCrossings(void);
+
+ ActionInfoList actionList;
+ unsigned int m_largest_assigned_id;
+ bool m_consolidate_actions;
+ bool m_currently_calling_destructors;
+ double m_routing_parameters[lastRoutingParameterMarker];
+ bool m_routing_options[lastRoutingOptionMarker];
+
+ ConnRerouteFlagDelegate m_conn_reroute_flags;
+ HyperedgeRerouter m_hyperedge_rerouter;
+
+ // Progress tracking and transaction cancelling.
+ clock_t m_transaction_start_time;
+ bool m_abort_transaction;
+
+ TopologyAddonInterface *m_topology_addon;
+
+ // Overall modes:
+ bool m_allows_polyline_routing;
+ bool m_allows_orthogonal_routing;
+
+ bool m_static_orthogonal_graph_invalidated;
+ bool m_in_crossing_rerouting_stage;
+
+ bool m_settings_changes;
+
+ HyperedgeImprover m_hyperedge_improver;
+
+ DebugHandler *m_debug_handler;
+};
+
+
+}
+
+
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/scanline.cpp b/src/3rdparty/adaptagrams/libavoid/scanline.cpp
new file mode 100644
index 0000000..9351c36
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/scanline.cpp
@@ -0,0 +1,562 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2009-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cfloat>
+#include <algorithm>
+
+#include "libavoid/scanline.h"
+#include "libavoid/obstacle.h"
+#include "libavoid/vertices.h"
+#include "libavoid/connector.h"
+#include "libavoid/junction.h"
+#include "libavoid/router.h"
+
+namespace Avoid {
+
+bool CmpNodePos::operator() (const Node* u, const Node* v) const
+{
+ if (u->pos != v->pos)
+ {
+ return u->pos < v->pos;
+ }
+
+ // Use the pointers to the base objects to differentiate them.
+ void *up = (u->v) ? (void *) u->v :
+ ((u->c) ? (void *) u->c : (void *) u->ss);
+ void *vp = (v->v) ? (void *) v->v :
+ ((v->c) ? (void *) v->c : (void *) v->ss);
+ return up < vp;
+}
+
+
+Node::Node(Obstacle *v, const double p)
+ : v(v),
+ c(nullptr),
+ ss(nullptr),
+ pos(p),
+ firstAbove(nullptr),
+ firstBelow(nullptr)
+{
+ Box bBox = v->routingBox();
+ min[XDIM] = bBox.min.x;
+ min[YDIM] = bBox.min.y;
+ max[XDIM] = bBox.max.x;
+ max[YDIM] = bBox.max.y;
+ //COLA_ASSERT(r->width()<1e40);
+}
+
+Node::Node(VertInf *c, const double p)
+ : v(nullptr),
+ c(c),
+ ss(nullptr),
+ pos(p),
+ firstAbove(nullptr),
+ firstBelow(nullptr)
+{
+ min[XDIM] = max[XDIM] = c->point.x;
+ min[YDIM] = max[YDIM] = c->point.y;
+}
+
+Node::Node(ShiftSegment *ss, const double p)
+ : v(nullptr),
+ c(nullptr),
+ ss(ss),
+ pos(p),
+ firstAbove(nullptr),
+ firstBelow(nullptr)
+{
+ // These values shouldn't ever be used, so they don't matter.
+ min[XDIM] = max[XDIM] = min[YDIM] = max[YDIM] = 0;
+}
+
+Node::~Node()
+{
+}
+
+// Find the first Node above in the scanline that is a shape edge,
+// and does not have an open or close event at this position (meaning
+// it is just about to be removed).
+double Node::firstObstacleAbove(size_t dim)
+{
+ Node *curr = firstAbove;
+ while (curr && (curr->ss || (curr->max[dim] > pos)))
+ {
+ curr = curr->firstAbove;
+ }
+
+ if (curr)
+ {
+ return curr->max[dim];
+ }
+ return -DBL_MAX;
+}
+
+// Find the first Node below in the scanline that is a shape edge,
+// and does not have an open or close event at this position (meaning
+// it is just about to be removed).
+double Node::firstObstacleBelow(size_t dim)
+{
+ Node *curr = firstBelow;
+ while (curr && (curr->ss || (curr->min[dim] < pos)))
+ {
+ curr = curr->firstBelow;
+ }
+
+ if (curr)
+ {
+ return curr->min[dim];
+ }
+ return DBL_MAX;
+}
+
+// Mark all connector segments above in the scanline as being able
+// to see to this shape edge.
+void Node::markShiftSegmentsAbove(size_t dim)
+{
+ Node *curr = firstAbove;
+ while (curr && (curr->ss || (curr->pos > min[dim])))
+ {
+ if (curr->ss && (curr->pos <= min[dim]))
+ {
+ curr->ss->maxSpaceLimit =
+ std::min(min[dim], curr->ss->maxSpaceLimit);
+ }
+ curr = curr->firstAbove;
+ }
+}
+
+// Mark all connector segments below in the scanline as being able
+// to see to this shape edge.
+void Node::markShiftSegmentsBelow(size_t dim)
+{
+ Node *curr = firstBelow;
+ while (curr && (curr->ss || (curr->pos < max[dim])))
+ {
+ if (curr->ss && (curr->pos >= max[dim]))
+ {
+ curr->ss->minSpaceLimit =
+ std::max(max[dim], curr->ss->minSpaceLimit);
+ }
+ curr = curr->firstBelow;
+ }
+}
+
+void Node::findFirstPointAboveAndBelow(const size_t dim, const double linePos,
+ double& firstAbovePos, double& firstBelowPos,
+ double& lastAbovePos, double& lastBelowPos)
+{
+ firstAbovePos = -DBL_MAX;
+ firstBelowPos = DBL_MAX;
+ // We start looking left from the right side of the shape,
+ // and vice versa.
+ lastAbovePos = max[dim];
+ lastBelowPos = min[dim];
+
+ Node *curr = nullptr;
+ bool eventsAtSamePos = false;
+ for (int direction = 0; direction < 2; ++direction)
+ {
+ // Look for obstacles in one direction, then the other.
+ curr = (direction == 0) ? firstAbove: firstBelow;
+
+ while (curr)
+ {
+ // The events are at a shared beginning or end of a shape or
+ // connection point. Note, connection points have the same
+ // min and max value in the !dim dimension.
+ eventsAtSamePos =
+ (((linePos == max[!dim]) &&
+ (linePos == curr->max[!dim])) ||
+ ((linePos == min[!dim]) &&
+ (linePos == curr->min[!dim])));
+
+ if (curr->max[dim] <= min[dim])
+ {
+ // Curr shape is completely to the left,
+ // so add it's right side as a limit
+ firstAbovePos = std::max(curr->max[dim], firstAbovePos);
+ }
+ else if (curr->min[dim] >= max[dim])
+ {
+ // Curr shape is completely to the right,
+ // so add it's left side as a limit
+ firstBelowPos = std::min(curr->min[dim], firstBelowPos);
+ }
+ else if (!eventsAtSamePos)
+ {
+ // Shapes that open or close at the same position do not
+ // block visibility, so if they are not at same position
+ // determine where they overlap.
+ lastAbovePos = std::min(curr->min[dim], lastAbovePos);
+ lastBelowPos = std::max(curr->max[dim], lastBelowPos);
+ }
+ curr = (direction == 0) ? curr->firstAbove : curr->firstBelow;
+ }
+ }
+}
+
+double Node::firstPointAbove(size_t dim)
+{
+ // We are looking for the first obstacle above this position,
+ // though we ignore shape edges if this point is inline with
+ // the edge of the obstacle. That is, points have visibility
+ // along the edge of shapes.
+ size_t altDim = (dim + 1) % 2;
+ double result = -DBL_MAX;
+ Node *curr = firstAbove;
+ while (curr)
+ {
+ bool inLineWithEdge = (min[altDim] == curr->min[altDim]) ||
+ (min[altDim] == curr->max[altDim]);
+ if ( ! inLineWithEdge && (curr->max[dim] <= pos) )
+ {
+ result = std::max(curr->max[dim], result);
+ }
+ curr = curr->firstAbove;
+ }
+ return result;
+}
+
+double Node::firstPointBelow(size_t dim)
+{
+ // We are looking for the first obstacle below this position,
+ // though we ignore shape edges if this point is inline with
+ // the edge of the obstacle. That is, points have visibility
+ // along the edge of shapes.
+ size_t altDim = (dim + 1) % 2;
+ double result = DBL_MAX;
+ Node *curr = firstBelow;
+ while (curr)
+ {
+ bool inLineWithEdge = (min[altDim] == curr->min[altDim]) ||
+ (min[altDim] == curr->max[altDim]);
+ if ( ! inLineWithEdge && (curr->min[dim] >= pos) )
+ {
+ result = std::min(curr->min[dim], result);
+ }
+ curr = curr->firstBelow;
+ }
+ return result;
+}
+
+// This is a bit inefficient, but we won't need to do it once we have
+// connection points.
+bool Node::isInsideShape(size_t dimension)
+{
+ for (Node *curr = firstBelow; curr; curr = curr->firstBelow)
+ {
+ if ((curr->min[dimension] < pos) && (pos < curr->max[dimension]))
+ {
+ return true;
+ }
+ }
+ for (Node *curr = firstAbove; curr; curr = curr->firstAbove)
+ {
+ if ((curr->min[dimension] < pos) && (pos < curr->max[dimension]))
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+Event::Event(EventType t, Node *v, double p)
+ : type(t),
+ v(v),
+ pos(p)
+{
+}
+
+
+// Used for quicksort. Must return <0, 0, or >0.
+int compare_events(const void *a, const void *b)
+{
+ Event *ea = *(Event**) a;
+ Event *eb = *(Event**) b;
+ if (ea->pos != eb->pos)
+ {
+ return (ea->pos < eb->pos) ? -1 : 1;
+ }
+ if (ea->type != eb->type)
+ {
+ return ea->type - eb->type;
+ }
+ COLA_ASSERT(ea->v != eb->v);
+ return (int)(ea->v - eb->v);
+}
+
+
+void buildConnectorRouteCheckpointCache(Router *router)
+{
+ for (ConnRefList::const_iterator curr = router->connRefs.begin();
+ curr != router->connRefs.end(); ++curr)
+ {
+ ConnRef *conn = *curr;
+ if (conn->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+
+ PolyLine& displayRoute = conn->displayRoute();
+ std::vector<Checkpoint> checkpoints = conn->routingCheckpoints();
+
+ // Initialise checkpoint vector and set to false. There will be
+ // one entry for each *segment* in the path, and the value indicates
+ // whether the segment is affected by a checkpoint.
+ displayRoute.checkpointsOnRoute =
+ std::vector<std::pair<size_t, Point> >();
+
+ for (size_t ind = 0; ind < displayRoute.size(); ++ind)
+ {
+ if (ind > 0)
+ {
+ for (size_t cpi = 0; cpi < checkpoints.size(); ++cpi)
+ {
+ if (pointOnLine(displayRoute.ps[ind - 1],
+ displayRoute.ps[ind], checkpoints[cpi].point) )
+ {
+ // The checkpoint is on a segment.
+ displayRoute.checkpointsOnRoute.push_back(
+ std::make_pair((ind * 2) - 1,
+ checkpoints[cpi].point));
+ }
+ }
+ }
+
+ for (size_t cpi = 0; cpi < checkpoints.size(); ++cpi)
+ {
+ if (displayRoute.ps[ind].equals(checkpoints[cpi].point))
+ {
+ // The checkpoint is at a bendpoint.
+ displayRoute.checkpointsOnRoute.push_back(
+ std::make_pair(ind * 2, checkpoints[cpi].point));
+ }
+ }
+ }
+ }
+}
+
+
+void clearConnectorRouteCheckpointCache(Router *router)
+{
+ for (ConnRefList::const_iterator curr = router->connRefs.begin();
+ curr != router->connRefs.end(); ++curr)
+ {
+ ConnRef *conn = *curr;
+ if (conn->routingType() != ConnType_Orthogonal)
+ {
+ continue;
+ }
+
+ // Clear the cache.
+ PolyLine& displayRoute = conn->displayRoute();
+ displayRoute.checkpointsOnRoute.clear();
+ }
+}
+
+
+// Processes sweep events used to determine each horizontal and vertical
+// line segment in a connector's channel of visibility.
+// Four calls to this function are made at each position by the scanline:
+// 1) Handle all Close event processing.
+// 2) Remove Close event objects from the scanline.
+// 3) Add Open event objects to the scanline.
+// 4) Handle all Open event processing.
+//
+static void processShiftEvent(NodeSet& scanline, Event *e, size_t dim,
+ unsigned int pass)
+{
+ Node *v = e->v;
+
+ if ( ((pass == 3) && (e->type == Open)) ||
+ ((pass == 3) && (e->type == SegOpen)) )
+ {
+ std::pair<NodeSet::iterator, bool> result = scanline.insert(v);
+ v->iter = result.first;
+ COLA_ASSERT(result.second);
+
+ NodeSet::iterator it = v->iter;
+ // Work out neighbours
+ if (it != scanline.begin())
+ {
+ Node *u = *(--it);
+ v->firstAbove = u;
+ u->firstBelow = v;
+ }
+ it = v->iter;
+ if (++it != scanline.end())
+ {
+ Node *u = *it;
+ v->firstBelow = u;
+ u->firstAbove = v;
+ }
+ }
+
+ if ( ((pass == 4) && (e->type == Open)) ||
+ ((pass == 4) && (e->type == SegOpen)) ||
+ ((pass == 1) && (e->type == SegClose)) ||
+ ((pass == 1) && (e->type == Close)) )
+ {
+ if (v->ss)
+ {
+ // As far as we can see.
+ double minLimit = v->firstObstacleAbove(dim);
+ double maxLimit = v->firstObstacleBelow(dim);
+
+ v->ss->minSpaceLimit =
+ std::max(minLimit, v->ss->minSpaceLimit);
+ v->ss->maxSpaceLimit =
+ std::min(maxLimit, v->ss->maxSpaceLimit);
+ }
+ else
+ {
+ v->markShiftSegmentsAbove(dim);
+ v->markShiftSegmentsBelow(dim);
+ }
+ }
+
+ if ( ((pass == 2) && (e->type == SegClose)) ||
+ ((pass == 2) && (e->type == Close)) )
+ {
+ // Clean up neighbour pointers.
+ Node *l = v->firstAbove, *r = v->firstBelow;
+ if (l != nullptr)
+ {
+ l->firstBelow = v->firstBelow;
+ }
+ if (r != nullptr)
+ {
+ r->firstAbove = v->firstAbove;
+ }
+
+ size_t result;
+ result = scanline.erase(v);
+ COLA_ASSERT(result == 1);
+ COLA_UNUSED(result); // Avoid warning.
+ delete v;
+ }
+}
+
+void buildOrthogonalChannelInfo(Router *router,
+ const size_t dim, ShiftSegmentList& segmentList)
+{
+ if (segmentList.empty())
+ {
+ // There are no segments, so we can just return now.
+ return;
+ }
+
+ // Do a sweep to determine space for shifting segments.
+ size_t altDim = (dim + 1) % 2;
+ const size_t n = router->m_obstacles.size();
+ const size_t cpn = segmentList.size();
+ // Set up the events for the sweep.
+ size_t totalEvents = 2 * (n + cpn);
+ Event **events = new Event*[totalEvents];
+ unsigned ctr = 0;
+ ObstacleList::iterator obstacleIt = router->m_obstacles.begin();
+ for (unsigned i = 0; i < n; i++)
+ {
+ Obstacle *obstacle = *obstacleIt;
+ JunctionRef *junction = dynamic_cast<JunctionRef *> (obstacle);
+ if (junction && ! junction->positionFixed())
+ {
+ // Junctions that are free to move are not treated as obstacles.
+ ++obstacleIt;
+ totalEvents -= 2;
+ continue;
+ }
+ Box bBox = obstacle->routingBox();
+ Point min = bBox.min;
+ Point max = bBox.max;
+ double mid = min[dim] + ((max[dim] - min[dim]) / 2);
+ Node *v = new Node(obstacle, mid);
+ events[ctr++] = new Event(Open, v, min[altDim]);
+ events[ctr++] = new Event(Close, v, max[altDim]);
+
+ ++obstacleIt;
+ }
+ for (ShiftSegmentList::iterator curr = segmentList.begin();
+ curr != segmentList.end(); ++curr)
+ {
+ const Point& lowPt = (*curr)->lowPoint();
+ const Point& highPt = (*curr)->highPoint();
+
+ COLA_ASSERT(lowPt[dim] == highPt[dim]);
+ COLA_ASSERT(lowPt[altDim] < highPt[altDim]);
+ Node *v = new Node(*curr, lowPt[dim]);
+ events[ctr++] = new Event(SegOpen, v, lowPt[altDim]);
+ events[ctr++] = new Event(SegClose, v, highPt[altDim]);
+ }
+ qsort((Event*)events, (size_t) totalEvents, sizeof(Event*), compare_events);
+
+ // Process the sweep.
+ // We do multiple passes over sections of the list so we can add relevant
+ // entries to the scanline that might follow, before process them.
+ NodeSet scanline;
+ double thisPos = (totalEvents > 0) ? events[0]->pos : 0;
+ unsigned int posStartIndex = 0;
+ unsigned int posFinishIndex = 0;
+ for (unsigned i = 0; i <= totalEvents; ++i)
+ {
+ // If we have finished the current scanline or all events, then we
+ // process the events on the current scanline in a couple of passes.
+ if ((i == totalEvents) || (events[i]->pos != thisPos))
+ {
+ posFinishIndex = i;
+ for (int pass = 2; pass <= 4; ++pass)
+ {
+ for (unsigned j = posStartIndex; j < posFinishIndex; ++j)
+ {
+ processShiftEvent(scanline, events[j], dim, pass);
+ }
+ }
+
+ if (i == totalEvents)
+ {
+ // We have cleaned up, so we can now break out of loop.
+ break;
+ }
+
+ thisPos = events[i]->pos;
+ posStartIndex = i;
+ }
+
+ // Do the first sweep event handling -- building the correct
+ // structure of the scanline.
+ const int pass = 1;
+ processShiftEvent(scanline, events[i], dim, pass);
+ }
+ COLA_ASSERT(scanline.size() == 0);
+ for (unsigned i = 0; i < totalEvents; ++i)
+ {
+ delete events[i];
+ }
+ delete [] events;
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/scanline.h b/src/3rdparty/adaptagrams/libavoid/scanline.h
new file mode 100644
index 0000000..5a6d029
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/scanline.h
@@ -0,0 +1,136 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2009-2013 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_SCANLINE_H
+#define AVOID_SCANLINE_H
+
+#include <set>
+#include <list>
+
+#include "libavoid/geomtypes.h"
+
+
+namespace Avoid {
+
+static const double CHANNEL_MAX = 100000000;
+
+
+class Obstacle;
+class VertInf;
+
+// ShiftSegment interface.
+class ShiftSegment
+{
+ public:
+ ShiftSegment(const size_t dim)
+ : dimension(dim)
+ {
+ }
+ virtual ~ShiftSegment()
+ {
+ }
+ virtual Point& lowPoint(void) = 0;
+ virtual Point& highPoint(void) = 0;
+ virtual const Point& lowPoint(void) const = 0;
+ virtual const Point& highPoint(void) const = 0;
+ virtual bool overlapsWith(const ShiftSegment *rhs,
+ const size_t dim) const = 0;
+ virtual bool immovable(void) const = 0;
+
+ size_t dimension;
+ double minSpaceLimit;
+ double maxSpaceLimit;
+};
+typedef std::list<ShiftSegment *> ShiftSegmentList;
+
+
+class Node;
+struct CmpNodePos
+{
+ bool operator()(const Node* u, const Node* v) const;
+};
+
+
+typedef std::set<Node*,CmpNodePos> NodeSet;
+
+class Node
+{
+ public:
+
+ Obstacle *v;
+ VertInf *c;
+ ShiftSegment *ss;
+ double pos;
+ double min[2], max[2];
+ Node *firstAbove, *firstBelow;
+ NodeSet::iterator iter;
+
+ Node(Obstacle *v, const double p);
+ Node(VertInf *c, const double p);
+ Node(ShiftSegment *ss, const double p);
+ virtual ~Node();
+ double firstObstacleAbove(size_t dim);
+ double firstObstacleBelow(size_t dim);
+ void markShiftSegmentsAbove(size_t dim);
+ void markShiftSegmentsBelow(size_t dim);
+ void findFirstPointAboveAndBelow(const size_t dim, const double linePos,
+ double& firstAbovePos, double& firstBelowPos,
+ double& lastAbovePos, double& lastBelowPos);
+ double firstPointAbove(size_t dim);
+ double firstPointBelow(size_t dim);
+ bool isInsideShape(size_t dimension);
+};
+
+
+// Note: Open must come first.
+typedef enum {
+ Open = 1,
+ SegOpen = 2,
+ ConnPoint = 3,
+ SegClose = 4,
+ Close = 5
+} EventType;
+
+
+struct Event
+{
+ Event(EventType t, Node *v, double p);
+
+ EventType type;
+ Node *v;
+ double pos;
+};
+
+
+extern int compare_events(const void *a, const void *b);
+extern void buildConnectorRouteCheckpointCache(Router *router);
+extern void clearConnectorRouteCheckpointCache(Router *router);
+extern void buildOrthogonalChannelInfo(Router *router,
+ const size_t dim, ShiftSegmentList& segmentList);
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/shape.cpp b/src/3rdparty/adaptagrams/libavoid/shape.cpp
new file mode 100644
index 0000000..7a80907
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/shape.cpp
@@ -0,0 +1,280 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2013 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cstdlib>
+
+#include "libavoid/shape.h"
+#include "libavoid/vertices.h"
+#include "libavoid/router.h"
+#include "libavoid/connend.h"
+#include "libavoid/debug.h"
+#include "libavoid/assertions.h"
+#include "libavoid/connectionpin.h"
+
+
+namespace Avoid {
+
+
+ShapeRef::ShapeRef(Router *router, Polygon& ply, const unsigned int id)
+ : Obstacle(router, ply, id)
+{
+ m_router->addShape(this);
+}
+
+
+ShapeRef::~ShapeRef()
+{
+ if (m_router->m_currently_calling_destructors == false)
+ {
+ err_printf("ERROR: ShapeRef::~ShapeRef() shouldn't be called directly.\n");
+ err_printf(" It is owned by the router. Call Router::deleteShape() instead.\n");
+ abort();
+ }
+}
+
+
+void ShapeRef::moveAttachedConns(const Polygon& newPoly)
+{
+ // Update positions of attached connector ends.
+ for (std::set<ConnEnd *>::iterator curr = m_following_conns.begin();
+ curr != m_following_conns.end(); ++curr)
+ {
+ ConnEnd *connEnd = *curr;
+ COLA_ASSERT(connEnd->m_conn_ref != nullptr);
+ bool connPinUpdate = true;
+ m_router->modifyConnector(connEnd->m_conn_ref, connEnd->endpointType(),
+ *connEnd, connPinUpdate);
+ }
+ for (ShapeConnectionPinSet::iterator curr =
+ m_connection_pins.begin(); curr != m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *pin = *curr;
+ pin->updatePosition(newPoly);
+ }
+}
+
+static double absoluteOffsetInverse(double offset,
+ const Box& shapeBox, size_t toDim)
+{
+ if (offset == ATTACH_POS_MIN_OFFSET)
+ {
+ return ATTACH_POS_MAX_OFFSET;
+ }
+
+ if (offset == ATTACH_POS_MAX_OFFSET)
+ {
+ return ATTACH_POS_MIN_OFFSET;
+ }
+
+ return shapeBox.length(toDim) - offset;
+}
+
+void ShapeRef::transformConnectionPinPositions(
+ ShapeTransformationType transform)
+{
+ for (ShapeConnectionPinSet::iterator curr =
+ m_connection_pins.begin(); curr != m_connection_pins.end(); ++curr)
+ {
+ ShapeConnectionPin *pin = *curr;
+ double usingProportionalOffsets = pin->m_using_proportional_offsets;
+ double& xOffset = pin->m_x_offset;
+ double& yOffset = pin->m_y_offset;
+ ConnDirFlags& visDirs = pin->m_visibility_directions;
+ double tmpOffset;
+
+ // Number of clockwise 90 degree rotations;
+ unsigned int rotationN = 0;
+
+ if (usingProportionalOffsets)
+ {
+ // Translate to Origin.
+ xOffset -= 0.5;
+ yOffset -= 0.5;
+
+ switch (transform)
+ {
+ case TransformationType_CW90:
+ rotationN = 3;
+ // Y <- inverse X, X <- inverse Y
+ tmpOffset = yOffset;
+ yOffset = xOffset;
+ xOffset = -tmpOffset;
+ break;
+ case TransformationType_CW180:
+ rotationN = 2;
+ // Y <- inverse Y, X <- inverse X
+ yOffset = -yOffset;
+ xOffset = -xOffset;
+ break;
+ case TransformationType_CW270:
+ rotationN = 1;
+ // Y <- X, X <- Y
+ tmpOffset = yOffset;
+ yOffset = -xOffset;
+ xOffset = tmpOffset;
+ break;
+ case TransformationType_FlipX:
+ // Y <- Y, X <- inverse X
+ xOffset = -xOffset;
+ break;
+ case TransformationType_FlipY:
+ // X <- inverse X, Y <- Y
+ yOffset = -yOffset;
+ break;
+ }
+ // Translate back.
+ xOffset += 0.5;
+ yOffset += 0.5;
+ }
+ else
+ {
+ // Using absolute offsets for pin.
+
+ const Box shapeBox = pin->m_shape->polygon().offsetBoundingBox(0.0);
+ switch (transform)
+ {
+ case TransformationType_CW90:
+ rotationN = 3;
+ // Y <- inverse X, X <- inverse Y
+ tmpOffset = yOffset;
+ yOffset = xOffset;
+ xOffset = absoluteOffsetInverse(tmpOffset, shapeBox, XDIM);
+ break;
+ case TransformationType_CW180:
+ rotationN = 2;
+ // Y <- inverse Y, X <- inverse X
+ yOffset = absoluteOffsetInverse(yOffset, shapeBox, YDIM);
+ xOffset = absoluteOffsetInverse(xOffset, shapeBox, XDIM);
+ break;
+ case TransformationType_CW270:
+ rotationN = 1;
+ // Y <- X, X <- Y
+ tmpOffset = yOffset;
+ yOffset = absoluteOffsetInverse(xOffset, shapeBox, YDIM);
+ xOffset = tmpOffset;
+ break;
+ case TransformationType_FlipX:
+ // Y <- Y, X <- inverse X
+ xOffset = absoluteOffsetInverse(xOffset, shapeBox, XDIM);
+ break;
+ case TransformationType_FlipY:
+ // X <- inverse X, Y <- Y
+ yOffset = absoluteOffsetInverse(yOffset, shapeBox, YDIM);
+ break;
+ }
+ }
+
+ if ( (visDirs & ConnDirAll) && (visDirs != ConnDirAll) )
+ {
+ // Visibility is set, but not in all directions.
+
+ const unsigned int dirU = 0;
+ const unsigned int dirR = 1;
+ const unsigned int dirD = 2;
+ const unsigned int dirL = 3;
+
+ bool visInDir[4] = { false };
+ if (visDirs & ConnDirUp) visInDir[dirU] = true;
+ if (visDirs & ConnDirRight) visInDir[dirR] = true;
+ if (visDirs & ConnDirDown) visInDir[dirD] = true;
+ if (visDirs & ConnDirLeft) visInDir[dirL] = true;
+
+ if (transform == TransformationType_FlipY)
+ {
+ bool tmpBool = visInDir[dirU];
+ visInDir[dirU] = visInDir[dirD];
+ visInDir[dirD] = tmpBool;
+ }
+ else if (transform == TransformationType_FlipX)
+ {
+ bool tmpBool = visInDir[dirL];
+ visInDir[dirL] = visInDir[dirR];
+ visInDir[dirR] = tmpBool;
+ }
+
+ visDirs = ConnDirNone;
+ if (visInDir[(rotationN + dirU) % 4]) visDirs |= ConnDirUp;
+ if (visInDir[(rotationN + dirR) % 4]) visDirs |= ConnDirRight;
+ if (visInDir[(rotationN + dirD) % 4]) visDirs |= ConnDirDown;
+ if (visInDir[(rotationN + dirL) % 4]) visDirs |= ConnDirLeft;
+ }
+ pin->updatePositionAndVisibility();
+ m_router->modifyConnectionPin(pin);
+ }
+}
+
+
+const Polygon& ShapeRef::polygon(void) const
+{
+ return m_polygon;
+}
+
+
+void ShapeRef::outputCode(FILE *fp) const
+{
+ fprintf(fp, " // shapeRef%u\n", id());
+ fprintf(fp, " polygon = Polygon(%lu);\n", (unsigned long) polygon().size());
+ for (size_t i = 0; i < polygon().size(); ++i)
+ {
+ fprintf(fp, " polygon.ps[%lu] = Point(%" PREC "g, %" PREC "g);\n",
+ (unsigned long) i, polygon().at(i).x, polygon().at(i).y);
+ }
+
+ fprintf(fp, " ");
+ if (!m_connection_pins.empty())
+ {
+ fprintf(fp, "ShapeRef *shapeRef%u = ", id());
+ }
+ fprintf(fp, "new ShapeRef(router, polygon, %u);\n", id());
+ for (ShapeConnectionPinSet::const_iterator curr =
+ m_connection_pins.begin();
+ curr != m_connection_pins.end(); ++curr)
+ {
+ (*curr)->outputCode(fp);
+ }
+ fprintf(fp, "\n");
+}
+
+
+Point ShapeRef::position(void) const
+{
+ Box bBox = routingBox();
+
+ Point centre;
+
+ centre.x = bBox.min.x + (0.5 * (bBox.max.x - bBox.min.x));
+ centre.y = bBox.min.y + (0.5 * (bBox.max.y - bBox.min.y));
+
+ return centre;
+}
+
+
+void ShapeRef::setCentrePos(const Point& newCentre)
+{
+ Point diff = newCentre - position();
+ m_polygon.translate(diff.x, diff.y);
+}
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/shape.h b/src/3rdparty/adaptagrams/libavoid/shape.h
new file mode 100644
index 0000000..f6d7076
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/shape.h
@@ -0,0 +1,165 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2011 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file shape.h
+//! @brief Contains the interface for the ShapeRef class.
+
+
+#ifndef AVOID_SHAPE_H
+#define AVOID_SHAPE_H
+
+#include <list>
+#include <set>
+
+#include <cstdio>
+
+#include "libavoid/dllexport.h"
+#include "libavoid/geometry.h"
+#include "libavoid/obstacle.h"
+
+namespace topology {
+ class LayoutObstacle;
+}
+
+namespace Avoid {
+
+class VertInf;
+class Router;
+class ShapeRef;
+class ConnEnd;
+class ShapeConnectionPin;
+class ConnRef;
+typedef std::list<ShapeRef *> ShapeRefList;
+
+//! @brief Describes the type of transformation that has been applied to a
+//! shape having its transformConnectionPinPositions() method called.
+enum ShapeTransformationType
+{
+ //! @brief The shape has been rotated clockwise by 90 degrees.
+ TransformationType_CW90 = 0,
+ //! @brief The shape has been rotated clockwise by 180 degrees.
+ TransformationType_CW180 = 1,
+ //! @brief The shape has been rotated clockwise by 270 degrees.
+ TransformationType_CW270 = 2,
+ //! @brief The shape has been flipped horizontally in the X-dimension.
+ TransformationType_FlipX = 3,
+ //! @brief The shape has been flipped vertically in the Y-dimension.
+ TransformationType_FlipY = 4
+};
+
+
+//! @brief The ShapeRef class represents a shape object.
+//!
+//! Shapes are obstacles that connectors must be routed around. They can be
+//! placed into a Router scene and can be repositioned or resized (via
+//! Router::moveShape()).
+//!
+//! Usually, it is expected that you would create a ShapeRef for each shape
+//! in your diagram and keep that reference in your own shape class.
+//!
+class AVOID_EXPORT ShapeRef : public Obstacle
+{
+ public:
+ //! @brief Shape reference constructor.
+ //!
+ //! Creates a shape object reference, and adds it to the router
+ //! scene. This shape will be considered to be an obstacle.
+ //! This will cause connectors intersecting the newly added shape
+ //! to be marked as needing to be rerouted.
+ //!
+ //! If the router is using transactions, then changes will occur
+ //! the next time Router::processTransaction() is called. See
+ //! Router::setTransactionUse() for more information.
+ //!
+ //! The shape can be moved with Router::moveShape() and removed
+ //! from the scene and freed with Router::deleteShape().
+ //!
+ //! The poly argument will usually be the boundary of the shape in your
+ //! application with additional buffer of several pixels on each side.
+ //! Specifying such a buffer results in connectors leaving a small
+ //! amount of space around shapes, rather than touching them on the
+ //! corners or edges.
+ //!
+ //! @note Regarding IDs:
+ //! You can let libavoid manually handle IDs by not specifying
+ //! them. Alternatively, you can specify all IDs yourself, but
+ //! you must be careful to makes sure that each object in the
+ //! scene (shape, connector, cluster, etc) is given a unique,
+ //! positive ID. This uniqueness is checked if assertions are
+ //! enabled, but if not and there are clashes then strange
+ //! things can happen.
+ //!
+ //! @param[in] router The router scene to place the shape into.
+ //! @param[in] poly A Polygon representing the boundary of the
+ //! shape.
+ //! @param[in] id Optionally, a positive integer ID unique
+ //! among all objects.
+ //!
+ ShapeRef(Router *router, Polygon& poly, const unsigned int id = 0);
+
+// To prevent C++ objects from being destroyed in garbage collected languages
+// when the libraries are called from SWIG, we hide the declarations of the
+// destructors and prevent generation of default destructors.
+#ifndef SWIG
+ //! @brief Shape reference destructor.
+ //!
+ //! Do not call this yourself, instead call Router::deleteShape().
+ //! Ownership of this object belongs to the router scene.
+ virtual ~ShapeRef();
+#endif
+
+ //! @brief Returns a reference to the polygon boundary of this shape.
+ //! @returns A reference to the polygon boundary of the shape.
+ const Polygon& polygon(void) const;
+
+ //! @brief Adjusts all of the shape's connection pin positions and
+ //! visibility directions for a given transformation type.
+ //!
+ //! @param[in] transform A ShapeTransformationType specifying the
+ //! type of transform to be applied to all
+ //! connection pins for the shape.
+ //!
+ void transformConnectionPinPositions(ShapeTransformationType transform);
+
+ Point position(void) const;
+ private:
+ friend class Router;
+ friend class ConnEnd;
+ friend class ShapeConnectionPin;
+ friend class topology::LayoutObstacle;
+
+ void outputCode(FILE *fp) const;
+ void moveAttachedConns(const Polygon& newPoly);
+ void assignPinVisibilityTo(const unsigned int pinClassId,
+ VertInf *dummyConnectionVert);
+ void setCentrePos(const Point& newCentre);
+};
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/2junctions.cpp b/src/3rdparty/adaptagrams/libavoid/tests/2junctions.cpp
new file mode 100644
index 0000000..4ba4233
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/2junctions.cpp
@@ -0,0 +1,108 @@
+#include "libavoid/libavoid.h"
+#include <sstream>
+using namespace Avoid;
+
+int test()
+{
+ Avoid::ConnEnd end1;
+ Avoid::ConnEnd end2;
+ Avoid::Polygon poly;
+ Avoid::Router * router1 = new Avoid::Router(Avoid::OrthogonalRouting);
+ router1->setTransactionUse(true);
+ router1->setRoutingPenalty(Avoid::segmentPenalty);
+ router1->setRoutingPenalty(Avoid::crossingPenalty);
+ router1->setRoutingPenalty(Avoid::fixedSharedPathPenalty);
+ router1->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router1->setRoutingParameter(idealNudgingDistance, 25);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(51410, 50640));
+ poly.setPoint(1, Avoid::Point(51410, 50960));
+ poly.setPoint(2, Avoid::Point(51050, 50960));
+ poly.setPoint(3, Avoid::Point(51050, 50640));
+ Avoid::ShapeRef * shape365249936 = new Avoid::ShapeRef(router1, poly, 365249936);
+ Avoid::ShapeConnectionPin * pin365249936_2 = new Avoid::ShapeConnectionPin(shape365249936, 3, 0, 0.5, true, 10, 4);
+ pin365249936_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin365249936_4 = new Avoid::ShapeConnectionPin(shape365249936, 5, 0, 0.734375, true, 10, 4);
+ pin365249936_4->setExclusive(true);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50760, 50691));
+ poly.setPoint(1, Avoid::Point(50760, 50775));
+ poly.setPoint(2, Avoid::Point(50640, 50775));
+ poly.setPoint(3, Avoid::Point(50640, 50691));
+ Avoid::ShapeRef * shape386142480 = new Avoid::ShapeRef(router1, poly, 386142480);
+ Avoid::ShapeConnectionPin * pin386142480_1 = new Avoid::ShapeConnectionPin(shape386142480, 2, 0.5, 1, true, 10, 2);
+ pin386142480_1->setExclusive(true);
+ Avoid::JunctionRef * junction328922310 = new Avoid::JunctionRef(router1, Avoid::Point(50700, 50800), 328922310);
+ junction328922310->setPositionFixed(true);
+ end1 = Avoid::ConnEnd(shape365249936, 3);
+ end2 = Avoid::ConnEnd(junction328922310);
+ /*Avoid::ConnRef * conn152169328 = */ new Avoid::ConnRef(router1, end1, end2);
+ end1 = Avoid::ConnEnd(junction328922310);
+ end2 = Avoid::ConnEnd(shape386142480, 2);
+ /*Avoid::ConnRef * conn684888074 = */ new Avoid::ConnRef(router1, end1, end2);
+ end1 = Avoid::ConnEnd(shape365249936, 5);
+ end2 = Avoid::ConnEnd(junction328922310);
+ Avoid::ConnRef * conn18168360 = new Avoid::ConnRef(router1, end1, end2);
+ router1->processTransaction();
+
+ router1->outputDiagram("output/2junctions-1");
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50879, 50885));
+ poly.setPoint(1, Avoid::Point(50879, 50960));
+ poly.setPoint(2, Avoid::Point(50821, 50960));
+ poly.setPoint(3, Avoid::Point(50821, 50885));
+ Avoid::ShapeRef * shape150429385 = new Avoid::ShapeRef(router1, poly, 150429385);
+ Avoid::ShapeConnectionPin * pin150429385_0 = new Avoid::ShapeConnectionPin(shape150429385, 1, 0.5, 0, true, 10, 1);
+ pin150429385_0->setExclusive(true);
+ Avoid::JunctionRef * junction550292508 = new Avoid::JunctionRef(router1, Avoid::Point(50850, 50875), 550292508);
+ router1->deleteConnector(conn18168360);
+ conn18168360 = nullptr;
+ end1 = Avoid::ConnEnd(shape365249936, 5);
+ end2 = Avoid::ConnEnd(junction550292508);
+ Avoid::ConnRef * conn795337150 = new Avoid::ConnRef(router1, end1, end2);
+ conn795337150->makePathInvalid();
+ end1 = Avoid::ConnEnd(junction550292508);
+ end2 = Avoid::ConnEnd(junction328922310);
+ Avoid::ConnRef * conn151961380 = new Avoid::ConnRef(router1, end1, end2);
+ conn151961380->makePathInvalid();
+ end1 = Avoid::ConnEnd(shape150429385, 1);
+ end2 = Avoid::ConnEnd(junction550292508);
+ Avoid::ConnRef * conn149180423 = new Avoid::ConnRef(router1, end1, end2);
+ conn149180423->makePathInvalid();
+ router1->processTransaction();
+
+ router1->outputDiagram("output/2junctions-2");
+ /*
+ junction550292508->setPositionFixed(true);
+ router1->deleteShape(shape365249936);
+ shape365249936 = nullptr;
+ router1->deleteShape(shape386142480);
+ shape386142480 = nullptr;
+ router1->deleteJunction(junction328922310);
+ junction328922310 = nullptr;
+ router1->deleteConnector(conn152169328);
+ conn152169328 = nullptr;
+ router1->deleteConnector(conn684888074);
+ conn684888074 = nullptr;
+ router1->deleteShape(shape150429385);
+ shape150429385 = nullptr;
+ router1->deleteJunction(junction550292508);
+ junction550292508 = nullptr;
+ router1->deleteConnector(conn795337150);
+ conn795337150 = nullptr;
+ router1->deleteConnector(conn151961380);
+ conn151961380 = nullptr;
+ router1->deleteConnector(conn149180423);
+ conn149180423 = nullptr;
+ router1->processTransaction();
+*/
+ bool atEnds = true;
+ bool overlap = router1->existsOrthogonalFixedSegmentOverlap(atEnds);
+ delete router1;
+ return (overlap) ? 1 : 0;
+}
+
+extern "C" int main(void)
+{
+ return test();
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/Makefile.am b/src/3rdparty/adaptagrams/libavoid/tests/Makefile.am
new file mode 100644
index 0000000..3fc4324
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/Makefile.am
@@ -0,0 +1,217 @@
+AM_CPPFLAGS = -I$(top_srcdir)
+
+LDADD = $(top_builddir)/libavoid/libavoid.la
+
+# Disabled tests:
+# corneroverlap01
+# unsatisfiableRangeAssertion - really slow.
+
+check_PROGRAMS = \
+ removeJunctions01 \
+ penaltyRerouting01 \
+ treeRootCrash01 \
+ treeRootCrash02 \
+ forwardFlowingConnectors01 \
+ example \
+ endlessLoop01 \
+ complex \
+ multiconnact \
+ inline \
+ infinity \
+ latesetup \
+ inlineoverlap01 \
+ inlineoverlap02 \
+ inlineoverlap03 \
+ inlineoverlap04 \
+ inlineoverlap05 \
+ inlineoverlap06 \
+ inlineoverlap07 \
+ inlineoverlap08 \
+ inlineOverlap09 \
+ inlineOverlap10 \
+ inlineOverlap11 \
+ nudgeintobug \
+ slowrouting \
+ tjunct \
+ vertlineassertion \
+ orthordering01 \
+ orthordering02 \
+ orderassertion \
+ connendmove \
+ connectionpin01 \
+ connectionpin02 \
+ connectionpin03 \
+ junction01 \
+ junction02 \
+ junction03 \
+ junction04 \
+ nudgeold \
+ lineSegWrapperCrash1 \
+ lineSegWrapperCrash2 \
+ lineSegWrapperCrash3 \
+ lineSegWrapperCrash4 \
+ lineSegWrapperCrash5 \
+ lineSegWrapperCrash6 \
+ lineSegWrapperCrash7 \
+ lineSegWrapperCrash8 \
+ node1 \
+ overlappingRects \
+ inlineShapes \
+ checkpoints01 \
+ checkpoints02 \
+ checkpoints03 \
+ freeFloatingDirection01 \
+ restrictedNudging \
+ performance01 \
+ hyperedge01 \
+ hyperedge02 \
+ improveHyperedge01 \
+ improveHyperedge02 \
+ improveHyperedge03 \
+ improveHyperedge04 \
+ improveHyperedge05 \
+ improveHyperedge06 \
+ validPaths01 \
+ validPaths02 \
+ 2junctions \
+ hyperedgeLoop1 \
+ buildOrthogonalChannelInfo1 \
+ finalSegmentNudging1 \
+ finalSegmentNudging2 \
+ finalSegmentNudging3 \
+ checkpointNudging1 \
+ checkpointNudging2 \
+ checkpointNudging3 \
+ nudgeCrossing01 \
+ nudgingSkipsCheckpoint01 \
+ nudgingSkipsCheckpoint02 \
+ hola01 \
+ hyperedgeRerouting01
+
+# problem_SOURCES = problem.cpp
+
+hola01_SOURCES = hola01.cpp
+
+penaltyRerouting01_SOURCES = penaltyRerouting01.cpp
+
+treeRootCrash01_SOURCES = treeRootCrash01.cpp
+treeRootCrash02_SOURCES = treeRootCrash02.cpp
+
+hyperedgeRerouting01_SOURCES = hyperedgeRerouting01.cpp
+
+forwardFlowingConnectors01_SOURCES = forwardFlowingConnectors01.cpp
+
+# unsatisfiableRangeAssertion_SOURCES = unsatisfiableRangeAssertion.cpp
+
+removeJunctions01_SOURCES = removeJunctions01.cpp
+
+endlessLoop01_SOURCES = endlessLoop01.cpp
+
+nudgingSkipsCheckpoint01_SOURCES = nudgingSkipsCheckpoint01.cpp
+nudgingSkipsCheckpoint02_SOURCES = nudgingSkipsCheckpoint02.cpp
+
+nudgeCrossing01_SOURCES = nudgeCrossing01.cpp
+
+checkpointNudging1_SOURCES = checkpointNudging1.cpp
+checkpointNudging2_SOURCES = checkpointNudging2.cpp
+checkpointNudging3_SOURCES = checkpointNudging3.cpp
+
+finalSegmentNudging1_SOURCES = finalSegmentNudging1.cpp
+finalSegmentNudging2_SOURCES = finalSegmentNudging2.cpp
+finalSegmentNudging3_SOURCES = finalSegmentNudging3.cpp
+
+buildOrthogonalChannelInfo1_SOURCES = buildOrthogonalChannelInfo1.cpp
+
+hyperedgeLoop1_SOURCES = hyperedgeLoop1.cpp
+
+improveHyperedge01_SOURCES = improveHyperedge01.cpp
+improveHyperedge02_SOURCES = improveHyperedge02.cpp
+improveHyperedge03_SOURCES = improveHyperedge03.cpp
+improveHyperedge04_SOURCES = improveHyperedge04.cpp
+improveHyperedge05_SOURCES = improveHyperedge05.cpp
+improveHyperedge06_SOURCES = improveHyperedge06.cpp
+
+performance01_SOURCES = performance01.cpp
+
+restrictedNudging_SOURCES = restrictedNudging.cpp
+
+freeFloatingDirection01_SOURCES = freeFloatingDirection01.cpp
+
+checkpoints01_SOURCES = checkpoints01.cpp
+checkpoints02_SOURCES = checkpoints02.cpp
+checkpoints03_SOURCES = checkpoints03.cpp
+inlineShapes_SOURCES = inlineShapes.cpp
+
+2junctions_SOURCES = 2junctions.cpp
+overlappingRects_SOURCES = overlappingRects.cpp
+
+lineSegWrapperCrash1_SOURCES = lineSegWrapperCrash1.cpp
+lineSegWrapperCrash2_SOURCES = lineSegWrapperCrash2.cpp
+lineSegWrapperCrash3_SOURCES = lineSegWrapperCrash3.cpp
+lineSegWrapperCrash4_SOURCES = lineSegWrapperCrash4.cpp
+lineSegWrapperCrash5_SOURCES = lineSegWrapperCrash5.cpp
+lineSegWrapperCrash6_SOURCES = lineSegWrapperCrash6.cpp
+lineSegWrapperCrash7_SOURCES = lineSegWrapperCrash7.cpp
+lineSegWrapperCrash8_SOURCES = lineSegWrapperCrash8.cpp
+
+example_SOURCES = example.cpp
+validPaths01_SOURCES = validPaths01.cpp
+validPaths02_SOURCES = validPaths02.cpp
+
+multiconnact_SOURCES = multiconnact.cpp
+
+complex_SOURCES = complex.cpp
+
+inline_SOURCES = inline.cpp
+
+infinity_SOURCES = infinity.cpp
+
+latesetup_SOURCES = latesetup.cpp
+
+nudgeold_SOURCES = nudgeold.cpp
+
+node1_SOURCES = node1.cpp
+
+vertlineassertion_SOURCES = vertlineassertion.cpp
+
+inlineoverlap01_SOURCES = inlineoverlap01.cpp
+inlineoverlap02_SOURCES = inlineoverlap02.cpp
+inlineoverlap03_SOURCES = inlineoverlap03.cpp
+inlineoverlap04_SOURCES = inlineoverlap04.cpp
+inlineoverlap05_SOURCES = inlineoverlap05.cpp
+inlineoverlap06_SOURCES = inlineoverlap06.cpp
+inlineoverlap07_SOURCES = inlineoverlap07.cpp
+inlineoverlap08_SOURCES = inlineoverlap08.cpp
+inlineOverlap09_SOURCES = inlineOverlap09.cpp
+inlineOverlap10_SOURCES = inlineOverlap10.cpp
+inlineOverlap11_SOURCES = inlineOverlap11.cpp
+
+# corneroverlap01_SOURCES = corneroverlap01.cpp
+
+orthordering01_SOURCES = orthordering01.cpp
+orthordering02_SOURCES = orthordering02.cpp
+
+tjunct_SOURCES = tjunct.cpp
+
+hyperedge01_SOURCES = hyperedge01.cpp
+hyperedge02_SOURCES = hyperedge02.cpp
+
+nudgeintobug_SOURCES = nudgeintobug.cpp
+
+slowrouting_SOURCES = slowrouting.cpp
+
+orderassertion_SOURCES = orderassertion.cpp
+
+connendmove_SOURCES = connendmove.cpp
+
+connectionpin01_SOURCES = connectionpin01.cpp
+connectionpin02_SOURCES = connectionpin02.cpp
+connectionpin03_SOURCES = connectionpin03.cpp
+
+junction01_SOURCES = junction01.cpp
+junction02_SOURCES = junction02.cpp
+junction03_SOURCES = junction03.cpp
+junction04_SOURCES = junction04.cpp
+
+TESTS = $(check_PROGRAMS)
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/buildOrthogonalChannelInfo1.cpp b/src/3rdparty/adaptagrams/libavoid/tests/buildOrthogonalChannelInfo1.cpp
new file mode 100644
index 0000000..ef2144a
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/buildOrthogonalChannelInfo1.cpp
@@ -0,0 +1,65 @@
+#include "libavoid/libavoid.h"
+#include <sstream>
+using namespace Avoid;
+
+void test()
+{
+ Avoid::ConnEnd end1;
+ Avoid::ConnEnd end2;
+ Avoid::Polygon poly;
+ Avoid::Router * router1 = new Avoid::Router(Avoid::OrthogonalRouting);
+ router1->setTransactionUse(true);
+ router1->setRoutingPenalty(Avoid::segmentPenalty);
+ router1->setRoutingPenalty(Avoid::crossingPenalty);
+ router1->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router1->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router1->setRoutingParameter(idealNudgingDistance, 25);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50760, 50691));
+ poly.setPoint(1, Avoid::Point(50760, 50775));
+ poly.setPoint(2, Avoid::Point(50640, 50775));
+ poly.setPoint(3, Avoid::Point(50640, 50691));
+ Avoid::ShapeRef * shape386142480 = new Avoid::ShapeRef(router1, poly, 386142480);
+ Avoid::ShapeConnectionPin * pin386142480_0 = new Avoid::ShapeConnectionPin(shape386142480, 1, 0.5, 0.40476190476190477, true, 0, 13);
+ pin386142480_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin386142480_1 = new Avoid::ShapeConnectionPin(shape386142480, 2, 0.5, 1, true, 10, 2);
+ pin386142480_1->setExclusive(true);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(51185, 50765));
+ poly.setPoint(1, Avoid::Point(51185, 50935));
+ poly.setPoint(2, Avoid::Point(50975, 50935));
+ poly.setPoint(3, Avoid::Point(50975, 50765));
+ Avoid::ShapeRef * shape300136482 = new Avoid::ShapeRef(router1, poly, 300136482);
+ Avoid::ShapeConnectionPin * pin300136482_0 = new Avoid::ShapeConnectionPin(shape300136482, 1, 0, 0.5, true, 10, 4);
+ pin300136482_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin300136482_1 = new Avoid::ShapeConnectionPin(shape300136482, 2, 0.95238095238095233, 0.5, true, 10, 8);
+ pin300136482_1->setExclusive(true);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50854, 50840));
+ poly.setPoint(1, Avoid::Point(50854, 50935));
+ poly.setPoint(2, Avoid::Point(50796, 50935));
+ poly.setPoint(3, Avoid::Point(50796, 50840));
+ Avoid::ShapeRef * shape51003942 = new Avoid::ShapeRef(router1, poly, 51003942);
+ Avoid::ShapeConnectionPin * pin51003942_0 = new Avoid::ShapeConnectionPin(shape51003942, 1, 0.5, 0.10526315789473684, true, 10, 1);
+ pin51003942_0->setExclusive(true);
+ Avoid::JunctionRef * junction502411221 = new Avoid::JunctionRef(router1, Avoid::Point(50825, 50850), 502411221);
+ end1 = Avoid::ConnEnd(shape386142480, 2);
+ end2 = Avoid::ConnEnd(junction502411221);
+ new Avoid::ConnRef(router1, end1, end2);
+ end1 = Avoid::ConnEnd(junction502411221);
+ end2 = Avoid::ConnEnd(shape300136482, 1);
+ new Avoid::ConnRef(router1, end1, end2);
+ end1 = Avoid::ConnEnd(shape51003942, 1);
+ end2 = Avoid::ConnEnd(junction502411221);
+ new Avoid::ConnRef(router1, end1, end2);
+ router1->processTransaction();
+
+ router1->outputDiagram("output/buildOrthogonalChannelInfo1");
+ delete router1;
+}
+
+extern "C" int main(void)
+{
+ test();
+ return 0;
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging1.cpp b/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging1.cpp
new file mode 100644
index 0000000..7379e90
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging1.cpp
@@ -0,0 +1,2592 @@
+// KEGG -> SBGN example #10
+//
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+
+
+#ifdef ALL
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1201.5, 1180.75);
+ poly1.ps[1] = Point(1201.5, 1212.75);
+ poly1.ps[2] = Point(1181.5, 1212.75);
+ poly1.ps[3] = Point(1181.5, 1180.75);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(785.5, 2338.79);
+ poly2.ps[1] = Point(785.5, 2358.79);
+ poly2.ps[2] = Point(753.5, 2358.79);
+ poly2.ps[3] = Point(753.5, 2338.79);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(261.5, 2215.42);
+ poly3.ps[1] = Point(261.5, 2247.42);
+ poly3.ps[2] = Point(241.5, 2247.42);
+ poly3.ps[3] = Point(241.5, 2215.42);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(785.5, 2400.79);
+ poly4.ps[1] = Point(785.5, 2420.79);
+ poly4.ps[2] = Point(753.5, 2420.79);
+ poly4.ps[3] = Point(753.5, 2400.79);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(282.5, 2348.79);
+ poly5.ps[1] = Point(282.5, 2410.79);
+ poly5.ps[2] = Point(220.5, 2410.79);
+ poly5.ps[3] = Point(220.5, 2348.79);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1643.5, 817.25);
+ poly6.ps[1] = Point(1643.5, 1194.25);
+ poly6.ps[2] = Point(1421.5, 1194.25);
+ poly6.ps[3] = Point(1421.5, 817.25);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1311.5, 45);
+ poly7.ps[1] = Point(1311.5, 219);
+ poly7.ps[2] = Point(1191.5, 219);
+ poly7.ps[3] = Point(1191.5, 45);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(839.5, 2301.79);
+ poly8.ps[1] = Point(839.5, 2333.79);
+ poly8.ps[2] = Point(819.5, 2333.79);
+ poly8.ps[3] = Point(819.5, 2301.79);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1105.5, 2263.79);
+ poly9.ps[1] = Point(1105.5, 2283.79);
+ poly9.ps[2] = Point(1073.5, 2283.79);
+ poly9.ps[3] = Point(1073.5, 2263.79);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(1105.5, 2338.79);
+ poly10.ps[1] = Point(1105.5, 2358.79);
+ poly10.ps[2] = Point(1073.5, 2358.79);
+ poly10.ps[3] = Point(1073.5, 2338.79);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(1027.5, 2169.79);
+ poly11.ps[1] = Point(1027.5, 2189.79);
+ poly11.ps[2] = Point(995.5, 2189.79);
+ poly11.ps[3] = Point(995.5, 2169.79);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1021.5, 2082.42);
+ poly12.ps[1] = Point(1021.5, 2114.42);
+ poly12.ps[2] = Point(1001.5, 2114.42);
+ poly12.ps[3] = Point(1001.5, 2082.42);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(721.5, 2159.42);
+ poly13.ps[1] = Point(721.5, 2179.42);
+ poly13.ps[2] = Point(689.5, 2179.42);
+ poly13.ps[3] = Point(689.5, 2159.42);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(391.5, 2159.42);
+ poly14.ps[1] = Point(391.5, 2179.42);
+ poly14.ps[2] = Point(359.5, 2179.42);
+ poly14.ps[3] = Point(359.5, 2159.42);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1374.5, 2159.42);
+ poly15.ps[1] = Point(1374.5, 2179.42);
+ poly15.ps[2] = Point(1342.5, 2179.42);
+ poly15.ps[3] = Point(1342.5, 2159.42);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(923.421, 1631.86);
+ poly16.ps[1] = Point(923.421, 1675.86);
+ poly16.ps[2] = Point(835.421, 1675.86);
+ poly16.ps[3] = Point(835.421, 1631.86);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(1201.5, 1949.42);
+ poly17.ps[1] = Point(1201.5, 1981.42);
+ poly17.ps[2] = Point(1181.5, 1981.42);
+ poly17.ps[3] = Point(1181.5, 1949.42);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(252, 1963.42);
+ poly18.ps[1] = Point(252, 2127.42);
+ poly18.ps[2] = Point(45, 2127.42);
+ poly18.ps[3] = Point(45, 1963.42);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(1201.5, 1825.42);
+ poly19.ps[1] = Point(1201.5, 1857.42);
+ poly19.ps[2] = Point(1181.5, 1857.42);
+ poly19.ps[3] = Point(1181.5, 1825.42);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(1201.5, 1701.42);
+ poly20.ps[1] = Point(1201.5, 1733.42);
+ poly20.ps[2] = Point(1181.5, 1733.42);
+ poly20.ps[3] = Point(1181.5, 1701.42);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(1170.5, 1327.42);
+ poly21.ps[1] = Point(1170.5, 1359.42);
+ poly21.ps[2] = Point(1150.5, 1359.42);
+ poly21.ps[3] = Point(1150.5, 1327.42);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(741, 1632.42);
+ poly22.ps[1] = Point(741, 1692.42);
+ poly22.ps[2] = Point(428, 1692.42);
+ poly22.ps[3] = Point(428, 1632.42);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(996.5, 1281.42);
+ poly23.ps[1] = Point(996.5, 1301.42);
+ poly23.ps[2] = Point(964.5, 1301.42);
+ poly23.ps[3] = Point(964.5, 1281.42);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(1232.5, 1047.75);
+ poly24.ps[1] = Point(1232.5, 1079.75);
+ poly24.ps[2] = Point(1212.5, 1079.75);
+ poly24.ps[3] = Point(1212.5, 1047.75);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(1170.5, 1047.75);
+ poly25.ps[1] = Point(1170.5, 1079.75);
+ poly25.ps[2] = Point(1150.5, 1079.75);
+ poly25.ps[3] = Point(1150.5, 1047.75);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(1343.5, 540.5);
+ poly26.ps[1] = Point(1343.5, 560.5);
+ poly26.ps[2] = Point(1311.5, 560.5);
+ poly26.ps[3] = Point(1311.5, 540.5);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(1201.5, 724);
+ poly27.ps[1] = Point(1201.5, 756);
+ poly27.ps[2] = Point(1181.5, 756);
+ poly27.ps[3] = Point(1181.5, 724);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(1201.5, 462);
+ poly28.ps[1] = Point(1201.5, 494);
+ poly28.ps[2] = Point(1181.5, 494);
+ poly28.ps[3] = Point(1181.5, 462);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(934.5, 873);
+ poly29.ps[1] = Point(934.5, 893);
+ poly29.ps[2] = Point(902.5, 893);
+ poly29.ps[3] = Point(902.5, 873);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(492.5, 767);
+ poly30.ps[1] = Point(492.5, 787);
+ poly30.ps[2] = Point(460.5, 787);
+ poly30.ps[3] = Point(460.5, 767);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(492.5, 842);
+ poly31.ps[1] = Point(492.5, 862);
+ poly31.ps[2] = Point(460.5, 862);
+ poly31.ps[3] = Point(460.5, 842);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(814.5, 730);
+ poly32.ps[1] = Point(814.5, 750);
+ poly32.ps[2] = Point(782.5, 750);
+ poly32.ps[3] = Point(782.5, 730);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(653.5, 724);
+ poly33.ps[1] = Point(653.5, 756);
+ poly33.ps[2] = Point(633.5, 756);
+ poly33.ps[3] = Point(633.5, 724);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(296.5, 724);
+ poly34.ps[1] = Point(296.5, 756);
+ poly34.ps[2] = Point(276.5, 756);
+ poly34.ps[3] = Point(276.5, 724);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(723.5, 468);
+ poly35.ps[1] = Point(723.5, 488);
+ poly35.ps[2] = Point(691.5, 488);
+ poly35.ps[3] = Point(691.5, 468);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(723.5, 543);
+ poly36.ps[1] = Point(723.5, 563);
+ poly36.ps[2] = Point(691.5, 563);
+ poly36.ps[3] = Point(691.5, 543);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(723.5, 393);
+ poly37.ps[1] = Point(723.5, 413);
+ poly37.ps[2] = Point(691.5, 413);
+ poly37.ps[3] = Point(691.5, 393);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(783.5, 331);
+ poly38.ps[1] = Point(783.5, 351);
+ poly38.ps[2] = Point(751.5, 351);
+ poly38.ps[3] = Point(751.5, 331);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(783.5, 229);
+ poly39.ps[1] = Point(783.5, 249);
+ poly39.ps[2] = Point(751.5, 249);
+ poly39.ps[3] = Point(751.5, 229);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(402, 96.5);
+ poly40.ps[1] = Point(402, 131.5);
+ poly40.ps[2] = Point(141, 131.5);
+ poly40.ps[3] = Point(141, 96.5);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(508.5, 2302.46);
+ poly41.ps[1] = Point(508.5, 2322.46);
+ poly41.ps[2] = Point(476.5, 2322.46);
+ poly41.ps[3] = Point(476.5, 2302.46);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(1201.5, 1553.42);
+ poly42.ps[1] = Point(1201.5, 1585.42);
+ poly42.ps[2] = Point(1181.5, 1585.42);
+ poly42.ps[3] = Point(1181.5, 1553.42);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(723.5, 605);
+ poly43.ps[1] = Point(723.5, 625);
+ poly43.ps[2] = Point(691.5, 625);
+ poly43.ps[3] = Point(691.5, 605);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(492.5, 904);
+ poly44.ps[1] = Point(492.5, 924);
+ poly44.ps[2] = Point(460.5, 924);
+ poly44.ps[3] = Point(460.5, 904);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(302.5, 1066);
+ poly45.ps[1] = Point(302.5, 1086);
+ poly45.ps[2] = Point(270.5, 1086);
+ poly45.ps[3] = Point(270.5, 1066);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(302.5, 1168);
+ poly46.ps[1] = Point(302.5, 1188);
+ poly46.ps[2] = Point(270.5, 1188);
+ poly46.ps[3] = Point(270.5, 1168);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(570.5, 1066);
+ poly47.ps[1] = Point(570.5, 1086);
+ poly47.ps[2] = Point(538.5, 1086);
+ poly47.ps[3] = Point(538.5, 1066);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(570.5, 1168);
+ poly48.ps[1] = Point(570.5, 1188);
+ poly48.ps[2] = Point(538.5, 1188);
+ poly48.ps[3] = Point(538.5, 1168);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1432.5, 519.5);
+ poly49.ps[1] = Point(1432.5, 581.5);
+ poly49.ps[2] = Point(1370.5, 581.5);
+ poly49.ps[3] = Point(1370.5, 519.5);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(1222.5, 249);
+ poly50.ps[1] = Point(1222.5, 311);
+ poly50.ps[2] = Point(1160.5, 311);
+ poly50.ps[3] = Point(1160.5, 249);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1222.5, 1748.42);
+ poly51.ps[1] = Point(1222.5, 1810.42);
+ poly51.ps[2] = Point(1160.5, 1810.42);
+ poly51.ps[3] = Point(1160.5, 1748.42);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(317.5, 553);
+ poly52.ps[1] = Point(317.5, 615);
+ poly52.ps[2] = Point(255.5, 615);
+ poly52.ps[3] = Point(255.5, 553);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(317.5, 852);
+ poly53.ps[1] = Point(317.5, 914);
+ poly53.ps[2] = Point(255.5, 914);
+ poly53.ps[3] = Point(255.5, 852);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(767.5, 1260.42);
+ poly54.ps[1] = Point(767.5, 1322.42);
+ poly54.ps[2] = Point(705.5, 1322.42);
+ poly54.ps[3] = Point(705.5, 1260.42);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(767.5, 852);
+ poly55.ps[1] = Point(767.5, 914);
+ poly55.ps[2] = Point(705.5, 914);
+ poly55.ps[3] = Point(705.5, 852);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(1222.5, 553);
+ poly56.ps[1] = Point(1222.5, 615);
+ poly56.ps[2] = Point(1160.5, 615);
+ poly56.ps[3] = Point(1160.5, 553);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(1222.5, 852);
+ poly57.ps[1] = Point(1222.5, 914);
+ poly57.ps[2] = Point(1160.5, 914);
+ poly57.ps[3] = Point(1160.5, 852);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(1222.5, 1872.42);
+ poly58.ps[1] = Point(1222.5, 1934.42);
+ poly58.ps[2] = Point(1160.5, 1934.42);
+ poly58.ps[3] = Point(1160.5, 1872.42);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(1222.5, 1624.42);
+ poly59.ps[1] = Point(1222.5, 1686.42);
+ poly59.ps[2] = Point(1160.5, 1686.42);
+ poly59.ps[3] = Point(1160.5, 1624.42);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(1222.5, 1424.42);
+ poly60.ps[1] = Point(1222.5, 1486.42);
+ poly60.ps[2] = Point(1160.5, 1486.42);
+ poly60.ps[3] = Point(1160.5, 1424.42);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(1463.5, 2138.42);
+ poly61.ps[1] = Point(1463.5, 2200.42);
+ poly61.ps[2] = Point(1401.5, 2200.42);
+ poly61.ps[3] = Point(1401.5, 2138.42);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(705.5, 2281.46);
+ poly62.ps[1] = Point(705.5, 2343.46);
+ poly62.ps[2] = Point(643.5, 2343.46);
+ poly62.ps[3] = Point(643.5, 2281.46);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(1358.5, 2348.79);
+ poly63.ps[1] = Point(1358.5, 2410.79);
+ poly63.ps[2] = Point(1296.5, 2410.79);
+ poly63.ps[3] = Point(1296.5, 2348.79);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(1222.5, 2138.42);
+ poly64.ps[1] = Point(1222.5, 2200.42);
+ poly64.ps[2] = Point(1160.5, 2200.42);
+ poly64.ps[3] = Point(1160.5, 2138.42);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(860.5, 2138.42);
+ poly65.ps[1] = Point(860.5, 2200.42);
+ poly65.ps[2] = Point(798.5, 2200.42);
+ poly65.ps[3] = Point(798.5, 2138.42);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(282.5, 2138.42);
+ poly66.ps[1] = Point(282.5, 2200.42);
+ poly66.ps[2] = Point(220.5, 2200.42);
+ poly66.ps[3] = Point(220.5, 2138.42);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(860.5, 2348.79);
+ poly67.ps[1] = Point(860.5, 2410.79);
+ poly67.ps[2] = Point(798.5, 2410.79);
+ poly67.ps[3] = Point(798.5, 2348.79);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(554.5, 2138.42);
+ poly68.ps[1] = Point(554.5, 2200.42);
+ poly68.ps[2] = Point(492.5, 2200.42);
+ poly68.ps[3] = Point(492.5, 2138.42);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(406.5, 2281.46);
+ poly69.ps[1] = Point(406.5, 2343.46);
+ poly69.ps[2] = Point(344.5, 2343.46);
+ poly69.ps[3] = Point(344.5, 2281.46);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(1222.5, 1084.75);
+ poly70.ps[1] = Point(1222.5, 1146.75);
+ poly70.ps[2] = Point(1160.5, 1146.75);
+ poly70.ps[3] = Point(1160.5, 1084.75);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(247.5, 1045);
+ poly71.ps[1] = Point(247.5, 1107);
+ poly71.ps[2] = Point(185.5, 1107);
+ poly71.ps[3] = Point(185.5, 1045);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(437.5, 1045);
+ poly72.ps[1] = Point(437.5, 1107);
+ poly72.ps[2] = Point(375.5, 1107);
+ poly72.ps[3] = Point(375.5, 1045);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(437.5, 1147);
+ poly73.ps[1] = Point(437.5, 1209);
+ poly73.ps[2] = Point(375.5, 1209);
+ poly73.ps[3] = Point(375.5, 1147);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(247.5, 1147);
+ poly74.ps[1] = Point(247.5, 1209);
+ poly74.ps[2] = Point(185.5, 1209);
+ poly74.ps[3] = Point(185.5, 1147);
+ new ShapeRef(router, poly74, 74);
+#endif
+ Polygon poly75(4);
+ poly75.ps[0] = Point(715.439, 1924.42);
+ poly75.ps[1] = Point(715.439, 1944.42);
+ poly75.ps[2] = Point(683.439, 1944.42);
+ poly75.ps[3] = Point(683.439, 1924.42);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(282.5, 1872.42);
+ poly76.ps[1] = Point(282.5, 1934.42);
+ poly76.ps[2] = Point(220.5, 1934.42);
+ poly76.ps[3] = Point(220.5, 1872.42);
+ new ShapeRef(router, poly76, 76);
+
+#ifdef ALL
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1105.5, 2400.79);
+ poly77.ps[1] = Point(1105.5, 2420.79);
+ poly77.ps[2] = Point(1073.5, 2420.79);
+ poly77.ps[3] = Point(1073.5, 2400.79);
+ new ShapeRef(router, poly77, 77);
+#endif
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(715.439, 1862.42);
+ poly78.ps[1] = Point(715.439, 1882.42);
+ poly78.ps[2] = Point(683.439, 1882.42);
+ poly78.ps[3] = Point(683.439, 1862.42);
+ new ShapeRef(router, poly78, 78);
+
+#ifdef ALL
+ Polygon poly79(4);
+ poly79.ps[0] = Point(1506.5, 2243.29);
+ poly79.ps[1] = Point(1506.5, 2408.29);
+ poly79.ps[2] = Point(1369.5, 2408.29);
+ poly79.ps[3] = Point(1369.5, 2243.29);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(1232.5, 1327.42);
+ poly80.ps[1] = Point(1232.5, 1359.42);
+ poly80.ps[2] = Point(1212.5, 1359.42);
+ poly80.ps[3] = Point(1212.5, 1327.42);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(1250.5, 1491.42);
+ poly81.ps[1] = Point(1250.5, 1523.42);
+ poly81.ps[2] = Point(1230.5, 1523.42);
+ poly81.ps[3] = Point(1230.5, 1491.42);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(1341.5, 1491.42);
+ poly82.ps[1] = Point(1341.5, 1523.42);
+ poly82.ps[2] = Point(1321.5, 1523.42);
+ poly82.ps[3] = Point(1321.5, 1491.42);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(570.5, 2030.42);
+ poly83.ps[1] = Point(570.5, 2050.42);
+ poly83.ps[2] = Point(538.5, 2050.42);
+ poly83.ps[3] = Point(538.5, 2030.42);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(1432.5, 1491.42);
+ poly84.ps[1] = Point(1432.5, 1523.42);
+ poly84.ps[2] = Point(1412.5, 1523.42);
+ poly84.ps[3] = Point(1412.5, 1491.42);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(980.5, 1538.42);
+ poly85.ps[1] = Point(980.5, 1600.42);
+ poly85.ps[2] = Point(918.5, 1600.42);
+ poly85.ps[3] = Point(918.5, 1538.42);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(1116.5, 1639.42);
+ poly86.ps[1] = Point(1116.5, 1659.42);
+ poly86.ps[2] = Point(1084.5, 1659.42);
+ poly86.ps[3] = Point(1084.5, 1639.42);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(1116.5, 1445.42);
+ poly87.ps[1] = Point(1116.5, 1465.42);
+ poly87.ps[2] = Point(1084.5, 1465.42);
+ poly87.ps[3] = Point(1084.5, 1445.42);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(1222.5, 1260.42);
+ poly88.ps[1] = Point(1222.5, 1322.42);
+ poly88.ps[2] = Point(1160.5, 1322.42);
+ poly88.ps[3] = Point(1160.5, 1260.42);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(170.5, 2215.42);
+ poly89.ps[1] = Point(170.5, 2247.42);
+ poly89.ps[2] = Point(150.5, 2247.42);
+ poly89.ps[3] = Point(150.5, 2215.42);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(1323.5, 1047.75);
+ poly90.ps[1] = Point(1323.5, 1079.75);
+ poly90.ps[2] = Point(1303.5, 1079.75);
+ poly90.ps[3] = Point(1303.5, 1047.75);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(723.5, 680);
+ poly91.ps[1] = Point(723.5, 700);
+ poly91.ps[2] = Point(691.5, 700);
+ poly91.ps[3] = Point(691.5, 680);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(492.5, 979);
+ poly92.ps[1] = Point(492.5, 999);
+ poly92.ps[2] = Point(460.5, 999);
+ poly92.ps[3] = Point(460.5, 979);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1105.5, 2475.79);
+ poly93.ps[1] = Point(1105.5, 2495.79);
+ poly93.ps[2] = Point(1073.5, 2495.79);
+ poly93.ps[3] = Point(1073.5, 2475.79);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(860.5, 2034.42);
+ poly94.ps[1] = Point(860.5, 2096.42);
+ poly94.ps[2] = Point(798.5, 2096.42);
+ poly94.ps[3] = Point(798.5, 2034.42);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(1277.5, 1176.75);
+ poly95.ps[1] = Point(1277.5, 1216.75);
+ poly95.ps[2] = Point(1201.5, 1216.75);
+ poly95.ps[3] = Point(1201.5, 1176.75);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(797.5, 2278.79);
+ poly96.ps[1] = Point(797.5, 2338.79);
+ poly96.ps[2] = Point(741.5, 2338.79);
+ poly96.ps[3] = Point(741.5, 2278.79);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(241.5, 2211.42);
+ poly97.ps[1] = Point(241.5, 2251.42);
+ poly97.ps[2] = Point(165.5, 2251.42);
+ poly97.ps[3] = Point(165.5, 2211.42);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(797.5, 2420.79);
+ poly98.ps[1] = Point(797.5, 2480.79);
+ poly98.ps[2] = Point(741.5, 2480.79);
+ poly98.ps[3] = Point(741.5, 2420.79);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(915.5, 2297.79);
+ poly99.ps[1] = Point(915.5, 2337.79);
+ poly99.ps[2] = Point(839.5, 2337.79);
+ poly99.ps[3] = Point(839.5, 2297.79);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1117.5, 2203.79);
+ poly100.ps[1] = Point(1117.5, 2263.79);
+ poly100.ps[2] = Point(1061.5, 2263.79);
+ poly100.ps[3] = Point(1061.5, 2203.79);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1117.5, 2278.79);
+ poly101.ps[1] = Point(1117.5, 2338.79);
+ poly101.ps[2] = Point(1061.5, 2338.79);
+ poly101.ps[3] = Point(1061.5, 2278.79);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1039.5, 2189.79);
+ poly102.ps[1] = Point(1039.5, 2249.79);
+ poly102.ps[2] = Point(983.5, 2249.79);
+ poly102.ps[3] = Point(983.5, 2189.79);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(1097.5, 2078.42);
+ poly103.ps[1] = Point(1097.5, 2118.42);
+ poly103.ps[2] = Point(1021.5, 2118.42);
+ poly103.ps[3] = Point(1021.5, 2078.42);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(733.5, 2099.42);
+ poly104.ps[1] = Point(733.5, 2159.42);
+ poly104.ps[2] = Point(677.5, 2159.42);
+ poly104.ps[3] = Point(677.5, 2099.42);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(403.5, 2099.42);
+ poly105.ps[1] = Point(403.5, 2159.42);
+ poly105.ps[2] = Point(347.5, 2159.42);
+ poly105.ps[3] = Point(347.5, 2099.42);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(1386.5, 2099.42);
+ poly106.ps[1] = Point(1386.5, 2159.42);
+ poly106.ps[2] = Point(1330.5, 2159.42);
+ poly106.ps[3] = Point(1330.5, 2099.42);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(1277.5, 1945.42);
+ poly107.ps[1] = Point(1277.5, 1985.42);
+ poly107.ps[2] = Point(1201.5, 1985.42);
+ poly107.ps[3] = Point(1201.5, 1945.42);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(1277.5, 1821.42);
+ poly108.ps[1] = Point(1277.5, 1861.42);
+ poly108.ps[2] = Point(1201.5, 1861.42);
+ poly108.ps[3] = Point(1201.5, 1821.42);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1277.5, 1697.42);
+ poly109.ps[1] = Point(1277.5, 1737.42);
+ poly109.ps[2] = Point(1201.5, 1737.42);
+ poly109.ps[3] = Point(1201.5, 1697.42);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(1150.5, 1323.42);
+ poly110.ps[1] = Point(1150.5, 1363.42);
+ poly110.ps[2] = Point(1074.5, 1363.42);
+ poly110.ps[3] = Point(1074.5, 1323.42);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(1008.5, 1221.42);
+ poly111.ps[1] = Point(1008.5, 1281.42);
+ poly111.ps[2] = Point(952.5, 1281.42);
+ poly111.ps[3] = Point(952.5, 1221.42);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(1308.5, 1043.75);
+ poly112.ps[1] = Point(1308.5, 1083.75);
+ poly112.ps[2] = Point(1232.5, 1083.75);
+ poly112.ps[3] = Point(1232.5, 1043.75);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(1150.5, 1043.75);
+ poly113.ps[1] = Point(1150.5, 1083.75);
+ poly113.ps[2] = Point(1074.5, 1083.75);
+ poly113.ps[3] = Point(1074.5, 1043.75);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(1355.5, 480.5);
+ poly114.ps[1] = Point(1355.5, 540.5);
+ poly114.ps[2] = Point(1299.5, 540.5);
+ poly114.ps[3] = Point(1299.5, 480.5);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(1277.5, 720);
+ poly115.ps[1] = Point(1277.5, 760);
+ poly115.ps[2] = Point(1201.5, 760);
+ poly115.ps[3] = Point(1201.5, 720);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(1277.5, 458);
+ poly116.ps[1] = Point(1277.5, 498);
+ poly116.ps[2] = Point(1201.5, 498);
+ poly116.ps[3] = Point(1201.5, 458);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(946.5, 813);
+ poly117.ps[1] = Point(946.5, 873);
+ poly117.ps[2] = Point(890.5, 873);
+ poly117.ps[3] = Point(890.5, 813);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(504.5, 707);
+ poly118.ps[1] = Point(504.5, 767);
+ poly118.ps[2] = Point(448.5, 767);
+ poly118.ps[3] = Point(448.5, 707);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(504.5, 782);
+ poly119.ps[1] = Point(504.5, 842);
+ poly119.ps[2] = Point(448.5, 842);
+ poly119.ps[3] = Point(448.5, 782);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(826.5, 670);
+ poly120.ps[1] = Point(826.5, 730);
+ poly120.ps[2] = Point(770.5, 730);
+ poly120.ps[3] = Point(770.5, 670);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(633.5, 720);
+ poly121.ps[1] = Point(633.5, 760);
+ poly121.ps[2] = Point(557.5, 760);
+ poly121.ps[3] = Point(557.5, 720);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(372.5, 720);
+ poly122.ps[1] = Point(372.5, 760);
+ poly122.ps[2] = Point(296.5, 760);
+ poly122.ps[3] = Point(296.5, 720);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(735.5, 408);
+ poly123.ps[1] = Point(735.5, 468);
+ poly123.ps[2] = Point(679.5, 468);
+ poly123.ps[3] = Point(679.5, 408);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(735.5, 483);
+ poly124.ps[1] = Point(735.5, 543);
+ poly124.ps[2] = Point(679.5, 543);
+ poly124.ps[3] = Point(679.5, 483);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(735.5, 333);
+ poly125.ps[1] = Point(735.5, 393);
+ poly125.ps[2] = Point(679.5, 393);
+ poly125.ps[3] = Point(679.5, 333);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(795.5, 271);
+ poly126.ps[1] = Point(795.5, 331);
+ poly126.ps[2] = Point(739.5, 331);
+ poly126.ps[3] = Point(739.5, 271);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(795.5, 169);
+ poly127.ps[1] = Point(795.5, 229);
+ poly127.ps[2] = Point(739.5, 229);
+ poly127.ps[3] = Point(739.5, 169);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(520.5, 2242.46);
+ poly128.ps[1] = Point(520.5, 2302.46);
+ poly128.ps[2] = Point(464.5, 2302.46);
+ poly128.ps[3] = Point(464.5, 2242.46);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(1277.5, 1549.42);
+ poly129.ps[1] = Point(1277.5, 1589.42);
+ poly129.ps[2] = Point(1201.5, 1589.42);
+ poly129.ps[3] = Point(1201.5, 1549.42);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(735.5, 625);
+ poly130.ps[1] = Point(735.5, 685);
+ poly130.ps[2] = Point(679.5, 685);
+ poly130.ps[3] = Point(679.5, 625);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(504.5, 924);
+ poly131.ps[1] = Point(504.5, 984);
+ poly131.ps[2] = Point(448.5, 984);
+ poly131.ps[3] = Point(448.5, 924);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(314.5, 1006);
+ poly132.ps[1] = Point(314.5, 1066);
+ poly132.ps[2] = Point(258.5, 1066);
+ poly132.ps[3] = Point(258.5, 1006);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(314.5, 1108);
+ poly133.ps[1] = Point(314.5, 1168);
+ poly133.ps[2] = Point(258.5, 1168);
+ poly133.ps[3] = Point(258.5, 1108);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(582.5, 1006);
+ poly134.ps[1] = Point(582.5, 1066);
+ poly134.ps[2] = Point(526.5, 1066);
+ poly134.ps[3] = Point(526.5, 1006);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(582.5, 1108);
+ poly135.ps[1] = Point(582.5, 1168);
+ poly135.ps[2] = Point(526.5, 1168);
+ poly135.ps[3] = Point(526.5, 1108);
+ new ShapeRef(router, poly135, 135);
+#endif
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(727.439, 1944.42);
+ poly136.ps[1] = Point(727.439, 2004.42);
+ poly136.ps[2] = Point(671.439, 2004.42);
+ poly136.ps[3] = Point(671.439, 1944.42);
+ new ShapeRef(router, poly136, 136);
+
+#ifdef ALL
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1117.5, 2420.79);
+ poly137.ps[1] = Point(1117.5, 2480.79);
+ poly137.ps[2] = Point(1061.5, 2480.79);
+ poly137.ps[3] = Point(1061.5, 2420.79);
+ new ShapeRef(router, poly137, 137);
+#endif
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(727.439, 1802.42);
+ poly138.ps[1] = Point(727.439, 1862.42);
+ poly138.ps[2] = Point(671.439, 1862.42);
+ poly138.ps[3] = Point(671.439, 1802.42);
+ new ShapeRef(router, poly138, 138);
+
+#ifdef ALL
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1308.5, 1323.42);
+ poly139.ps[1] = Point(1308.5, 1363.42);
+ poly139.ps[2] = Point(1232.5, 1363.42);
+ poly139.ps[3] = Point(1232.5, 1323.42);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1326.5, 1487.42);
+ poly140.ps[1] = Point(1326.5, 1527.42);
+ poly140.ps[2] = Point(1250.5, 1527.42);
+ poly140.ps[3] = Point(1250.5, 1487.42);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1417.5, 1487.42);
+ poly141.ps[1] = Point(1417.5, 1527.42);
+ poly141.ps[2] = Point(1341.5, 1527.42);
+ poly141.ps[3] = Point(1341.5, 1487.42);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(582.5, 1970.42);
+ poly142.ps[1] = Point(582.5, 2030.42);
+ poly142.ps[2] = Point(526.5, 2030.42);
+ poly142.ps[3] = Point(526.5, 1970.42);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(1508.5, 1487.42);
+ poly143.ps[1] = Point(1508.5, 1527.42);
+ poly143.ps[2] = Point(1432.5, 1527.42);
+ poly143.ps[3] = Point(1432.5, 1487.42);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(1128.5, 1579.42);
+ poly144.ps[1] = Point(1128.5, 1639.42);
+ poly144.ps[2] = Point(1072.5, 1639.42);
+ poly144.ps[3] = Point(1072.5, 1579.42);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(1128.5, 1385.42);
+ poly145.ps[1] = Point(1128.5, 1445.42);
+ poly145.ps[2] = Point(1072.5, 1445.42);
+ poly145.ps[3] = Point(1072.5, 1385.42);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(150.5, 2211.42);
+ poly146.ps[1] = Point(150.5, 2251.42);
+ poly146.ps[2] = Point(74.5, 2251.42);
+ poly146.ps[3] = Point(74.5, 2211.42);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(1399.5, 1043.75);
+ poly147.ps[1] = Point(1399.5, 1083.75);
+ poly147.ps[2] = Point(1323.5, 1083.75);
+ poly147.ps[3] = Point(1323.5, 1043.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(735.5, 700);
+ poly148.ps[1] = Point(735.5, 760);
+ poly148.ps[2] = Point(679.5, 760);
+ poly148.ps[3] = Point(679.5, 700);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(504.5, 999);
+ poly149.ps[1] = Point(504.5, 1059);
+ poly149.ps[2] = Point(448.5, 1059);
+ poly149.ps[3] = Point(448.5, 999);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(1117.5, 2495.79);
+ poly150.ps[1] = Point(1117.5, 2555.79);
+ poly150.ps[2] = Point(1061.5, 2555.79);
+ poly150.ps[3] = Point(1061.5, 2495.79);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(1482, 966.25);
+ poly151.ps[1] = Point(1482, 1006.25);
+ poly151.ps[2] = Point(1422, 1006.25);
+ poly151.ps[3] = Point(1422, 966.25);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(1482, 1006.25);
+ poly152.ps[1] = Point(1482, 1046.25);
+ poly152.ps[2] = Point(1422, 1046.25);
+ poly152.ps[3] = Point(1422, 1006.25);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(1533, 1134.75);
+ poly153.ps[1] = Point(1533, 1194.75);
+ poly153.ps[2] = Point(1493, 1194.75);
+ poly153.ps[3] = Point(1493, 1134.75);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(1573, 1134.75);
+ poly154.ps[1] = Point(1573, 1194.75);
+ poly154.ps[2] = Point(1533, 1194.75);
+ poly154.ps[3] = Point(1533, 1134.75);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(1272, 159.5);
+ poly155.ps[1] = Point(1272, 219.5);
+ poly155.ps[2] = Point(1232, 219.5);
+ poly155.ps[3] = Point(1232, 159.5);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(252.5, 2005.92);
+ poly156.ps[1] = Point(252.5, 2045.92);
+ poly156.ps[2] = Point(192.5, 2045.92);
+ poly156.ps[3] = Point(192.5, 2005.92);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(252.5, 2045.92);
+ poly157.ps[1] = Point(252.5, 2085.92);
+ poly157.ps[2] = Point(192.5, 2085.92);
+ poly157.ps[3] = Point(192.5, 2045.92);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(741.5, 1642.92);
+ poly158.ps[1] = Point(741.5, 1682.92);
+ poly158.ps[2] = Point(681.5, 1682.92);
+ poly158.ps[3] = Point(681.5, 1642.92);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(1458.5, 2243.79);
+ poly159.ps[1] = Point(1458.5, 2303.79);
+ poly159.ps[2] = Point(1418.5, 2303.79);
+ poly159.ps[3] = Point(1418.5, 2243.79);
+ new ShapeRef(router, poly159, 159);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(1191.5, 1211.75), 2);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(736.5, 1291.42), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(1191.5, 1181.75), 1);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(1191.5, 1115.75), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(1191.5, 1211.75), 2);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(1191.5, 1291.42), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(754.5, 2348.79), 4);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(251.5, 2379.79), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints163(1);
+ checkpoints163[0] = Point(807.5, 2379.79);
+ connRef163->setRoutingCheckpoints(checkpoints163);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(784.5, 2348.79), 8);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(829.5, 2379.79), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints164(1);
+ checkpoints164[0] = Point(731.5, 2379.79);
+ connRef164->setRoutingCheckpoints(checkpoints164);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(251.5, 2246.42), 2);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(251.5, 2379.79), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints165(1);
+ checkpoints165[0] = Point(226.5, 2261.42);
+ connRef165->setRoutingCheckpoints(checkpoints165);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(754.5, 2410.79), 4);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(251.5, 2379.79), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints166(1);
+ checkpoints166[0] = Point(807.5, 2379.79);
+ connRef166->setRoutingCheckpoints(checkpoints166);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(784.5, 2410.79), 8);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(829.5, 2379.79), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints167(1);
+ checkpoints167[0] = Point(731.5, 2379.79);
+ connRef167->setRoutingCheckpoints(checkpoints167);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(251.5, 2379.79), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(160.5, 2246.42), 2);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints168(1);
+ checkpoints168[0] = Point(226.5, 2261.42);
+ connRef168->setRoutingCheckpoints(checkpoints168);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(829.5, 2332.79), 2);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(829.5, 2379.79), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1074.5, 2273.79), 4);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(829.5, 2379.79), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints170(1);
+ checkpoints170[0] = Point(1051.5, 2379.79);
+ connRef170->setRoutingCheckpoints(checkpoints170);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1074.5, 2348.79), 4);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(829.5, 2379.79), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints171(1);
+ checkpoints171[0] = Point(1051.5, 2379.79);
+ connRef171->setRoutingCheckpoints(checkpoints171);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(996.5, 2179.79), 4);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(829.5, 2169.42), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(1011.5, 2113.42), 2);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(829.5, 2169.42), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(690.5, 2169.42), 4);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(523.5, 2169.42), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(690.5, 2169.42), 4);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(829.5, 2065.42), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(360.5, 2169.42), 4);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(251.5, 2169.42), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(390.5, 2169.42), 8);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(523.5, 2169.42), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(360.5, 2169.42), 4);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(375.5, 2312.46), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(1373.5, 2169.42), 8);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(1432.5, 2169.42), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(1343.5, 2169.42), 4);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(1191.5, 2169.42), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(1191.5, 1980.42), 2);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(1191.5, 2169.42), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(1191.5, 1826.42), 1);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(1191.5, 1779.42), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(1191.5, 1856.42), 2);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(1191.5, 1903.42), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(1191.5, 1732.42), 2);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(1191.5, 1779.42), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(1191.5, 1702.42), 1);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(1191.5, 1655.42), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(1160.5, 1358.42), 2);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(1191.5, 1455.42), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints186(1);
+ checkpoints186[0] = Point(1191.5, 1373.42);
+ connRef186->setRoutingCheckpoints(checkpoints186);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(1160.5, 1328.42), 1);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(1191.5, 1291.42), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints187(1);
+ checkpoints187[0] = Point(1191.5, 1313.42);
+ connRef187->setRoutingCheckpoints(checkpoints187);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(965.5, 1291.42), 4);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(736.5, 1291.42), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(995.5, 1291.42), 8);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(1191.5, 1291.42), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(1222.5, 1078.75), 2);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(1191.5, 1115.75), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints190(1);
+ checkpoints190[0] = Point(1191.5, 1033.75);
+ connRef190->setRoutingCheckpoints(checkpoints190);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(1160.5, 1048.75), 1);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(1191.5, 883), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints191(1);
+ checkpoints191[0] = Point(1191.5, 1093.75);
+ connRef191->setRoutingCheckpoints(checkpoints191);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(1312.5, 550.5), 4);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(1191.5, 584), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(1191.5, 725), 1);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(1191.5, 584), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(1191.5, 755), 2);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(1191.5, 883), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(1191.5, 463), 1);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(1191.5, 280), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(1191.5, 493), 2);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(1191.5, 584), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(903.5, 883), 4);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(736.5, 883), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(933.5, 883), 8);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(1191.5, 883), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(491.5, 777), 8);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(736.5, 883), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints199(1);
+ checkpoints199[0] = Point(438.5, 883);
+ connRef199->setRoutingCheckpoints(checkpoints199);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(491.5, 852), 8);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(736.5, 883), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints200(1);
+ checkpoints200[0] = Point(438.5, 883);
+ connRef200->setRoutingCheckpoints(checkpoints200);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(783.5, 740), 4);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(736.5, 883), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(813.5, 740), 8);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(1191.5, 584), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(643.5, 755), 2);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(736.5, 883), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(643.5, 725), 1);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(1191.5, 584), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(286.5, 725), 1);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(286.5, 584), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(286.5, 755), 2);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(286.5, 883), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(722.5, 478), 8);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(1191.5, 584), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints207(1);
+ checkpoints207[0] = Point(669.5, 584);
+ connRef207->setRoutingCheckpoints(checkpoints207);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(722.5, 553), 8);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(1191.5, 584), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints208(1);
+ checkpoints208[0] = Point(669.5, 584);
+ connRef208->setRoutingCheckpoints(checkpoints208);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(692.5, 403), 4);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(286.5, 584), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints209(1);
+ checkpoints209[0] = Point(745.5, 584);
+ connRef209->setRoutingCheckpoints(checkpoints209);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(752.5, 341), 4);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(286.5, 584), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(752.5, 239), 4);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(286.5, 584), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(507.5, 2312.46), 8);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(674.5, 2312.46), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(1191.5, 1584.42), 2);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(1191.5, 1655.42), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(1191.5, 1554.42), 1);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(1191.5, 1455.42), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(722.5, 615), 8);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(1191.5, 584), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints215(1);
+ checkpoints215[0] = Point(669.5, 584);
+ connRef215->setRoutingCheckpoints(checkpoints215);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(491.5, 914), 8);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(736.5, 883), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints216(1);
+ checkpoints216[0] = Point(438.5, 883);
+ connRef216->setRoutingCheckpoints(checkpoints216);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(301.5, 1076), 8);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(406.5, 1076), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(301.5, 1178), 8);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(406.5, 1178), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(569.5, 1076), 8);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(736.5, 883), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(569.5, 1178), 8);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(736.5, 883), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1401.5, 550.5), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1342.5, 550.5), 8);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(286.5, 584), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(692.5, 615), 4);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints222(1);
+ checkpoints222[0] = Point(745.5, 584);
+ connRef222->setRoutingCheckpoints(checkpoints222);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(286.5, 584), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(692.5, 690), 4);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints223(1);
+ checkpoints223[0] = Point(745.5, 584);
+ connRef223->setRoutingCheckpoints(checkpoints223);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(286.5, 883), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(461.5, 914), 4);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints224(1);
+ checkpoints224[0] = Point(514.5, 883);
+ connRef224->setRoutingCheckpoints(checkpoints224);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(461.5, 989), 4);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(286.5, 883), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints225(1);
+ checkpoints225[0] = Point(514.5, 883);
+ connRef225->setRoutingCheckpoints(checkpoints225);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(491.5, 989), 8);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(736.5, 883), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints226(1);
+ checkpoints226[0] = Point(438.5, 883);
+ connRef226->setRoutingCheckpoints(checkpoints226);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(1191.5, 883), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(1313.5, 1048.75), 1);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints227(1);
+ checkpoints227[0] = Point(1191.5, 1093.75);
+ connRef227->setRoutingCheckpoints(checkpoints227);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(714.439, 1872.42), 8);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(1191.5, 1903.42), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints228(1);
+ checkpoints228[0] = Point(737.439, 1903.42);
+ connRef228->setRoutingCheckpoints(checkpoints228);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(1240.5, 1522.42), 2);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(1191.5, 1655.42), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints229(1);
+ checkpoints229[0] = Point(1265.5, 1537.42);
+ connRef229->setRoutingCheckpoints(checkpoints229);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(1331.5, 1522.42), 2);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(1191.5, 1655.42), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints230(1);
+ checkpoints230[0] = Point(1265.5, 1537.42);
+ connRef230->setRoutingCheckpoints(checkpoints230);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(1422.5, 1522.42), 2);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(1191.5, 1655.42), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints231(1);
+ checkpoints231[0] = Point(1265.5, 1537.42);
+ connRef231->setRoutingCheckpoints(checkpoints231);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(1222.5, 1358.42), 2);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(1191.5, 1455.42), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints232(1);
+ checkpoints232[0] = Point(1191.5, 1373.42);
+ connRef232->setRoutingCheckpoints(checkpoints232);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(1115.5, 1455.42), 8);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(1191.5, 1455.42), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(1104.5, 2273.79), 8);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(1327.5, 2379.79), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints234(1);
+ checkpoints234[0] = Point(1127.5, 2379.79);
+ connRef234->setRoutingCheckpoints(checkpoints234);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(1104.5, 2348.79), 8);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(1327.5, 2379.79), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints235(1);
+ checkpoints235[0] = Point(1127.5, 2379.79);
+ connRef235->setRoutingCheckpoints(checkpoints235);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(1104.5, 2410.79), 8);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(1327.5, 2379.79), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints236(1);
+ checkpoints236[0] = Point(1127.5, 2379.79);
+ connRef236->setRoutingCheckpoints(checkpoints236);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(1104.5, 2485.79), 8);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(1327.5, 2379.79), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints237(1);
+ checkpoints237[0] = Point(1127.5, 2379.79);
+ connRef237->setRoutingCheckpoints(checkpoints237);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(569.5, 2040.42), 8);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(1191.5, 2169.42), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(829.5, 2169.42), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(829.5, 2302.79), 1);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(539.5, 2040.42), 4);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(251.5, 2169.42), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(1074.5, 2410.79), 4);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(829.5, 2379.79), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints241(1);
+ checkpoints241[0] = Point(1051.5, 2379.79);
+ connRef241->setRoutingCheckpoints(checkpoints241);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(1074.5, 2485.79), 4);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(829.5, 2379.79), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints242(1);
+ checkpoints242[0] = Point(1051.5, 2379.79);
+ connRef242->setRoutingCheckpoints(checkpoints242);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(477.5, 2312.46), 4);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(375.5, 2312.46), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(1191.5, 1115.75), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(1160.5, 1078.75), 2);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints244(1);
+ checkpoints244[0] = Point(1191.5, 1033.75);
+ connRef244->setRoutingCheckpoints(checkpoints244);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(216.5, 1076), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(271.5, 1076), 4);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(406.5, 1076), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(539.5, 1076), 4);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(406.5, 1178), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(539.5, 1178), 4);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(216.5, 1178), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(271.5, 1178), 4);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(714.439, 1934.42), 8);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(1191.5, 1903.42), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints249(1);
+ checkpoints249[0] = Point(737.439, 1903.42);
+ connRef249->setRoutingCheckpoints(checkpoints249);
+#endif
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(251.5, 1903.42), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(684.439, 1934.42), 4);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints250(1);
+ checkpoints250[0] = Point(661.439, 1903.42);
+ connRef250->setRoutingCheckpoints(checkpoints250);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(251.5, 1903.42), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(684.439, 1872.42), 4);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints251(1);
+ checkpoints251[0] = Point(661.439, 1903.42);
+ connRef251->setRoutingCheckpoints(checkpoints251);
+
+#ifdef ALL
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(1222.5, 1328.42), 1);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(1191.5, 1291.42), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints252(1);
+ checkpoints252[0] = Point(1191.5, 1313.42);
+ connRef252->setRoutingCheckpoints(checkpoints252);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(1085.5, 1649.42), 4);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(949.5, 1569.42), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(1115.5, 1649.42), 8);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(1191.5, 1655.42), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(1085.5, 1455.42), 4);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(949.5, 1569.42), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(1191.5, 1291.42), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(1240.5, 1492.42), 1);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints256(1);
+ checkpoints256[0] = Point(1265.5, 1477.42);
+ connRef256->setRoutingCheckpoints(checkpoints256);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1191.5, 1291.42), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1331.5, 1492.42), 1);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints257(1);
+ checkpoints257[0] = Point(1265.5, 1477.42);
+ connRef257->setRoutingCheckpoints(checkpoints257);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1191.5, 1291.42), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1422.5, 1492.42), 1);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints258(1);
+ checkpoints258[0] = Point(1265.5, 1477.42);
+ connRef258->setRoutingCheckpoints(checkpoints258);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(160.5, 2216.42), 1);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(251.5, 2169.42), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints259(1);
+ checkpoints259[0] = Point(226.5, 2201.42);
+ connRef259->setRoutingCheckpoints(checkpoints259);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1313.5, 1078.75), 2);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1191.5, 1115.75), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints260(1);
+ checkpoints260[0] = Point(1191.5, 1033.75);
+ connRef260->setRoutingCheckpoints(checkpoints260);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(722.5, 690), 8);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1191.5, 584), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints261(1);
+ checkpoints261[0] = Point(669.5, 584);
+ connRef261->setRoutingCheckpoints(checkpoints261);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(829.5, 2065.42), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1026.5, 2179.79), 8);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(829.5, 2065.42), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(1011.5, 2083.42), 1);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(1249.5, 1196.75), 4);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(1191.5, 1196.75), 8);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(769.5, 2298.79), 2);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(769.5, 2348.79), 1);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(193.5, 2231.42), 8);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(251.5, 2231.42), 4);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(769.5, 2460.79), 1);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(769.5, 2410.79), 2);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(887.5, 2317.79), 4);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(829.5, 2317.79), 8);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(1089.5, 2223.79), 2);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(1089.5, 2273.79), 1);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(1089.5, 2298.79), 2);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(1089.5, 2348.79), 1);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(1011.5, 2229.79), 1);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(1011.5, 2179.79), 2);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(1069.5, 2098.42), 4);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(1011.5, 2098.42), 8);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(705.5, 2119.42), 2);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(705.5, 2169.42), 1);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(375.5, 2119.42), 2);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(375.5, 2169.42), 1);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(1358.5, 2119.42), 2);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(1358.5, 2169.42), 1);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(1249.5, 1965.42), 4);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(1191.5, 1965.42), 8);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(1249.5, 1841.42), 4);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(1191.5, 1841.42), 8);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(1249.5, 1717.42), 4);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(1191.5, 1717.42), 8);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(1102.5, 1343.42), 8);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(1160.5, 1343.42), 4);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(980.5, 1241.42), 2);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(980.5, 1291.42), 1);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(1280.5, 1063.75), 4);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(1222.5, 1063.75), 8);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(1102.5, 1063.75), 8);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(1160.5, 1063.75), 4);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(1327.5, 500.5), 2);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(1327.5, 550.5), 1);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(1249.5, 740), 4);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(1191.5, 740), 8);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(1249.5, 478), 4);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(1191.5, 478), 8);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(918.5, 833), 2);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(918.5, 883), 1);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(476.5, 727), 2);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(476.5, 777), 1);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(476.5, 802), 2);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(476.5, 852), 1);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(798.5, 690), 2);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(798.5, 740), 1);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(585.5, 740), 8);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(643.5, 740), 4);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(344.5, 740), 4);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(286.5, 740), 8);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(707.5, 428), 2);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(707.5, 478), 1);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(707.5, 503), 2);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(707.5, 553), 1);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(707.5, 353), 2);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(707.5, 403), 1);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(767.5, 291), 2);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(767.5, 341), 1);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(767.5, 189), 2);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(767.5, 239), 1);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(492.5, 2262.46), 2);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(492.5, 2312.46), 1);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(1249.5, 1569.42), 4);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(1191.5, 1569.42), 8);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(707.5, 665), 1);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(707.5, 615), 2);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(476.5, 964), 1);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(476.5, 914), 2);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(286.5, 1026), 2);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(286.5, 1076), 1);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(286.5, 1128), 2);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(286.5, 1178), 1);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(554.5, 1026), 2);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(554.5, 1076), 1);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(554.5, 1128), 2);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(554.5, 1178), 1);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(699.439, 1984.42), 1);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(699.439, 1934.42), 2);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(1089.5, 2460.79), 1);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(1089.5, 2410.79), 2);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(699.439, 1822.42), 2);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(699.439, 1872.42), 1);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(1280.5, 1343.42), 4);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(1222.5, 1343.42), 8);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(1298.5, 1507.42), 4);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(1240.5, 1507.42), 8);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(1389.5, 1507.42), 4);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(1331.5, 1507.42), 8);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(554.5, 1990.42), 2);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(554.5, 2040.42), 1);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(1480.5, 1507.42), 4);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(1422.5, 1507.42), 8);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(1100.5, 1599.42), 2);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(1100.5, 1649.42), 1);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(1100.5, 1405.42), 2);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(1100.5, 1455.42), 1);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(102.5, 2231.42), 8);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(160.5, 2231.42), 4);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(1371.5, 1063.75), 4);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(1313.5, 1063.75), 8);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(707.5, 740), 1);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(707.5, 690), 2);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(476.5, 1039), 1);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(476.5, 989), 2);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(1089.5, 2535.79), 1);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(1089.5, 2485.79), 2);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(251.5, 2169.42), 15);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(251.5, 2216.42), 1);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints320(1);
+ checkpoints320[0] = Point(226.5, 2201.42);
+ connRef320->setRoutingCheckpoints(checkpoints320);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(1191.5, 2169.42), 15);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(1026.5, 2179.79), 8);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(1191.5, 2169.42), 15);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(1011.5, 2083.42), 1);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(674.5, 2312.46), 15);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(720.5, 2169.42), 8);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(829.5, 2169.42), 15);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(720.5, 2169.42), 8);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(1191.5, 1903.42), 15);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(1191.5, 1950.42), 1);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(1191.5, 883), 15);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(1222.5, 1048.75), 1);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints326(1);
+ checkpoints326[0] = Point(1191.5, 1093.75);
+ connRef326->setRoutingCheckpoints(checkpoints326);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(286.5, 883), 15);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(461.5, 777), 4);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints327(1);
+ checkpoints327[0] = Point(514.5, 883);
+ connRef327->setRoutingCheckpoints(checkpoints327);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(286.5, 883), 15);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(461.5, 852), 4);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints328(1);
+ checkpoints328[0] = Point(514.5, 883);
+ connRef328->setRoutingCheckpoints(checkpoints328);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(286.5, 584), 15);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(692.5, 478), 4);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints329(1);
+ checkpoints329[0] = Point(745.5, 584);
+ connRef329->setRoutingCheckpoints(checkpoints329);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(286.5, 584), 15);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(692.5, 553), 4);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints330(1);
+ checkpoints330[0] = Point(745.5, 584);
+ connRef330->setRoutingCheckpoints(checkpoints330);
+
+ ConnRef *connRef331 = new ConnRef(router, 331);
+ ConnEnd srcPt331(Point(1191.5, 584), 15);
+ connRef331->setSourceEndpoint(srcPt331);
+ ConnEnd dstPt331(Point(722.5, 403), 8);
+ connRef331->setDestEndpoint(dstPt331);
+ connRef331->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints331(1);
+ checkpoints331[0] = Point(669.5, 584);
+ connRef331->setRoutingCheckpoints(checkpoints331);
+
+ ConnRef *connRef332 = new ConnRef(router, 332);
+ ConnEnd srcPt332(Point(1191.5, 280), 15);
+ connRef332->setSourceEndpoint(srcPt332);
+ ConnEnd dstPt332(Point(782.5, 341), 8);
+ connRef332->setDestEndpoint(dstPt332);
+ connRef332->setRoutingType((ConnType)2);
+
+ ConnRef *connRef333 = new ConnRef(router, 333);
+ ConnEnd srcPt333(Point(1191.5, 280), 15);
+ connRef333->setSourceEndpoint(srcPt333);
+ ConnEnd dstPt333(Point(782.5, 239), 8);
+ connRef333->setDestEndpoint(dstPt333);
+ connRef333->setRoutingType((ConnType)2);
+
+ ConnRef *connRef334 = new ConnRef(router, 334);
+ ConnEnd srcPt334(Point(1191.5, 584), 15);
+ connRef334->setSourceEndpoint(srcPt334);
+ ConnEnd dstPt334(Point(1427, 986.25), 4);
+ connRef334->setDestEndpoint(dstPt334);
+ connRef334->setRoutingType((ConnType)2);
+
+ ConnRef *connRef335 = new ConnRef(router, 335);
+ ConnEnd srcPt335(Point(1191.5, 1291.42), 15);
+ connRef335->setSourceEndpoint(srcPt335);
+ ConnEnd dstPt335(Point(1427, 1026.25), 4);
+ connRef335->setDestEndpoint(dstPt335);
+ connRef335->setRoutingType((ConnType)2);
+
+ ConnRef *connRef336 = new ConnRef(router, 336);
+ ConnEnd srcPt336(Point(1191.5, 1779.42), 15);
+ connRef336->setSourceEndpoint(srcPt336);
+ ConnEnd dstPt336(Point(1513, 1189.75), 2);
+ connRef336->setDestEndpoint(dstPt336);
+ connRef336->setRoutingType((ConnType)2);
+
+ ConnRef *connRef337 = new ConnRef(router, 337);
+ ConnEnd srcPt337(Point(1191.5, 2169.42), 15);
+ connRef337->setSourceEndpoint(srcPt337);
+ ConnEnd dstPt337(Point(1553, 1189.75), 2);
+ connRef337->setDestEndpoint(dstPt337);
+ connRef337->setRoutingType((ConnType)2);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(1191.5, 280), 15);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(1252, 214.5), 2);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(251.5, 1903.42), 15);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(247.5, 2025.92), 8);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(251.5, 2169.42), 15);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(247.5, 2065.92), 8);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1191.5, 1655.42), 15);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(736.5, 1662.92), 8);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1432.5, 2169.42), 15);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(1438.5, 2248.79), 1);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/checkpointNudging1");
+ bool atEnds = true;
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap(atEnds);
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging2.cpp b/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging2.cpp
new file mode 100644
index 0000000..f06b148
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging2.cpp
@@ -0,0 +1,2606 @@
+// KEGG -> SBGN example #10
+//
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1201.5, 1180.75);
+ poly1.ps[1] = Point(1201.5, 1212.75);
+ poly1.ps[2] = Point(1181.5, 1212.75);
+ poly1.ps[3] = Point(1181.5, 1180.75);
+ new ShapeRef(router, poly1, 1);
+
+#ifdef ALL
+ Polygon poly2(4);
+ poly2.ps[0] = Point(785.5, 2338.79);
+ poly2.ps[1] = Point(785.5, 2358.79);
+ poly2.ps[2] = Point(753.5, 2358.79);
+ poly2.ps[3] = Point(753.5, 2338.79);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(261.5, 2215.42);
+ poly3.ps[1] = Point(261.5, 2247.42);
+ poly3.ps[2] = Point(241.5, 2247.42);
+ poly3.ps[3] = Point(241.5, 2215.42);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(785.5, 2400.79);
+ poly4.ps[1] = Point(785.5, 2420.79);
+ poly4.ps[2] = Point(753.5, 2420.79);
+ poly4.ps[3] = Point(753.5, 2400.79);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(282.5, 2348.79);
+ poly5.ps[1] = Point(282.5, 2410.79);
+ poly5.ps[2] = Point(220.5, 2410.79);
+ poly5.ps[3] = Point(220.5, 2348.79);
+ new ShapeRef(router, poly5, 5);
+#endif
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1643.5, 817.25);
+ poly6.ps[1] = Point(1643.5, 1194.25);
+ poly6.ps[2] = Point(1421.5, 1194.25);
+ poly6.ps[3] = Point(1421.5, 817.25);
+ new ShapeRef(router, poly6, 6);
+
+#ifdef ALL
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1311.5, 45);
+ poly7.ps[1] = Point(1311.5, 219);
+ poly7.ps[2] = Point(1191.5, 219);
+ poly7.ps[3] = Point(1191.5, 45);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(839.5, 2301.79);
+ poly8.ps[1] = Point(839.5, 2333.79);
+ poly8.ps[2] = Point(819.5, 2333.79);
+ poly8.ps[3] = Point(819.5, 2301.79);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1105.5, 2263.79);
+ poly9.ps[1] = Point(1105.5, 2283.79);
+ poly9.ps[2] = Point(1073.5, 2283.79);
+ poly9.ps[3] = Point(1073.5, 2263.79);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(1105.5, 2338.79);
+ poly10.ps[1] = Point(1105.5, 2358.79);
+ poly10.ps[2] = Point(1073.5, 2358.79);
+ poly10.ps[3] = Point(1073.5, 2338.79);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(1027.5, 2169.79);
+ poly11.ps[1] = Point(1027.5, 2189.79);
+ poly11.ps[2] = Point(995.5, 2189.79);
+ poly11.ps[3] = Point(995.5, 2169.79);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1021.5, 2082.42);
+ poly12.ps[1] = Point(1021.5, 2114.42);
+ poly12.ps[2] = Point(1001.5, 2114.42);
+ poly12.ps[3] = Point(1001.5, 2082.42);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(721.5, 2159.42);
+ poly13.ps[1] = Point(721.5, 2179.42);
+ poly13.ps[2] = Point(689.5, 2179.42);
+ poly13.ps[3] = Point(689.5, 2159.42);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(391.5, 2159.42);
+ poly14.ps[1] = Point(391.5, 2179.42);
+ poly14.ps[2] = Point(359.5, 2179.42);
+ poly14.ps[3] = Point(359.5, 2159.42);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1374.5, 2159.42);
+ poly15.ps[1] = Point(1374.5, 2179.42);
+ poly15.ps[2] = Point(1342.5, 2179.42);
+ poly15.ps[3] = Point(1342.5, 2159.42);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(923.421, 1631.86);
+ poly16.ps[1] = Point(923.421, 1675.86);
+ poly16.ps[2] = Point(835.421, 1675.86);
+ poly16.ps[3] = Point(835.421, 1631.86);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(1201.5, 1949.42);
+ poly17.ps[1] = Point(1201.5, 1981.42);
+ poly17.ps[2] = Point(1181.5, 1981.42);
+ poly17.ps[3] = Point(1181.5, 1949.42);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(252, 1963.42);
+ poly18.ps[1] = Point(252, 2127.42);
+ poly18.ps[2] = Point(45, 2127.42);
+ poly18.ps[3] = Point(45, 1963.42);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(1201.5, 1825.42);
+ poly19.ps[1] = Point(1201.5, 1857.42);
+ poly19.ps[2] = Point(1181.5, 1857.42);
+ poly19.ps[3] = Point(1181.5, 1825.42);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(1201.5, 1701.42);
+ poly20.ps[1] = Point(1201.5, 1733.42);
+ poly20.ps[2] = Point(1181.5, 1733.42);
+ poly20.ps[3] = Point(1181.5, 1701.42);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(1170.5, 1327.42);
+ poly21.ps[1] = Point(1170.5, 1359.42);
+ poly21.ps[2] = Point(1150.5, 1359.42);
+ poly21.ps[3] = Point(1150.5, 1327.42);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(741, 1632.42);
+ poly22.ps[1] = Point(741, 1692.42);
+ poly22.ps[2] = Point(428, 1692.42);
+ poly22.ps[3] = Point(428, 1632.42);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(996.5, 1281.42);
+ poly23.ps[1] = Point(996.5, 1301.42);
+ poly23.ps[2] = Point(964.5, 1301.42);
+ poly23.ps[3] = Point(964.5, 1281.42);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(1232.5, 1047.75);
+ poly24.ps[1] = Point(1232.5, 1079.75);
+ poly24.ps[2] = Point(1212.5, 1079.75);
+ poly24.ps[3] = Point(1212.5, 1047.75);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(1170.5, 1047.75);
+ poly25.ps[1] = Point(1170.5, 1079.75);
+ poly25.ps[2] = Point(1150.5, 1079.75);
+ poly25.ps[3] = Point(1150.5, 1047.75);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(1343.5, 540.5);
+ poly26.ps[1] = Point(1343.5, 560.5);
+ poly26.ps[2] = Point(1311.5, 560.5);
+ poly26.ps[3] = Point(1311.5, 540.5);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(1201.5, 724);
+ poly27.ps[1] = Point(1201.5, 756);
+ poly27.ps[2] = Point(1181.5, 756);
+ poly27.ps[3] = Point(1181.5, 724);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(1201.5, 462);
+ poly28.ps[1] = Point(1201.5, 494);
+ poly28.ps[2] = Point(1181.5, 494);
+ poly28.ps[3] = Point(1181.5, 462);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(934.5, 873);
+ poly29.ps[1] = Point(934.5, 893);
+ poly29.ps[2] = Point(902.5, 893);
+ poly29.ps[3] = Point(902.5, 873);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(492.5, 767);
+ poly30.ps[1] = Point(492.5, 787);
+ poly30.ps[2] = Point(460.5, 787);
+ poly30.ps[3] = Point(460.5, 767);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(492.5, 842);
+ poly31.ps[1] = Point(492.5, 862);
+ poly31.ps[2] = Point(460.5, 862);
+ poly31.ps[3] = Point(460.5, 842);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(814.5, 730);
+ poly32.ps[1] = Point(814.5, 750);
+ poly32.ps[2] = Point(782.5, 750);
+ poly32.ps[3] = Point(782.5, 730);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(653.5, 724);
+ poly33.ps[1] = Point(653.5, 756);
+ poly33.ps[2] = Point(633.5, 756);
+ poly33.ps[3] = Point(633.5, 724);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(296.5, 724);
+ poly34.ps[1] = Point(296.5, 756);
+ poly34.ps[2] = Point(276.5, 756);
+ poly34.ps[3] = Point(276.5, 724);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(723.5, 468);
+ poly35.ps[1] = Point(723.5, 488);
+ poly35.ps[2] = Point(691.5, 488);
+ poly35.ps[3] = Point(691.5, 468);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(723.5, 543);
+ poly36.ps[1] = Point(723.5, 563);
+ poly36.ps[2] = Point(691.5, 563);
+ poly36.ps[3] = Point(691.5, 543);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(723.5, 393);
+ poly37.ps[1] = Point(723.5, 413);
+ poly37.ps[2] = Point(691.5, 413);
+ poly37.ps[3] = Point(691.5, 393);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(783.5, 331);
+ poly38.ps[1] = Point(783.5, 351);
+ poly38.ps[2] = Point(751.5, 351);
+ poly38.ps[3] = Point(751.5, 331);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(783.5, 229);
+ poly39.ps[1] = Point(783.5, 249);
+ poly39.ps[2] = Point(751.5, 249);
+ poly39.ps[3] = Point(751.5, 229);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(402, 96.5);
+ poly40.ps[1] = Point(402, 131.5);
+ poly40.ps[2] = Point(141, 131.5);
+ poly40.ps[3] = Point(141, 96.5);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(508.5, 2302.46);
+ poly41.ps[1] = Point(508.5, 2322.46);
+ poly41.ps[2] = Point(476.5, 2322.46);
+ poly41.ps[3] = Point(476.5, 2302.46);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(1201.5, 1553.42);
+ poly42.ps[1] = Point(1201.5, 1585.42);
+ poly42.ps[2] = Point(1181.5, 1585.42);
+ poly42.ps[3] = Point(1181.5, 1553.42);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(723.5, 605);
+ poly43.ps[1] = Point(723.5, 625);
+ poly43.ps[2] = Point(691.5, 625);
+ poly43.ps[3] = Point(691.5, 605);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(492.5, 904);
+ poly44.ps[1] = Point(492.5, 924);
+ poly44.ps[2] = Point(460.5, 924);
+ poly44.ps[3] = Point(460.5, 904);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(302.5, 1066);
+ poly45.ps[1] = Point(302.5, 1086);
+ poly45.ps[2] = Point(270.5, 1086);
+ poly45.ps[3] = Point(270.5, 1066);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(302.5, 1168);
+ poly46.ps[1] = Point(302.5, 1188);
+ poly46.ps[2] = Point(270.5, 1188);
+ poly46.ps[3] = Point(270.5, 1168);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(570.5, 1066);
+ poly47.ps[1] = Point(570.5, 1086);
+ poly47.ps[2] = Point(538.5, 1086);
+ poly47.ps[3] = Point(538.5, 1066);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(570.5, 1168);
+ poly48.ps[1] = Point(570.5, 1188);
+ poly48.ps[2] = Point(538.5, 1188);
+ poly48.ps[3] = Point(538.5, 1168);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1432.5, 519.5);
+ poly49.ps[1] = Point(1432.5, 581.5);
+ poly49.ps[2] = Point(1370.5, 581.5);
+ poly49.ps[3] = Point(1370.5, 519.5);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(1222.5, 249);
+ poly50.ps[1] = Point(1222.5, 311);
+ poly50.ps[2] = Point(1160.5, 311);
+ poly50.ps[3] = Point(1160.5, 249);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1222.5, 1748.42);
+ poly51.ps[1] = Point(1222.5, 1810.42);
+ poly51.ps[2] = Point(1160.5, 1810.42);
+ poly51.ps[3] = Point(1160.5, 1748.42);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(317.5, 553);
+ poly52.ps[1] = Point(317.5, 615);
+ poly52.ps[2] = Point(255.5, 615);
+ poly52.ps[3] = Point(255.5, 553);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(317.5, 852);
+ poly53.ps[1] = Point(317.5, 914);
+ poly53.ps[2] = Point(255.5, 914);
+ poly53.ps[3] = Point(255.5, 852);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(767.5, 1260.42);
+ poly54.ps[1] = Point(767.5, 1322.42);
+ poly54.ps[2] = Point(705.5, 1322.42);
+ poly54.ps[3] = Point(705.5, 1260.42);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(767.5, 852);
+ poly55.ps[1] = Point(767.5, 914);
+ poly55.ps[2] = Point(705.5, 914);
+ poly55.ps[3] = Point(705.5, 852);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(1222.5, 553);
+ poly56.ps[1] = Point(1222.5, 615);
+ poly56.ps[2] = Point(1160.5, 615);
+ poly56.ps[3] = Point(1160.5, 553);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(1222.5, 852);
+ poly57.ps[1] = Point(1222.5, 914);
+ poly57.ps[2] = Point(1160.5, 914);
+ poly57.ps[3] = Point(1160.5, 852);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(1222.5, 1872.42);
+ poly58.ps[1] = Point(1222.5, 1934.42);
+ poly58.ps[2] = Point(1160.5, 1934.42);
+ poly58.ps[3] = Point(1160.5, 1872.42);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(1222.5, 1624.42);
+ poly59.ps[1] = Point(1222.5, 1686.42);
+ poly59.ps[2] = Point(1160.5, 1686.42);
+ poly59.ps[3] = Point(1160.5, 1624.42);
+ new ShapeRef(router, poly59, 59);
+#endif
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(1222.5, 1424.42);
+ poly60.ps[1] = Point(1222.5, 1486.42);
+ poly60.ps[2] = Point(1160.5, 1486.42);
+ poly60.ps[3] = Point(1160.5, 1424.42);
+ new ShapeRef(router, poly60, 60);
+
+#ifdef ALL
+ Polygon poly61(4);
+ poly61.ps[0] = Point(1463.5, 2138.42);
+ poly61.ps[1] = Point(1463.5, 2200.42);
+ poly61.ps[2] = Point(1401.5, 2200.42);
+ poly61.ps[3] = Point(1401.5, 2138.42);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(705.5, 2281.46);
+ poly62.ps[1] = Point(705.5, 2343.46);
+ poly62.ps[2] = Point(643.5, 2343.46);
+ poly62.ps[3] = Point(643.5, 2281.46);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(1358.5, 2348.79);
+ poly63.ps[1] = Point(1358.5, 2410.79);
+ poly63.ps[2] = Point(1296.5, 2410.79);
+ poly63.ps[3] = Point(1296.5, 2348.79);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(1222.5, 2138.42);
+ poly64.ps[1] = Point(1222.5, 2200.42);
+ poly64.ps[2] = Point(1160.5, 2200.42);
+ poly64.ps[3] = Point(1160.5, 2138.42);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(860.5, 2138.42);
+ poly65.ps[1] = Point(860.5, 2200.42);
+ poly65.ps[2] = Point(798.5, 2200.42);
+ poly65.ps[3] = Point(798.5, 2138.42);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(282.5, 2138.42);
+ poly66.ps[1] = Point(282.5, 2200.42);
+ poly66.ps[2] = Point(220.5, 2200.42);
+ poly66.ps[3] = Point(220.5, 2138.42);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(860.5, 2348.79);
+ poly67.ps[1] = Point(860.5, 2410.79);
+ poly67.ps[2] = Point(798.5, 2410.79);
+ poly67.ps[3] = Point(798.5, 2348.79);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(554.5, 2138.42);
+ poly68.ps[1] = Point(554.5, 2200.42);
+ poly68.ps[2] = Point(492.5, 2200.42);
+ poly68.ps[3] = Point(492.5, 2138.42);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(406.5, 2281.46);
+ poly69.ps[1] = Point(406.5, 2343.46);
+ poly69.ps[2] = Point(344.5, 2343.46);
+ poly69.ps[3] = Point(344.5, 2281.46);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(1222.5, 1084.75);
+ poly70.ps[1] = Point(1222.5, 1146.75);
+ poly70.ps[2] = Point(1160.5, 1146.75);
+ poly70.ps[3] = Point(1160.5, 1084.75);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(247.5, 1045);
+ poly71.ps[1] = Point(247.5, 1107);
+ poly71.ps[2] = Point(185.5, 1107);
+ poly71.ps[3] = Point(185.5, 1045);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(437.5, 1045);
+ poly72.ps[1] = Point(437.5, 1107);
+ poly72.ps[2] = Point(375.5, 1107);
+ poly72.ps[3] = Point(375.5, 1045);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(437.5, 1147);
+ poly73.ps[1] = Point(437.5, 1209);
+ poly73.ps[2] = Point(375.5, 1209);
+ poly73.ps[3] = Point(375.5, 1147);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(247.5, 1147);
+ poly74.ps[1] = Point(247.5, 1209);
+ poly74.ps[2] = Point(185.5, 1209);
+ poly74.ps[3] = Point(185.5, 1147);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(715.439, 1924.42);
+ poly75.ps[1] = Point(715.439, 1944.42);
+ poly75.ps[2] = Point(683.439, 1944.42);
+ poly75.ps[3] = Point(683.439, 1924.42);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(282.5, 1872.42);
+ poly76.ps[1] = Point(282.5, 1934.42);
+ poly76.ps[2] = Point(220.5, 1934.42);
+ poly76.ps[3] = Point(220.5, 1872.42);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1105.5, 2400.79);
+ poly77.ps[1] = Point(1105.5, 2420.79);
+ poly77.ps[2] = Point(1073.5, 2420.79);
+ poly77.ps[3] = Point(1073.5, 2400.79);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(715.439, 1862.42);
+ poly78.ps[1] = Point(715.439, 1882.42);
+ poly78.ps[2] = Point(683.439, 1882.42);
+ poly78.ps[3] = Point(683.439, 1862.42);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(1506.5, 2243.29);
+ poly79.ps[1] = Point(1506.5, 2408.29);
+ poly79.ps[2] = Point(1369.5, 2408.29);
+ poly79.ps[3] = Point(1369.5, 2243.29);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(1232.5, 1327.42);
+ poly80.ps[1] = Point(1232.5, 1359.42);
+ poly80.ps[2] = Point(1212.5, 1359.42);
+ poly80.ps[3] = Point(1212.5, 1327.42);
+ new ShapeRef(router, poly80, 80);
+#endif
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(1250.5, 1491.42);
+ poly81.ps[1] = Point(1250.5, 1523.42);
+ poly81.ps[2] = Point(1230.5, 1523.42);
+ poly81.ps[3] = Point(1230.5, 1491.42);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(1341.5, 1491.42);
+ poly82.ps[1] = Point(1341.5, 1523.42);
+ poly82.ps[2] = Point(1321.5, 1523.42);
+ poly82.ps[3] = Point(1321.5, 1491.42);
+ new ShapeRef(router, poly82, 82);
+
+#ifdef ALL
+ Polygon poly83(4);
+ poly83.ps[0] = Point(570.5, 2030.42);
+ poly83.ps[1] = Point(570.5, 2050.42);
+ poly83.ps[2] = Point(538.5, 2050.42);
+ poly83.ps[3] = Point(538.5, 2030.42);
+ new ShapeRef(router, poly83, 83);
+#endif
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(1432.5, 1491.42);
+ poly84.ps[1] = Point(1432.5, 1523.42);
+ poly84.ps[2] = Point(1412.5, 1523.42);
+ poly84.ps[3] = Point(1412.5, 1491.42);
+ new ShapeRef(router, poly84, 84);
+
+#ifdef ALL
+ Polygon poly85(4);
+ poly85.ps[0] = Point(980.5, 1538.42);
+ poly85.ps[1] = Point(980.5, 1600.42);
+ poly85.ps[2] = Point(918.5, 1600.42);
+ poly85.ps[3] = Point(918.5, 1538.42);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(1116.5, 1639.42);
+ poly86.ps[1] = Point(1116.5, 1659.42);
+ poly86.ps[2] = Point(1084.5, 1659.42);
+ poly86.ps[3] = Point(1084.5, 1639.42);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(1116.5, 1445.42);
+ poly87.ps[1] = Point(1116.5, 1465.42);
+ poly87.ps[2] = Point(1084.5, 1465.42);
+ poly87.ps[3] = Point(1084.5, 1445.42);
+ new ShapeRef(router, poly87, 87);
+#endif
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(1222.5, 1260.42);
+ poly88.ps[1] = Point(1222.5, 1322.42);
+ poly88.ps[2] = Point(1160.5, 1322.42);
+ poly88.ps[3] = Point(1160.5, 1260.42);
+ new ShapeRef(router, poly88, 88);
+
+#ifdef ALL
+ Polygon poly89(4);
+ poly89.ps[0] = Point(170.5, 2215.42);
+ poly89.ps[1] = Point(170.5, 2247.42);
+ poly89.ps[2] = Point(150.5, 2247.42);
+ poly89.ps[3] = Point(150.5, 2215.42);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(1323.5, 1047.75);
+ poly90.ps[1] = Point(1323.5, 1079.75);
+ poly90.ps[2] = Point(1303.5, 1079.75);
+ poly90.ps[3] = Point(1303.5, 1047.75);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(723.5, 680);
+ poly91.ps[1] = Point(723.5, 700);
+ poly91.ps[2] = Point(691.5, 700);
+ poly91.ps[3] = Point(691.5, 680);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(492.5, 979);
+ poly92.ps[1] = Point(492.5, 999);
+ poly92.ps[2] = Point(460.5, 999);
+ poly92.ps[3] = Point(460.5, 979);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1105.5, 2475.79);
+ poly93.ps[1] = Point(1105.5, 2495.79);
+ poly93.ps[2] = Point(1073.5, 2495.79);
+ poly93.ps[3] = Point(1073.5, 2475.79);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(860.5, 2034.42);
+ poly94.ps[1] = Point(860.5, 2096.42);
+ poly94.ps[2] = Point(798.5, 2096.42);
+ poly94.ps[3] = Point(798.5, 2034.42);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(1277.5, 1176.75);
+ poly95.ps[1] = Point(1277.5, 1216.75);
+ poly95.ps[2] = Point(1201.5, 1216.75);
+ poly95.ps[3] = Point(1201.5, 1176.75);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(797.5, 2278.79);
+ poly96.ps[1] = Point(797.5, 2338.79);
+ poly96.ps[2] = Point(741.5, 2338.79);
+ poly96.ps[3] = Point(741.5, 2278.79);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(241.5, 2211.42);
+ poly97.ps[1] = Point(241.5, 2251.42);
+ poly97.ps[2] = Point(165.5, 2251.42);
+ poly97.ps[3] = Point(165.5, 2211.42);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(797.5, 2420.79);
+ poly98.ps[1] = Point(797.5, 2480.79);
+ poly98.ps[2] = Point(741.5, 2480.79);
+ poly98.ps[3] = Point(741.5, 2420.79);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(915.5, 2297.79);
+ poly99.ps[1] = Point(915.5, 2337.79);
+ poly99.ps[2] = Point(839.5, 2337.79);
+ poly99.ps[3] = Point(839.5, 2297.79);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1117.5, 2203.79);
+ poly100.ps[1] = Point(1117.5, 2263.79);
+ poly100.ps[2] = Point(1061.5, 2263.79);
+ poly100.ps[3] = Point(1061.5, 2203.79);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1117.5, 2278.79);
+ poly101.ps[1] = Point(1117.5, 2338.79);
+ poly101.ps[2] = Point(1061.5, 2338.79);
+ poly101.ps[3] = Point(1061.5, 2278.79);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1039.5, 2189.79);
+ poly102.ps[1] = Point(1039.5, 2249.79);
+ poly102.ps[2] = Point(983.5, 2249.79);
+ poly102.ps[3] = Point(983.5, 2189.79);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(1097.5, 2078.42);
+ poly103.ps[1] = Point(1097.5, 2118.42);
+ poly103.ps[2] = Point(1021.5, 2118.42);
+ poly103.ps[3] = Point(1021.5, 2078.42);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(733.5, 2099.42);
+ poly104.ps[1] = Point(733.5, 2159.42);
+ poly104.ps[2] = Point(677.5, 2159.42);
+ poly104.ps[3] = Point(677.5, 2099.42);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(403.5, 2099.42);
+ poly105.ps[1] = Point(403.5, 2159.42);
+ poly105.ps[2] = Point(347.5, 2159.42);
+ poly105.ps[3] = Point(347.5, 2099.42);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(1386.5, 2099.42);
+ poly106.ps[1] = Point(1386.5, 2159.42);
+ poly106.ps[2] = Point(1330.5, 2159.42);
+ poly106.ps[3] = Point(1330.5, 2099.42);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(1277.5, 1945.42);
+ poly107.ps[1] = Point(1277.5, 1985.42);
+ poly107.ps[2] = Point(1201.5, 1985.42);
+ poly107.ps[3] = Point(1201.5, 1945.42);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(1277.5, 1821.42);
+ poly108.ps[1] = Point(1277.5, 1861.42);
+ poly108.ps[2] = Point(1201.5, 1861.42);
+ poly108.ps[3] = Point(1201.5, 1821.42);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1277.5, 1697.42);
+ poly109.ps[1] = Point(1277.5, 1737.42);
+ poly109.ps[2] = Point(1201.5, 1737.42);
+ poly109.ps[3] = Point(1201.5, 1697.42);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(1150.5, 1323.42);
+ poly110.ps[1] = Point(1150.5, 1363.42);
+ poly110.ps[2] = Point(1074.5, 1363.42);
+ poly110.ps[3] = Point(1074.5, 1323.42);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(1008.5, 1221.42);
+ poly111.ps[1] = Point(1008.5, 1281.42);
+ poly111.ps[2] = Point(952.5, 1281.42);
+ poly111.ps[3] = Point(952.5, 1221.42);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(1308.5, 1043.75);
+ poly112.ps[1] = Point(1308.5, 1083.75);
+ poly112.ps[2] = Point(1232.5, 1083.75);
+ poly112.ps[3] = Point(1232.5, 1043.75);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(1150.5, 1043.75);
+ poly113.ps[1] = Point(1150.5, 1083.75);
+ poly113.ps[2] = Point(1074.5, 1083.75);
+ poly113.ps[3] = Point(1074.5, 1043.75);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(1355.5, 480.5);
+ poly114.ps[1] = Point(1355.5, 540.5);
+ poly114.ps[2] = Point(1299.5, 540.5);
+ poly114.ps[3] = Point(1299.5, 480.5);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(1277.5, 720);
+ poly115.ps[1] = Point(1277.5, 760);
+ poly115.ps[2] = Point(1201.5, 760);
+ poly115.ps[3] = Point(1201.5, 720);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(1277.5, 458);
+ poly116.ps[1] = Point(1277.5, 498);
+ poly116.ps[2] = Point(1201.5, 498);
+ poly116.ps[3] = Point(1201.5, 458);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(946.5, 813);
+ poly117.ps[1] = Point(946.5, 873);
+ poly117.ps[2] = Point(890.5, 873);
+ poly117.ps[3] = Point(890.5, 813);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(504.5, 707);
+ poly118.ps[1] = Point(504.5, 767);
+ poly118.ps[2] = Point(448.5, 767);
+ poly118.ps[3] = Point(448.5, 707);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(504.5, 782);
+ poly119.ps[1] = Point(504.5, 842);
+ poly119.ps[2] = Point(448.5, 842);
+ poly119.ps[3] = Point(448.5, 782);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(826.5, 670);
+ poly120.ps[1] = Point(826.5, 730);
+ poly120.ps[2] = Point(770.5, 730);
+ poly120.ps[3] = Point(770.5, 670);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(633.5, 720);
+ poly121.ps[1] = Point(633.5, 760);
+ poly121.ps[2] = Point(557.5, 760);
+ poly121.ps[3] = Point(557.5, 720);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(372.5, 720);
+ poly122.ps[1] = Point(372.5, 760);
+ poly122.ps[2] = Point(296.5, 760);
+ poly122.ps[3] = Point(296.5, 720);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(735.5, 408);
+ poly123.ps[1] = Point(735.5, 468);
+ poly123.ps[2] = Point(679.5, 468);
+ poly123.ps[3] = Point(679.5, 408);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(735.5, 483);
+ poly124.ps[1] = Point(735.5, 543);
+ poly124.ps[2] = Point(679.5, 543);
+ poly124.ps[3] = Point(679.5, 483);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(735.5, 333);
+ poly125.ps[1] = Point(735.5, 393);
+ poly125.ps[2] = Point(679.5, 393);
+ poly125.ps[3] = Point(679.5, 333);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(795.5, 271);
+ poly126.ps[1] = Point(795.5, 331);
+ poly126.ps[2] = Point(739.5, 331);
+ poly126.ps[3] = Point(739.5, 271);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(795.5, 169);
+ poly127.ps[1] = Point(795.5, 229);
+ poly127.ps[2] = Point(739.5, 229);
+ poly127.ps[3] = Point(739.5, 169);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(520.5, 2242.46);
+ poly128.ps[1] = Point(520.5, 2302.46);
+ poly128.ps[2] = Point(464.5, 2302.46);
+ poly128.ps[3] = Point(464.5, 2242.46);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(1277.5, 1549.42);
+ poly129.ps[1] = Point(1277.5, 1589.42);
+ poly129.ps[2] = Point(1201.5, 1589.42);
+ poly129.ps[3] = Point(1201.5, 1549.42);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(735.5, 625);
+ poly130.ps[1] = Point(735.5, 685);
+ poly130.ps[2] = Point(679.5, 685);
+ poly130.ps[3] = Point(679.5, 625);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(504.5, 924);
+ poly131.ps[1] = Point(504.5, 984);
+ poly131.ps[2] = Point(448.5, 984);
+ poly131.ps[3] = Point(448.5, 924);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(314.5, 1006);
+ poly132.ps[1] = Point(314.5, 1066);
+ poly132.ps[2] = Point(258.5, 1066);
+ poly132.ps[3] = Point(258.5, 1006);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(314.5, 1108);
+ poly133.ps[1] = Point(314.5, 1168);
+ poly133.ps[2] = Point(258.5, 1168);
+ poly133.ps[3] = Point(258.5, 1108);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(582.5, 1006);
+ poly134.ps[1] = Point(582.5, 1066);
+ poly134.ps[2] = Point(526.5, 1066);
+ poly134.ps[3] = Point(526.5, 1006);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(582.5, 1108);
+ poly135.ps[1] = Point(582.5, 1168);
+ poly135.ps[2] = Point(526.5, 1168);
+ poly135.ps[3] = Point(526.5, 1108);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(727.439, 1944.42);
+ poly136.ps[1] = Point(727.439, 2004.42);
+ poly136.ps[2] = Point(671.439, 2004.42);
+ poly136.ps[3] = Point(671.439, 1944.42);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1117.5, 2420.79);
+ poly137.ps[1] = Point(1117.5, 2480.79);
+ poly137.ps[2] = Point(1061.5, 2480.79);
+ poly137.ps[3] = Point(1061.5, 2420.79);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(727.439, 1802.42);
+ poly138.ps[1] = Point(727.439, 1862.42);
+ poly138.ps[2] = Point(671.439, 1862.42);
+ poly138.ps[3] = Point(671.439, 1802.42);
+ new ShapeRef(router, poly138, 138);
+#endif
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1308.5, 1323.42);
+ poly139.ps[1] = Point(1308.5, 1363.42);
+ poly139.ps[2] = Point(1232.5, 1363.42);
+ poly139.ps[3] = Point(1232.5, 1323.42);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1326.5, 1487.42);
+ poly140.ps[1] = Point(1326.5, 1527.42);
+ poly140.ps[2] = Point(1250.5, 1527.42);
+ poly140.ps[3] = Point(1250.5, 1487.42);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1417.5, 1487.42);
+ poly141.ps[1] = Point(1417.5, 1527.42);
+ poly141.ps[2] = Point(1341.5, 1527.42);
+ poly141.ps[3] = Point(1341.5, 1487.42);
+ new ShapeRef(router, poly141, 141);
+
+#ifdef ALL
+ Polygon poly142(4);
+ poly142.ps[0] = Point(582.5, 1970.42);
+ poly142.ps[1] = Point(582.5, 2030.42);
+ poly142.ps[2] = Point(526.5, 2030.42);
+ poly142.ps[3] = Point(526.5, 1970.42);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(1508.5, 1487.42);
+ poly143.ps[1] = Point(1508.5, 1527.42);
+ poly143.ps[2] = Point(1432.5, 1527.42);
+ poly143.ps[3] = Point(1432.5, 1487.42);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(1128.5, 1579.42);
+ poly144.ps[1] = Point(1128.5, 1639.42);
+ poly144.ps[2] = Point(1072.5, 1639.42);
+ poly144.ps[3] = Point(1072.5, 1579.42);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(1128.5, 1385.42);
+ poly145.ps[1] = Point(1128.5, 1445.42);
+ poly145.ps[2] = Point(1072.5, 1445.42);
+ poly145.ps[3] = Point(1072.5, 1385.42);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(150.5, 2211.42);
+ poly146.ps[1] = Point(150.5, 2251.42);
+ poly146.ps[2] = Point(74.5, 2251.42);
+ poly146.ps[3] = Point(74.5, 2211.42);
+ new ShapeRef(router, poly146, 146);
+#endif
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(1399.5, 1043.75);
+ poly147.ps[1] = Point(1399.5, 1083.75);
+ poly147.ps[2] = Point(1323.5, 1083.75);
+ poly147.ps[3] = Point(1323.5, 1043.75);
+ new ShapeRef(router, poly147, 147);
+
+#ifdef ALL
+ Polygon poly148(4);
+ poly148.ps[0] = Point(735.5, 700);
+ poly148.ps[1] = Point(735.5, 760);
+ poly148.ps[2] = Point(679.5, 760);
+ poly148.ps[3] = Point(679.5, 700);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(504.5, 999);
+ poly149.ps[1] = Point(504.5, 1059);
+ poly149.ps[2] = Point(448.5, 1059);
+ poly149.ps[3] = Point(448.5, 999);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(1117.5, 2495.79);
+ poly150.ps[1] = Point(1117.5, 2555.79);
+ poly150.ps[2] = Point(1061.5, 2555.79);
+ poly150.ps[3] = Point(1061.5, 2495.79);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(1482, 966.25);
+ poly151.ps[1] = Point(1482, 1006.25);
+ poly151.ps[2] = Point(1422, 1006.25);
+ poly151.ps[3] = Point(1422, 966.25);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(1482, 1006.25);
+ poly152.ps[1] = Point(1482, 1046.25);
+ poly152.ps[2] = Point(1422, 1046.25);
+ poly152.ps[3] = Point(1422, 1006.25);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(1533, 1134.75);
+ poly153.ps[1] = Point(1533, 1194.75);
+ poly153.ps[2] = Point(1493, 1194.75);
+ poly153.ps[3] = Point(1493, 1134.75);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(1573, 1134.75);
+ poly154.ps[1] = Point(1573, 1194.75);
+ poly154.ps[2] = Point(1533, 1194.75);
+ poly154.ps[3] = Point(1533, 1134.75);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(1272, 159.5);
+ poly155.ps[1] = Point(1272, 219.5);
+ poly155.ps[2] = Point(1232, 219.5);
+ poly155.ps[3] = Point(1232, 159.5);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(252.5, 2005.92);
+ poly156.ps[1] = Point(252.5, 2045.92);
+ poly156.ps[2] = Point(192.5, 2045.92);
+ poly156.ps[3] = Point(192.5, 2005.92);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(252.5, 2045.92);
+ poly157.ps[1] = Point(252.5, 2085.92);
+ poly157.ps[2] = Point(192.5, 2085.92);
+ poly157.ps[3] = Point(192.5, 2045.92);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(741.5, 1642.92);
+ poly158.ps[1] = Point(741.5, 1682.92);
+ poly158.ps[2] = Point(681.5, 1682.92);
+ poly158.ps[3] = Point(681.5, 1642.92);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(1458.5, 2243.79);
+ poly159.ps[1] = Point(1458.5, 2303.79);
+ poly159.ps[2] = Point(1418.5, 2303.79);
+ poly159.ps[3] = Point(1418.5, 2243.79);
+ new ShapeRef(router, poly159, 159);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(1191.5, 1211.75), 2);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(736.5, 1291.42), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(1191.5, 1181.75), 1);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(1191.5, 1115.75), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(1191.5, 1211.75), 2);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(1191.5, 1291.42), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(754.5, 2348.79), 4);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(251.5, 2379.79), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints163(1);
+ checkpoints163[0] = Point(807.5, 2379.79);
+ connRef163->setRoutingCheckpoints(checkpoints163);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(784.5, 2348.79), 8);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(829.5, 2379.79), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints164(1);
+ checkpoints164[0] = Point(731.5, 2379.79);
+ connRef164->setRoutingCheckpoints(checkpoints164);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(251.5, 2246.42), 2);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(251.5, 2379.79), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints165(1);
+ checkpoints165[0] = Point(226.5, 2261.42);
+ connRef165->setRoutingCheckpoints(checkpoints165);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(754.5, 2410.79), 4);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(251.5, 2379.79), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints166(1);
+ checkpoints166[0] = Point(807.5, 2379.79);
+ connRef166->setRoutingCheckpoints(checkpoints166);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(784.5, 2410.79), 8);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(829.5, 2379.79), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints167(1);
+ checkpoints167[0] = Point(731.5, 2379.79);
+ connRef167->setRoutingCheckpoints(checkpoints167);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(251.5, 2379.79), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(160.5, 2246.42), 2);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints168(1);
+ checkpoints168[0] = Point(226.5, 2261.42);
+ connRef168->setRoutingCheckpoints(checkpoints168);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(829.5, 2332.79), 2);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(829.5, 2379.79), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1074.5, 2273.79), 4);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(829.5, 2379.79), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints170(1);
+ checkpoints170[0] = Point(1051.5, 2379.79);
+ connRef170->setRoutingCheckpoints(checkpoints170);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1074.5, 2348.79), 4);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(829.5, 2379.79), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints171(1);
+ checkpoints171[0] = Point(1051.5, 2379.79);
+ connRef171->setRoutingCheckpoints(checkpoints171);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(996.5, 2179.79), 4);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(829.5, 2169.42), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(1011.5, 2113.42), 2);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(829.5, 2169.42), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(690.5, 2169.42), 4);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(523.5, 2169.42), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(690.5, 2169.42), 4);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(829.5, 2065.42), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(360.5, 2169.42), 4);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(251.5, 2169.42), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(390.5, 2169.42), 8);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(523.5, 2169.42), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(360.5, 2169.42), 4);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(375.5, 2312.46), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(1373.5, 2169.42), 8);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(1432.5, 2169.42), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(1343.5, 2169.42), 4);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(1191.5, 2169.42), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(1191.5, 1980.42), 2);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(1191.5, 2169.42), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(1191.5, 1826.42), 1);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(1191.5, 1779.42), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(1191.5, 1856.42), 2);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(1191.5, 1903.42), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(1191.5, 1732.42), 2);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(1191.5, 1779.42), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(1191.5, 1702.42), 1);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(1191.5, 1655.42), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(1160.5, 1358.42), 2);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(1191.5, 1455.42), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints186(1);
+ checkpoints186[0] = Point(1191.5, 1373.42);
+ connRef186->setRoutingCheckpoints(checkpoints186);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(1160.5, 1328.42), 1);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(1191.5, 1291.42), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints187(1);
+ checkpoints187[0] = Point(1191.5, 1313.42);
+ connRef187->setRoutingCheckpoints(checkpoints187);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(965.5, 1291.42), 4);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(736.5, 1291.42), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(995.5, 1291.42), 8);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(1191.5, 1291.42), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(1222.5, 1078.75), 2);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(1191.5, 1115.75), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints190(1);
+ checkpoints190[0] = Point(1191.5, 1033.75);
+ connRef190->setRoutingCheckpoints(checkpoints190);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(1160.5, 1048.75), 1);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(1191.5, 883), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints191(1);
+ checkpoints191[0] = Point(1191.5, 1093.75);
+ connRef191->setRoutingCheckpoints(checkpoints191);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(1312.5, 550.5), 4);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(1191.5, 584), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(1191.5, 725), 1);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(1191.5, 584), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(1191.5, 755), 2);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(1191.5, 883), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(1191.5, 463), 1);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(1191.5, 280), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(1191.5, 493), 2);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(1191.5, 584), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(903.5, 883), 4);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(736.5, 883), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(933.5, 883), 8);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(1191.5, 883), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(491.5, 777), 8);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(736.5, 883), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints199(1);
+ checkpoints199[0] = Point(438.5, 883);
+ connRef199->setRoutingCheckpoints(checkpoints199);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(491.5, 852), 8);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(736.5, 883), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints200(1);
+ checkpoints200[0] = Point(438.5, 883);
+ connRef200->setRoutingCheckpoints(checkpoints200);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(783.5, 740), 4);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(736.5, 883), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(813.5, 740), 8);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(1191.5, 584), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(643.5, 755), 2);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(736.5, 883), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(643.5, 725), 1);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(1191.5, 584), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(286.5, 725), 1);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(286.5, 584), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(286.5, 755), 2);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(286.5, 883), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(722.5, 478), 8);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(1191.5, 584), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints207(1);
+ checkpoints207[0] = Point(669.5, 584);
+ connRef207->setRoutingCheckpoints(checkpoints207);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(722.5, 553), 8);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(1191.5, 584), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints208(1);
+ checkpoints208[0] = Point(669.5, 584);
+ connRef208->setRoutingCheckpoints(checkpoints208);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(692.5, 403), 4);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(286.5, 584), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints209(1);
+ checkpoints209[0] = Point(745.5, 584);
+ connRef209->setRoutingCheckpoints(checkpoints209);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(752.5, 341), 4);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(286.5, 584), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(752.5, 239), 4);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(286.5, 584), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(507.5, 2312.46), 8);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(674.5, 2312.46), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(1191.5, 1584.42), 2);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(1191.5, 1655.42), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(1191.5, 1554.42), 1);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(1191.5, 1455.42), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(722.5, 615), 8);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(1191.5, 584), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints215(1);
+ checkpoints215[0] = Point(669.5, 584);
+ connRef215->setRoutingCheckpoints(checkpoints215);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(491.5, 914), 8);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(736.5, 883), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints216(1);
+ checkpoints216[0] = Point(438.5, 883);
+ connRef216->setRoutingCheckpoints(checkpoints216);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(301.5, 1076), 8);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(406.5, 1076), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(301.5, 1178), 8);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(406.5, 1178), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(569.5, 1076), 8);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(736.5, 883), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(569.5, 1178), 8);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(736.5, 883), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1401.5, 550.5), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1342.5, 550.5), 8);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(286.5, 584), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(692.5, 615), 4);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints222(1);
+ checkpoints222[0] = Point(745.5, 584);
+ connRef222->setRoutingCheckpoints(checkpoints222);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(286.5, 584), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(692.5, 690), 4);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints223(1);
+ checkpoints223[0] = Point(745.5, 584);
+ connRef223->setRoutingCheckpoints(checkpoints223);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(286.5, 883), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(461.5, 914), 4);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints224(1);
+ checkpoints224[0] = Point(514.5, 883);
+ connRef224->setRoutingCheckpoints(checkpoints224);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(461.5, 989), 4);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(286.5, 883), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints225(1);
+ checkpoints225[0] = Point(514.5, 883);
+ connRef225->setRoutingCheckpoints(checkpoints225);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(491.5, 989), 8);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(736.5, 883), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints226(1);
+ checkpoints226[0] = Point(438.5, 883);
+ connRef226->setRoutingCheckpoints(checkpoints226);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(1191.5, 883), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(1313.5, 1048.75), 1);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints227(1);
+ checkpoints227[0] = Point(1191.5, 1093.75);
+ connRef227->setRoutingCheckpoints(checkpoints227);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(714.439, 1872.42), 8);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(1191.5, 1903.42), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints228(1);
+ checkpoints228[0] = Point(737.439, 1903.42);
+ connRef228->setRoutingCheckpoints(checkpoints228);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(1240.5, 1522.42), 2);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(1191.5, 1655.42), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints229(1);
+ checkpoints229[0] = Point(1265.5, 1537.42);
+ connRef229->setRoutingCheckpoints(checkpoints229);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(1331.5, 1522.42), 2);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(1191.5, 1655.42), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints230(1);
+ checkpoints230[0] = Point(1265.5, 1537.42);
+ connRef230->setRoutingCheckpoints(checkpoints230);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(1422.5, 1522.42), 2);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(1191.5, 1655.42), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints231(1);
+ checkpoints231[0] = Point(1265.5, 1537.42);
+ connRef231->setRoutingCheckpoints(checkpoints231);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(1222.5, 1358.42), 2);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(1191.5, 1455.42), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints232(1);
+ checkpoints232[0] = Point(1191.5, 1373.42);
+ connRef232->setRoutingCheckpoints(checkpoints232);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(1115.5, 1455.42), 8);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(1191.5, 1455.42), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(1104.5, 2273.79), 8);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(1327.5, 2379.79), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints234(1);
+ checkpoints234[0] = Point(1127.5, 2379.79);
+ connRef234->setRoutingCheckpoints(checkpoints234);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(1104.5, 2348.79), 8);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(1327.5, 2379.79), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints235(1);
+ checkpoints235[0] = Point(1127.5, 2379.79);
+ connRef235->setRoutingCheckpoints(checkpoints235);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(1104.5, 2410.79), 8);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(1327.5, 2379.79), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints236(1);
+ checkpoints236[0] = Point(1127.5, 2379.79);
+ connRef236->setRoutingCheckpoints(checkpoints236);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(1104.5, 2485.79), 8);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(1327.5, 2379.79), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints237(1);
+ checkpoints237[0] = Point(1127.5, 2379.79);
+ connRef237->setRoutingCheckpoints(checkpoints237);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(569.5, 2040.42), 8);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(1191.5, 2169.42), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(829.5, 2169.42), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(829.5, 2302.79), 1);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(539.5, 2040.42), 4);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(251.5, 2169.42), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(1074.5, 2410.79), 4);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(829.5, 2379.79), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints241(1);
+ checkpoints241[0] = Point(1051.5, 2379.79);
+ connRef241->setRoutingCheckpoints(checkpoints241);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(1074.5, 2485.79), 4);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(829.5, 2379.79), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints242(1);
+ checkpoints242[0] = Point(1051.5, 2379.79);
+ connRef242->setRoutingCheckpoints(checkpoints242);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(477.5, 2312.46), 4);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(375.5, 2312.46), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(1191.5, 1115.75), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(1160.5, 1078.75), 2);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints244(1);
+ checkpoints244[0] = Point(1191.5, 1033.75);
+ connRef244->setRoutingCheckpoints(checkpoints244);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(216.5, 1076), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(271.5, 1076), 4);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(406.5, 1076), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(539.5, 1076), 4);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(406.5, 1178), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(539.5, 1178), 4);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(216.5, 1178), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(271.5, 1178), 4);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(714.439, 1934.42), 8);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(1191.5, 1903.42), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints249(1);
+ checkpoints249[0] = Point(737.439, 1903.42);
+ connRef249->setRoutingCheckpoints(checkpoints249);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(251.5, 1903.42), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(684.439, 1934.42), 4);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints250(1);
+ checkpoints250[0] = Point(661.439, 1903.42);
+ connRef250->setRoutingCheckpoints(checkpoints250);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(251.5, 1903.42), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(684.439, 1872.42), 4);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints251(1);
+ checkpoints251[0] = Point(661.439, 1903.42);
+ connRef251->setRoutingCheckpoints(checkpoints251);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(1222.5, 1328.42), 1);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(1191.5, 1291.42), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints252(1);
+ checkpoints252[0] = Point(1191.5, 1313.42);
+ connRef252->setRoutingCheckpoints(checkpoints252);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(1085.5, 1649.42), 4);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(949.5, 1569.42), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(1115.5, 1649.42), 8);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(1191.5, 1655.42), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(1085.5, 1455.42), 4);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(949.5, 1569.42), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+#endif
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(1191.5, 1291.42), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(1240.5, 1492.42), 1);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints256(1);
+ checkpoints256[0] = Point(1331.5, 1477.42);
+ connRef256->setRoutingCheckpoints(checkpoints256);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1191.5, 1291.42), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1331.5, 1492.42), 1);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints257(1);
+ checkpoints257[0] = Point(1331.5, 1477.42);
+ connRef257->setRoutingCheckpoints(checkpoints256);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1191.5, 1291.42), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1422.5, 1492.42), 1);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints258(1);
+ checkpoints258[0] = Point(1331.5, 1477.42);
+ connRef258->setRoutingCheckpoints(checkpoints256);
+
+#ifdef ALL
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(160.5, 2216.42), 1);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(251.5, 2169.42), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints259(1);
+ checkpoints259[0] = Point(226.5, 2201.42);
+ connRef259->setRoutingCheckpoints(checkpoints259);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1313.5, 1078.75), 2);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1191.5, 1115.75), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints260(1);
+ checkpoints260[0] = Point(1191.5, 1033.75);
+ connRef260->setRoutingCheckpoints(checkpoints260);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(722.5, 690), 8);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1191.5, 584), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints261(1);
+ checkpoints261[0] = Point(669.5, 584);
+ connRef261->setRoutingCheckpoints(checkpoints261);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(829.5, 2065.42), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1026.5, 2179.79), 8);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(829.5, 2065.42), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(1011.5, 2083.42), 1);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(1249.5, 1196.75), 4);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(1191.5, 1196.75), 8);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(769.5, 2298.79), 2);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(769.5, 2348.79), 1);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(193.5, 2231.42), 8);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(251.5, 2231.42), 4);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(769.5, 2460.79), 1);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(769.5, 2410.79), 2);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(887.5, 2317.79), 4);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(829.5, 2317.79), 8);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(1089.5, 2223.79), 2);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(1089.5, 2273.79), 1);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(1089.5, 2298.79), 2);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(1089.5, 2348.79), 1);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(1011.5, 2229.79), 1);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(1011.5, 2179.79), 2);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(1069.5, 2098.42), 4);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(1011.5, 2098.42), 8);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(705.5, 2119.42), 2);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(705.5, 2169.42), 1);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(375.5, 2119.42), 2);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(375.5, 2169.42), 1);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(1358.5, 2119.42), 2);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(1358.5, 2169.42), 1);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(1249.5, 1965.42), 4);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(1191.5, 1965.42), 8);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(1249.5, 1841.42), 4);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(1191.5, 1841.42), 8);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(1249.5, 1717.42), 4);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(1191.5, 1717.42), 8);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(1102.5, 1343.42), 8);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(1160.5, 1343.42), 4);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(980.5, 1241.42), 2);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(980.5, 1291.42), 1);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(1280.5, 1063.75), 4);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(1222.5, 1063.75), 8);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(1102.5, 1063.75), 8);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(1160.5, 1063.75), 4);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(1327.5, 500.5), 2);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(1327.5, 550.5), 1);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(1249.5, 740), 4);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(1191.5, 740), 8);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(1249.5, 478), 4);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(1191.5, 478), 8);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(918.5, 833), 2);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(918.5, 883), 1);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(476.5, 727), 2);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(476.5, 777), 1);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(476.5, 802), 2);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(476.5, 852), 1);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(798.5, 690), 2);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(798.5, 740), 1);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(585.5, 740), 8);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(643.5, 740), 4);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(344.5, 740), 4);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(286.5, 740), 8);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(707.5, 428), 2);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(707.5, 478), 1);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(707.5, 503), 2);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(707.5, 553), 1);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(707.5, 353), 2);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(707.5, 403), 1);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(767.5, 291), 2);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(767.5, 341), 1);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(767.5, 189), 2);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(767.5, 239), 1);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(492.5, 2262.46), 2);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(492.5, 2312.46), 1);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(1249.5, 1569.42), 4);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(1191.5, 1569.42), 8);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(707.5, 665), 1);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(707.5, 615), 2);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(476.5, 964), 1);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(476.5, 914), 2);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(286.5, 1026), 2);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(286.5, 1076), 1);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(286.5, 1128), 2);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(286.5, 1178), 1);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(554.5, 1026), 2);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(554.5, 1076), 1);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(554.5, 1128), 2);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(554.5, 1178), 1);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(699.439, 1984.42), 1);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(699.439, 1934.42), 2);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(1089.5, 2460.79), 1);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(1089.5, 2410.79), 2);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(699.439, 1822.42), 2);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(699.439, 1872.42), 1);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(1280.5, 1343.42), 4);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(1222.5, 1343.42), 8);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(1298.5, 1507.42), 4);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(1240.5, 1507.42), 8);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(1389.5, 1507.42), 4);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(1331.5, 1507.42), 8);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(554.5, 1990.42), 2);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(554.5, 2040.42), 1);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(1480.5, 1507.42), 4);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(1422.5, 1507.42), 8);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(1100.5, 1599.42), 2);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(1100.5, 1649.42), 1);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(1100.5, 1405.42), 2);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(1100.5, 1455.42), 1);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(102.5, 2231.42), 8);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(160.5, 2231.42), 4);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(1371.5, 1063.75), 4);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(1313.5, 1063.75), 8);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(707.5, 740), 1);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(707.5, 690), 2);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(476.5, 1039), 1);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(476.5, 989), 2);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(1089.5, 2535.79), 1);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(1089.5, 2485.79), 2);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(251.5, 2169.42), 15);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(251.5, 2216.42), 1);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints320(1);
+ checkpoints320[0] = Point(226.5, 2201.42);
+ connRef320->setRoutingCheckpoints(checkpoints320);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(1191.5, 2169.42), 15);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(1026.5, 2179.79), 8);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(1191.5, 2169.42), 15);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(1011.5, 2083.42), 1);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(674.5, 2312.46), 15);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(720.5, 2169.42), 8);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(829.5, 2169.42), 15);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(720.5, 2169.42), 8);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(1191.5, 1903.42), 15);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(1191.5, 1950.42), 1);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(1191.5, 883), 15);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(1222.5, 1048.75), 1);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints326(1);
+ checkpoints326[0] = Point(1191.5, 1093.75);
+ connRef326->setRoutingCheckpoints(checkpoints326);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(286.5, 883), 15);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(461.5, 777), 4);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints327(1);
+ checkpoints327[0] = Point(514.5, 883);
+ connRef327->setRoutingCheckpoints(checkpoints327);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(286.5, 883), 15);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(461.5, 852), 4);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints328(1);
+ checkpoints328[0] = Point(514.5, 883);
+ connRef328->setRoutingCheckpoints(checkpoints328);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(286.5, 584), 15);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(692.5, 478), 4);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints329(1);
+ checkpoints329[0] = Point(745.5, 584);
+ connRef329->setRoutingCheckpoints(checkpoints329);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(286.5, 584), 15);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(692.5, 553), 4);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints330(1);
+ checkpoints330[0] = Point(745.5, 584);
+ connRef330->setRoutingCheckpoints(checkpoints330);
+
+ ConnRef *connRef331 = new ConnRef(router, 331);
+ ConnEnd srcPt331(Point(1191.5, 584), 15);
+ connRef331->setSourceEndpoint(srcPt331);
+ ConnEnd dstPt331(Point(722.5, 403), 8);
+ connRef331->setDestEndpoint(dstPt331);
+ connRef331->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints331(1);
+ checkpoints331[0] = Point(669.5, 584);
+ connRef331->setRoutingCheckpoints(checkpoints331);
+
+ ConnRef *connRef332 = new ConnRef(router, 332);
+ ConnEnd srcPt332(Point(1191.5, 280), 15);
+ connRef332->setSourceEndpoint(srcPt332);
+ ConnEnd dstPt332(Point(782.5, 341), 8);
+ connRef332->setDestEndpoint(dstPt332);
+ connRef332->setRoutingType((ConnType)2);
+
+ ConnRef *connRef333 = new ConnRef(router, 333);
+ ConnEnd srcPt333(Point(1191.5, 280), 15);
+ connRef333->setSourceEndpoint(srcPt333);
+ ConnEnd dstPt333(Point(782.5, 239), 8);
+ connRef333->setDestEndpoint(dstPt333);
+ connRef333->setRoutingType((ConnType)2);
+
+ ConnRef *connRef334 = new ConnRef(router, 334);
+ ConnEnd srcPt334(Point(1191.5, 584), 15);
+ connRef334->setSourceEndpoint(srcPt334);
+ ConnEnd dstPt334(Point(1427, 986.25), 4);
+ connRef334->setDestEndpoint(dstPt334);
+ connRef334->setRoutingType((ConnType)2);
+#endif
+
+ ConnRef *connRef335 = new ConnRef(router, 335);
+ ConnEnd srcPt335(Point(1191.5, 1291.42), 15);
+ connRef335->setSourceEndpoint(srcPt335);
+ ConnEnd dstPt335(Point(1427, 1026.25), 4);
+ connRef335->setDestEndpoint(dstPt335);
+ connRef335->setRoutingType((ConnType)2);
+
+#ifdef ALL
+ ConnRef *connRef336 = new ConnRef(router, 336);
+ ConnEnd srcPt336(Point(1191.5, 1779.42), 15);
+ connRef336->setSourceEndpoint(srcPt336);
+ ConnEnd dstPt336(Point(1513, 1189.75), 2);
+ connRef336->setDestEndpoint(dstPt336);
+ connRef336->setRoutingType((ConnType)2);
+
+ ConnRef *connRef337 = new ConnRef(router, 337);
+ ConnEnd srcPt337(Point(1191.5, 2169.42), 15);
+ connRef337->setSourceEndpoint(srcPt337);
+ ConnEnd dstPt337(Point(1553, 1189.75), 2);
+ connRef337->setDestEndpoint(dstPt337);
+ connRef337->setRoutingType((ConnType)2);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(1191.5, 280), 15);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(1252, 214.5), 2);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(251.5, 1903.42), 15);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(247.5, 2025.92), 8);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(251.5, 2169.42), 15);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(247.5, 2065.92), 8);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1191.5, 1655.42), 15);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(736.5, 1662.92), 8);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1432.5, 2169.42), 15);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(1438.5, 2248.79), 1);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/checkpointNudging2");
+
+ // Second last segment of connector 256 and 258 should be in line with each other
+ // in the y dimension, in line with the checkpoint.
+ bool areInline = (connRef258->displayRoute().ps[2].y == connRef258->displayRoute().ps[3].y) &&
+ (connRef258->displayRoute().ps[2].y == connRef256->displayRoute().ps[2].y) &&
+ (connRef258->displayRoute().ps[2].y == connRef256->displayRoute().ps[3].y);
+
+ delete router;
+ return (areInline) ? 0 : 1;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging3.cpp b/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging3.cpp
new file mode 100644
index 0000000..7c31d87
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/checkpointNudging3.cpp
@@ -0,0 +1,5242 @@
+// Based on ec00240-libavoid-debug-error-high-precision.svg
+// Problem where epsilon difference could cause a segment to be restricted
+// by a checkpoint on that segment, effectively not allowing it to move.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+#ifdef REST
+ Polygon poly1(4);
+ poly1.ps[0] = Point(191.62835648698, 1359.606854916126);
+ poly1.ps[1] = Point(191.62835648698, 1391.606854916126);
+ poly1.ps[2] = Point(171.62835648698, 1391.606854916126);
+ poly1.ps[3] = Point(171.62835648698, 1359.606854916126);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(1904.12835649198, 2.256854915126041);
+ poly2.ps[1] = Point(1904.12835649198, 64.25685491512604);
+ poly2.ps[2] = Point(1842.12835649198, 64.25685491512604);
+ poly2.ps[3] = Point(1842.12835649198, 2.256854915126041);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1959.12835649298, 23.25685491512604);
+ poly3.ps[1] = Point(1959.12835649298, 43.25685491512604);
+ poly3.ps[2] = Point(1927.12835649298, 43.25685491512604);
+ poly3.ps[3] = Point(1927.12835649298, 23.25685491512604);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(443.62835648698, -329.4098117515406);
+ poly4.ps[1] = Point(443.62835648698, -309.4098117515406);
+ poly4.ps[2] = Point(411.62835648698, -309.4098117515406);
+ poly4.ps[3] = Point(411.62835648698, -329.4098117515406);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(47.62835648497997, 935.8568549161259);
+ poly5.ps[1] = Point(47.62835648497997, 955.8568549161259);
+ poly5.ps[2] = Point(15.62835648497997, 955.8568549161259);
+ poly5.ps[3] = Point(15.62835648497997, 935.8568549161259);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(519.62835648798, 1326.606854916126);
+ poly6.ps[1] = Point(519.62835648798, 1358.606854916126);
+ poly6.ps[2] = Point(499.62835648798, 1358.606854916126);
+ poly6.ps[3] = Point(499.62835648798, 1326.606854916126);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(-975.12164351602, -157.4098117515406);
+ poly7.ps[1] = Point(-975.12164351602, -95.40981175154064);
+ poly7.ps[2] = Point(-1037.12164351602, -95.40981175154064);
+ poly7.ps[3] = Point(-1037.12164351602, -157.4098117515406);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(-996.12164351602, -281.4098117515406);
+ poly8.ps[1] = Point(-996.12164351602, -249.4098117515406);
+ poly8.ps[2] = Point(-1016.12164351602, -249.4098117515406);
+ poly8.ps[3] = Point(-1016.12164351602, -281.4098117515406);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(-827.12164351602, -964.4098117535407);
+ poly9.ps[1] = Point(-827.12164351602, -929.4098117535407);
+ poly9.ps[2] = Point(-1041.12164351602, -929.4098117535407);
+ poly9.ps[3] = Point(-1041.12164351602, -964.4098117535407);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(-657.62164351602, -907.4098117525407);
+ poly10.ps[1] = Point(-657.62164351602, -847.4098117525407);
+ poly10.ps[2] = Point(-964.62164351602, -847.4098117525407);
+ poly10.ps[3] = Point(-964.62164351602, -907.4098117525407);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(-938.62164351602, 275.2568549161261);
+ poly11.ps[1] = Point(-938.62164351602, 449.2568549161261);
+ poly11.ps[2] = Point(-1073.62164351602, 449.2568549161261);
+ poly11.ps[3] = Point(-1073.62164351602, 275.2568549161261);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(2313.295023161646, -400.4098117525406);
+ poly12.ps[1] = Point(2313.295023161646, -340.4098117525406);
+ poly12.ps[2] = Point(2030.295023161646, -340.4098117525406);
+ poly12.ps[3] = Point(2030.295023161646, -400.4098117525406);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(2313.795023161646, 1545.106854916126);
+ poly13.ps[1] = Point(2313.795023161646, 1605.106854916126);
+ poly13.ps[2] = Point(2029.795023161646, 1605.106854916126);
+ poly13.ps[3] = Point(2029.795023161646, 1545.106854916126);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(-996.12164351602, -513.4098117525407);
+ poly14.ps[1] = Point(-996.12164351602, -481.4098117525407);
+ poly14.ps[2] = Point(-1016.12164351602, -481.4098117525407);
+ poly14.ps[3] = Point(-1016.12164351602, -513.4098117525407);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(-792.12164351602, -747.9812403239691);
+ poly15.ps[1] = Point(-792.12164351602, -727.9812403239691);
+ poly15.ps[2] = Point(-824.12164351602, -727.9812403239691);
+ poly15.ps[3] = Point(-824.12164351602, -747.9812403239691);
+ new ShapeRef(router, poly15, 15);
+#endif
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(-452.87164351602, -843.9812403239691);
+ poly16.ps[1] = Point(-452.87164351602, -823.9812403239691);
+ poly16.ps[2] = Point(-484.87164351602, -823.9812403239691);
+ poly16.ps[3] = Point(-484.87164351602, -843.9812403239691);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(-452.87164351602, -768.9812403239691);
+ poly17.ps[1] = Point(-452.87164351602, -748.9812403239691);
+ poly17.ps[2] = Point(-484.87164351602, -748.9812403239691);
+ poly17.ps[3] = Point(-484.87164351602, -768.9812403239691);
+ new ShapeRef(router, poly17, 17);
+
+#ifdef REST
+ Polygon poly18(4);
+ poly18.ps[0] = Point(131.62835648698, -747.9812403239691);
+ poly18.ps[1] = Point(131.62835648698, -727.9812403239691);
+ poly18.ps[2] = Point(99.62835648697995, -727.9812403239691);
+ poly18.ps[3] = Point(99.62835648697995, -747.9812403239691);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(-485.87164351602, -507.4098117525407);
+ poly19.ps[1] = Point(-485.87164351602, -487.4098117525407);
+ poly19.ps[2] = Point(-517.87164351602, -487.4098117525407);
+ poly19.ps[3] = Point(-517.87164351602, -507.4098117525407);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(-485.87164351602, -388.4098117525406);
+ poly20.ps[1] = Point(-485.87164351602, -368.4098117525406);
+ poly20.ps[2] = Point(-517.87164351602, -368.4098117525406);
+ poly20.ps[3] = Point(-517.87164351602, -388.4098117525406);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(112.62835648598, -287.4098117515406);
+ poly21.ps[1] = Point(112.62835648598, -267.4098117515406);
+ poly21.ps[2] = Point(80.62835648597996, -267.4098117515406);
+ poly21.ps[3] = Point(80.62835648597996, -287.4098117515406);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(112.62835648598, -212.4098117515406);
+ poly22.ps[1] = Point(112.62835648598, -192.4098117515406);
+ poly22.ps[2] = Point(80.62835648597996, -192.4098117515406);
+ poly22.ps[3] = Point(80.62835648597996, -212.4098117515406);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(443.62835648698, -287.4098117515406);
+ poly23.ps[1] = Point(443.62835648698, -267.4098117515406);
+ poly23.ps[2] = Point(411.62835648698, -267.4098117515406);
+ poly23.ps[3] = Point(411.62835648698, -287.4098117515406);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(443.62835648698, -212.4098117515406);
+ poly24.ps[1] = Point(443.62835648698, -192.4098117515406);
+ poly24.ps[2] = Point(411.62835648698, -192.4098117515406);
+ poly24.ps[3] = Point(411.62835648698, -212.4098117515406);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(-288.87164351602, -175.4098117515406);
+ poly25.ps[1] = Point(-288.87164351602, -143.4098117515406);
+ poly25.ps[2] = Point(-308.87164351602, -143.4098117515406);
+ poly25.ps[3] = Point(-308.87164351602, -175.4098117515406);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(-330.87164351602, -175.4098117515406);
+ poly26.ps[1] = Point(-330.87164351602, -143.4098117515406);
+ poly26.ps[2] = Point(-350.87164351602, -143.4098117515406);
+ poly26.ps[3] = Point(-350.87164351602, -175.4098117515406);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(112.62835648598, -404.4098117515406);
+ poly27.ps[1] = Point(112.62835648598, -384.4098117515406);
+ poly27.ps[2] = Point(80.62835648597996, -384.4098117515406);
+ poly27.ps[3] = Point(80.62835648597996, -404.4098117515406);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(112.62835648598, -329.4098117515406);
+ poly28.ps[1] = Point(112.62835648598, -309.4098117515406);
+ poly28.ps[2] = Point(80.62835648597996, -309.4098117515406);
+ poly28.ps[3] = Point(80.62835648597996, -329.4098117515406);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(443.62835648698, -479.4098117515406);
+ poly29.ps[1] = Point(443.62835648698, -459.4098117515406);
+ poly29.ps[2] = Point(411.62835648698, -459.4098117515406);
+ poly29.ps[3] = Point(411.62835648698, -479.4098117515406);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(443.62835648698, -404.4098117515406);
+ poly30.ps[1] = Point(443.62835648698, -384.4098117515406);
+ poly30.ps[2] = Point(411.62835648698, -384.4098117515406);
+ poly30.ps[3] = Point(411.62835648698, -404.4098117515406);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(861.62835648898, -242.4098117515406);
+ poly31.ps[1] = Point(861.62835648898, -222.4098117515406);
+ poly31.ps[2] = Point(829.62835648898, -222.4098117515406);
+ poly31.ps[3] = Point(829.62835648898, -242.4098117515406);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(648.9873402531949, -287.4098117515406);
+ poly32.ps[1] = Point(648.9873402531949, -267.4098117515406);
+ poly32.ps[2] = Point(616.9873402531949, -267.4098117515406);
+ poly32.ps[3] = Point(616.9873402531949, -287.4098117515406);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(648.9873402531949, -329.4098117515406);
+ poly33.ps[1] = Point(648.9873402531949, -309.4098117515406);
+ poly33.ps[2] = Point(616.9873402531949, -309.4098117515406);
+ poly33.ps[3] = Point(616.9873402531949, -329.4098117515406);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1078.914070775694, -329.4098117515406);
+ poly34.ps[1] = Point(1078.914070775694, -309.4098117515406);
+ poly34.ps[2] = Point(1046.914070775694, -309.4098117515406);
+ poly34.ps[3] = Point(1046.914070775694, -329.4098117515406);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1078.914070775694, -287.4098117515406);
+ poly35.ps[1] = Point(1078.914070775694, -267.4098117515406);
+ poly35.ps[2] = Point(1046.914070775694, -267.4098117515406);
+ poly35.ps[3] = Point(1046.914070775694, -287.4098117515406);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(1610.12835648998, -329.4098117515406);
+ poly36.ps[1] = Point(1610.12835648998, -309.4098117515406);
+ poly36.ps[2] = Point(1578.12835648998, -309.4098117515406);
+ poly36.ps[3] = Point(1578.12835648998, -329.4098117515406);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(1610.12835648998, -287.4098117515406);
+ poly37.ps[1] = Point(1610.12835648998, -267.4098117515406);
+ poly37.ps[2] = Point(1578.12835648998, -267.4098117515406);
+ poly37.ps[3] = Point(1578.12835648998, -287.4098117515406);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(1786.12835649098, -308.4098117515406);
+ poly38.ps[1] = Point(1786.12835649098, -288.4098117515406);
+ poly38.ps[2] = Point(1754.12835649098, -288.4098117515406);
+ poly38.ps[3] = Point(1754.12835649098, -308.4098117515406);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(1959.12835649298, -308.4098117515406);
+ poly39.ps[1] = Point(1959.12835649298, -288.4098117515406);
+ poly39.ps[2] = Point(1927.12835649298, -288.4098117515406);
+ poly39.ps[3] = Point(1927.12835649298, -308.4098117515406);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(-485.87164351602, 89.25685491512604);
+ poly40.ps[1] = Point(-485.87164351602, 109.256854915126);
+ poly40.ps[2] = Point(-517.87164351602, 109.256854915126);
+ poly40.ps[3] = Point(-517.87164351602, 89.25685491512604);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(-485.87164351602, 191.256854916126);
+ poly41.ps[1] = Point(-485.87164351602, 211.256854916126);
+ poly41.ps[2] = Point(-517.87164351602, 211.256854916126);
+ poly41.ps[3] = Point(-517.87164351602, 191.256854916126);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(-10.87164351502003, 35.25685491512604);
+ poly42.ps[1] = Point(-10.87164351502003, 55.25685491512604);
+ poly42.ps[2] = Point(-42.87164351502003, 55.25685491512604);
+ poly42.ps[3] = Point(-42.87164351502003, 35.25685491512604);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(-10.87164351502003, 77.25685491512604);
+ poly43.ps[1] = Point(-10.87164351502003, 97.25685491512604);
+ poly43.ps[2] = Point(-42.87164351502003, 97.25685491512604);
+ poly43.ps[3] = Point(-42.87164351502003, 77.25685491512604);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(466.62835648698, 77.25685491512604);
+ poly44.ps[1] = Point(466.62835648698, 97.25685491512604);
+ poly44.ps[2] = Point(434.62835648698, 97.25685491512604);
+ poly44.ps[3] = Point(434.62835648698, 77.25685491512604);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(466.62835648698, 35.25685491512604);
+ poly45.ps[1] = Point(466.62835648698, 55.25685491512604);
+ poly45.ps[2] = Point(434.62835648698, 55.25685491512604);
+ poly45.ps[3] = Point(434.62835648698, 35.25685491512604);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(781.62835648798, 35.25685491512604);
+ poly46.ps[1] = Point(781.62835648798, 55.25685491512604);
+ poly46.ps[2] = Point(749.62835648798, 55.25685491512604);
+ poly46.ps[3] = Point(749.62835648798, 35.25685491512604);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(781.62835648798, 77.25685491512604);
+ poly47.ps[1] = Point(781.62835648798, 97.25685491512604);
+ poly47.ps[2] = Point(749.62835648798, 97.25685491512604);
+ poly47.ps[3] = Point(749.62835648798, 77.25685491512604);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(992.9140707746942, -142.4098117515406);
+ poly48.ps[1] = Point(992.9140707746942, -110.4098117515406);
+ poly48.ps[2] = Point(972.9140707746942, -110.4098117515406);
+ poly48.ps[3] = Point(972.9140707746942, -142.4098117515406);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1439.12835648898, -142.4098117515406);
+ poly49.ps[1] = Point(1439.12835648898, -110.4098117515406);
+ poly49.ps[2] = Point(1419.12835648898, -110.4098117515406);
+ poly49.ps[3] = Point(1419.12835648898, -142.4098117515406);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(1117.12835648898, 35.25685491512604);
+ poly50.ps[1] = Point(1117.12835648898, 55.25685491512604);
+ poly50.ps[2] = Point(1085.12835648898, 55.25685491512604);
+ poly50.ps[3] = Point(1085.12835648898, 35.25685491512604);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1117.12835648898, 77.25685491512604);
+ poly51.ps[1] = Point(1117.12835648898, 97.25685491512604);
+ poly51.ps[2] = Point(1085.12835648898, 97.25685491512604);
+ poly51.ps[3] = Point(1085.12835648898, 77.25685491512604);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(715.62835648798, 245.2568549161261);
+ poly52.ps[1] = Point(715.62835648798, 265.2568549161261);
+ poly52.ps[2] = Point(683.62835648798, 265.2568549161261);
+ poly52.ps[3] = Point(683.62835648798, 245.2568549161261);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(1643.12835648998, 23.25685491512604);
+ poly53.ps[1] = Point(1643.12835648998, 43.25685491512604);
+ poly53.ps[2] = Point(1611.12835648998, 43.25685491512604);
+ poly53.ps[3] = Point(1611.12835648998, 23.25685491512604);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(1786.12835649098, 23.25685491512604);
+ poly54.ps[1] = Point(1786.12835649098, 43.25685491512604);
+ poly54.ps[2] = Point(1754.12835649098, 43.25685491512604);
+ poly54.ps[3] = Point(1754.12835649098, 23.25685491512604);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(-864.12164351602, 755.8568549161259);
+ poly55.ps[1] = Point(-864.12164351602, 787.8568549161259);
+ poly55.ps[2] = Point(-884.12164351602, 787.8568549161259);
+ poly55.ps[3] = Point(-884.12164351602, 755.8568549161259);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(-718.12164351602, 755.8568549161259);
+ poly56.ps[1] = Point(-718.12164351602, 787.8568549161259);
+ poly56.ps[2] = Point(-738.12164351602, 787.8568549161259);
+ poly56.ps[3] = Point(-738.12164351602, 755.8568549161259);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(-524.87164351602, 504.756854916126);
+ poly57.ps[1] = Point(-524.87164351602, 536.756854916126);
+ poly57.ps[2] = Point(-544.87164351602, 536.756854916126);
+ poly57.ps[3] = Point(-544.87164351602, 504.756854916126);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(-309.87164351602, 504.756854916126);
+ poly58.ps[1] = Point(-309.87164351602, 536.756854916126);
+ poly58.ps[2] = Point(-329.87164351602, 536.756854916126);
+ poly58.ps[3] = Point(-329.87164351602, 504.756854916126);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(-115.87164351502, 504.756854916126);
+ poly59.ps[1] = Point(-115.87164351502, 536.756854916126);
+ poly59.ps[2] = Point(-135.87164351502, 536.756854916126);
+ poly59.ps[3] = Point(-135.87164351502, 504.756854916126);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(191.62835648698, 504.756854916126);
+ poly60.ps[1] = Point(191.62835648698, 536.756854916126);
+ poly60.ps[2] = Point(171.62835648698, 536.756854916126);
+ poly60.ps[3] = Point(171.62835648698, 504.756854916126);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(47.62835648497997, 728.8568549161259);
+ poly61.ps[1] = Point(47.62835648497997, 748.8568549161259);
+ poly61.ps[2] = Point(15.62835648497997, 748.8568549161259);
+ poly61.ps[3] = Point(15.62835648497997, 728.8568549161259);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(-342.87164351602, 962.8568549161259);
+ poly62.ps[1] = Point(-342.87164351602, 994.8568549161259);
+ poly62.ps[2] = Point(-362.87164351602, 994.8568549161259);
+ poly62.ps[3] = Point(-362.87164351602, 962.8568549161259);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(-685.12164351602, 1028.856854916126);
+ poly63.ps[1] = Point(-685.12164351602, 1060.856854916126);
+ poly63.ps[2] = Point(-705.12164351602, 1060.856854916126);
+ poly63.ps[3] = Point(-705.12164351602, 1028.856854916126);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(377.62835648698, 707.8568549161259);
+ poly64.ps[1] = Point(377.62835648698, 727.8568549161259);
+ poly64.ps[2] = Point(345.62835648698, 727.8568549161259);
+ poly64.ps[3] = Point(345.62835648698, 707.8568549161259);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(682.62835648798, 569.006854916126);
+ poly65.ps[1] = Point(682.62835648798, 589.006854916126);
+ poly65.ps[2] = Point(650.62835648798, 589.006854916126);
+ poly65.ps[3] = Point(650.62835648798, 569.006854916126);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(164.62835648698, 794.8568549161259);
+ poly66.ps[1] = Point(164.62835648698, 814.8568549161259);
+ poly66.ps[2] = Point(132.62835648698, 814.8568549161259);
+ poly66.ps[3] = Point(132.62835648698, 794.8568549161259);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(814.62835648798, 707.8568549161259);
+ poly67.ps[1] = Point(814.62835648798, 727.8568549161259);
+ poly67.ps[2] = Point(782.62835648798, 727.8568549161259);
+ poly67.ps[3] = Point(782.62835648798, 707.8568549161259);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(814.62835648798, 749.8568549161259);
+ poly68.ps[1] = Point(814.62835648798, 769.8568549161259);
+ poly68.ps[2] = Point(782.62835648798, 769.8568549161259);
+ poly68.ps[3] = Point(782.62835648798, 749.8568549161259);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(606.62835648798, 841.8568549161259);
+ poly69.ps[1] = Point(606.62835648798, 873.8568549161259);
+ poly69.ps[2] = Point(586.62835648798, 873.8568549161259);
+ poly69.ps[3] = Point(586.62835648798, 841.8568549161259);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(117.62835648598, 1011.856854916126);
+ poly70.ps[1] = Point(117.62835648598, 1031.856854916126);
+ poly70.ps[2] = Point(85.62835648597996, 1031.856854916126);
+ poly70.ps[3] = Point(85.62835648597996, 1011.856854916126);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(-76.87164351502003, 1154.856854916126);
+ poly71.ps[1] = Point(-76.87164351502003, 1174.856854916126);
+ poly71.ps[2] = Point(-108.87164351502, 1174.856854916126);
+ poly71.ps[3] = Point(-108.87164351502, 1154.856854916126);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(-76.87164351502003, 1112.856854916126);
+ poly72.ps[1] = Point(-76.87164351502003, 1132.856854916126);
+ poly72.ps[2] = Point(-108.87164351502, 1132.856854916126);
+ poly72.ps[3] = Point(-108.87164351502, 1112.856854916126);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(344.62835648698, 1112.856854916126);
+ poly73.ps[1] = Point(344.62835648698, 1132.856854916126);
+ poly73.ps[2] = Point(312.62835648698, 1132.856854916126);
+ poly73.ps[3] = Point(312.62835648698, 1112.856854916126);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(861.62835648898, 1100.856854916126);
+ poly74.ps[1] = Point(861.62835648898, 1120.856854916126);
+ poly74.ps[2] = Point(829.62835648898, 1120.856854916126);
+ poly74.ps[3] = Point(829.62835648898, 1100.856854916126);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(971.9140707746942, 870.8568549171259);
+ poly75.ps[1] = Point(971.9140707746942, 902.8568549171259);
+ poly75.ps[2] = Point(951.9140707746942, 902.8568549171259);
+ poly75.ps[3] = Point(951.9140707746942, 870.8568549171259);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(1177.12835648898, 995.8568549161259);
+ poly76.ps[1] = Point(1177.12835648898, 1027.856854916126);
+ poly76.ps[2] = Point(1157.12835648898, 1027.856854916126);
+ poly76.ps[3] = Point(1157.12835648898, 995.8568549161259);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1177.12835648898, 1094.856854916126);
+ poly77.ps[1] = Point(1177.12835648898, 1126.856854916126);
+ poly77.ps[2] = Point(1157.12835648898, 1126.856854916126);
+ poly77.ps[3] = Point(1157.12835648898, 1094.856854916126);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(1183.12835648898, 1166.856854916126);
+ poly78.ps[1] = Point(1183.12835648898, 1186.856854916126);
+ poly78.ps[2] = Point(1151.12835648898, 1186.856854916126);
+ poly78.ps[3] = Point(1151.12835648898, 1166.856854916126);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(41.62835648497997, 1359.606854916126);
+ poly79.ps[1] = Point(41.62835648497997, 1391.606854916126);
+ poly79.ps[2] = Point(21.62835648497997, 1391.606854916126);
+ poly79.ps[3] = Point(21.62835648497997, 1359.606854916126);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(561.62835648798, 1326.606854916126);
+ poly80.ps[1] = Point(561.62835648798, 1358.606854916126);
+ poly80.ps[2] = Point(541.62835648798, 1358.606854916126);
+ poly80.ps[3] = Point(541.62835648798, 1326.606854916126);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(-485.87164351602, 1637.106854917126);
+ poly81.ps[1] = Point(-485.87164351602, 1657.106854917126);
+ poly81.ps[2] = Point(-517.87164351602, 1657.106854917126);
+ poly81.ps[3] = Point(-517.87164351602, 1637.106854917126);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(-43.87164351502003, 1658.106854917126);
+ poly82.ps[1] = Point(-43.87164351502003, 1678.106854917126);
+ poly82.ps[2] = Point(-75.87164351502003, 1678.106854917126);
+ poly82.ps[3] = Point(-75.87164351502003, 1658.106854917126);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(-43.87164351502003, 1541.106854917126);
+ poly83.ps[1] = Point(-43.87164351502003, 1561.106854917126);
+ poly83.ps[2] = Point(-75.87164351502003, 1561.106854917126);
+ poly83.ps[3] = Point(-75.87164351502003, 1541.106854917126);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(-43.87164351502003, 1616.106854917126);
+ poly84.ps[1] = Point(-43.87164351502003, 1636.106854917126);
+ poly84.ps[2] = Point(-75.87164351502003, 1636.106854917126);
+ poly84.ps[3] = Point(-75.87164351502003, 1616.106854917126);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(410.62835648698, 1658.106854917126);
+ poly85.ps[1] = Point(410.62835648698, 1678.106854917126);
+ poly85.ps[2] = Point(378.62835648698, 1678.106854917126);
+ poly85.ps[3] = Point(378.62835648698, 1658.106854917126);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(410.62835648698, 1616.106854917126);
+ poly86.ps[1] = Point(410.62835648698, 1636.106854917126);
+ poly86.ps[2] = Point(378.62835648698, 1636.106854917126);
+ poly86.ps[3] = Point(378.62835648698, 1616.106854917126);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(648.9873402531949, 1616.106854917126);
+ poly87.ps[1] = Point(648.9873402531949, 1636.106854917126);
+ poly87.ps[2] = Point(616.9873402531949, 1636.106854917126);
+ poly87.ps[3] = Point(616.9873402531949, 1616.106854917126);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(648.9873402531949, 1658.106854917126);
+ poly88.ps[1] = Point(648.9873402531949, 1678.106854917126);
+ poly88.ps[2] = Point(616.9873402531949, 1678.106854917126);
+ poly88.ps[3] = Point(616.9873402531949, 1658.106854917126);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(1183.12835648898, 1557.106854916126);
+ poly89.ps[1] = Point(1183.12835648898, 1577.106854916126);
+ poly89.ps[2] = Point(1151.12835648898, 1577.106854916126);
+ poly89.ps[3] = Point(1151.12835648898, 1557.106854916126);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(1183.12835648898, 1696.773521583792);
+ poly90.ps[1] = Point(1183.12835648898, 1716.773521583792);
+ poly90.ps[2] = Point(1151.12835648898, 1716.773521583792);
+ poly90.ps[3] = Point(1151.12835648898, 1696.773521583792);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(1346.12835648898, 1423.106854916126);
+ poly91.ps[1] = Point(1346.12835648898, 1443.106854916126);
+ poly91.ps[2] = Point(1314.12835648898, 1443.106854916126);
+ poly91.ps[3] = Point(1314.12835648898, 1423.106854916126);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(1643.12835648998, 1299.606854916126);
+ poly92.ps[1] = Point(1643.12835648998, 1319.606854916126);
+ poly92.ps[2] = Point(1611.12835648998, 1319.606854916126);
+ poly92.ps[3] = Point(1611.12835648998, 1299.606854916126);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1610.12835648998, 1616.106854917126);
+ poly93.ps[1] = Point(1610.12835648998, 1636.106854917126);
+ poly93.ps[2] = Point(1578.12835648998, 1636.106854917126);
+ poly93.ps[3] = Point(1578.12835648998, 1616.106854917126);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(1610.12835648998, 1658.106854917126);
+ poly94.ps[1] = Point(1610.12835648998, 1678.106854917126);
+ poly94.ps[2] = Point(1578.12835648998, 1678.106854917126);
+ poly94.ps[3] = Point(1578.12835648998, 1658.106854917126);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(1786.12835649098, 1299.606854916126);
+ poly95.ps[1] = Point(1786.12835649098, 1319.606854916126);
+ poly95.ps[2] = Point(1754.12835649098, 1319.606854916126);
+ poly95.ps[3] = Point(1754.12835649098, 1299.606854916126);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(1786.12835649098, 1637.106854917126);
+ poly96.ps[1] = Point(1786.12835649098, 1657.106854917126);
+ poly96.ps[2] = Point(1754.12835649098, 1657.106854917126);
+ poly96.ps[3] = Point(1754.12835649098, 1637.106854917126);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1959.12835649298, 1637.106854917126);
+ poly97.ps[1] = Point(1959.12835649298, 1657.106854917126);
+ poly97.ps[2] = Point(1927.12835649298, 1657.106854917126);
+ poly97.ps[3] = Point(1927.12835649298, 1637.106854917126);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(-1048.12164351702, -157.9098117515406);
+ poly98.ps[1] = Point(-1048.12164351702, 16.09018824845936);
+ poly98.ps[2] = Point(-1172.12164351702, 16.09018824845936);
+ poly98.ps[3] = Point(-1172.12164351702, -157.9098117515406);
+ new ShapeRef(router, poly98, 98);
+#endif
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(-452.87164351602, -726.9812403239691);
+ poly99.ps[1] = Point(-452.87164351602, -706.9812403239691);
+ poly99.ps[2] = Point(-484.87164351602, -706.9812403239691);
+ poly99.ps[3] = Point(-484.87164351602, -726.9812403239691);
+ new ShapeRef(router, poly99, 99);
+
+#ifdef REST
+ Polygon poly100(4);
+ poly100.ps[0] = Point(377.62835648698, 749.8568549161259);
+ poly100.ps[1] = Point(377.62835648698, 769.8568549161259);
+ poly100.ps[2] = Point(345.62835648698, 769.8568549161259);
+ poly100.ps[3] = Point(345.62835648698, 749.8568549161259);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(344.62835648698, 1154.856854916126);
+ poly101.ps[1] = Point(344.62835648698, 1174.856854916126);
+ poly101.ps[2] = Point(312.62835648698, 1174.856854916126);
+ poly101.ps[3] = Point(312.62835648698, 1154.856854916126);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1013.914070774694, 870.8568549171259);
+ poly102.ps[1] = Point(1013.914070774694, 902.8568549171259);
+ poly102.ps[2] = Point(993.9140707746942, 902.8568549171259);
+ poly102.ps[3] = Point(993.9140707746942, 870.8568549171259);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(1643.12835648998, -628.4098117525407);
+ poly103.ps[1] = Point(1643.12835648998, -608.4098117525407);
+ poly103.ps[2] = Point(1611.12835648998, -608.4098117525407);
+ poly103.ps[3] = Point(1611.12835648998, -628.4098117525407);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(1819.12835649098, -568.5348117525407);
+ poly104.ps[1] = Point(1819.12835649098, -548.5348117525407);
+ poly104.ps[2] = Point(1787.12835649098, -548.5348117525407);
+ poly104.ps[3] = Point(1787.12835649098, -568.5348117525407);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(476.62835648698, -747.9812403239691);
+ poly105.ps[1] = Point(476.62835648698, -727.9812403239691);
+ poly105.ps[2] = Point(444.62835648698, -727.9812403239691);
+ poly105.ps[3] = Point(444.62835648698, -747.9812403239691);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(748.62835648798, -817.4098117525407);
+ poly106.ps[1] = Point(748.62835648798, -797.4098117525407);
+ poly106.ps[2] = Point(716.62835648798, -797.4098117525407);
+ poly106.ps[3] = Point(716.62835648798, -817.4098117525407);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(748.62835648798, -691.4098117525407);
+ poly107.ps[1] = Point(748.62835648798, -671.4098117525407);
+ poly107.ps[2] = Point(716.62835648798, -671.4098117525407);
+ poly107.ps[3] = Point(716.62835648798, -691.4098117525407);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(992.9140707746942, -480.4098117525406);
+ poly108.ps[1] = Point(992.9140707746942, -448.4098117525406);
+ poly108.ps[2] = Point(972.9140707746942, -448.4098117525406);
+ poly108.ps[3] = Point(972.9140707746942, -480.4098117525406);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1247.12835648898, -568.5348117525407);
+ poly109.ps[1] = Point(1247.12835648898, -548.5348117525407);
+ poly109.ps[2] = Point(1215.12835648898, -548.5348117525407);
+ poly109.ps[3] = Point(1215.12835648898, -568.5348117525407);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(197.62835648698, -136.4098117515406);
+ poly110.ps[1] = Point(197.62835648698, -116.4098117515406);
+ poly110.ps[2] = Point(165.62835648698, -116.4098117515406);
+ poly110.ps[3] = Point(165.62835648698, -136.4098117515406);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(682.62835648798, -30.40981175154064);
+ poly111.ps[1] = Point(682.62835648798, -10.40981175154064);
+ poly111.ps[2] = Point(650.62835648798, -10.40981175154064);
+ poly111.ps[3] = Point(650.62835648798, -30.40981175154064);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(927.62835648898, 411.7568549161261);
+ poly112.ps[1] = Point(927.62835648898, 431.7568549161261);
+ poly112.ps[2] = Point(895.62835648898, 431.7568549161261);
+ poly112.ps[3] = Point(895.62835648898, 411.7568549161261);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(509.62835648698, 411.7568549161261);
+ poly113.ps[1] = Point(509.62835648698, 431.7568549161261);
+ poly113.ps[2] = Point(477.62835648698, 431.7568549161261);
+ poly113.ps[3] = Point(477.62835648698, 411.7568549161261);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(117.62835648598, 1053.856854916126);
+ poly114.ps[1] = Point(117.62835648598, 1073.856854916126);
+ poly114.ps[2] = Point(85.62835648597996, 1073.856854916126);
+ poly114.ps[3] = Point(85.62835648597996, 1053.856854916126);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(47.62835648497997, -568.5348117525407);
+ poly115.ps[1] = Point(47.62835648497997, -548.5348117525407);
+ poly115.ps[2] = Point(15.62835648497997, -548.5348117525407);
+ poly115.ps[3] = Point(15.62835648497997, -568.5348117525407);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(-975.12164351602, -768.9812403239691);
+ poly116.ps[1] = Point(-975.12164351602, -706.9812403239691);
+ poly116.ps[2] = Point(-1037.12164351602, -706.9812403239691);
+ poly116.ps[3] = Point(-1037.12164351602, -768.9812403239691);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(-975.12164351602, -462.4098117525406);
+ poly117.ps[1] = Point(-975.12164351602, -400.4098117525406);
+ poly117.ps[2] = Point(-1037.12164351602, -400.4098117525406);
+ poly117.ps[3] = Point(-1037.12164351602, -462.4098117525406);
+ new ShapeRef(router, poly117, 117);
+#endif
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(-664.12164351602, -768.9812403239691);
+ poly118.ps[1] = Point(-664.12164351602, -706.9812403239691);
+ poly118.ps[2] = Point(-726.12164351602, -706.9812403239691);
+ poly118.ps[3] = Point(-726.12164351602, -768.9812403239691);
+ new ShapeRef(router, poly118, 118);
+
+#ifdef REST
+ Polygon poly119(4);
+ poly119.ps[0] = Point(-94.87164351502003, -908.4098117525407);
+ poly119.ps[1] = Point(-94.87164351502003, -846.4098117525407);
+ poly119.ps[2] = Point(-156.87164351502, -846.4098117525407);
+ poly119.ps[3] = Point(-156.87164351502, -908.4098117525407);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(293.62835648698, -768.9812403239691);
+ poly120.ps[1] = Point(293.62835648698, -706.9812403239691);
+ poly120.ps[2] = Point(231.62835648698, -706.9812403239691);
+ poly120.ps[3] = Point(231.62835648698, -768.9812403239691);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(-810.12164351602, 637.6568549161261);
+ poly121.ps[1] = Point(-810.12164351602, 699.6568549161261);
+ poly121.ps[2] = Point(-872.12164351602, 699.6568549161261);
+ poly121.ps[3] = Point(-872.12164351602, 637.6568549161261);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(-810.12164351602, 859.8568549161259);
+ poly122.ps[1] = Point(-810.12164351602, 921.8568549161259);
+ poly122.ps[2] = Point(-872.12164351602, 921.8568549161259);
+ poly122.ps[3] = Point(-872.12164351602, 859.8568549161259);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(-288.87164351602, -329.4098117515406);
+ poly123.ps[1] = Point(-288.87164351602, -267.4098117515406);
+ poly123.ps[2] = Point(-350.87164351602, -267.4098117515406);
+ poly123.ps[3] = Point(-350.87164351602, -329.4098117515406);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(212.62835648698, -329.4098117515406);
+ poly124.ps[1] = Point(212.62835648698, -267.4098117515406);
+ poly124.ps[2] = Point(150.62835648698, -267.4098117515406);
+ poly124.ps[3] = Point(150.62835648698, -329.4098117515406);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(561.62835648798, -329.4098117515406);
+ poly125.ps[1] = Point(561.62835648798, -267.4098117515406);
+ poly125.ps[2] = Point(499.62835648798, -267.4098117515406);
+ poly125.ps[3] = Point(499.62835648798, -329.4098117515406);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(1013.914070774694, -329.4098117515406);
+ poly126.ps[1] = Point(1013.914070774694, -267.4098117515406);
+ poly126.ps[2] = Point(951.9140707746942, -267.4098117515406);
+ poly126.ps[3] = Point(951.9140707746942, -329.4098117515406);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(1545.12835648898, -329.4098117515406);
+ poly127.ps[1] = Point(1545.12835648898, -267.4098117515406);
+ poly127.ps[2] = Point(1483.12835648898, -267.4098117515406);
+ poly127.ps[3] = Point(1483.12835648898, -329.4098117515406);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(-664.12164351602, 35.25685491512604);
+ poly128.ps[1] = Point(-664.12164351602, 97.25685491512604);
+ poly128.ps[2] = Point(-726.12164351602, 97.25685491512604);
+ poly128.ps[3] = Point(-726.12164351602, 35.25685491512604);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(-288.87164351602, 35.25685491512604);
+ poly129.ps[1] = Point(-288.87164351602, 97.25685491512604);
+ poly129.ps[2] = Point(-350.87164351602, 97.25685491512604);
+ poly129.ps[3] = Point(-350.87164351602, 35.25685491512604);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(-664.12164351602, 1616.106854917126);
+ poly130.ps[1] = Point(-664.12164351602, 1678.106854917126);
+ poly130.ps[2] = Point(-726.12164351602, 1678.106854917126);
+ poly130.ps[3] = Point(-726.12164351602, 1616.106854917126);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(-288.87164351602, 1616.106854917126);
+ poly131.ps[1] = Point(-288.87164351602, 1678.106854917126);
+ poly131.ps[2] = Point(-350.87164351602, 1678.106854917126);
+ poly131.ps[3] = Point(-350.87164351602, 1616.106854917126);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(212.62835648698, 1616.106854917126);
+ poly132.ps[1] = Point(212.62835648698, 1678.106854917126);
+ poly132.ps[2] = Point(150.62835648698, 1678.106854917126);
+ poly132.ps[3] = Point(150.62835648698, 1616.106854917126);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(561.62835648798, 1616.106854917126);
+ poly133.ps[1] = Point(561.62835648798, 1678.106854917126);
+ poly133.ps[2] = Point(499.62835648798, 1678.106854917126);
+ poly133.ps[3] = Point(499.62835648798, 1616.106854917126);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(1013.914070774694, 1616.106854917126);
+ poly134.ps[1] = Point(1013.914070774694, 1678.106854917126);
+ poly134.ps[2] = Point(951.9140707746942, 1678.106854917126);
+ poly134.ps[3] = Point(951.9140707746942, 1616.106854917126);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(1427.12835648898, 1708.773521583792);
+ poly135.ps[1] = Point(1427.12835648898, 1770.773521583792);
+ poly135.ps[2] = Point(1365.12835648898, 1770.773521583792);
+ poly135.ps[3] = Point(1365.12835648898, 1708.773521583792);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(1731.12835648998, 1278.606854916126);
+ poly136.ps[1] = Point(1731.12835648998, 1340.606854916126);
+ poly136.ps[2] = Point(1669.12835648998, 1340.606854916126);
+ poly136.ps[3] = Point(1669.12835648998, 1278.606854916126);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1904.12835649198, 1278.606854916126);
+ poly137.ps[1] = Point(1904.12835649198, 1340.606854916126);
+ poly137.ps[2] = Point(1842.12835649198, 1340.606854916126);
+ poly137.ps[3] = Point(1842.12835649198, 1278.606854916126);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1545.12835648898, 1616.106854917126);
+ poly138.ps[1] = Point(1545.12835648898, 1678.106854917126);
+ poly138.ps[2] = Point(1483.12835648898, 1678.106854917126);
+ poly138.ps[3] = Point(1483.12835648898, 1616.106854917126);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1165.12835648898, 1402.106854916126);
+ poly139.ps[1] = Point(1165.12835648898, 1464.106854916126);
+ poly139.ps[2] = Point(1103.12835648898, 1464.106854916126);
+ poly139.ps[3] = Point(1103.12835648898, 1402.106854916126);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1731.12835648998, 1616.106854917126);
+ poly140.ps[1] = Point(1731.12835648998, 1678.106854917126);
+ poly140.ps[2] = Point(1669.12835648998, 1678.106854917126);
+ poly140.ps[3] = Point(1669.12835648998, 1616.106854917126);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1904.12835649198, 1616.106854917126);
+ poly141.ps[1] = Point(1904.12835649198, 1678.106854917126);
+ poly141.ps[2] = Point(1842.12835649198, 1678.106854917126);
+ poly141.ps[3] = Point(1842.12835649198, 1616.106854917126);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(2077.795023159646, 1616.106854917126);
+ poly142.ps[1] = Point(2077.795023159646, 1678.106854917126);
+ poly142.ps[2] = Point(2015.795023159646, 1678.106854917126);
+ poly142.ps[3] = Point(2015.795023159646, 1616.106854917126);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(2077.795023159646, 2.256854915126041);
+ poly143.ps[1] = Point(2077.795023159646, 64.25685491512604);
+ poly143.ps[2] = Point(2015.795023159646, 64.25685491512604);
+ poly143.ps[3] = Point(2015.795023159646, 2.256854915126041);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(2011.795023159646, 68.25685491512604);
+ poly144.ps[1] = Point(2011.795023159646, 130.256854915126);
+ poly144.ps[2] = Point(1949.795023159646, 130.256854915126);
+ poly144.ps[3] = Point(1949.795023159646, 68.25685491512604);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(1731.12835648998, 2.256854915126041);
+ poly145.ps[1] = Point(1731.12835648998, 64.25685491512604);
+ poly145.ps[2] = Point(1669.12835648998, 64.25685491512604);
+ poly145.ps[3] = Point(1669.12835648998, 2.256854915126041);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(2077.795023159646, -329.4098117515406);
+ poly146.ps[1] = Point(2077.795023159646, -267.4098117515406);
+ poly146.ps[2] = Point(2015.795023159646, -267.4098117515406);
+ poly146.ps[3] = Point(2015.795023159646, -329.4098117515406);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(1904.12835649198, -329.4098117515406);
+ poly147.ps[1] = Point(1904.12835649198, -267.4098117515406);
+ poly147.ps[2] = Point(1842.12835649198, -267.4098117515406);
+ poly147.ps[3] = Point(1842.12835649198, -329.4098117515406);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(1731.12835648998, -329.4098117515406);
+ poly148.ps[1] = Point(1731.12835648998, -267.4098117515406);
+ poly148.ps[2] = Point(1669.12835648998, -267.4098117515406);
+ poly148.ps[3] = Point(1669.12835648998, -329.4098117515406);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(1295.12835648898, 35.25685491512604);
+ poly149.ps[1] = Point(1295.12835648898, 97.25685491512604);
+ poly149.ps[2] = Point(1233.12835648898, 97.25685491512604);
+ poly149.ps[3] = Point(1233.12835648898, 35.25685491512604);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(1013.914070774694, 35.25685491512604);
+ poly150.ps[1] = Point(1013.914070774694, 97.25685491512604);
+ poly150.ps[2] = Point(951.9140707746942, 97.25685491512604);
+ poly150.ps[3] = Point(951.9140707746942, 35.25685491512604);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(561.62835648798, 35.25685491512604);
+ poly151.ps[1] = Point(561.62835648798, 97.25685491512604);
+ poly151.ps[2] = Point(499.62835648798, 97.25685491512604);
+ poly151.ps[3] = Point(499.62835648798, 35.25685491512604);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(212.62835648698, 35.25685491512604);
+ poly152.ps[1] = Point(212.62835648698, 97.25685491512604);
+ poly152.ps[2] = Point(150.62835648698, 97.25685491512604);
+ poly152.ps[3] = Point(150.62835648698, 35.25685491512604);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(212.62835648698, 1468.106854916126);
+ poly153.ps[1] = Point(212.62835648698, 1530.106854916126);
+ poly153.ps[2] = Point(150.62835648698, 1530.106854916126);
+ poly153.ps[3] = Point(150.62835648698, 1468.106854916126);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(146.62835648698, 1435.106854916126);
+ poly154.ps[1] = Point(146.62835648698, 1497.106854916126);
+ poly154.ps[2] = Point(84.62835648697995, 1497.106854916126);
+ poly154.ps[3] = Point(84.62835648697995, 1435.106854916126);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(146.62835648698, 1223.856854916126);
+ poly155.ps[1] = Point(146.62835648698, 1285.856854916126);
+ poly155.ps[2] = Point(84.62835648697995, 1285.856854916126);
+ poly155.ps[3] = Point(84.62835648697995, 1223.856854916126);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(-288.87164351602, 1112.856854916126);
+ poly156.ps[1] = Point(-288.87164351602, 1174.856854916126);
+ poly156.ps[2] = Point(-350.87164351602, 1174.856854916126);
+ poly156.ps[3] = Point(-350.87164351602, 1112.856854916126);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(212.62835648698, 1112.856854916126);
+ poly157.ps[1] = Point(212.62835648698, 1174.856854916126);
+ poly157.ps[2] = Point(150.62835648698, 1174.856854916126);
+ poly157.ps[3] = Point(150.62835648698, 1112.856854916126);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(561.62835648798, 1112.856854916126);
+ poly158.ps[1] = Point(561.62835648798, 1174.856854916126);
+ poly158.ps[2] = Point(499.62835648798, 1174.856854916126);
+ poly158.ps[3] = Point(499.62835648798, 1112.856854916126);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(1013.914070774694, 1112.856854916126);
+ poly159.ps[1] = Point(1013.914070774694, 1174.856854916126);
+ poly159.ps[2] = Point(951.9140707746942, 1174.856854916126);
+ poly159.ps[3] = Point(951.9140707746942, 1112.856854916126);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(1013.914070774694, 707.8568549161259);
+ poly160.ps[1] = Point(1013.914070774694, 769.8568549161259);
+ poly160.ps[2] = Point(951.9140707746942, 769.8568549161259);
+ poly160.ps[3] = Point(951.9140707746942, 707.8568549161259);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(561.62835648798, 707.8568549161259);
+ poly161.ps[1] = Point(561.62835648798, 769.8568549161259);
+ poly161.ps[2] = Point(499.62835648798, 769.8568549161259);
+ poly161.ps[3] = Point(499.62835648798, 707.8568549161259);
+ new ShapeRef(router, poly161, 161);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(212.62835648698, 707.8568549161259);
+ poly162.ps[1] = Point(212.62835648698, 769.8568549161259);
+ poly162.ps[2] = Point(150.62835648698, 769.8568549161259);
+ poly162.ps[3] = Point(150.62835648698, 707.8568549161259);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(-288.87164351602, 707.8568549161259);
+ poly163.ps[1] = Point(-288.87164351602, 769.8568549161259);
+ poly163.ps[2] = Point(-350.87164351602, 769.8568549161259);
+ poly163.ps[3] = Point(-350.87164351602, 707.8568549161259);
+ new ShapeRef(router, poly163, 163);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(-404.87164351602, 604.6568549161261);
+ poly164.ps[1] = Point(-404.87164351602, 666.6568549161261);
+ poly164.ps[2] = Point(-466.87164351602, 666.6568549161261);
+ poly164.ps[3] = Point(-466.87164351602, 604.6568549161261);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(-404.87164351602, 423.7568549161261);
+ poly165.ps[1] = Point(-404.87164351602, 485.7568549161261);
+ poly165.ps[2] = Point(-466.87164351602, 485.7568549161261);
+ poly165.ps[3] = Point(-466.87164351602, 423.7568549161261);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(146.62835648698, 604.6568549161261);
+ poly166.ps[1] = Point(146.62835648698, 666.6568549161261);
+ poly166.ps[2] = Point(84.62835648697995, 666.6568549161261);
+ poly166.ps[3] = Point(84.62835648697995, 604.6568549161261);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(146.62835648698, 423.7568549161261);
+ poly167.ps[1] = Point(146.62835648698, 485.7568549161261);
+ poly167.ps[2] = Point(84.62835648697995, 485.7568549161261);
+ poly167.ps[3] = Point(84.62835648697995, 423.7568549161261);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(909.62835648898, 548.006854916126);
+ poly168.ps[1] = Point(909.62835648898, 610.006854916126);
+ poly168.ps[2] = Point(847.62835648898, 610.006854916126);
+ poly168.ps[3] = Point(847.62835648898, 548.006854916126);
+ new ShapeRef(router, poly168, 168);
+
+ Polygon poly169(4);
+ poly169.ps[0] = Point(1099.12835648898, 548.006854916126);
+ poly169.ps[1] = Point(1099.12835648898, 610.006854916126);
+ poly169.ps[2] = Point(1037.12835648898, 610.006854916126);
+ poly169.ps[3] = Point(1037.12835648898, 548.006854916126);
+ new ShapeRef(router, poly169, 169);
+
+ Polygon poly170(4);
+ poly170.ps[0] = Point(1328.12835648898, 548.006854916126);
+ poly170.ps[1] = Point(1328.12835648898, 610.006854916126);
+ poly170.ps[2] = Point(1266.12835648898, 610.006854916126);
+ poly170.ps[3] = Point(1266.12835648898, 548.006854916126);
+ new ShapeRef(router, poly170, 170);
+
+ Polygon poly171(4);
+ poly171.ps[0] = Point(1731.12835648998, -589.5348117525407);
+ poly171.ps[1] = Point(1731.12835648998, -527.5348117525407);
+ poly171.ps[2] = Point(1669.12835648998, -527.5348117525407);
+ poly171.ps[3] = Point(1669.12835648998, -589.5348117525407);
+ new ShapeRef(router, poly171, 171);
+
+ Polygon poly172(4);
+ poly172.ps[0] = Point(1904.12835649198, -589.5348117525407);
+ poly172.ps[1] = Point(1904.12835649198, -527.5348117525407);
+ poly172.ps[2] = Point(1842.12835649198, -527.5348117525407);
+ poly172.ps[3] = Point(1842.12835649198, -589.5348117525407);
+ new ShapeRef(router, poly172, 172);
+
+ Polygon poly173(4);
+ poly173.ps[0] = Point(-195.87164351502, -768.9812403239691);
+ poly173.ps[1] = Point(-195.87164351502, -706.9812403239691);
+ poly173.ps[2] = Point(-257.87164351502, -706.9812403239691);
+ poly173.ps[3] = Point(-257.87164351502, -768.9812403239691);
+ new ShapeRef(router, poly173, 173);
+
+ Polygon poly174(4);
+ poly174.ps[0] = Point(975.62835648898, -712.4098117525407);
+ poly174.ps[1] = Point(975.62835648898, -650.4098117525407);
+ poly174.ps[2] = Point(913.62835648898, -650.4098117525407);
+ poly174.ps[3] = Point(913.62835648898, -712.4098117525407);
+ new ShapeRef(router, poly174, 174);
+
+ Polygon poly175(4);
+ poly175.ps[0] = Point(975.62835648898, -838.4098117525407);
+ poly175.ps[1] = Point(975.62835648898, -776.4098117525407);
+ poly175.ps[2] = Point(913.62835648898, -776.4098117525407);
+ poly175.ps[3] = Point(913.62835648898, -838.4098117525407);
+ new ShapeRef(router, poly175, 175);
+
+ Polygon poly176(4);
+ poly176.ps[0] = Point(1099.12835648898, -589.5348117525407);
+ poly176.ps[1] = Point(1099.12835648898, -527.5348117525407);
+ poly176.ps[2] = Point(1037.12835648898, -527.5348117525407);
+ poly176.ps[3] = Point(1037.12835648898, -589.5348117525407);
+ new ShapeRef(router, poly176, 176);
+
+ Polygon poly177(4);
+ poly177.ps[0] = Point(1394.12835648898, -589.5348117525407);
+ poly177.ps[1] = Point(1394.12835648898, -527.5348117525407);
+ poly177.ps[2] = Point(1332.12835648898, -527.5348117525407);
+ poly177.ps[3] = Point(1332.12835648898, -589.5348117525407);
+ new ShapeRef(router, poly177, 177);
+
+ Polygon poly178(4);
+ poly178.ps[0] = Point(876.62835648898, -51.40981175154064);
+ poly178.ps[1] = Point(876.62835648898, 10.59018824845936);
+ poly178.ps[2] = Point(814.62835648898, 10.59018824845936);
+ poly178.ps[3] = Point(814.62835648898, -51.40981175154064);
+ new ShapeRef(router, poly178, 178);
+
+ Polygon poly179(4);
+ poly179.ps[0] = Point(326.62835648698, 390.7568549161261);
+ poly179.ps[1] = Point(326.62835648698, 452.7568549161261);
+ poly179.ps[2] = Point(264.62835648698, 452.7568549161261);
+ poly179.ps[3] = Point(264.62835648698, 390.7568549161261);
+ new ShapeRef(router, poly179, 179);
+
+ Polygon poly180(4);
+ poly180.ps[0] = Point(212.62835648698, -589.5348117525407);
+ poly180.ps[1] = Point(212.62835648698, -527.5348117525407);
+ poly180.ps[2] = Point(150.62835648698, -527.5348117525407);
+ poly180.ps[3] = Point(150.62835648698, -589.5348117525407);
+ new ShapeRef(router, poly180, 180);
+
+ Polygon poly181(4);
+ poly181.ps[0] = Point(594.62835648798, 390.7568549161261);
+ poly181.ps[1] = Point(594.62835648798, 452.7568549161261);
+ poly181.ps[2] = Point(532.62835648798, 452.7568549161261);
+ poly181.ps[3] = Point(532.62835648798, 390.7568549161261);
+ new ShapeRef(router, poly181, 181);
+
+ Polygon poly182(4);
+ poly182.ps[0] = Point(1698.12835648998, 604.6568549161261);
+ poly182.ps[1] = Point(1698.12835648998, 666.6568549161261);
+ poly182.ps[2] = Point(1636.12835648998, 666.6568549161261);
+ poly182.ps[3] = Point(1636.12835648998, 604.6568549161261);
+ new ShapeRef(router, poly182, 182);
+
+ Polygon poly183(4);
+ poly183.ps[0] = Point(1574.12835648898, 625.6568549161261);
+ poly183.ps[1] = Point(1574.12835648898, 645.6568549161261);
+ poly183.ps[2] = Point(1542.12835648898, 645.6568549161261);
+ poly183.ps[3] = Point(1542.12835648898, 625.6568549161261);
+ new ShapeRef(router, poly183, 183);
+
+ Polygon poly184(4);
+ poly184.ps[0] = Point(1753.12835649098, 625.6568549161261);
+ poly184.ps[1] = Point(1753.12835649098, 645.6568549161261);
+ poly184.ps[2] = Point(1721.12835649098, 645.6568549161261);
+ poly184.ps[3] = Point(1721.12835649098, 625.6568549161261);
+ new ShapeRef(router, poly184, 184);
+
+ Polygon poly185(4);
+ poly185.ps[0] = Point(1904.12835649198, 604.6568549161261);
+ poly185.ps[1] = Point(1904.12835649198, 666.6568549161261);
+ poly185.ps[2] = Point(1842.12835649198, 666.6568549161261);
+ poly185.ps[3] = Point(1842.12835649198, 604.6568549161261);
+ new ShapeRef(router, poly185, 185);
+
+ Polygon poly186(4);
+ poly186.ps[0] = Point(1867.12835649098, 456.756854916126);
+ poly186.ps[1] = Point(1867.12835649098, 518.756854916126);
+ poly186.ps[2] = Point(1805.12835649098, 518.756854916126);
+ poly186.ps[3] = Point(1805.12835649098, 456.756854916126);
+ new ShapeRef(router, poly186, 186);
+
+ Polygon poly187(4);
+ poly187.ps[0] = Point(2184.795023161646, 604.6568549161261);
+ poly187.ps[1] = Point(2184.795023161646, 666.6568549161261);
+ poly187.ps[2] = Point(2122.795023161646, 666.6568549161261);
+ poly187.ps[3] = Point(2122.795023161646, 604.6568549161261);
+ new ShapeRef(router, poly187, 187);
+
+ Polygon poly188(4);
+ poly188.ps[0] = Point(2249.795023162646, 604.6568549161261);
+ poly188.ps[1] = Point(2249.795023162646, 624.6568549161261);
+ poly188.ps[2] = Point(2217.795023162646, 624.6568549161261);
+ poly188.ps[3] = Point(2217.795023162646, 604.6568549161261);
+ new ShapeRef(router, poly188, 188);
+
+ Polygon poly189(4);
+ poly189.ps[0] = Point(2344.795023163646, 604.6568549161261);
+ poly189.ps[1] = Point(2344.795023163646, 666.6568549161261);
+ poly189.ps[2] = Point(2282.795023163646, 666.6568549161261);
+ poly189.ps[3] = Point(2282.795023163646, 604.6568549161261);
+ new ShapeRef(router, poly189, 189);
+
+ Polygon poly190(4);
+ poly190.ps[0] = Point(2044.795023159646, 604.6568549161261);
+ poly190.ps[1] = Point(2044.795023159646, 666.6568549161261);
+ poly190.ps[2] = Point(1982.795023159646, 666.6568549161261);
+ poly190.ps[3] = Point(1982.795023159646, 604.6568549161261);
+ new ShapeRef(router, poly190, 190);
+
+ Polygon poly191(4);
+ poly191.ps[0] = Point(2099.795023160646, 625.6568549161261);
+ poly191.ps[1] = Point(2099.795023160646, 645.6568549161261);
+ poly191.ps[2] = Point(2067.795023160646, 645.6568549161261);
+ poly191.ps[3] = Point(2067.795023160646, 625.6568549161261);
+ new ShapeRef(router, poly191, 191);
+
+ Polygon poly192(4);
+ poly192.ps[0] = Point(2249.795023162646, 646.6568549161261);
+ poly192.ps[1] = Point(2249.795023162646, 666.6568549161261);
+ poly192.ps[2] = Point(2217.795023162646, 666.6568549161261);
+ poly192.ps[3] = Point(2217.795023162646, 646.6568549161261);
+ new ShapeRef(router, poly192, 192);
+
+ Polygon poly193(4);
+ poly193.ps[0] = Point(1698.12835648998, 330.2568549161261);
+ poly193.ps[1] = Point(1698.12835648998, 392.2568549161261);
+ poly193.ps[2] = Point(1636.12835648998, 392.2568549161261);
+ poly193.ps[3] = Point(1636.12835648998, 330.2568549161261);
+ new ShapeRef(router, poly193, 193);
+
+ Polygon poly194(4);
+ poly194.ps[0] = Point(1753.12835649098, 351.2568549161261);
+ poly194.ps[1] = Point(1753.12835649098, 371.2568549161261);
+ poly194.ps[2] = Point(1721.12835649098, 371.2568549161261);
+ poly194.ps[3] = Point(1721.12835649098, 351.2568549161261);
+ new ShapeRef(router, poly194, 194);
+
+ Polygon poly195(4);
+ poly195.ps[0] = Point(1643.12835648998, -507.4098117525407);
+ poly195.ps[1] = Point(1643.12835648998, -487.4098117525407);
+ poly195.ps[2] = Point(1611.12835648998, -487.4098117525407);
+ poly195.ps[3] = Point(1611.12835648998, -507.4098117525407);
+ new ShapeRef(router, poly195, 195);
+
+ Polygon poly196(4);
+ poly196.ps[0] = Point(267.62835648698, 1355.606854916126);
+ poly196.ps[1] = Point(267.62835648698, 1395.606854916126);
+ poly196.ps[2] = Point(191.62835648698, 1395.606854916126);
+ poly196.ps[3] = Point(191.62835648698, 1355.606854916126);
+ new ShapeRef(router, poly196, 196);
+
+ Polygon poly197(4);
+ poly197.ps[0] = Point(1971.12835649298, -36.74314508487396);
+ poly197.ps[1] = Point(1971.12835649298, 23.25685491512604);
+ poly197.ps[2] = Point(1915.12835649298, 23.25685491512604);
+ poly197.ps[3] = Point(1915.12835649298, -36.74314508487396);
+ new ShapeRef(router, poly197, 197);
+
+ Polygon poly198(4);
+ poly198.ps[0] = Point(455.62835648698, -389.4098117515406);
+ poly198.ps[1] = Point(455.62835648698, -329.4098117515406);
+ poly198.ps[2] = Point(399.62835648698, -329.4098117515406);
+ poly198.ps[3] = Point(399.62835648698, -389.4098117515406);
+ new ShapeRef(router, poly198, 198);
+
+ Polygon poly199(4);
+ poly199.ps[0] = Point(59.62835648497997, 875.8568549161259);
+ poly199.ps[1] = Point(59.62835648497997, 935.8568549161259);
+ poly199.ps[2] = Point(3.628356484979975, 935.8568549161259);
+ poly199.ps[3] = Point(3.628356484979975, 875.8568549161259);
+ new ShapeRef(router, poly199, 199);
+
+ Polygon poly200(4);
+ poly200.ps[0] = Point(499.62835648798, 1322.606854916126);
+ poly200.ps[1] = Point(499.62835648798, 1362.606854916126);
+ poly200.ps[2] = Point(423.6283564879799, 1362.606854916126);
+ poly200.ps[3] = Point(423.6283564879799, 1322.606854916126);
+ new ShapeRef(router, poly200, 200);
+
+ Polygon poly201(4);
+ poly201.ps[0] = Point(-920.12164351602, -285.4098117515406);
+ poly201.ps[1] = Point(-920.12164351602, -245.4098117515406);
+ poly201.ps[2] = Point(-996.12164351602, -245.4098117515406);
+ poly201.ps[3] = Point(-996.12164351602, -285.4098117515406);
+ new ShapeRef(router, poly201, 201);
+
+ Polygon poly202(4);
+ poly202.ps[0] = Point(-920.12164351602, -517.4098117525407);
+ poly202.ps[1] = Point(-920.12164351602, -477.4098117525407);
+ poly202.ps[2] = Point(-996.12164351602, -477.4098117525407);
+ poly202.ps[3] = Point(-996.12164351602, -517.4098117525407);
+ new ShapeRef(router, poly202, 202);
+
+ Polygon poly203(4);
+ poly203.ps[0] = Point(-780.12164351602, -807.9812403239691);
+ poly203.ps[1] = Point(-780.12164351602, -747.9812403239691);
+ poly203.ps[2] = Point(-836.12164351602, -747.9812403239691);
+ poly203.ps[3] = Point(-836.12164351602, -807.9812403239691);
+ new ShapeRef(router, poly203, 203);
+
+ Polygon poly204(4);
+ poly204.ps[0] = Point(-440.87164351602, -903.9812403239691);
+ poly204.ps[1] = Point(-440.87164351602, -843.9812403239691);
+ poly204.ps[2] = Point(-496.87164351602, -843.9812403239691);
+ poly204.ps[3] = Point(-496.87164351602, -903.9812403239691);
+ new ShapeRef(router, poly204, 204);
+
+ Polygon poly205(4);
+ poly205.ps[0] = Point(-440.87164351602, -828.9812403239691);
+ poly205.ps[1] = Point(-440.87164351602, -768.9812403239691);
+ poly205.ps[2] = Point(-496.87164351602, -768.9812403239691);
+ poly205.ps[3] = Point(-496.87164351602, -828.9812403239691);
+ new ShapeRef(router, poly205, 205);
+
+ Polygon poly206(4);
+ poly206.ps[0] = Point(143.62835648698, -807.9812403239691);
+ poly206.ps[1] = Point(143.62835648698, -747.9812403239691);
+ poly206.ps[2] = Point(87.62835648697995, -747.9812403239691);
+ poly206.ps[3] = Point(87.62835648697995, -807.9812403239691);
+ new ShapeRef(router, poly206, 206);
+
+ Polygon poly207(4);
+ poly207.ps[0] = Point(-473.87164351602, -567.4098117525407);
+ poly207.ps[1] = Point(-473.87164351602, -507.4098117525407);
+ poly207.ps[2] = Point(-529.87164351602, -507.4098117525407);
+ poly207.ps[3] = Point(-529.87164351602, -567.4098117525407);
+ new ShapeRef(router, poly207, 207);
+
+ Polygon poly208(4);
+ poly208.ps[0] = Point(-473.87164351602, -448.4098117525406);
+ poly208.ps[1] = Point(-473.87164351602, -388.4098117525406);
+ poly208.ps[2] = Point(-529.87164351602, -388.4098117525406);
+ poly208.ps[3] = Point(-529.87164351602, -448.4098117525406);
+ new ShapeRef(router, poly208, 208);
+
+ Polygon poly209(4);
+ poly209.ps[0] = Point(124.62835648598, -267.4098117515406);
+ poly209.ps[1] = Point(124.62835648598, -207.4098117515406);
+ poly209.ps[2] = Point(68.62835648597996, -207.4098117515406);
+ poly209.ps[3] = Point(68.62835648597996, -267.4098117515406);
+ new ShapeRef(router, poly209, 209);
+
+ Polygon poly210(4);
+ poly210.ps[0] = Point(124.62835648598, -192.4098117515406);
+ poly210.ps[1] = Point(124.62835648598, -132.4098117515406);
+ poly210.ps[2] = Point(68.62835648597996, -132.4098117515406);
+ poly210.ps[3] = Point(68.62835648597996, -192.4098117515406);
+ new ShapeRef(router, poly210, 210);
+
+ Polygon poly211(4);
+ poly211.ps[0] = Point(455.62835648698, -267.4098117515406);
+ poly211.ps[1] = Point(455.62835648698, -207.4098117515406);
+ poly211.ps[2] = Point(399.62835648698, -207.4098117515406);
+ poly211.ps[3] = Point(399.62835648698, -267.4098117515406);
+ new ShapeRef(router, poly211, 211);
+
+ Polygon poly212(4);
+ poly212.ps[0] = Point(455.62835648698, -192.4098117515406);
+ poly212.ps[1] = Point(455.62835648698, -132.4098117515406);
+ poly212.ps[2] = Point(399.62835648698, -132.4098117515406);
+ poly212.ps[3] = Point(399.62835648698, -192.4098117515406);
+ new ShapeRef(router, poly212, 212);
+
+ Polygon poly213(4);
+ poly213.ps[0] = Point(-212.87164351602, -179.4098117515406);
+ poly213.ps[1] = Point(-212.87164351602, -139.4098117515406);
+ poly213.ps[2] = Point(-288.87164351602, -139.4098117515406);
+ poly213.ps[3] = Point(-288.87164351602, -179.4098117515406);
+ new ShapeRef(router, poly213, 213);
+
+ Polygon poly214(4);
+ poly214.ps[0] = Point(-350.87164351602, -179.4098117515406);
+ poly214.ps[1] = Point(-350.87164351602, -139.4098117515406);
+ poly214.ps[2] = Point(-426.87164351602, -139.4098117515406);
+ poly214.ps[3] = Point(-426.87164351602, -179.4098117515406);
+ new ShapeRef(router, poly214, 214);
+
+ Polygon poly215(4);
+ poly215.ps[0] = Point(124.62835648598, -464.4098117515406);
+ poly215.ps[1] = Point(124.62835648598, -404.4098117515406);
+ poly215.ps[2] = Point(68.62835648597996, -404.4098117515406);
+ poly215.ps[3] = Point(68.62835648597996, -464.4098117515406);
+ new ShapeRef(router, poly215, 215);
+
+ Polygon poly216(4);
+ poly216.ps[0] = Point(124.62835648598, -389.4098117515406);
+ poly216.ps[1] = Point(124.62835648598, -329.4098117515406);
+ poly216.ps[2] = Point(68.62835648597996, -329.4098117515406);
+ poly216.ps[3] = Point(68.62835648597996, -389.4098117515406);
+ new ShapeRef(router, poly216, 216);
+
+ Polygon poly217(4);
+ poly217.ps[0] = Point(455.62835648698, -539.4098117515407);
+ poly217.ps[1] = Point(455.62835648698, -479.4098117515406);
+ poly217.ps[2] = Point(399.62835648698, -479.4098117515406);
+ poly217.ps[3] = Point(399.62835648698, -539.4098117515407);
+ new ShapeRef(router, poly217, 217);
+
+ Polygon poly218(4);
+ poly218.ps[0] = Point(455.62835648698, -464.4098117515406);
+ poly218.ps[1] = Point(455.62835648698, -404.4098117515406);
+ poly218.ps[2] = Point(399.62835648698, -404.4098117515406);
+ poly218.ps[3] = Point(399.62835648698, -464.4098117515406);
+ new ShapeRef(router, poly218, 218);
+
+ Polygon poly219(4);
+ poly219.ps[0] = Point(873.62835648898, -222.4098117515406);
+ poly219.ps[1] = Point(873.62835648898, -162.4098117515406);
+ poly219.ps[2] = Point(817.62835648898, -162.4098117515406);
+ poly219.ps[3] = Point(817.62835648898, -222.4098117515406);
+ new ShapeRef(router, poly219, 219);
+
+ Polygon poly220(4);
+ poly220.ps[0] = Point(660.9873402531949, -267.4098117515406);
+ poly220.ps[1] = Point(660.9873402531949, -207.4098117515406);
+ poly220.ps[2] = Point(604.9873402531949, -207.4098117515406);
+ poly220.ps[3] = Point(604.9873402531949, -267.4098117515406);
+ new ShapeRef(router, poly220, 220);
+
+ Polygon poly221(4);
+ poly221.ps[0] = Point(660.9873402531949, -389.4098117515406);
+ poly221.ps[1] = Point(660.9873402531949, -329.4098117515406);
+ poly221.ps[2] = Point(604.9873402531949, -329.4098117515406);
+ poly221.ps[3] = Point(604.9873402531949, -389.4098117515406);
+ new ShapeRef(router, poly221, 221);
+
+ Polygon poly222(4);
+ poly222.ps[0] = Point(1090.914070775694, -389.4098117515406);
+ poly222.ps[1] = Point(1090.914070775694, -329.4098117515406);
+ poly222.ps[2] = Point(1034.914070775694, -329.4098117515406);
+ poly222.ps[3] = Point(1034.914070775694, -389.4098117515406);
+ new ShapeRef(router, poly222, 222);
+
+ Polygon poly223(4);
+ poly223.ps[0] = Point(1090.914070775694, -267.4098117515406);
+ poly223.ps[1] = Point(1090.914070775694, -207.4098117515406);
+ poly223.ps[2] = Point(1034.914070775694, -207.4098117515406);
+ poly223.ps[3] = Point(1034.914070775694, -267.4098117515406);
+ new ShapeRef(router, poly223, 223);
+
+ Polygon poly224(4);
+ poly224.ps[0] = Point(1622.12835648998, -389.4098117515406);
+ poly224.ps[1] = Point(1622.12835648998, -329.4098117515406);
+ poly224.ps[2] = Point(1566.12835648998, -329.4098117515406);
+ poly224.ps[3] = Point(1566.12835648998, -389.4098117515406);
+ new ShapeRef(router, poly224, 224);
+
+ Polygon poly225(4);
+ poly225.ps[0] = Point(1622.12835648998, -267.4098117515406);
+ poly225.ps[1] = Point(1622.12835648998, -207.4098117515406);
+ poly225.ps[2] = Point(1566.12835648998, -207.4098117515406);
+ poly225.ps[3] = Point(1566.12835648998, -267.4098117515406);
+ new ShapeRef(router, poly225, 225);
+
+ Polygon poly226(4);
+ poly226.ps[0] = Point(1798.12835649098, -368.4098117515406);
+ poly226.ps[1] = Point(1798.12835649098, -308.4098117515406);
+ poly226.ps[2] = Point(1742.12835649098, -308.4098117515406);
+ poly226.ps[3] = Point(1742.12835649098, -368.4098117515406);
+ new ShapeRef(router, poly226, 226);
+
+ Polygon poly227(4);
+ poly227.ps[0] = Point(1971.12835649298, -368.4098117515406);
+ poly227.ps[1] = Point(1971.12835649298, -308.4098117515406);
+ poly227.ps[2] = Point(1915.12835649298, -308.4098117515406);
+ poly227.ps[3] = Point(1915.12835649298, -368.4098117515406);
+ new ShapeRef(router, poly227, 227);
+
+ Polygon poly228(4);
+ poly228.ps[0] = Point(-473.87164351602, 109.256854915126);
+ poly228.ps[1] = Point(-473.87164351602, 169.256854915126);
+ poly228.ps[2] = Point(-529.87164351602, 169.256854915126);
+ poly228.ps[3] = Point(-529.87164351602, 109.256854915126);
+ new ShapeRef(router, poly228, 228);
+
+ Polygon poly229(4);
+ poly229.ps[0] = Point(-473.87164351602, 211.256854916126);
+ poly229.ps[1] = Point(-473.87164351602, 271.2568549161261);
+ poly229.ps[2] = Point(-529.87164351602, 271.2568549161261);
+ poly229.ps[3] = Point(-529.87164351602, 211.256854916126);
+ new ShapeRef(router, poly229, 229);
+
+ Polygon poly230(4);
+ poly230.ps[0] = Point(1.128356484979975, -24.74314508487396);
+ poly230.ps[1] = Point(1.128356484979975, 35.25685491512604);
+ poly230.ps[2] = Point(-54.87164351502003, 35.25685491512604);
+ poly230.ps[3] = Point(-54.87164351502003, -24.74314508487396);
+ new ShapeRef(router, poly230, 230);
+
+ Polygon poly231(4);
+ poly231.ps[0] = Point(1.128356484979975, 97.25685491512604);
+ poly231.ps[1] = Point(1.128356484979975, 157.256854915126);
+ poly231.ps[2] = Point(-54.87164351502003, 157.256854915126);
+ poly231.ps[3] = Point(-54.87164351502003, 97.25685491512604);
+ new ShapeRef(router, poly231, 231);
+
+ Polygon poly232(4);
+ poly232.ps[0] = Point(478.62835648698, 97.25685491512604);
+ poly232.ps[1] = Point(478.62835648698, 157.256854915126);
+ poly232.ps[2] = Point(422.62835648698, 157.256854915126);
+ poly232.ps[3] = Point(422.62835648698, 97.25685491512604);
+ new ShapeRef(router, poly232, 232);
+
+ Polygon poly233(4);
+ poly233.ps[0] = Point(478.62835648698, -24.74314508487396);
+ poly233.ps[1] = Point(478.62835648698, 35.25685491512604);
+ poly233.ps[2] = Point(422.62835648698, 35.25685491512604);
+ poly233.ps[3] = Point(422.62835648698, -24.74314508487396);
+ new ShapeRef(router, poly233, 233);
+
+ Polygon poly234(4);
+ poly234.ps[0] = Point(793.62835648798, -24.74314508487396);
+ poly234.ps[1] = Point(793.62835648798, 35.25685491512604);
+ poly234.ps[2] = Point(737.62835648798, 35.25685491512604);
+ poly234.ps[3] = Point(737.62835648798, -24.74314508487396);
+ new ShapeRef(router, poly234, 234);
+
+ Polygon poly235(4);
+ poly235.ps[0] = Point(793.62835648798, 97.25685491512604);
+ poly235.ps[1] = Point(793.62835648798, 157.256854915126);
+ poly235.ps[2] = Point(737.62835648798, 157.256854915126);
+ poly235.ps[3] = Point(737.62835648798, 97.25685491512604);
+ new ShapeRef(router, poly235, 235);
+
+ Polygon poly236(4);
+ poly236.ps[0] = Point(1068.914070774694, -146.4098117515406);
+ poly236.ps[1] = Point(1068.914070774694, -106.4098117515406);
+ poly236.ps[2] = Point(992.9140707746942, -106.4098117515406);
+ poly236.ps[3] = Point(992.9140707746942, -146.4098117515406);
+ new ShapeRef(router, poly236, 236);
+
+ Polygon poly237(4);
+ poly237.ps[0] = Point(1515.12835648898, -146.4098117515406);
+ poly237.ps[1] = Point(1515.12835648898, -106.4098117515406);
+ poly237.ps[2] = Point(1439.12835648898, -106.4098117515406);
+ poly237.ps[3] = Point(1439.12835648898, -146.4098117515406);
+ new ShapeRef(router, poly237, 237);
+
+ Polygon poly238(4);
+ poly238.ps[0] = Point(1129.12835648898, -24.74314508487396);
+ poly238.ps[1] = Point(1129.12835648898, 35.25685491512604);
+ poly238.ps[2] = Point(1073.12835648898, 35.25685491512604);
+ poly238.ps[3] = Point(1073.12835648898, -24.74314508487396);
+ new ShapeRef(router, poly238, 238);
+
+ Polygon poly239(4);
+ poly239.ps[0] = Point(1129.12835648898, 97.25685491512604);
+ poly239.ps[1] = Point(1129.12835648898, 157.256854915126);
+ poly239.ps[2] = Point(1073.12835648898, 157.256854915126);
+ poly239.ps[3] = Point(1073.12835648898, 97.25685491512604);
+ new ShapeRef(router, poly239, 239);
+
+ Polygon poly240(4);
+ poly240.ps[0] = Point(727.62835648798, 265.2568549161261);
+ poly240.ps[1] = Point(727.62835648798, 325.2568549161261);
+ poly240.ps[2] = Point(671.62835648798, 325.2568549161261);
+ poly240.ps[3] = Point(671.62835648798, 265.2568549161261);
+ new ShapeRef(router, poly240, 240);
+
+ Polygon poly241(4);
+ poly241.ps[0] = Point(1655.12835648998, -36.74314508487396);
+ poly241.ps[1] = Point(1655.12835648998, 23.25685491512604);
+ poly241.ps[2] = Point(1599.12835648998, 23.25685491512604);
+ poly241.ps[3] = Point(1599.12835648998, -36.74314508487396);
+ new ShapeRef(router, poly241, 241);
+
+ Polygon poly242(4);
+ poly242.ps[0] = Point(1798.12835649098, -36.74314508487396);
+ poly242.ps[1] = Point(1798.12835649098, 23.25685491512604);
+ poly242.ps[2] = Point(1742.12835649098, 23.25685491512604);
+ poly242.ps[3] = Point(1742.12835649098, -36.74314508487396);
+ new ShapeRef(router, poly242, 242);
+
+ Polygon poly243(4);
+ poly243.ps[0] = Point(-884.12164351602, 751.8568549161259);
+ poly243.ps[1] = Point(-884.12164351602, 791.8568549161259);
+ poly243.ps[2] = Point(-960.12164351602, 791.8568549161259);
+ poly243.ps[3] = Point(-960.12164351602, 751.8568549161259);
+ new ShapeRef(router, poly243, 243);
+
+ Polygon poly244(4);
+ poly244.ps[0] = Point(-738.12164351602, 751.8568549161259);
+ poly244.ps[1] = Point(-738.12164351602, 791.8568549161259);
+ poly244.ps[2] = Point(-814.12164351602, 791.8568549161259);
+ poly244.ps[3] = Point(-814.12164351602, 751.8568549161259);
+ new ShapeRef(router, poly244, 244);
+
+ Polygon poly245(4);
+ poly245.ps[0] = Point(-544.87164351602, 500.756854916126);
+ poly245.ps[1] = Point(-544.87164351602, 540.756854916126);
+ poly245.ps[2] = Point(-620.87164351602, 540.756854916126);
+ poly245.ps[3] = Point(-620.87164351602, 500.756854916126);
+ new ShapeRef(router, poly245, 245);
+
+ Polygon poly246(4);
+ poly246.ps[0] = Point(-233.87164351602, 500.756854916126);
+ poly246.ps[1] = Point(-233.87164351602, 540.756854916126);
+ poly246.ps[2] = Point(-309.87164351602, 540.756854916126);
+ poly246.ps[3] = Point(-309.87164351602, 500.756854916126);
+ new ShapeRef(router, poly246, 246);
+
+ Polygon poly247(4);
+ poly247.ps[0] = Point(-135.87164351502, 500.756854916126);
+ poly247.ps[1] = Point(-135.87164351502, 540.756854916126);
+ poly247.ps[2] = Point(-211.87164351502, 540.756854916126);
+ poly247.ps[3] = Point(-211.87164351502, 500.756854916126);
+ new ShapeRef(router, poly247, 247);
+
+ Polygon poly248(4);
+ poly248.ps[0] = Point(267.62835648698, 500.756854916126);
+ poly248.ps[1] = Point(267.62835648698, 540.756854916126);
+ poly248.ps[2] = Point(191.62835648698, 540.756854916126);
+ poly248.ps[3] = Point(191.62835648698, 500.756854916126);
+ new ShapeRef(router, poly248, 248);
+
+ Polygon poly249(4);
+ poly249.ps[0] = Point(59.62835648497997, 668.8568549161259);
+ poly249.ps[1] = Point(59.62835648497997, 728.8568549161259);
+ poly249.ps[2] = Point(3.628356484979975, 728.8568549161259);
+ poly249.ps[3] = Point(3.628356484979975, 668.8568549161259);
+ new ShapeRef(router, poly249, 249);
+
+ Polygon poly250(4);
+ poly250.ps[0] = Point(-362.87164351602, 958.8568549161259);
+ poly250.ps[1] = Point(-362.87164351602, 998.8568549161259);
+ poly250.ps[2] = Point(-438.87164351602, 998.8568549161259);
+ poly250.ps[3] = Point(-438.87164351602, 958.8568549161259);
+ new ShapeRef(router, poly250, 250);
+
+ Polygon poly251(4);
+ poly251.ps[0] = Point(-609.12164351602, 1024.856854916126);
+ poly251.ps[1] = Point(-609.12164351602, 1064.856854916126);
+ poly251.ps[2] = Point(-685.12164351602, 1064.856854916126);
+ poly251.ps[3] = Point(-685.12164351602, 1024.856854916126);
+ new ShapeRef(router, poly251, 251);
+
+ Polygon poly252(4);
+ poly252.ps[0] = Point(389.62835648698, 647.8568549161259);
+ poly252.ps[1] = Point(389.62835648698, 707.8568549161259);
+ poly252.ps[2] = Point(333.62835648698, 707.8568549161259);
+ poly252.ps[3] = Point(333.62835648698, 647.8568549161259);
+ new ShapeRef(router, poly252, 252);
+
+ Polygon poly253(4);
+ poly253.ps[0] = Point(694.62835648798, 509.006854916126);
+ poly253.ps[1] = Point(694.62835648798, 569.006854916126);
+ poly253.ps[2] = Point(638.62835648798, 569.006854916126);
+ poly253.ps[3] = Point(638.62835648798, 509.006854916126);
+ new ShapeRef(router, poly253, 253);
+
+ Polygon poly254(4);
+ poly254.ps[0] = Point(176.62835648698, 814.8568549161259);
+ poly254.ps[1] = Point(176.62835648698, 874.8568549161259);
+ poly254.ps[2] = Point(120.62835648698, 874.8568549161259);
+ poly254.ps[3] = Point(120.62835648698, 814.8568549161259);
+ new ShapeRef(router, poly254, 254);
+
+ Polygon poly255(4);
+ poly255.ps[0] = Point(826.62835648798, 647.8568549161259);
+ poly255.ps[1] = Point(826.62835648798, 707.8568549161259);
+ poly255.ps[2] = Point(770.62835648798, 707.8568549161259);
+ poly255.ps[3] = Point(770.62835648798, 647.8568549161259);
+ new ShapeRef(router, poly255, 255);
+
+ Polygon poly256(4);
+ poly256.ps[0] = Point(826.62835648798, 769.8568549161259);
+ poly256.ps[1] = Point(826.62835648798, 829.8568549161259);
+ poly256.ps[2] = Point(770.62835648798, 829.8568549161259);
+ poly256.ps[3] = Point(770.62835648798, 769.8568549161259);
+ new ShapeRef(router, poly256, 256);
+
+ Polygon poly257(4);
+ poly257.ps[0] = Point(682.62835648798, 837.8568549161259);
+ poly257.ps[1] = Point(682.62835648798, 877.8568549161259);
+ poly257.ps[2] = Point(606.62835648798, 877.8568549161259);
+ poly257.ps[3] = Point(606.62835648798, 837.8568549161259);
+ new ShapeRef(router, poly257, 257);
+
+ Polygon poly258(4);
+ poly258.ps[0] = Point(129.62835648598, 951.8568549161259);
+ poly258.ps[1] = Point(129.62835648598, 1011.856854916126);
+ poly258.ps[2] = Point(73.62835648597996, 1011.856854916126);
+ poly258.ps[3] = Point(73.62835648597996, 951.8568549161259);
+ new ShapeRef(router, poly258, 258);
+
+ Polygon poly259(4);
+ poly259.ps[0] = Point(-64.87164351502003, 1174.856854916126);
+ poly259.ps[1] = Point(-64.87164351502003, 1234.856854916126);
+ poly259.ps[2] = Point(-120.87164351502, 1234.856854916126);
+ poly259.ps[3] = Point(-120.87164351502, 1174.856854916126);
+ new ShapeRef(router, poly259, 259);
+
+ Polygon poly260(4);
+ poly260.ps[0] = Point(-64.87164351502003, 1052.856854916126);
+ poly260.ps[1] = Point(-64.87164351502003, 1112.856854916126);
+ poly260.ps[2] = Point(-120.87164351502, 1112.856854916126);
+ poly260.ps[3] = Point(-120.87164351502, 1052.856854916126);
+ new ShapeRef(router, poly260, 260);
+
+ Polygon poly261(4);
+ poly261.ps[0] = Point(356.62835648698, 1052.856854916126);
+ poly261.ps[1] = Point(356.62835648698, 1112.856854916126);
+ poly261.ps[2] = Point(300.62835648698, 1112.856854916126);
+ poly261.ps[3] = Point(300.62835648698, 1052.856854916126);
+ new ShapeRef(router, poly261, 261);
+
+ Polygon poly262(4);
+ poly262.ps[0] = Point(873.62835648898, 1040.856854916126);
+ poly262.ps[1] = Point(873.62835648898, 1100.856854916126);
+ poly262.ps[2] = Point(817.62835648898, 1100.856854916126);
+ poly262.ps[3] = Point(817.62835648898, 1040.856854916126);
+ new ShapeRef(router, poly262, 262);
+
+ Polygon poly263(4);
+ poly263.ps[0] = Point(951.9140707746942, 866.8568549171259);
+ poly263.ps[1] = Point(951.9140707746942, 906.8568549171259);
+ poly263.ps[2] = Point(875.9140707746942, 906.8568549171259);
+ poly263.ps[3] = Point(875.9140707746942, 866.8568549171259);
+ new ShapeRef(router, poly263, 263);
+
+ Polygon poly264(4);
+ poly264.ps[0] = Point(1253.12835648898, 991.8568549161259);
+ poly264.ps[1] = Point(1253.12835648898, 1031.856854916126);
+ poly264.ps[2] = Point(1177.12835648898, 1031.856854916126);
+ poly264.ps[3] = Point(1177.12835648898, 991.8568549161259);
+ new ShapeRef(router, poly264, 264);
+
+ Polygon poly265(4);
+ poly265.ps[0] = Point(1253.12835648898, 1090.856854916126);
+ poly265.ps[1] = Point(1253.12835648898, 1130.856854916126);
+ poly265.ps[2] = Point(1177.12835648898, 1130.856854916126);
+ poly265.ps[3] = Point(1177.12835648898, 1090.856854916126);
+ new ShapeRef(router, poly265, 265);
+
+ Polygon poly266(4);
+ poly266.ps[0] = Point(1195.12835648898, 1186.856854916126);
+ poly266.ps[1] = Point(1195.12835648898, 1246.856854916126);
+ poly266.ps[2] = Point(1139.12835648898, 1246.856854916126);
+ poly266.ps[3] = Point(1139.12835648898, 1186.856854916126);
+ new ShapeRef(router, poly266, 266);
+
+ Polygon poly267(4);
+ poly267.ps[0] = Point(21.62835648497997, 1355.606854916126);
+ poly267.ps[1] = Point(21.62835648497997, 1395.606854916126);
+ poly267.ps[2] = Point(-54.37164351502003, 1395.606854916126);
+ poly267.ps[3] = Point(-54.37164351502003, 1355.606854916126);
+ new ShapeRef(router, poly267, 267);
+
+ Polygon poly268(4);
+ poly268.ps[0] = Point(637.62835648798, 1322.606854916126);
+ poly268.ps[1] = Point(637.62835648798, 1362.606854916126);
+ poly268.ps[2] = Point(561.62835648798, 1362.606854916126);
+ poly268.ps[3] = Point(561.62835648798, 1322.606854916126);
+ new ShapeRef(router, poly268, 268);
+
+ Polygon poly269(4);
+ poly269.ps[0] = Point(-473.87164351602, 1577.106854917126);
+ poly269.ps[1] = Point(-473.87164351602, 1637.106854917126);
+ poly269.ps[2] = Point(-529.87164351602, 1637.106854917126);
+ poly269.ps[3] = Point(-529.87164351602, 1577.106854917126);
+ new ShapeRef(router, poly269, 269);
+
+ Polygon poly270(4);
+ poly270.ps[0] = Point(-31.87164351502003, 1678.106854917126);
+ poly270.ps[1] = Point(-31.87164351502003, 1738.106854917126);
+ poly270.ps[2] = Point(-87.87164351502003, 1738.106854917126);
+ poly270.ps[3] = Point(-87.87164351502003, 1678.106854917126);
+ new ShapeRef(router, poly270, 270);
+
+ Polygon poly271(4);
+ poly271.ps[0] = Point(-31.87164351502003, 1481.106854917126);
+ poly271.ps[1] = Point(-31.87164351502003, 1541.106854917126);
+ poly271.ps[2] = Point(-87.87164351502003, 1541.106854917126);
+ poly271.ps[3] = Point(-87.87164351502003, 1481.106854917126);
+ new ShapeRef(router, poly271, 271);
+
+ Polygon poly272(4);
+ poly272.ps[0] = Point(-31.87164351502003, 1556.106854917126);
+ poly272.ps[1] = Point(-31.87164351502003, 1616.106854917126);
+ poly272.ps[2] = Point(-87.87164351502003, 1616.106854917126);
+ poly272.ps[3] = Point(-87.87164351502003, 1556.106854917126);
+ new ShapeRef(router, poly272, 272);
+
+ Polygon poly273(4);
+ poly273.ps[0] = Point(422.62835648698, 1678.106854917126);
+ poly273.ps[1] = Point(422.62835648698, 1738.106854917126);
+ poly273.ps[2] = Point(366.62835648698, 1738.106854917126);
+ poly273.ps[3] = Point(366.62835648698, 1678.106854917126);
+ new ShapeRef(router, poly273, 273);
+
+ Polygon poly274(4);
+ poly274.ps[0] = Point(422.62835648698, 1556.106854917126);
+ poly274.ps[1] = Point(422.62835648698, 1616.106854917126);
+ poly274.ps[2] = Point(366.62835648698, 1616.106854917126);
+ poly274.ps[3] = Point(366.62835648698, 1556.106854917126);
+ new ShapeRef(router, poly274, 274);
+
+ Polygon poly275(4);
+ poly275.ps[0] = Point(660.9873402531949, 1556.106854917126);
+ poly275.ps[1] = Point(660.9873402531949, 1616.106854917126);
+ poly275.ps[2] = Point(604.9873402531949, 1616.106854917126);
+ poly275.ps[3] = Point(604.9873402531949, 1556.106854917126);
+ new ShapeRef(router, poly275, 275);
+
+ Polygon poly276(4);
+ poly276.ps[0] = Point(660.9873402531949, 1678.106854917126);
+ poly276.ps[1] = Point(660.9873402531949, 1738.106854917126);
+ poly276.ps[2] = Point(604.9873402531949, 1738.106854917126);
+ poly276.ps[3] = Point(604.9873402531949, 1678.106854917126);
+ new ShapeRef(router, poly276, 276);
+
+ Polygon poly277(4);
+ poly277.ps[0] = Point(1195.12835648898, 1497.106854916126);
+ poly277.ps[1] = Point(1195.12835648898, 1557.106854916126);
+ poly277.ps[2] = Point(1139.12835648898, 1557.106854916126);
+ poly277.ps[3] = Point(1139.12835648898, 1497.106854916126);
+ new ShapeRef(router, poly277, 277);
+
+ Polygon poly278(4);
+ poly278.ps[0] = Point(1195.12835648898, 1636.773521583792);
+ poly278.ps[1] = Point(1195.12835648898, 1696.773521583792);
+ poly278.ps[2] = Point(1139.12835648898, 1696.773521583792);
+ poly278.ps[3] = Point(1139.12835648898, 1636.773521583792);
+ new ShapeRef(router, poly278, 278);
+
+ Polygon poly279(4);
+ poly279.ps[0] = Point(1358.12835648898, 1363.106854916126);
+ poly279.ps[1] = Point(1358.12835648898, 1423.106854916126);
+ poly279.ps[2] = Point(1302.12835648898, 1423.106854916126);
+ poly279.ps[3] = Point(1302.12835648898, 1363.106854916126);
+ new ShapeRef(router, poly279, 279);
+
+ Polygon poly280(4);
+ poly280.ps[0] = Point(1655.12835648998, 1239.606854916126);
+ poly280.ps[1] = Point(1655.12835648998, 1299.606854916126);
+ poly280.ps[2] = Point(1599.12835648998, 1299.606854916126);
+ poly280.ps[3] = Point(1599.12835648998, 1239.606854916126);
+ new ShapeRef(router, poly280, 280);
+
+ Polygon poly281(4);
+ poly281.ps[0] = Point(1622.12835648998, 1556.106854917126);
+ poly281.ps[1] = Point(1622.12835648998, 1616.106854917126);
+ poly281.ps[2] = Point(1566.12835648998, 1616.106854917126);
+ poly281.ps[3] = Point(1566.12835648998, 1556.106854917126);
+ new ShapeRef(router, poly281, 281);
+
+ Polygon poly282(4);
+ poly282.ps[0] = Point(1622.12835648998, 1678.106854917126);
+ poly282.ps[1] = Point(1622.12835648998, 1738.106854917126);
+ poly282.ps[2] = Point(1566.12835648998, 1738.106854917126);
+ poly282.ps[3] = Point(1566.12835648998, 1678.106854917126);
+ new ShapeRef(router, poly282, 282);
+
+ Polygon poly283(4);
+ poly283.ps[0] = Point(1798.12835649098, 1239.606854916126);
+ poly283.ps[1] = Point(1798.12835649098, 1299.606854916126);
+ poly283.ps[2] = Point(1742.12835649098, 1299.606854916126);
+ poly283.ps[3] = Point(1742.12835649098, 1239.606854916126);
+ new ShapeRef(router, poly283, 283);
+
+ Polygon poly284(4);
+ poly284.ps[0] = Point(1798.12835649098, 1577.106854917126);
+ poly284.ps[1] = Point(1798.12835649098, 1637.106854917126);
+ poly284.ps[2] = Point(1742.12835649098, 1637.106854917126);
+ poly284.ps[3] = Point(1742.12835649098, 1577.106854917126);
+ new ShapeRef(router, poly284, 284);
+
+ Polygon poly285(4);
+ poly285.ps[0] = Point(1971.12835649298, 1577.106854917126);
+ poly285.ps[1] = Point(1971.12835649298, 1637.106854917126);
+ poly285.ps[2] = Point(1915.12835649298, 1637.106854917126);
+ poly285.ps[3] = Point(1915.12835649298, 1577.106854917126);
+ new ShapeRef(router, poly285, 285);
+
+ Polygon poly286(4);
+ poly286.ps[0] = Point(-440.87164351602, -706.9812403239691);
+ poly286.ps[1] = Point(-440.87164351602, -646.9812403239691);
+ poly286.ps[2] = Point(-496.87164351602, -646.9812403239691);
+ poly286.ps[3] = Point(-496.87164351602, -706.9812403239691);
+ new ShapeRef(router, poly286, 286);
+
+ Polygon poly287(4);
+ poly287.ps[0] = Point(389.62835648698, 769.8568549161259);
+ poly287.ps[1] = Point(389.62835648698, 829.8568549161259);
+ poly287.ps[2] = Point(333.62835648698, 829.8568549161259);
+ poly287.ps[3] = Point(333.62835648698, 769.8568549161259);
+ new ShapeRef(router, poly287, 287);
+
+ Polygon poly288(4);
+ poly288.ps[0] = Point(356.62835648698, 1174.856854916126);
+ poly288.ps[1] = Point(356.62835648698, 1234.856854916126);
+ poly288.ps[2] = Point(300.62835648698, 1234.856854916126);
+ poly288.ps[3] = Point(300.62835648698, 1174.856854916126);
+ new ShapeRef(router, poly288, 288);
+
+ Polygon poly289(4);
+ poly289.ps[0] = Point(1089.914070774694, 866.8568549171259);
+ poly289.ps[1] = Point(1089.914070774694, 906.8568549171259);
+ poly289.ps[2] = Point(1013.914070774694, 906.8568549171259);
+ poly289.ps[3] = Point(1013.914070774694, 866.8568549171259);
+ new ShapeRef(router, poly289, 289);
+
+ Polygon poly290(4);
+ poly290.ps[0] = Point(1655.12835648998, -688.4098117525407);
+ poly290.ps[1] = Point(1655.12835648998, -628.4098117525407);
+ poly290.ps[2] = Point(1599.12835648998, -628.4098117525407);
+ poly290.ps[3] = Point(1599.12835648998, -688.4098117525407);
+ new ShapeRef(router, poly290, 290);
+
+ Polygon poly291(4);
+ poly291.ps[0] = Point(1831.12835649098, -628.5348117525407);
+ poly291.ps[1] = Point(1831.12835649098, -568.5348117525407);
+ poly291.ps[2] = Point(1775.12835649098, -568.5348117525407);
+ poly291.ps[3] = Point(1775.12835649098, -628.5348117525407);
+ new ShapeRef(router, poly291, 291);
+
+ Polygon poly292(4);
+ poly292.ps[0] = Point(488.62835648698, -807.9812403239691);
+ poly292.ps[1] = Point(488.62835648698, -747.9812403239691);
+ poly292.ps[2] = Point(432.62835648698, -747.9812403239691);
+ poly292.ps[3] = Point(432.62835648698, -807.9812403239691);
+ new ShapeRef(router, poly292, 292);
+
+ Polygon poly293(4);
+ poly293.ps[0] = Point(760.62835648798, -877.4098117525407);
+ poly293.ps[1] = Point(760.62835648798, -817.4098117525407);
+ poly293.ps[2] = Point(704.62835648798, -817.4098117525407);
+ poly293.ps[3] = Point(704.62835648798, -877.4098117525407);
+ new ShapeRef(router, poly293, 293);
+
+ Polygon poly294(4);
+ poly294.ps[0] = Point(760.62835648798, -751.4098117525407);
+ poly294.ps[1] = Point(760.62835648798, -691.4098117525407);
+ poly294.ps[2] = Point(704.62835648798, -691.4098117525407);
+ poly294.ps[3] = Point(704.62835648798, -751.4098117525407);
+ new ShapeRef(router, poly294, 294);
+
+ Polygon poly295(4);
+ poly295.ps[0] = Point(1068.914070774694, -484.4098117525406);
+ poly295.ps[1] = Point(1068.914070774694, -444.4098117525406);
+ poly295.ps[2] = Point(992.9140707746942, -444.4098117525406);
+ poly295.ps[3] = Point(992.9140707746942, -484.4098117525406);
+ new ShapeRef(router, poly295, 295);
+
+ Polygon poly296(4);
+ poly296.ps[0] = Point(1259.12835648898, -628.5348117525407);
+ poly296.ps[1] = Point(1259.12835648898, -568.5348117525407);
+ poly296.ps[2] = Point(1203.12835648898, -568.5348117525407);
+ poly296.ps[3] = Point(1203.12835648898, -628.5348117525407);
+ new ShapeRef(router, poly296, 296);
+
+ Polygon poly297(4);
+ poly297.ps[0] = Point(209.62835648698, -116.4098117515406);
+ poly297.ps[1] = Point(209.62835648698, -56.40981175154064);
+ poly297.ps[2] = Point(153.62835648698, -56.40981175154064);
+ poly297.ps[3] = Point(153.62835648698, -116.4098117515406);
+ new ShapeRef(router, poly297, 297);
+
+ Polygon poly298(4);
+ poly298.ps[0] = Point(694.62835648798, -90.40981175154064);
+ poly298.ps[1] = Point(694.62835648798, -30.40981175154064);
+ poly298.ps[2] = Point(638.62835648798, -30.40981175154064);
+ poly298.ps[3] = Point(638.62835648798, -90.40981175154064);
+ new ShapeRef(router, poly298, 298);
+
+ Polygon poly299(4);
+ poly299.ps[0] = Point(939.62835648898, 351.7568549161261);
+ poly299.ps[1] = Point(939.62835648898, 411.7568549161261);
+ poly299.ps[2] = Point(883.62835648898, 411.7568549161261);
+ poly299.ps[3] = Point(883.62835648898, 351.7568549161261);
+ new ShapeRef(router, poly299, 299);
+
+ Polygon poly300(4);
+ poly300.ps[0] = Point(521.62835648698, 351.7568549161261);
+ poly300.ps[1] = Point(521.62835648698, 411.7568549161261);
+ poly300.ps[2] = Point(465.62835648698, 411.7568549161261);
+ poly300.ps[3] = Point(465.62835648698, 351.7568549161261);
+ new ShapeRef(router, poly300, 300);
+
+ Polygon poly301(4);
+ poly301.ps[0] = Point(129.62835648598, 1073.856854916126);
+ poly301.ps[1] = Point(129.62835648598, 1133.856854916126);
+ poly301.ps[2] = Point(73.62835648597996, 1133.856854916126);
+ poly301.ps[3] = Point(73.62835648597996, 1073.856854916126);
+ new ShapeRef(router, poly301, 301);
+
+ Polygon poly302(4);
+ poly302.ps[0] = Point(59.62835648497997, -628.5348117525407);
+ poly302.ps[1] = Point(59.62835648497997, -568.5348117525407);
+ poly302.ps[2] = Point(3.628356484979975, -568.5348117525407);
+ poly302.ps[3] = Point(3.628356484979975, -628.5348117525407);
+ new ShapeRef(router, poly302, 302);
+
+ Polygon poly303(4);
+ poly303.ps[0] = Point(1586.12835648898, 565.6568549161261);
+ poly303.ps[1] = Point(1586.12835648898, 625.6568549161261);
+ poly303.ps[2] = Point(1530.12835648898, 625.6568549161261);
+ poly303.ps[3] = Point(1530.12835648898, 565.6568549161261);
+ new ShapeRef(router, poly303, 303);
+
+ Polygon poly304(4);
+ poly304.ps[0] = Point(1765.12835649098, 565.6568549161261);
+ poly304.ps[1] = Point(1765.12835649098, 625.6568549161261);
+ poly304.ps[2] = Point(1709.12835649098, 625.6568549161261);
+ poly304.ps[3] = Point(1709.12835649098, 565.6568549161261);
+ new ShapeRef(router, poly304, 304);
+
+ Polygon poly305(4);
+ poly305.ps[0] = Point(2261.795023162646, 544.6568549161261);
+ poly305.ps[1] = Point(2261.795023162646, 604.6568549161261);
+ poly305.ps[2] = Point(2205.795023162646, 604.6568549161261);
+ poly305.ps[3] = Point(2205.795023162646, 544.6568549161261);
+ new ShapeRef(router, poly305, 305);
+
+ Polygon poly306(4);
+ poly306.ps[0] = Point(2111.795023160646, 565.6568549161261);
+ poly306.ps[1] = Point(2111.795023160646, 625.6568549161261);
+ poly306.ps[2] = Point(2055.795023160646, 625.6568549161261);
+ poly306.ps[3] = Point(2055.795023160646, 565.6568549161261);
+ new ShapeRef(router, poly306, 306);
+
+ Polygon poly307(4);
+ poly307.ps[0] = Point(2261.795023162646, 666.6568549161261);
+ poly307.ps[1] = Point(2261.795023162646, 726.6568549161261);
+ poly307.ps[2] = Point(2205.795023162646, 726.6568549161261);
+ poly307.ps[3] = Point(2205.795023162646, 666.6568549161261);
+ new ShapeRef(router, poly307, 307);
+
+ Polygon poly308(4);
+ poly308.ps[0] = Point(1765.12835649098, 291.2568549161261);
+ poly308.ps[1] = Point(1765.12835649098, 351.2568549161261);
+ poly308.ps[2] = Point(1709.12835649098, 351.2568549161261);
+ poly308.ps[3] = Point(1709.12835649098, 291.2568549161261);
+ new ShapeRef(router, poly308, 308);
+
+ Polygon poly309(4);
+ poly309.ps[0] = Point(1655.12835648998, -567.4098117525407);
+ poly309.ps[1] = Point(1655.12835648998, -507.4098117525407);
+ poly309.ps[2] = Point(1599.12835648998, -507.4098117525407);
+ poly309.ps[3] = Point(1599.12835648998, -567.4098117525407);
+ new ShapeRef(router, poly309, 309);
+
+ Polygon poly310(4);
+ poly310.ps[0] = Point(-657.12164351602, -896.9098117525407);
+ poly310.ps[1] = Point(-657.12164351602, -856.9098117525407);
+ poly310.ps[2] = Point(-717.12164351602, -856.9098117525407);
+ poly310.ps[3] = Point(-717.12164351602, -896.9098117525407);
+ new ShapeRef(router, poly310, 310);
+
+ Polygon poly311(4);
+ poly311.ps[0] = Point(-985.62164351602, 275.7568549161261);
+ poly311.ps[1] = Point(-985.62164351602, 335.7568549161261);
+ poly311.ps[2] = Point(-1025.62164351602, 335.7568549161261);
+ poly311.ps[3] = Point(-1025.62164351602, 275.7568549161261);
+ new ShapeRef(router, poly311, 311);
+
+ Polygon poly312(4);
+ poly312.ps[0] = Point(2090.795023161646, -389.9098117525406);
+ poly312.ps[1] = Point(2090.795023161646, -349.9098117525406);
+ poly312.ps[2] = Point(2030.795023161646, -349.9098117525406);
+ poly312.ps[3] = Point(2030.795023161646, -389.9098117525406);
+ new ShapeRef(router, poly312, 312);
+
+ Polygon poly313(4);
+ poly313.ps[0] = Point(2090.295023161646, 1555.606854916126);
+ poly313.ps[1] = Point(2090.295023161646, 1595.606854916126);
+ poly313.ps[2] = Point(2030.295023161646, 1595.606854916126);
+ poly313.ps[3] = Point(2030.295023161646, 1555.606854916126);
+ new ShapeRef(router, poly313, 313);
+
+ Polygon poly314(4);
+ poly314.ps[0] = Point(-1089.62164351702, -157.4098117515406);
+ poly314.ps[1] = Point(-1089.62164351702, -97.40981175154064);
+ poly314.ps[2] = Point(-1129.62164351702, -97.40981175154064);
+ poly314.ps[3] = Point(-1129.62164351702, -157.4098117515406);
+ new ShapeRef(router, poly314, 314);
+#endif
+
+ Polygon poly315(4);
+ poly315.ps[0] = Point(-430.97164351602, -833.9812403239691);
+ poly315.ps[1] = Point(-430.97164351602, -716.9812403239691);
+ poly315.ps[2] = Point(-506.77164351602, -716.9812403239691);
+ poly315.ps[3] = Point(-506.77164351602, -833.9812403239691);
+ new ShapeRef(router, poly315, 315);
+
+#ifdef REST
+ Polygon poly316(4);
+ poly316.ps[0] = Point(134.52835648598, -394.4098117515406);
+ poly316.ps[1] = Point(134.52835648598, -202.4098117515406);
+ poly316.ps[2] = Point(58.72835648597997, -202.4098117515406);
+ poly316.ps[3] = Point(58.72835648597997, -394.4098117515406);
+ new ShapeRef(router, poly316, 316);
+
+ Polygon poly317(4);
+ poly317.ps[0] = Point(-298.87164351602, -189.3098117515406);
+ poly317.ps[1] = Point(-298.87164351602, -129.5098117515406);
+ poly317.ps[2] = Point(-340.87164351602, -129.5098117515406);
+ poly317.ps[3] = Point(-340.87164351602, -189.3098117515406);
+ new ShapeRef(router, poly317, 317);
+
+ Polygon poly318(4);
+ poly318.ps[0] = Point(465.5283564869799, -469.4098117515406);
+ poly318.ps[1] = Point(465.5283564869799, -202.4098117515406);
+ poly318.ps[2] = Point(389.72835648698, -202.4098117515406);
+ poly318.ps[3] = Point(389.72835648698, -469.4098117515406);
+ new ShapeRef(router, poly318, 318);
+
+ Polygon poly319(4);
+ poly319.ps[0] = Point(670.8873402531949, -319.4098117515406);
+ poly319.ps[1] = Point(670.8873402531949, -277.4098117515406);
+ poly319.ps[2] = Point(595.087340253195, -277.4098117515406);
+ poly319.ps[3] = Point(595.087340253195, -319.4098117515406);
+ new ShapeRef(router, poly319, 319);
+
+ Polygon poly320(4);
+ poly320.ps[0] = Point(1100.814070775694, -319.4098117515406);
+ poly320.ps[1] = Point(1100.814070775694, -277.4098117515406);
+ poly320.ps[2] = Point(1025.014070775694, -277.4098117515406);
+ poly320.ps[3] = Point(1025.014070775694, -319.4098117515406);
+ new ShapeRef(router, poly320, 320);
+
+ Polygon poly321(4);
+ poly321.ps[0] = Point(1632.02835648998, -319.4098117515406);
+ poly321.ps[1] = Point(1632.02835648998, -277.4098117515406);
+ poly321.ps[2] = Point(1556.22835648998, -277.4098117515406);
+ poly321.ps[3] = Point(1556.22835648998, -319.4098117515406);
+ new ShapeRef(router, poly321, 321);
+
+ Polygon poly322(4);
+ poly322.ps[0] = Point(11.02835648497997, 45.25685491512604);
+ poly322.ps[1] = Point(11.02835648497997, 87.25685491512604);
+ poly322.ps[2] = Point(-64.77164351502003, 87.25685491512604);
+ poly322.ps[3] = Point(-64.77164351502003, 45.25685491512604);
+ new ShapeRef(router, poly322, 322);
+
+ Polygon poly323(4);
+ poly323.ps[0] = Point(-21.97164351502003, 1551.106854917126);
+ poly323.ps[1] = Point(-21.97164351502003, 1668.106854917126);
+ poly323.ps[2] = Point(-97.77164351502003, 1668.106854917126);
+ poly323.ps[3] = Point(-97.77164351502003, 1551.106854917126);
+ new ShapeRef(router, poly323, 323);
+
+ Polygon poly324(4);
+ poly324.ps[0] = Point(432.5283564869799, 1626.106854917126);
+ poly324.ps[1] = Point(432.5283564869799, 1668.106854917126);
+ poly324.ps[2] = Point(356.72835648698, 1668.106854917126);
+ poly324.ps[3] = Point(356.72835648698, 1626.106854917126);
+ new ShapeRef(router, poly324, 324);
+
+ Polygon poly325(4);
+ poly325.ps[0] = Point(551.62835648798, 1312.706854916126);
+ poly325.ps[1] = Point(551.62835648798, 1372.506854916126);
+ poly325.ps[2] = Point(509.62835648798, 1372.506854916126);
+ poly325.ps[3] = Point(509.62835648798, 1312.706854916126);
+ new ShapeRef(router, poly325, 325);
+
+ Polygon poly326(4);
+ poly326.ps[0] = Point(670.8873402531949, 1626.106854917126);
+ poly326.ps[1] = Point(670.8873402531949, 1668.106854917126);
+ poly326.ps[2] = Point(595.087340253195, 1668.106854917126);
+ poly326.ps[3] = Point(595.087340253195, 1626.106854917126);
+ new ShapeRef(router, poly326, 326);
+
+ Polygon poly327(4);
+ poly327.ps[0] = Point(1632.02835648998, 1626.106854917126);
+ poly327.ps[1] = Point(1632.02835648998, 1668.106854917126);
+ poly327.ps[2] = Point(1556.22835648998, 1668.106854917126);
+ poly327.ps[3] = Point(1556.22835648998, 1626.106854917126);
+ new ShapeRef(router, poly327, 327);
+
+ Polygon poly328(4);
+ poly328.ps[0] = Point(1139.02835648898, 45.25685491512604);
+ poly328.ps[1] = Point(1139.02835648898, 87.25685491512604);
+ poly328.ps[2] = Point(1063.22835648898, 87.25685491512604);
+ poly328.ps[3] = Point(1063.22835648898, 45.25685491512604);
+ new ShapeRef(router, poly328, 328);
+
+ Polygon poly329(4);
+ poly329.ps[0] = Point(803.52835648798, 45.25685491512604);
+ poly329.ps[1] = Point(803.52835648798, 87.25685491512604);
+ poly329.ps[2] = Point(727.72835648798, 87.25685491512604);
+ poly329.ps[3] = Point(727.72835648798, 45.25685491512604);
+ new ShapeRef(router, poly329, 329);
+
+ Polygon poly330(4);
+ poly330.ps[0] = Point(488.5283564869799, 45.25685491512604);
+ poly330.ps[1] = Point(488.5283564869799, 87.25685491512604);
+ poly330.ps[2] = Point(412.72835648698, 87.25685491512604);
+ poly330.ps[3] = Point(412.72835648698, 45.25685491512604);
+ new ShapeRef(router, poly330, 330);
+
+ Polygon poly331(4);
+ poly331.ps[0] = Point(-54.97164351502003, 1122.856854916126);
+ poly331.ps[1] = Point(-54.97164351502003, 1164.856854916126);
+ poly331.ps[2] = Point(-130.77164351502, 1164.856854916126);
+ poly331.ps[3] = Point(-130.77164351502, 1122.856854916126);
+ new ShapeRef(router, poly331, 331);
+
+ Polygon poly332(4);
+ poly332.ps[0] = Point(139.52835648598, 1021.856854916126);
+ poly332.ps[1] = Point(139.52835648598, 1063.856854916126);
+ poly332.ps[2] = Point(63.72835648597997, 1063.856854916126);
+ poly332.ps[3] = Point(63.72835648597997, 1021.856854916126);
+ new ShapeRef(router, poly332, 332);
+
+ Polygon poly333(4);
+ poly333.ps[0] = Point(366.5283564869799, 1122.856854916126);
+ poly333.ps[1] = Point(366.5283564869799, 1164.856854916126);
+ poly333.ps[2] = Point(290.72835648698, 1164.856854916126);
+ poly333.ps[3] = Point(290.72835648698, 1122.856854916126);
+ new ShapeRef(router, poly333, 333);
+
+ Polygon poly334(4);
+ poly334.ps[0] = Point(1003.914070774694, 856.956854917126);
+ poly334.ps[1] = Point(1003.914070774694, 916.7568549171259);
+ poly334.ps[2] = Point(961.9140707746942, 916.7568549171259);
+ poly334.ps[3] = Point(961.9140707746942, 856.956854917126);
+ new ShapeRef(router, poly334, 334);
+
+ Polygon poly335(4);
+ poly335.ps[0] = Point(836.52835648798, 717.8568549161259);
+ poly335.ps[1] = Point(836.52835648798, 759.8568549161259);
+ poly335.ps[2] = Point(760.72835648798, 759.8568549161259);
+ poly335.ps[3] = Point(760.72835648798, 717.8568549161259);
+ new ShapeRef(router, poly335, 335);
+
+ Polygon poly336(4);
+ poly336.ps[0] = Point(399.5283564869799, 717.8568549161259);
+ poly336.ps[1] = Point(399.5283564869799, 759.8568549161259);
+ poly336.ps[2] = Point(323.72835648698, 759.8568549161259);
+ poly336.ps[3] = Point(323.72835648698, 717.8568549161259);
+ new ShapeRef(router, poly336, 336);
+
+ Polygon poly337(4);
+ poly337.ps[0] = Point(2271.695023162647, 614.6568549161261);
+ poly337.ps[1] = Point(2271.695023162647, 656.6568549161261);
+ poly337.ps[2] = Point(2195.895023162646, 656.6568549161261);
+ poly337.ps[3] = Point(2195.895023162646, 614.6568549161261);
+ new ShapeRef(router, poly337, 337);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(181.62835648698, 1360.606854916126), 1);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(115.62835648698, 1254.856854916126), 15);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(181.62835648698, 1360.606854916126), 1);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(181.62835648698, 1143.856854916126), 15);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(1873.12835649198, 33.25685491512604), 15);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(1928.12835649298, 33.25685491512604), 4);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1785.12835649098, 33.25685491512604), 8);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(1873.12835649198, 33.25685491512604), 15);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1958.12835649298, 33.25685491512604), 8);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(2046.795023159646, 33.25685491512604), 15);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+
+ ConnRef *connRef343 = new ConnRef(router, 343);
+ ConnEnd srcPt343(Point(1958.12835649298, 33.25685491512604), 8);
+ connRef343->setSourceEndpoint(srcPt343);
+ ConnEnd dstPt343(Point(1980.795023159646, 99.25685491512604), 15);
+ connRef343->setDestEndpoint(dstPt343);
+ connRef343->setRoutingType((ConnType)2);
+
+ ConnRef *connRef344 = new ConnRef(router, 344);
+ ConnEnd srcPt344(Point(412.62835648698, -319.4098117515406), 4);
+ connRef344->setSourceEndpoint(srcPt344);
+ ConnEnd dstPt344(Point(181.62835648698, -298.4098117515406), 15);
+ connRef344->setDestEndpoint(dstPt344);
+ connRef344->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints344(1);
+ checkpoints344[0] = Checkpoint(Point(389.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef344->setRoutingCheckpoints(checkpoints344);
+
+ ConnRef *connRef345 = new ConnRef(router, 345);
+ ConnEnd srcPt345(Point(442.62835648698, -319.4098117515406), 8);
+ connRef345->setSourceEndpoint(srcPt345);
+ ConnEnd dstPt345(Point(530.62835648798, -298.4098117515406), 15);
+ connRef345->setDestEndpoint(dstPt345);
+ connRef345->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints345(1);
+ checkpoints345[0] = Checkpoint(Point(465.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef345->setRoutingCheckpoints(checkpoints345);
+
+ ConnRef *connRef346 = new ConnRef(router, 346);
+ ConnEnd srcPt346(Point(46.62835648497997, 945.8568549161259), 8);
+ connRef346->setSourceEndpoint(srcPt346);
+ ConnEnd dstPt346(Point(530.62835648798, 1143.856854916126), 15);
+ connRef346->setDestEndpoint(dstPt346);
+ connRef346->setRoutingType((ConnType)2);
+
+ ConnRef *connRef347 = new ConnRef(router, 347);
+ ConnEnd srcPt347(Point(-319.87164351602, 738.8568549161259), 15);
+ connRef347->setSourceEndpoint(srcPt347);
+ ConnEnd dstPt347(Point(16.62835648497997, 945.8568549161259), 4);
+ connRef347->setDestEndpoint(dstPt347);
+ connRef347->setRoutingType((ConnType)2);
+
+ ConnRef *connRef348 = new ConnRef(router, 348);
+ ConnEnd srcPt348(Point(509.62835648798, 1357.606854916126), 2);
+ connRef348->setSourceEndpoint(srcPt348);
+ ConnEnd dstPt348(Point(530.62835648798, 1647.106854917126), 15);
+ connRef348->setDestEndpoint(dstPt348);
+ connRef348->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints348(1);
+ checkpoints348[0] = Checkpoint(Point(530.62835648798, 1372.606854916126), (ConnDirFlags) 15, (ConnDirFlags) 1);
+ connRef348->setRoutingCheckpoints(checkpoints348);
+
+ ConnRef *connRef349 = new ConnRef(router, 349);
+ ConnEnd srcPt349(Point(509.62835648798, 1327.606854916126), 1);
+ connRef349->setSourceEndpoint(srcPt349);
+ ConnEnd dstPt349(Point(530.62835648798, 1143.856854916126), 15);
+ connRef349->setDestEndpoint(dstPt349);
+ connRef349->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints349(1);
+ checkpoints349[0] = Checkpoint(Point(530.62835648798, 1312.606854916126), (ConnDirFlags) 15, (ConnDirFlags) 2);
+ connRef349->setRoutingCheckpoints(checkpoints349);
+
+ ConnRef *connRef350 = new ConnRef(router, 350);
+ ConnEnd srcPt350(Point(-1006.12164351602, -126.4098117515406), 15);
+ connRef350->setSourceEndpoint(srcPt350);
+ ConnEnd dstPt350(Point(-1006.12164351602, -250.4098117515406), 2);
+ connRef350->setDestEndpoint(dstPt350);
+ connRef350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef351 = new ConnRef(router, 351);
+ ConnEnd srcPt351(Point(-1006.12164351602, -280.4098117515406), 1);
+ connRef351->setSourceEndpoint(srcPt351);
+ ConnEnd dstPt351(Point(-1006.12164351602, -431.4098117525406), 15);
+ connRef351->setDestEndpoint(dstPt351);
+ connRef351->setRoutingType((ConnType)2);
+
+ ConnRef *connRef352 = new ConnRef(router, 352);
+ ConnEnd srcPt352(Point(-1006.12164351602, -512.4098117525407), 1);
+ connRef352->setSourceEndpoint(srcPt352);
+ ConnEnd dstPt352(Point(-1006.12164351602, -737.9812403239691), 15);
+ connRef352->setDestEndpoint(dstPt352);
+ connRef352->setRoutingType((ConnType)2);
+
+ ConnRef *connRef353 = new ConnRef(router, 353);
+ ConnEnd srcPt353(Point(-1006.12164351602, -431.4098117525406), 15);
+ connRef353->setSourceEndpoint(srcPt353);
+ ConnEnd dstPt353(Point(-1006.12164351602, -482.4098117525407), 2);
+ connRef353->setDestEndpoint(dstPt353);
+ connRef353->setRoutingType((ConnType)2);
+
+ ConnRef *connRef354 = new ConnRef(router, 354);
+ ConnEnd srcPt354(Point(-823.12164351602, -737.9812403239691), 4);
+ connRef354->setSourceEndpoint(srcPt354);
+ ConnEnd dstPt354(Point(-1006.12164351602, -737.9812403239691), 15);
+ connRef354->setDestEndpoint(dstPt354);
+ connRef354->setRoutingType((ConnType)2);
+
+ ConnRef *connRef355 = new ConnRef(router, 355);
+ ConnEnd srcPt355(Point(-695.12164351602, -737.9812403239691), 15);
+ connRef355->setSourceEndpoint(srcPt355);
+ ConnEnd dstPt355(Point(-793.12164351602, -737.9812403239691), 8);
+ connRef355->setDestEndpoint(dstPt355);
+ connRef355->setRoutingType((ConnType)2);
+
+ ConnRef *connRef356 = new ConnRef(router, 356);
+ ConnEnd srcPt356(Point(-453.87164351602, -833.9812403239691), 8);
+ connRef356->setSourceEndpoint(srcPt356);
+ ConnEnd dstPt356(Point(-226.87164351502, -737.9812403239691), 15);
+ connRef356->setDestEndpoint(dstPt356);
+ connRef356->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints356(1);
+ checkpoints356[0] = Checkpoint(Point(-430.87164351602, -737.9812403239691), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef356->setRoutingCheckpoints(checkpoints356);
+
+ ConnRef *connRef357 = new ConnRef(router, 357);
+ ConnEnd srcPt357(Point(-453.87164351602, -758.9812403239691), 8);
+ connRef357->setSourceEndpoint(srcPt357);
+ ConnEnd dstPt357(Point(-226.87164351502, -737.9812403239691), 15);
+ connRef357->setDestEndpoint(dstPt357);
+ connRef357->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints357(1);
+ checkpoints357[0] = Checkpoint(Point(-430.87164351602, -737.9812403239691), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef357->setRoutingCheckpoints(checkpoints357);
+
+ ConnRef *connRef358 = new ConnRef(router, 358);
+ ConnEnd srcPt358(Point(100.62835648698, -737.9812403239691), 4);
+ connRef358->setSourceEndpoint(srcPt358);
+ ConnEnd dstPt358(Point(-125.87164351502, -877.4098117525407), 15);
+ connRef358->setDestEndpoint(dstPt358);
+ connRef358->setRoutingType((ConnType)2);
+
+ ConnRef *connRef359 = new ConnRef(router, 359);
+ ConnEnd srcPt359(Point(262.62835648698, -737.9812403239691), 15);
+ connRef359->setSourceEndpoint(srcPt359);
+ ConnEnd dstPt359(Point(130.62835648698, -737.9812403239691), 8);
+ connRef359->setDestEndpoint(dstPt359);
+ connRef359->setRoutingType((ConnType)2);
+
+ ConnRef *connRef360 = new ConnRef(router, 360);
+ ConnEnd srcPt360(Point(100.62835648698, -737.9812403239691), 4);
+ connRef360->setSourceEndpoint(srcPt360);
+ ConnEnd dstPt360(Point(-226.87164351502, -737.9812403239691), 15);
+ connRef360->setDestEndpoint(dstPt360);
+ connRef360->setRoutingType((ConnType)2);
+
+ ConnRef *connRef361 = new ConnRef(router, 361);
+ ConnEnd srcPt361(Point(-486.87164351602, -497.4098117525407), 8);
+ connRef361->setSourceEndpoint(srcPt361);
+ ConnEnd dstPt361(Point(181.62835648698, -298.4098117515406), 15);
+ connRef361->setDestEndpoint(dstPt361);
+ connRef361->setRoutingType((ConnType)2);
+
+ ConnRef *connRef362 = new ConnRef(router, 362);
+ ConnEnd srcPt362(Point(-695.12164351602, 66.25685491512604), 15);
+ connRef362->setSourceEndpoint(srcPt362);
+ ConnEnd dstPt362(Point(-516.87164351602, -497.4098117525407), 4);
+ connRef362->setDestEndpoint(dstPt362);
+ connRef362->setRoutingType((ConnType)2);
+
+ ConnRef *connRef363 = new ConnRef(router, 363);
+ ConnEnd srcPt363(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef363->setSourceEndpoint(srcPt363);
+ ConnEnd dstPt363(Point(-486.87164351602, -378.4098117525406), 8);
+ connRef363->setDestEndpoint(dstPt363);
+ connRef363->setRoutingType((ConnType)2);
+
+ ConnRef *connRef364 = new ConnRef(router, 364);
+ ConnEnd srcPt364(Point(-516.87164351602, -378.4098117525406), 4);
+ connRef364->setSourceEndpoint(srcPt364);
+ ConnEnd dstPt364(Point(-695.12164351602, 66.25685491512604), 15);
+ connRef364->setDestEndpoint(dstPt364);
+ connRef364->setRoutingType((ConnType)2);
+
+ ConnRef *connRef365 = new ConnRef(router, 365);
+ ConnEnd srcPt365(Point(81.62835648597996, -277.4098117515406), 4);
+ connRef365->setSourceEndpoint(srcPt365);
+ ConnEnd dstPt365(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef365->setDestEndpoint(dstPt365);
+ connRef365->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints365(1);
+ checkpoints365[0] = Checkpoint(Point(58.62835648597996, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef365->setRoutingCheckpoints(checkpoints365);
+
+ ConnRef *connRef366 = new ConnRef(router, 366);
+ ConnEnd srcPt366(Point(111.62835648598, -277.4098117515406), 8);
+ connRef366->setSourceEndpoint(srcPt366);
+ ConnEnd dstPt366(Point(181.62835648698, -298.4098117515406), 15);
+ connRef366->setDestEndpoint(dstPt366);
+ connRef366->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints366(1);
+ checkpoints366[0] = Checkpoint(Point(134.62835648598, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef366->setRoutingCheckpoints(checkpoints366);
+
+ ConnRef *connRef367 = new ConnRef(router, 367);
+ ConnEnd srcPt367(Point(81.62835648597996, -202.4098117515406), 4);
+ connRef367->setSourceEndpoint(srcPt367);
+ ConnEnd dstPt367(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef367->setDestEndpoint(dstPt367);
+ connRef367->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints367(1);
+ checkpoints367[0] = Checkpoint(Point(58.62835648597996, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef367->setRoutingCheckpoints(checkpoints367);
+
+ ConnRef *connRef368 = new ConnRef(router, 368);
+ ConnEnd srcPt368(Point(111.62835648598, -202.4098117515406), 8);
+ connRef368->setSourceEndpoint(srcPt368);
+ ConnEnd dstPt368(Point(181.62835648698, -298.4098117515406), 15);
+ connRef368->setDestEndpoint(dstPt368);
+ connRef368->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints368(1);
+ checkpoints368[0] = Checkpoint(Point(134.62835648598, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef368->setRoutingCheckpoints(checkpoints368);
+
+ ConnRef *connRef369 = new ConnRef(router, 369);
+ ConnEnd srcPt369(Point(412.62835648698, -277.4098117515406), 4);
+ connRef369->setSourceEndpoint(srcPt369);
+ ConnEnd dstPt369(Point(181.62835648698, -298.4098117515406), 15);
+ connRef369->setDestEndpoint(dstPt369);
+ connRef369->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints369(1);
+ checkpoints369[0] = Checkpoint(Point(389.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef369->setRoutingCheckpoints(checkpoints369);
+
+ ConnRef *connRef370 = new ConnRef(router, 370);
+ ConnEnd srcPt370(Point(442.62835648698, -277.4098117515406), 8);
+ connRef370->setSourceEndpoint(srcPt370);
+ ConnEnd dstPt370(Point(530.62835648798, -298.4098117515406), 15);
+ connRef370->setDestEndpoint(dstPt370);
+ connRef370->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints370(1);
+ checkpoints370[0] = Checkpoint(Point(465.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef370->setRoutingCheckpoints(checkpoints370);
+
+ ConnRef *connRef371 = new ConnRef(router, 371);
+ ConnEnd srcPt371(Point(412.62835648698, -202.4098117515406), 4);
+ connRef371->setSourceEndpoint(srcPt371);
+ ConnEnd dstPt371(Point(181.62835648698, -298.4098117515406), 15);
+ connRef371->setDestEndpoint(dstPt371);
+ connRef371->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints371(1);
+ checkpoints371[0] = Checkpoint(Point(389.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef371->setRoutingCheckpoints(checkpoints371);
+
+ ConnRef *connRef372 = new ConnRef(router, 372);
+ ConnEnd srcPt372(Point(442.62835648698, -202.4098117515406), 8);
+ connRef372->setSourceEndpoint(srcPt372);
+ ConnEnd dstPt372(Point(530.62835648798, -298.4098117515406), 15);
+ connRef372->setDestEndpoint(dstPt372);
+ connRef372->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints372(1);
+ checkpoints372[0] = Checkpoint(Point(465.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef372->setRoutingCheckpoints(checkpoints372);
+
+ ConnRef *connRef373 = new ConnRef(router, 373);
+ ConnEnd srcPt373(Point(-298.87164351602, -174.4098117515406), 1);
+ connRef373->setSourceEndpoint(srcPt373);
+ ConnEnd dstPt373(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef373->setDestEndpoint(dstPt373);
+ connRef373->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints373(1);
+ checkpoints373[0] = Checkpoint(Point(-319.87164351602, -189.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 2);
+ connRef373->setRoutingCheckpoints(checkpoints373);
+
+ ConnRef *connRef374 = new ConnRef(router, 374);
+ ConnEnd srcPt374(Point(-298.87164351602, -144.4098117515406), 2);
+ connRef374->setSourceEndpoint(srcPt374);
+ ConnEnd dstPt374(Point(-319.87164351602, 66.25685491512604), 15);
+ connRef374->setDestEndpoint(dstPt374);
+ connRef374->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints374(1);
+ checkpoints374[0] = Checkpoint(Point(-319.87164351602, -129.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 1);
+ connRef374->setRoutingCheckpoints(checkpoints374);
+
+ ConnRef *connRef375 = new ConnRef(router, 375);
+ ConnEnd srcPt375(Point(-340.87164351602, -174.4098117515406), 1);
+ connRef375->setSourceEndpoint(srcPt375);
+ ConnEnd dstPt375(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef375->setDestEndpoint(dstPt375);
+ connRef375->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints375(1);
+ checkpoints375[0] = Checkpoint(Point(-319.87164351602, -189.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 2);
+ connRef375->setRoutingCheckpoints(checkpoints375);
+
+ ConnRef *connRef376 = new ConnRef(router, 376);
+ ConnEnd srcPt376(Point(-340.87164351602, -144.4098117515406), 2);
+ connRef376->setSourceEndpoint(srcPt376);
+ ConnEnd dstPt376(Point(-319.87164351602, 66.25685491512604), 15);
+ connRef376->setDestEndpoint(dstPt376);
+ connRef376->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints376(1);
+ checkpoints376[0] = Checkpoint(Point(-319.87164351602, -129.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 1);
+ connRef376->setRoutingCheckpoints(checkpoints376);
+
+ ConnRef *connRef377 = new ConnRef(router, 377);
+ ConnEnd srcPt377(Point(81.62835648597996, -394.4098117515406), 4);
+ connRef377->setSourceEndpoint(srcPt377);
+ ConnEnd dstPt377(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef377->setDestEndpoint(dstPt377);
+ connRef377->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints377(1);
+ checkpoints377[0] = Checkpoint(Point(58.62835648597996, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef377->setRoutingCheckpoints(checkpoints377);
+
+ ConnRef *connRef378 = new ConnRef(router, 378);
+ ConnEnd srcPt378(Point(111.62835648598, -394.4098117515406), 8);
+ connRef378->setSourceEndpoint(srcPt378);
+ ConnEnd dstPt378(Point(181.62835648698, -298.4098117515406), 15);
+ connRef378->setDestEndpoint(dstPt378);
+ connRef378->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints378(1);
+ checkpoints378[0] = Checkpoint(Point(134.62835648598, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef378->setRoutingCheckpoints(checkpoints378);
+
+ ConnRef *connRef379 = new ConnRef(router, 379);
+ ConnEnd srcPt379(Point(81.62835648597996, -319.4098117515406), 4);
+ connRef379->setSourceEndpoint(srcPt379);
+ ConnEnd dstPt379(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef379->setDestEndpoint(dstPt379);
+ connRef379->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints379(1);
+ checkpoints379[0] = Checkpoint(Point(58.62835648597996, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef379->setRoutingCheckpoints(checkpoints379);
+
+ ConnRef *connRef380 = new ConnRef(router, 380);
+ ConnEnd srcPt380(Point(111.62835648598, -319.4098117515406), 8);
+ connRef380->setSourceEndpoint(srcPt380);
+ ConnEnd dstPt380(Point(181.62835648698, -298.4098117515406), 15);
+ connRef380->setDestEndpoint(dstPt380);
+ connRef380->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints380(1);
+ checkpoints380[0] = Checkpoint(Point(134.62835648598, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef380->setRoutingCheckpoints(checkpoints380);
+
+ ConnRef *connRef381 = new ConnRef(router, 381);
+ ConnEnd srcPt381(Point(442.62835648698, -469.4098117515406), 8);
+ connRef381->setSourceEndpoint(srcPt381);
+ ConnEnd dstPt381(Point(530.62835648798, -298.4098117515406), 15);
+ connRef381->setDestEndpoint(dstPt381);
+ connRef381->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints381(1);
+ checkpoints381[0] = Checkpoint(Point(465.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef381->setRoutingCheckpoints(checkpoints381);
+
+ ConnRef *connRef382 = new ConnRef(router, 382);
+ ConnEnd srcPt382(Point(442.62835648698, -394.4098117515406), 8);
+ connRef382->setSourceEndpoint(srcPt382);
+ ConnEnd dstPt382(Point(530.62835648798, -298.4098117515406), 15);
+ connRef382->setDestEndpoint(dstPt382);
+ connRef382->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints382(1);
+ checkpoints382[0] = Checkpoint(Point(465.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef382->setRoutingCheckpoints(checkpoints382);
+
+ ConnRef *connRef383 = new ConnRef(router, 383);
+ ConnEnd srcPt383(Point(530.62835648798, -298.4098117515406), 15);
+ connRef383->setSourceEndpoint(srcPt383);
+ ConnEnd dstPt383(Point(830.62835648898, -232.4098117515406), 4);
+ connRef383->setDestEndpoint(dstPt383);
+ connRef383->setRoutingType((ConnType)2);
+
+ ConnRef *connRef384 = new ConnRef(router, 384);
+ ConnEnd srcPt384(Point(860.62835648898, -232.4098117515406), 8);
+ connRef384->setSourceEndpoint(srcPt384);
+ ConnEnd dstPt384(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef384->setDestEndpoint(dstPt384);
+ connRef384->setRoutingType((ConnType)2);
+
+ ConnRef *connRef385 = new ConnRef(router, 385);
+ ConnEnd srcPt385(Point(617.9873402531949, -277.4098117515406), 4);
+ connRef385->setSourceEndpoint(srcPt385);
+ ConnEnd dstPt385(Point(530.62835648798, -298.4098117515406), 15);
+ connRef385->setDestEndpoint(dstPt385);
+ connRef385->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints385(1);
+ checkpoints385[0] = Checkpoint(Point(594.9873402531949, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef385->setRoutingCheckpoints(checkpoints385);
+
+ ConnRef *connRef386 = new ConnRef(router, 386);
+ ConnEnd srcPt386(Point(647.9873402531949, -277.4098117515406), 8);
+ connRef386->setSourceEndpoint(srcPt386);
+ ConnEnd dstPt386(Point(982.9140707746942, -298.4098117515406), 15);
+ connRef386->setDestEndpoint(dstPt386);
+ connRef386->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints386(1);
+ checkpoints386[0] = Checkpoint(Point(670.9873402531949, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef386->setRoutingCheckpoints(checkpoints386);
+
+ ConnRef *connRef387 = new ConnRef(router, 387);
+ ConnEnd srcPt387(Point(617.9873402531949, -319.4098117515406), 4);
+ connRef387->setSourceEndpoint(srcPt387);
+ ConnEnd dstPt387(Point(530.62835648798, -298.4098117515406), 15);
+ connRef387->setDestEndpoint(dstPt387);
+ connRef387->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints387(1);
+ checkpoints387[0] = Checkpoint(Point(594.9873402531949, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef387->setRoutingCheckpoints(checkpoints387);
+
+ ConnRef *connRef388 = new ConnRef(router, 388);
+ ConnEnd srcPt388(Point(647.9873402531949, -319.4098117515406), 8);
+ connRef388->setSourceEndpoint(srcPt388);
+ ConnEnd dstPt388(Point(982.9140707746942, -298.4098117515406), 15);
+ connRef388->setDestEndpoint(dstPt388);
+ connRef388->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints388(1);
+ checkpoints388[0] = Checkpoint(Point(670.9873402531949, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef388->setRoutingCheckpoints(checkpoints388);
+
+ ConnRef *connRef389 = new ConnRef(router, 389);
+ ConnEnd srcPt389(Point(1047.914070775694, -319.4098117515406), 4);
+ connRef389->setSourceEndpoint(srcPt389);
+ ConnEnd dstPt389(Point(982.9140707746942, -298.4098117515406), 15);
+ connRef389->setDestEndpoint(dstPt389);
+ connRef389->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints389(1);
+ checkpoints389[0] = Checkpoint(Point(1024.914070775694, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef389->setRoutingCheckpoints(checkpoints389);
+
+ ConnRef *connRef390 = new ConnRef(router, 390);
+ ConnEnd srcPt390(Point(1077.914070775694, -319.4098117515406), 8);
+ connRef390->setSourceEndpoint(srcPt390);
+ ConnEnd dstPt390(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef390->setDestEndpoint(dstPt390);
+ connRef390->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints390(1);
+ checkpoints390[0] = Checkpoint(Point(1100.914070775694, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef390->setRoutingCheckpoints(checkpoints390);
+
+ ConnRef *connRef391 = new ConnRef(router, 391);
+ ConnEnd srcPt391(Point(1047.914070775694, -277.4098117515406), 4);
+ connRef391->setSourceEndpoint(srcPt391);
+ ConnEnd dstPt391(Point(982.9140707746942, -298.4098117515406), 15);
+ connRef391->setDestEndpoint(dstPt391);
+ connRef391->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints391(1);
+ checkpoints391[0] = Checkpoint(Point(1024.914070775694, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef391->setRoutingCheckpoints(checkpoints391);
+
+ ConnRef *connRef392 = new ConnRef(router, 392);
+ ConnEnd srcPt392(Point(1077.914070775694, -277.4098117515406), 8);
+ connRef392->setSourceEndpoint(srcPt392);
+ ConnEnd dstPt392(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef392->setDestEndpoint(dstPt392);
+ connRef392->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints392(1);
+ checkpoints392[0] = Checkpoint(Point(1100.914070775694, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef392->setRoutingCheckpoints(checkpoints392);
+
+ ConnRef *connRef393 = new ConnRef(router, 393);
+ ConnEnd srcPt393(Point(1579.12835648998, -319.4098117515406), 4);
+ connRef393->setSourceEndpoint(srcPt393);
+ ConnEnd dstPt393(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef393->setDestEndpoint(dstPt393);
+ connRef393->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints393(1);
+ checkpoints393[0] = Checkpoint(Point(1556.12835648998, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef393->setRoutingCheckpoints(checkpoints393);
+
+ ConnRef *connRef394 = new ConnRef(router, 394);
+ ConnEnd srcPt394(Point(1609.12835648998, -319.4098117515406), 8);
+ connRef394->setSourceEndpoint(srcPt394);
+ ConnEnd dstPt394(Point(1700.12835648998, -298.4098117515406), 15);
+ connRef394->setDestEndpoint(dstPt394);
+ connRef394->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints394(1);
+ checkpoints394[0] = Checkpoint(Point(1632.12835648998, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef394->setRoutingCheckpoints(checkpoints394);
+
+ ConnRef *connRef395 = new ConnRef(router, 395);
+ ConnEnd srcPt395(Point(1579.12835648998, -277.4098117515406), 4);
+ connRef395->setSourceEndpoint(srcPt395);
+ ConnEnd dstPt395(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef395->setDestEndpoint(dstPt395);
+ connRef395->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints395(1);
+ checkpoints395[0] = Checkpoint(Point(1556.12835648998, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef395->setRoutingCheckpoints(checkpoints395);
+
+ ConnRef *connRef396 = new ConnRef(router, 396);
+ ConnEnd srcPt396(Point(1609.12835648998, -277.4098117515406), 8);
+ connRef396->setSourceEndpoint(srcPt396);
+ ConnEnd dstPt396(Point(1700.12835648998, -298.4098117515406), 15);
+ connRef396->setDestEndpoint(dstPt396);
+ connRef396->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints396(1);
+ checkpoints396[0] = Checkpoint(Point(1632.12835648998, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef396->setRoutingCheckpoints(checkpoints396);
+
+ ConnRef *connRef397 = new ConnRef(router, 397);
+ ConnEnd srcPt397(Point(1785.12835649098, -298.4098117515406), 8);
+ connRef397->setSourceEndpoint(srcPt397);
+ ConnEnd dstPt397(Point(1873.12835649198, -298.4098117515406), 15);
+ connRef397->setDestEndpoint(dstPt397);
+ connRef397->setRoutingType((ConnType)2);
+
+ ConnRef *connRef398 = new ConnRef(router, 398);
+ ConnEnd srcPt398(Point(1958.12835649298, -298.4098117515406), 8);
+ connRef398->setSourceEndpoint(srcPt398);
+ ConnEnd dstPt398(Point(2046.795023159646, -298.4098117515406), 15);
+ connRef398->setDestEndpoint(dstPt398);
+ connRef398->setRoutingType((ConnType)2);
+
+ ConnRef *connRef399 = new ConnRef(router, 399);
+ ConnEnd srcPt399(Point(-516.87164351602, 99.25685491512604), 4);
+ connRef399->setSourceEndpoint(srcPt399);
+ ConnEnd dstPt399(Point(-695.12164351602, 66.25685491512604), 15);
+ connRef399->setDestEndpoint(dstPt399);
+ connRef399->setRoutingType((ConnType)2);
+
+ ConnRef *connRef400 = new ConnRef(router, 400);
+ ConnEnd srcPt400(Point(-319.87164351602, 66.25685491512604), 15);
+ connRef400->setSourceEndpoint(srcPt400);
+ ConnEnd dstPt400(Point(-486.87164351602, 99.25685491512604), 8);
+ connRef400->setDestEndpoint(dstPt400);
+ connRef400->setRoutingType((ConnType)2);
+
+ ConnRef *connRef401 = new ConnRef(router, 401);
+ ConnEnd srcPt401(Point(-486.87164351602, 201.256854916126), 8);
+ connRef401->setSourceEndpoint(srcPt401);
+ ConnEnd dstPt401(Point(181.62835648698, 66.25685491512604), 15);
+ connRef401->setDestEndpoint(dstPt401);
+ connRef401->setRoutingType((ConnType)2);
+
+ ConnRef *connRef402 = new ConnRef(router, 402);
+ ConnEnd srcPt402(Point(-41.87164351502003, 45.25685491512604), 4);
+ connRef402->setSourceEndpoint(srcPt402);
+ ConnEnd dstPt402(Point(-319.87164351602, 66.25685491512604), 15);
+ connRef402->setDestEndpoint(dstPt402);
+ connRef402->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints402(1);
+ checkpoints402[0] = Checkpoint(Point(-64.87164351502003, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef402->setRoutingCheckpoints(checkpoints402);
+
+ ConnRef *connRef403 = new ConnRef(router, 403);
+ ConnEnd srcPt403(Point(-11.87164351502003, 45.25685491512604), 8);
+ connRef403->setSourceEndpoint(srcPt403);
+ ConnEnd dstPt403(Point(181.62835648698, 66.25685491512604), 15);
+ connRef403->setDestEndpoint(dstPt403);
+ connRef403->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints403(1);
+ checkpoints403[0] = Checkpoint(Point(11.12835648497997, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef403->setRoutingCheckpoints(checkpoints403);
+
+ ConnRef *connRef404 = new ConnRef(router, 404);
+ ConnEnd srcPt404(Point(-41.87164351502003, 87.25685491512604), 4);
+ connRef404->setSourceEndpoint(srcPt404);
+ ConnEnd dstPt404(Point(-319.87164351602, 66.25685491512604), 15);
+ connRef404->setDestEndpoint(dstPt404);
+ connRef404->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints404(1);
+ checkpoints404[0] = Checkpoint(Point(-64.87164351502003, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef404->setRoutingCheckpoints(checkpoints404);
+
+ ConnRef *connRef405 = new ConnRef(router, 405);
+ ConnEnd srcPt405(Point(-11.87164351502003, 87.25685491512604), 8);
+ connRef405->setSourceEndpoint(srcPt405);
+ ConnEnd dstPt405(Point(181.62835648698, 66.25685491512604), 15);
+ connRef405->setDestEndpoint(dstPt405);
+ connRef405->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints405(1);
+ checkpoints405[0] = Checkpoint(Point(11.12835648497997, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef405->setRoutingCheckpoints(checkpoints405);
+
+ ConnRef *connRef406 = new ConnRef(router, 406);
+ ConnEnd srcPt406(Point(465.62835648698, 87.25685491512604), 8);
+ connRef406->setSourceEndpoint(srcPt406);
+ ConnEnd dstPt406(Point(530.62835648798, 66.25685491512604), 15);
+ connRef406->setDestEndpoint(dstPt406);
+ connRef406->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints406(1);
+ checkpoints406[0] = Checkpoint(Point(488.62835648698, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef406->setRoutingCheckpoints(checkpoints406);
+
+ ConnRef *connRef407 = new ConnRef(router, 407);
+ ConnEnd srcPt407(Point(435.62835648698, 87.25685491512604), 4);
+ connRef407->setSourceEndpoint(srcPt407);
+ ConnEnd dstPt407(Point(181.62835648698, 66.25685491512604), 15);
+ connRef407->setDestEndpoint(dstPt407);
+ connRef407->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints407(1);
+ checkpoints407[0] = Checkpoint(Point(412.62835648698, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef407->setRoutingCheckpoints(checkpoints407);
+
+ ConnRef *connRef408 = new ConnRef(router, 408);
+ ConnEnd srcPt408(Point(465.62835648698, 45.25685491512604), 8);
+ connRef408->setSourceEndpoint(srcPt408);
+ ConnEnd dstPt408(Point(530.62835648798, 66.25685491512604), 15);
+ connRef408->setDestEndpoint(dstPt408);
+ connRef408->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints408(1);
+ checkpoints408[0] = Checkpoint(Point(488.62835648698, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef408->setRoutingCheckpoints(checkpoints408);
+
+ ConnRef *connRef409 = new ConnRef(router, 409);
+ ConnEnd srcPt409(Point(435.62835648698, 45.25685491512604), 4);
+ connRef409->setSourceEndpoint(srcPt409);
+ ConnEnd dstPt409(Point(181.62835648698, 66.25685491512604), 15);
+ connRef409->setDestEndpoint(dstPt409);
+ connRef409->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints409(1);
+ checkpoints409[0] = Checkpoint(Point(412.62835648698, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef409->setRoutingCheckpoints(checkpoints409);
+
+ ConnRef *connRef410 = new ConnRef(router, 410);
+ ConnEnd srcPt410(Point(780.62835648798, 45.25685491512604), 8);
+ connRef410->setSourceEndpoint(srcPt410);
+ ConnEnd dstPt410(Point(982.9140707746942, 66.25685491512604), 15);
+ connRef410->setDestEndpoint(dstPt410);
+ connRef410->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints410(1);
+ checkpoints410[0] = Checkpoint(Point(803.62835648798, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef410->setRoutingCheckpoints(checkpoints410);
+
+ ConnRef *connRef411 = new ConnRef(router, 411);
+ ConnEnd srcPt411(Point(750.62835648798, 45.25685491512604), 4);
+ connRef411->setSourceEndpoint(srcPt411);
+ ConnEnd dstPt411(Point(530.62835648798, 66.25685491512604), 15);
+ connRef411->setDestEndpoint(dstPt411);
+ connRef411->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints411(1);
+ checkpoints411[0] = Checkpoint(Point(727.62835648798, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef411->setRoutingCheckpoints(checkpoints411);
+
+ ConnRef *connRef412 = new ConnRef(router, 412);
+ ConnEnd srcPt412(Point(780.62835648798, 87.25685491512604), 8);
+ connRef412->setSourceEndpoint(srcPt412);
+ ConnEnd dstPt412(Point(982.9140707746942, 66.25685491512604), 15);
+ connRef412->setDestEndpoint(dstPt412);
+ connRef412->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints412(1);
+ checkpoints412[0] = Checkpoint(Point(803.62835648798, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef412->setRoutingCheckpoints(checkpoints412);
+
+ ConnRef *connRef413 = new ConnRef(router, 413);
+ ConnEnd srcPt413(Point(750.62835648798, 87.25685491512604), 4);
+ connRef413->setSourceEndpoint(srcPt413);
+ ConnEnd dstPt413(Point(530.62835648798, 66.25685491512604), 15);
+ connRef413->setDestEndpoint(dstPt413);
+ connRef413->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints413(1);
+ checkpoints413[0] = Checkpoint(Point(727.62835648798, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef413->setRoutingCheckpoints(checkpoints413);
+
+ ConnRef *connRef414 = new ConnRef(router, 414);
+ ConnEnd srcPt414(Point(982.9140707746942, -141.4098117515406), 1);
+ connRef414->setSourceEndpoint(srcPt414);
+ ConnEnd dstPt414(Point(982.9140707746942, -298.4098117515406), 15);
+ connRef414->setDestEndpoint(dstPt414);
+ connRef414->setRoutingType((ConnType)2);
+
+ ConnRef *connRef415 = new ConnRef(router, 415);
+ ConnEnd srcPt415(Point(982.9140707746942, 66.25685491512604), 15);
+ connRef415->setSourceEndpoint(srcPt415);
+ ConnEnd dstPt415(Point(982.9140707746942, -111.4098117515406), 2);
+ connRef415->setDestEndpoint(dstPt415);
+ connRef415->setRoutingType((ConnType)2);
+
+ ConnRef *connRef416 = new ConnRef(router, 416);
+ ConnEnd srcPt416(Point(1429.12835648898, -141.4098117515406), 1);
+ connRef416->setSourceEndpoint(srcPt416);
+ ConnEnd dstPt416(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef416->setDestEndpoint(dstPt416);
+ connRef416->setRoutingType((ConnType)2);
+
+ ConnRef *connRef417 = new ConnRef(router, 417);
+ ConnEnd srcPt417(Point(1264.12835648898, 66.25685491512604), 15);
+ connRef417->setSourceEndpoint(srcPt417);
+ ConnEnd dstPt417(Point(1429.12835648898, -111.4098117515406), 2);
+ connRef417->setDestEndpoint(dstPt417);
+ connRef417->setRoutingType((ConnType)2);
+
+ ConnRef *connRef418 = new ConnRef(router, 418);
+ ConnEnd srcPt418(Point(1116.12835648898, 45.25685491512604), 8);
+ connRef418->setSourceEndpoint(srcPt418);
+ ConnEnd dstPt418(Point(1264.12835648898, 66.25685491512604), 15);
+ connRef418->setDestEndpoint(dstPt418);
+ connRef418->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints418(1);
+ checkpoints418[0] = Checkpoint(Point(1139.12835648898, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef418->setRoutingCheckpoints(checkpoints418);
+
+ ConnRef *connRef419 = new ConnRef(router, 419);
+ ConnEnd srcPt419(Point(1086.12835648898, 45.25685491512604), 4);
+ connRef419->setSourceEndpoint(srcPt419);
+ ConnEnd dstPt419(Point(982.9140707746942, 66.25685491512604), 15);
+ connRef419->setDestEndpoint(dstPt419);
+ connRef419->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints419(1);
+ checkpoints419[0] = Checkpoint(Point(1063.12835648898, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef419->setRoutingCheckpoints(checkpoints419);
+
+ ConnRef *connRef420 = new ConnRef(router, 420);
+ ConnEnd srcPt420(Point(1116.12835648898, 87.25685491512604), 8);
+ connRef420->setSourceEndpoint(srcPt420);
+ ConnEnd dstPt420(Point(1264.12835648898, 66.25685491512604), 15);
+ connRef420->setDestEndpoint(dstPt420);
+ connRef420->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints420(1);
+ checkpoints420[0] = Checkpoint(Point(1139.12835648898, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef420->setRoutingCheckpoints(checkpoints420);
+
+ ConnRef *connRef421 = new ConnRef(router, 421);
+ ConnEnd srcPt421(Point(1086.12835648898, 87.25685491512604), 4);
+ connRef421->setSourceEndpoint(srcPt421);
+ ConnEnd dstPt421(Point(982.9140707746942, 66.25685491512604), 15);
+ connRef421->setDestEndpoint(dstPt421);
+ connRef421->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints421(1);
+ checkpoints421[0] = Checkpoint(Point(1063.12835648898, 66.25685491512604), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef421->setRoutingCheckpoints(checkpoints421);
+
+ ConnRef *connRef422 = new ConnRef(router, 422);
+ ConnEnd srcPt422(Point(714.62835648798, 255.2568549161261), 8);
+ connRef422->setSourceEndpoint(srcPt422);
+ ConnEnd dstPt422(Point(1264.12835648898, 66.25685491512604), 15);
+ connRef422->setDestEndpoint(dstPt422);
+ connRef422->setRoutingType((ConnType)2);
+
+ ConnRef *connRef423 = new ConnRef(router, 423);
+ ConnEnd srcPt423(Point(530.62835648798, 66.25685491512604), 15);
+ connRef423->setSourceEndpoint(srcPt423);
+ ConnEnd dstPt423(Point(684.62835648798, 255.2568549161261), 4);
+ connRef423->setDestEndpoint(dstPt423);
+ connRef423->setRoutingType((ConnType)2);
+
+ ConnRef *connRef424 = new ConnRef(router, 424);
+ ConnEnd srcPt424(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef424->setSourceEndpoint(srcPt424);
+ ConnEnd dstPt424(Point(1612.12835648998, 33.25685491512604), 4);
+ connRef424->setDestEndpoint(dstPt424);
+ connRef424->setRoutingType((ConnType)2);
+
+ ConnRef *connRef425 = new ConnRef(router, 425);
+ ConnEnd srcPt425(Point(1642.12835648998, 33.25685491512604), 8);
+ connRef425->setSourceEndpoint(srcPt425);
+ ConnEnd dstPt425(Point(1700.12835648998, 33.25685491512604), 15);
+ connRef425->setDestEndpoint(dstPt425);
+ connRef425->setRoutingType((ConnType)2);
+
+ ConnRef *connRef426 = new ConnRef(router, 426);
+ ConnEnd srcPt426(Point(-874.12164351602, 756.8568549161259), 1);
+ connRef426->setSourceEndpoint(srcPt426);
+ ConnEnd dstPt426(Point(-841.12164351602, 668.6568549161261), 15);
+ connRef426->setDestEndpoint(dstPt426);
+ connRef426->setRoutingType((ConnType)2);
+
+ ConnRef *connRef427 = new ConnRef(router, 427);
+ ConnEnd srcPt427(Point(-728.12164351602, 786.8568549161259), 2);
+ connRef427->setSourceEndpoint(srcPt427);
+ ConnEnd dstPt427(Point(-841.12164351602, 890.8568549161259), 15);
+ connRef427->setDestEndpoint(dstPt427);
+ connRef427->setRoutingType((ConnType)2);
+
+ ConnRef *connRef428 = new ConnRef(router, 428);
+ ConnEnd srcPt428(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef428->setSourceEndpoint(srcPt428);
+ ConnEnd dstPt428(Point(-728.12164351602, 756.8568549161259), 1);
+ connRef428->setDestEndpoint(dstPt428);
+ connRef428->setRoutingType((ConnType)2);
+
+ ConnRef *connRef429 = new ConnRef(router, 429);
+ ConnEnd srcPt429(Point(-728.12164351602, 786.8568549161259), 2);
+ connRef429->setSourceEndpoint(srcPt429);
+ ConnEnd dstPt429(Point(-319.87164351602, 1143.856854916126), 15);
+ connRef429->setDestEndpoint(dstPt429);
+ connRef429->setRoutingType((ConnType)2);
+
+ ConnRef *connRef430 = new ConnRef(router, 430);
+ ConnEnd srcPt430(Point(-534.87164351602, 505.756854916126), 1);
+ connRef430->setSourceEndpoint(srcPt430);
+ ConnEnd dstPt430(Point(-435.87164351602, 454.7568549161261), 15);
+ connRef430->setDestEndpoint(dstPt430);
+ connRef430->setRoutingType((ConnType)2);
+
+ ConnRef *connRef431 = new ConnRef(router, 431);
+ ConnEnd srcPt431(Point(-319.87164351602, 535.756854916126), 2);
+ connRef431->setSourceEndpoint(srcPt431);
+ ConnEnd dstPt431(Point(-319.87164351602, 738.8568549161259), 15);
+ connRef431->setDestEndpoint(dstPt431);
+ connRef431->setRoutingType((ConnType)2);
+
+ ConnRef *connRef432 = new ConnRef(router, 432);
+ ConnEnd srcPt432(Point(-319.87164351602, 535.756854916126), 2);
+ connRef432->setSourceEndpoint(srcPt432);
+ ConnEnd dstPt432(Point(-435.87164351602, 635.6568549161261), 15);
+ connRef432->setDestEndpoint(dstPt432);
+ connRef432->setRoutingType((ConnType)2);
+
+ ConnRef *connRef433 = new ConnRef(router, 433);
+ ConnEnd srcPt433(Point(-125.87164351502, 505.756854916126), 1);
+ connRef433->setSourceEndpoint(srcPt433);
+ ConnEnd dstPt433(Point(115.62835648698, 454.7568549161261), 15);
+ connRef433->setDestEndpoint(dstPt433);
+ connRef433->setRoutingType((ConnType)2);
+
+ ConnRef *connRef434 = new ConnRef(router, 434);
+ ConnEnd srcPt434(Point(181.62835648698, 535.756854916126), 2);
+ connRef434->setSourceEndpoint(srcPt434);
+ ConnEnd dstPt434(Point(181.62835648698, 738.8568549161259), 15);
+ connRef434->setDestEndpoint(dstPt434);
+ connRef434->setRoutingType((ConnType)2);
+
+ ConnRef *connRef435 = new ConnRef(router, 435);
+ ConnEnd srcPt435(Point(181.62835648698, 535.756854916126), 2);
+ connRef435->setSourceEndpoint(srcPt435);
+ ConnEnd dstPt435(Point(115.62835648698, 635.6568549161261), 15);
+ connRef435->setDestEndpoint(dstPt435);
+ connRef435->setRoutingType((ConnType)2);
+
+ ConnRef *connRef436 = new ConnRef(router, 436);
+ ConnEnd srcPt436(Point(16.62835648497997, 738.8568549161259), 4);
+ connRef436->setSourceEndpoint(srcPt436);
+ ConnEnd dstPt436(Point(-319.87164351602, 738.8568549161259), 15);
+ connRef436->setDestEndpoint(dstPt436);
+ connRef436->setRoutingType((ConnType)2);
+
+ ConnRef *connRef437 = new ConnRef(router, 437);
+ ConnEnd srcPt437(Point(-352.87164351602, 993.8568549161259), 2);
+ connRef437->setSourceEndpoint(srcPt437);
+ ConnEnd dstPt437(Point(-319.87164351602, 1143.856854916126), 15);
+ connRef437->setDestEndpoint(dstPt437);
+ connRef437->setRoutingType((ConnType)2);
+
+ ConnRef *connRef438 = new ConnRef(router, 438);
+ ConnEnd srcPt438(Point(-319.87164351602, 738.8568549161259), 15);
+ connRef438->setSourceEndpoint(srcPt438);
+ ConnEnd dstPt438(Point(-352.87164351602, 963.8568549161259), 1);
+ connRef438->setDestEndpoint(dstPt438);
+ connRef438->setRoutingType((ConnType)2);
+
+ ConnRef *connRef439 = new ConnRef(router, 439);
+ ConnEnd srcPt439(Point(-695.12164351602, 1059.856854916126), 2);
+ connRef439->setSourceEndpoint(srcPt439);
+ ConnEnd dstPt439(Point(-695.12164351602, 1647.106854917126), 15);
+ connRef439->setDestEndpoint(dstPt439);
+ connRef439->setRoutingType((ConnType)2);
+
+ ConnRef *connRef440 = new ConnRef(router, 440);
+ ConnEnd srcPt440(Point(-319.87164351602, 738.8568549161259), 15);
+ connRef440->setSourceEndpoint(srcPt440);
+ ConnEnd dstPt440(Point(-695.12164351602, 1029.856854916126), 1);
+ connRef440->setDestEndpoint(dstPt440);
+ connRef440->setRoutingType((ConnType)2);
+
+ ConnRef *connRef441 = new ConnRef(router, 441);
+ ConnEnd srcPt441(Point(376.62835648698, 717.8568549161259), 8);
+ connRef441->setSourceEndpoint(srcPt441);
+ ConnEnd dstPt441(Point(530.62835648798, 738.8568549161259), 15);
+ connRef441->setDestEndpoint(dstPt441);
+ connRef441->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints441(1);
+ checkpoints441[0] = Checkpoint(Point(399.62835648698, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef441->setRoutingCheckpoints(checkpoints441);
+
+ ConnRef *connRef442 = new ConnRef(router, 442);
+ ConnEnd srcPt442(Point(346.62835648698, 717.8568549161259), 4);
+ connRef442->setSourceEndpoint(srcPt442);
+ ConnEnd dstPt442(Point(181.62835648698, 738.8568549161259), 15);
+ connRef442->setDestEndpoint(dstPt442);
+ connRef442->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints442(1);
+ checkpoints442[0] = Checkpoint(Point(323.62835648698, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef442->setRoutingCheckpoints(checkpoints442);
+
+ ConnRef *connRef443 = new ConnRef(router, 443);
+ ConnEnd srcPt443(Point(530.62835648798, 738.8568549161259), 15);
+ connRef443->setSourceEndpoint(srcPt443);
+ ConnEnd dstPt443(Point(651.62835648798, 579.006854916126), 4);
+ connRef443->setDestEndpoint(dstPt443);
+ connRef443->setRoutingType((ConnType)2);
+
+ ConnRef *connRef444 = new ConnRef(router, 444);
+ ConnEnd srcPt444(Point(681.62835648798, 579.006854916126), 8);
+ connRef444->setSourceEndpoint(srcPt444);
+ ConnEnd dstPt444(Point(878.62835648898, 579.006854916126), 15);
+ connRef444->setDestEndpoint(dstPt444);
+ connRef444->setRoutingType((ConnType)2);
+
+ ConnRef *connRef445 = new ConnRef(router, 445);
+ ConnEnd srcPt445(Point(163.62835648698, 804.8568549161259), 8);
+ connRef445->setSourceEndpoint(srcPt445);
+ ConnEnd dstPt445(Point(530.62835648798, 738.8568549161259), 15);
+ connRef445->setDestEndpoint(dstPt445);
+ connRef445->setRoutingType((ConnType)2);
+
+ ConnRef *connRef446 = new ConnRef(router, 446);
+ ConnEnd srcPt446(Point(813.62835648798, 717.8568549161259), 8);
+ connRef446->setSourceEndpoint(srcPt446);
+ ConnEnd dstPt446(Point(982.9140707746942, 738.8568549161259), 15);
+ connRef446->setDestEndpoint(dstPt446);
+ connRef446->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints446(1);
+ checkpoints446[0] = Checkpoint(Point(836.62835648798, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef446->setRoutingCheckpoints(checkpoints446);
+
+ ConnRef *connRef447 = new ConnRef(router, 447);
+ ConnEnd srcPt447(Point(783.62835648798, 717.8568549161259), 4);
+ connRef447->setSourceEndpoint(srcPt447);
+ ConnEnd dstPt447(Point(530.62835648798, 738.8568549161259), 15);
+ connRef447->setDestEndpoint(dstPt447);
+ connRef447->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints447(1);
+ checkpoints447[0] = Checkpoint(Point(760.62835648798, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef447->setRoutingCheckpoints(checkpoints447);
+
+ ConnRef *connRef448 = new ConnRef(router, 448);
+ ConnEnd srcPt448(Point(813.62835648798, 759.8568549161259), 8);
+ connRef448->setSourceEndpoint(srcPt448);
+ ConnEnd dstPt448(Point(982.9140707746942, 738.8568549161259), 15);
+ connRef448->setDestEndpoint(dstPt448);
+ connRef448->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints448(1);
+ checkpoints448[0] = Checkpoint(Point(836.62835648798, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef448->setRoutingCheckpoints(checkpoints448);
+
+ ConnRef *connRef449 = new ConnRef(router, 449);
+ ConnEnd srcPt449(Point(783.62835648798, 759.8568549161259), 4);
+ connRef449->setSourceEndpoint(srcPt449);
+ ConnEnd dstPt449(Point(530.62835648798, 738.8568549161259), 15);
+ connRef449->setDestEndpoint(dstPt449);
+ connRef449->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints449(1);
+ checkpoints449[0] = Checkpoint(Point(760.62835648798, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef449->setRoutingCheckpoints(checkpoints449);
+
+ ConnRef *connRef450 = new ConnRef(router, 450);
+ ConnEnd srcPt450(Point(596.62835648798, 872.8568549161259), 2);
+ connRef450->setSourceEndpoint(srcPt450);
+ ConnEnd dstPt450(Point(530.62835648798, 1143.856854916126), 15);
+ connRef450->setDestEndpoint(dstPt450);
+ connRef450->setRoutingType((ConnType)2);
+
+ ConnRef *connRef451 = new ConnRef(router, 451);
+ ConnEnd srcPt451(Point(530.62835648798, 738.8568549161259), 15);
+ connRef451->setSourceEndpoint(srcPt451);
+ ConnEnd dstPt451(Point(596.62835648798, 842.8568549161259), 1);
+ connRef451->setDestEndpoint(dstPt451);
+ connRef451->setRoutingType((ConnType)2);
+
+ ConnRef *connRef452 = new ConnRef(router, 452);
+ ConnEnd srcPt452(Point(86.62835648597996, 1021.856854916126), 4);
+ connRef452->setSourceEndpoint(srcPt452);
+ ConnEnd dstPt452(Point(-319.87164351602, 1143.856854916126), 15);
+ connRef452->setDestEndpoint(dstPt452);
+ connRef452->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints452(1);
+ checkpoints452[0] = Checkpoint(Point(63.62835648597996, 1042.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef452->setRoutingCheckpoints(checkpoints452);
+
+ ConnRef *connRef453 = new ConnRef(router, 453);
+ ConnEnd srcPt453(Point(116.62835648598, 1021.856854916126), 8);
+ connRef453->setSourceEndpoint(srcPt453);
+ ConnEnd dstPt453(Point(530.62835648798, 1143.856854916126), 15);
+ connRef453->setDestEndpoint(dstPt453);
+ connRef453->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints453(1);
+ checkpoints453[0] = Checkpoint(Point(139.62835648598, 1042.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef453->setRoutingCheckpoints(checkpoints453);
+
+ ConnRef *connRef454 = new ConnRef(router, 454);
+ ConnEnd srcPt454(Point(-107.87164351502, 1164.856854916126), 4);
+ connRef454->setSourceEndpoint(srcPt454);
+ ConnEnd dstPt454(Point(-319.87164351602, 1143.856854916126), 15);
+ connRef454->setDestEndpoint(dstPt454);
+ connRef454->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints454(1);
+ checkpoints454[0] = Checkpoint(Point(-130.87164351502, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef454->setRoutingCheckpoints(checkpoints454);
+
+ ConnRef *connRef455 = new ConnRef(router, 455);
+ ConnEnd srcPt455(Point(-77.87164351502003, 1164.856854916126), 8);
+ connRef455->setSourceEndpoint(srcPt455);
+ ConnEnd dstPt455(Point(181.62835648698, 1143.856854916126), 15);
+ connRef455->setDestEndpoint(dstPt455);
+ connRef455->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints455(1);
+ checkpoints455[0] = Checkpoint(Point(-54.87164351502003, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef455->setRoutingCheckpoints(checkpoints455);
+
+ ConnRef *connRef456 = new ConnRef(router, 456);
+ ConnEnd srcPt456(Point(-107.87164351502, 1122.856854916126), 4);
+ connRef456->setSourceEndpoint(srcPt456);
+ ConnEnd dstPt456(Point(-319.87164351602, 1143.856854916126), 15);
+ connRef456->setDestEndpoint(dstPt456);
+ connRef456->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints456(1);
+ checkpoints456[0] = Checkpoint(Point(-130.87164351502, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef456->setRoutingCheckpoints(checkpoints456);
+
+ ConnRef *connRef457 = new ConnRef(router, 457);
+ ConnEnd srcPt457(Point(-77.87164351502003, 1122.856854916126), 8);
+ connRef457->setSourceEndpoint(srcPt457);
+ ConnEnd dstPt457(Point(181.62835648698, 1143.856854916126), 15);
+ connRef457->setDestEndpoint(dstPt457);
+ connRef457->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints457(1);
+ checkpoints457[0] = Checkpoint(Point(-54.87164351502003, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef457->setRoutingCheckpoints(checkpoints457);
+
+ ConnRef *connRef458 = new ConnRef(router, 458);
+ ConnEnd srcPt458(Point(313.62835648698, 1122.856854916126), 4);
+ connRef458->setSourceEndpoint(srcPt458);
+ ConnEnd dstPt458(Point(181.62835648698, 1143.856854916126), 15);
+ connRef458->setDestEndpoint(dstPt458);
+ connRef458->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints458(1);
+ checkpoints458[0] = Checkpoint(Point(290.62835648698, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef458->setRoutingCheckpoints(checkpoints458);
+
+ ConnRef *connRef459 = new ConnRef(router, 459);
+ ConnEnd srcPt459(Point(343.62835648698, 1122.856854916126), 8);
+ connRef459->setSourceEndpoint(srcPt459);
+ ConnEnd dstPt459(Point(530.62835648798, 1143.856854916126), 15);
+ connRef459->setDestEndpoint(dstPt459);
+ connRef459->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints459(1);
+ checkpoints459[0] = Checkpoint(Point(366.62835648698, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef459->setRoutingCheckpoints(checkpoints459);
+
+ ConnRef *connRef460 = new ConnRef(router, 460);
+ ConnEnd srcPt460(Point(830.62835648898, 1110.856854916126), 4);
+ connRef460->setSourceEndpoint(srcPt460);
+ ConnEnd dstPt460(Point(530.62835648798, 1143.856854916126), 15);
+ connRef460->setDestEndpoint(dstPt460);
+ connRef460->setRoutingType((ConnType)2);
+
+ ConnRef *connRef461 = new ConnRef(router, 461);
+ ConnEnd srcPt461(Point(982.9140707746942, 1143.856854916126), 15);
+ connRef461->setSourceEndpoint(srcPt461);
+ ConnEnd dstPt461(Point(860.62835648898, 1110.856854916126), 8);
+ connRef461->setDestEndpoint(dstPt461);
+ connRef461->setRoutingType((ConnType)2);
+
+ ConnRef *connRef462 = new ConnRef(router, 462);
+ ConnEnd srcPt462(Point(961.9140707746942, 901.8568549171259), 2);
+ connRef462->setSourceEndpoint(srcPt462);
+ ConnEnd dstPt462(Point(982.9140707746942, 1143.856854916126), 15);
+ connRef462->setDestEndpoint(dstPt462);
+ connRef462->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints462(1);
+ checkpoints462[0] = Checkpoint(Point(982.9140707746942, 916.8568549171259), (ConnDirFlags) 15, (ConnDirFlags) 1);
+ connRef462->setRoutingCheckpoints(checkpoints462);
+
+ ConnRef *connRef463 = new ConnRef(router, 463);
+ ConnEnd srcPt463(Point(1167.12835648898, 996.8568549161259), 1);
+ connRef463->setSourceEndpoint(srcPt463);
+ ConnEnd dstPt463(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef463->setDestEndpoint(dstPt463);
+ connRef463->setRoutingType((ConnType)2);
+
+ ConnRef *connRef464 = new ConnRef(router, 464);
+ ConnEnd srcPt464(Point(982.9140707746942, 1143.856854916126), 15);
+ connRef464->setSourceEndpoint(srcPt464);
+ ConnEnd dstPt464(Point(1167.12835648898, 1026.856854916126), 2);
+ connRef464->setDestEndpoint(dstPt464);
+ connRef464->setRoutingType((ConnType)2);
+
+ ConnRef *connRef465 = new ConnRef(router, 465);
+ ConnEnd srcPt465(Point(1167.12835648898, 1095.856854916126), 1);
+ connRef465->setSourceEndpoint(srcPt465);
+ ConnEnd dstPt465(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef465->setDestEndpoint(dstPt465);
+ connRef465->setRoutingType((ConnType)2);
+
+ ConnRef *connRef466 = new ConnRef(router, 466);
+ ConnEnd srcPt466(Point(982.9140707746942, 1143.856854916126), 15);
+ connRef466->setSourceEndpoint(srcPt466);
+ ConnEnd dstPt466(Point(1167.12835648898, 1125.856854916126), 2);
+ connRef466->setDestEndpoint(dstPt466);
+ connRef466->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467 = new ConnRef(router, 467);
+ ConnEnd srcPt467(Point(1182.12835648898, 1176.856854916126), 8);
+ connRef467->setSourceEndpoint(srcPt467);
+ ConnEnd dstPt467(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef467->setDestEndpoint(dstPt467);
+ connRef467->setRoutingType((ConnType)2);
+
+ ConnRef *connRef468 = new ConnRef(router, 468);
+ ConnEnd srcPt468(Point(982.9140707746942, 1143.856854916126), 15);
+ connRef468->setSourceEndpoint(srcPt468);
+ ConnEnd dstPt468(Point(1152.12835648898, 1176.856854916126), 4);
+ connRef468->setDestEndpoint(dstPt468);
+ connRef468->setRoutingType((ConnType)2);
+
+ ConnRef *connRef469 = new ConnRef(router, 469);
+ ConnEnd srcPt469(Point(31.62835648497997, 1390.606854916126), 2);
+ connRef469->setSourceEndpoint(srcPt469);
+ ConnEnd dstPt469(Point(115.62835648698, 1466.106854916126), 15);
+ connRef469->setDestEndpoint(dstPt469);
+ connRef469->setRoutingType((ConnType)2);
+
+ ConnRef *connRef470 = new ConnRef(router, 470);
+ ConnEnd srcPt470(Point(551.62835648798, 1357.606854916126), 2);
+ connRef470->setSourceEndpoint(srcPt470);
+ ConnEnd dstPt470(Point(530.62835648798, 1647.106854917126), 15);
+ connRef470->setDestEndpoint(dstPt470);
+ connRef470->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints470(1);
+ checkpoints470[0] = Checkpoint(Point(530.62835648798, 1372.606854916126), (ConnDirFlags) 15, (ConnDirFlags) 1);
+ connRef470->setRoutingCheckpoints(checkpoints470);
+
+ ConnRef *connRef471 = new ConnRef(router, 471);
+ ConnEnd srcPt471(Point(551.62835648798, 1327.606854916126), 1);
+ connRef471->setSourceEndpoint(srcPt471);
+ ConnEnd dstPt471(Point(530.62835648798, 1143.856854916126), 15);
+ connRef471->setDestEndpoint(dstPt471);
+ connRef471->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints471(1);
+ checkpoints471[0] = Checkpoint(Point(530.62835648798, 1312.606854916126), (ConnDirFlags) 15, (ConnDirFlags) 2);
+ connRef471->setRoutingCheckpoints(checkpoints471);
+
+ ConnRef *connRef472 = new ConnRef(router, 472);
+ ConnEnd srcPt472(Point(-516.87164351602, 1647.106854917126), 4);
+ connRef472->setSourceEndpoint(srcPt472);
+ ConnEnd dstPt472(Point(-695.12164351602, 1647.106854917126), 15);
+ connRef472->setDestEndpoint(dstPt472);
+ connRef472->setRoutingType((ConnType)2);
+
+ ConnRef *connRef473 = new ConnRef(router, 473);
+ ConnEnd srcPt473(Point(-319.87164351602, 1647.106854917126), 15);
+ connRef473->setSourceEndpoint(srcPt473);
+ ConnEnd dstPt473(Point(-486.87164351602, 1647.106854917126), 8);
+ connRef473->setDestEndpoint(dstPt473);
+ connRef473->setRoutingType((ConnType)2);
+
+ ConnRef *connRef474 = new ConnRef(router, 474);
+ ConnEnd srcPt474(Point(-74.87164351502003, 1668.106854917126), 4);
+ connRef474->setSourceEndpoint(srcPt474);
+ ConnEnd dstPt474(Point(-319.87164351602, 1647.106854917126), 15);
+ connRef474->setDestEndpoint(dstPt474);
+ connRef474->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints474(1);
+ checkpoints474[0] = Checkpoint(Point(-97.87164351502003, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef474->setRoutingCheckpoints(checkpoints474);
+
+ ConnRef *connRef475 = new ConnRef(router, 475);
+ ConnEnd srcPt475(Point(-44.87164351502003, 1668.106854917126), 8);
+ connRef475->setSourceEndpoint(srcPt475);
+ ConnEnd dstPt475(Point(181.62835648698, 1647.106854917126), 15);
+ connRef475->setDestEndpoint(dstPt475);
+ connRef475->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints475(1);
+ checkpoints475[0] = Checkpoint(Point(-21.87164351502003, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef475->setRoutingCheckpoints(checkpoints475);
+
+ ConnRef *connRef476 = new ConnRef(router, 476);
+ ConnEnd srcPt476(Point(-44.87164351502003, 1551.106854917126), 8);
+ connRef476->setSourceEndpoint(srcPt476);
+ ConnEnd dstPt476(Point(181.62835648698, 1647.106854917126), 15);
+ connRef476->setDestEndpoint(dstPt476);
+ connRef476->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints476(1);
+ checkpoints476[0] = Checkpoint(Point(-21.87164351502003, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef476->setRoutingCheckpoints(checkpoints476);
+
+ ConnRef *connRef477 = new ConnRef(router, 477);
+ ConnEnd srcPt477(Point(-44.87164351502003, 1626.106854917126), 8);
+ connRef477->setSourceEndpoint(srcPt477);
+ ConnEnd dstPt477(Point(181.62835648698, 1647.106854917126), 15);
+ connRef477->setDestEndpoint(dstPt477);
+ connRef477->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints477(1);
+ checkpoints477[0] = Checkpoint(Point(-21.87164351502003, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef477->setRoutingCheckpoints(checkpoints477);
+
+ ConnRef *connRef478 = new ConnRef(router, 478);
+ ConnEnd srcPt478(Point(379.62835648698, 1668.106854917126), 4);
+ connRef478->setSourceEndpoint(srcPt478);
+ ConnEnd dstPt478(Point(181.62835648698, 1647.106854917126), 15);
+ connRef478->setDestEndpoint(dstPt478);
+ connRef478->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints478(1);
+ checkpoints478[0] = Checkpoint(Point(356.62835648698, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef478->setRoutingCheckpoints(checkpoints478);
+
+ ConnRef *connRef479 = new ConnRef(router, 479);
+ ConnEnd srcPt479(Point(409.62835648698, 1668.106854917126), 8);
+ connRef479->setSourceEndpoint(srcPt479);
+ ConnEnd dstPt479(Point(530.62835648798, 1647.106854917126), 15);
+ connRef479->setDestEndpoint(dstPt479);
+ connRef479->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints479(1);
+ checkpoints479[0] = Checkpoint(Point(432.62835648698, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef479->setRoutingCheckpoints(checkpoints479);
+
+ ConnRef *connRef480 = new ConnRef(router, 480);
+ ConnEnd srcPt480(Point(409.62835648698, 1626.106854917126), 8);
+ connRef480->setSourceEndpoint(srcPt480);
+ ConnEnd dstPt480(Point(530.62835648798, 1647.106854917126), 15);
+ connRef480->setDestEndpoint(dstPt480);
+ connRef480->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints480(1);
+ checkpoints480[0] = Checkpoint(Point(432.62835648698, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef480->setRoutingCheckpoints(checkpoints480);
+
+ ConnRef *connRef481 = new ConnRef(router, 481);
+ ConnEnd srcPt481(Point(647.9873402531949, 1626.106854917126), 8);
+ connRef481->setSourceEndpoint(srcPt481);
+ ConnEnd dstPt481(Point(982.9140707746942, 1647.106854917126), 15);
+ connRef481->setDestEndpoint(dstPt481);
+ connRef481->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints481(1);
+ checkpoints481[0] = Checkpoint(Point(670.9873402531949, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef481->setRoutingCheckpoints(checkpoints481);
+
+ ConnRef *connRef482 = new ConnRef(router, 482);
+ ConnEnd srcPt482(Point(617.9873402531949, 1668.106854917126), 4);
+ connRef482->setSourceEndpoint(srcPt482);
+ ConnEnd dstPt482(Point(530.62835648798, 1647.106854917126), 15);
+ connRef482->setDestEndpoint(dstPt482);
+ connRef482->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints482(1);
+ checkpoints482[0] = Checkpoint(Point(594.9873402531949, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef482->setRoutingCheckpoints(checkpoints482);
+
+ ConnRef *connRef483 = new ConnRef(router, 483);
+ ConnEnd srcPt483(Point(647.9873402531949, 1668.106854917126), 8);
+ connRef483->setSourceEndpoint(srcPt483);
+ ConnEnd dstPt483(Point(982.9140707746942, 1647.106854917126), 15);
+ connRef483->setDestEndpoint(dstPt483);
+ connRef483->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints483(1);
+ checkpoints483[0] = Checkpoint(Point(670.9873402531949, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef483->setRoutingCheckpoints(checkpoints483);
+
+ ConnRef *connRef484 = new ConnRef(router, 484);
+ ConnEnd srcPt484(Point(1182.12835648898, 1567.106854916126), 8);
+ connRef484->setSourceEndpoint(srcPt484);
+ ConnEnd dstPt484(Point(1514.12835648898, 1647.106854917126), 15);
+ connRef484->setDestEndpoint(dstPt484);
+ connRef484->setRoutingType((ConnType)2);
+
+ ConnRef *connRef485 = new ConnRef(router, 485);
+ ConnEnd srcPt485(Point(1182.12835648898, 1706.773521583792), 8);
+ connRef485->setSourceEndpoint(srcPt485);
+ ConnEnd dstPt485(Point(1396.12835648898, 1739.773521583792), 15);
+ connRef485->setDestEndpoint(dstPt485);
+ connRef485->setRoutingType((ConnType)2);
+
+ ConnRef *connRef486 = new ConnRef(router, 486);
+ ConnEnd srcPt486(Point(1182.12835648898, 1706.773521583792), 8);
+ connRef486->setSourceEndpoint(srcPt486);
+ ConnEnd dstPt486(Point(1514.12835648898, 1647.106854917126), 15);
+ connRef486->setDestEndpoint(dstPt486);
+ connRef486->setRoutingType((ConnType)2);
+
+ ConnRef *connRef487 = new ConnRef(router, 487);
+ ConnEnd srcPt487(Point(1345.12835648898, 1433.106854916126), 8);
+ connRef487->setSourceEndpoint(srcPt487);
+ ConnEnd dstPt487(Point(1514.12835648898, 1647.106854917126), 15);
+ connRef487->setDestEndpoint(dstPt487);
+ connRef487->setRoutingType((ConnType)2);
+
+ ConnRef *connRef488 = new ConnRef(router, 488);
+ ConnEnd srcPt488(Point(1642.12835648998, 1309.606854916126), 8);
+ connRef488->setSourceEndpoint(srcPt488);
+ ConnEnd dstPt488(Point(1700.12835648998, 1309.606854916126), 15);
+ connRef488->setDestEndpoint(dstPt488);
+ connRef488->setRoutingType((ConnType)2);
+
+ ConnRef *connRef489 = new ConnRef(router, 489);
+ ConnEnd srcPt489(Point(1514.12835648898, 1647.106854917126), 15);
+ connRef489->setSourceEndpoint(srcPt489);
+ ConnEnd dstPt489(Point(1612.12835648998, 1309.606854916126), 4);
+ connRef489->setDestEndpoint(dstPt489);
+ connRef489->setRoutingType((ConnType)2);
+
+ ConnRef *connRef490 = new ConnRef(router, 490);
+ ConnEnd srcPt490(Point(1579.12835648998, 1626.106854917126), 4);
+ connRef490->setSourceEndpoint(srcPt490);
+ ConnEnd dstPt490(Point(1514.12835648898, 1647.106854917126), 15);
+ connRef490->setDestEndpoint(dstPt490);
+ connRef490->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints490(1);
+ checkpoints490[0] = Checkpoint(Point(1556.12835648998, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef490->setRoutingCheckpoints(checkpoints490);
+
+ ConnRef *connRef491 = new ConnRef(router, 491);
+ ConnEnd srcPt491(Point(1609.12835648998, 1626.106854917126), 8);
+ connRef491->setSourceEndpoint(srcPt491);
+ ConnEnd dstPt491(Point(1700.12835648998, 1647.106854917126), 15);
+ connRef491->setDestEndpoint(dstPt491);
+ connRef491->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints491(1);
+ checkpoints491[0] = Checkpoint(Point(1632.12835648998, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef491->setRoutingCheckpoints(checkpoints491);
+
+ ConnRef *connRef492 = new ConnRef(router, 492);
+ ConnEnd srcPt492(Point(1579.12835648998, 1668.106854917126), 4);
+ connRef492->setSourceEndpoint(srcPt492);
+ ConnEnd dstPt492(Point(1514.12835648898, 1647.106854917126), 15);
+ connRef492->setDestEndpoint(dstPt492);
+ connRef492->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints492(1);
+ checkpoints492[0] = Checkpoint(Point(1556.12835648998, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef492->setRoutingCheckpoints(checkpoints492);
+
+ ConnRef *connRef493 = new ConnRef(router, 493);
+ ConnEnd srcPt493(Point(1609.12835648998, 1668.106854917126), 8);
+ connRef493->setSourceEndpoint(srcPt493);
+ ConnEnd dstPt493(Point(1700.12835648998, 1647.106854917126), 15);
+ connRef493->setDestEndpoint(dstPt493);
+ connRef493->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints493(1);
+ checkpoints493[0] = Checkpoint(Point(1632.12835648998, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef493->setRoutingCheckpoints(checkpoints493);
+
+ ConnRef *connRef494 = new ConnRef(router, 494);
+ ConnEnd srcPt494(Point(1785.12835649098, 1309.606854916126), 8);
+ connRef494->setSourceEndpoint(srcPt494);
+ ConnEnd dstPt494(Point(1873.12835649198, 1309.606854916126), 15);
+ connRef494->setDestEndpoint(dstPt494);
+ connRef494->setRoutingType((ConnType)2);
+
+ ConnRef *connRef495 = new ConnRef(router, 495);
+ ConnEnd srcPt495(Point(1785.12835649098, 1647.106854917126), 8);
+ connRef495->setSourceEndpoint(srcPt495);
+ ConnEnd dstPt495(Point(1873.12835649198, 1647.106854917126), 15);
+ connRef495->setDestEndpoint(dstPt495);
+ connRef495->setRoutingType((ConnType)2);
+
+ ConnRef *connRef496 = new ConnRef(router, 496);
+ ConnEnd srcPt496(Point(1958.12835649298, 1647.106854917126), 8);
+ connRef496->setSourceEndpoint(srcPt496);
+ ConnEnd dstPt496(Point(2046.795023159646, 1647.106854917126), 15);
+ connRef496->setDestEndpoint(dstPt496);
+ connRef496->setRoutingType((ConnType)2);
+
+ ConnRef *connRef497 = new ConnRef(router, 497);
+ ConnEnd srcPt497(Point(-453.87164351602, -716.9812403239691), 8);
+ connRef497->setSourceEndpoint(srcPt497);
+ ConnEnd dstPt497(Point(-226.87164351502, -737.9812403239691), 15);
+ connRef497->setDestEndpoint(dstPt497);
+ connRef497->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints497(1);
+ checkpoints497[0] = Checkpoint(Point(-430.87164351602, -737.9812403239691), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef497->setRoutingCheckpoints(checkpoints497);
+
+ ConnRef *connRef498 = new ConnRef(router, 498);
+ ConnEnd srcPt498(Point(376.62835648698, 759.8568549161259), 8);
+ connRef498->setSourceEndpoint(srcPt498);
+ ConnEnd dstPt498(Point(530.62835648798, 738.8568549161259), 15);
+ connRef498->setDestEndpoint(dstPt498);
+ connRef498->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints498(1);
+ checkpoints498[0] = Checkpoint(Point(399.62835648698, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef498->setRoutingCheckpoints(checkpoints498);
+
+ ConnRef *connRef499 = new ConnRef(router, 499);
+ ConnEnd srcPt499(Point(313.62835648698, 1164.856854916126), 4);
+ connRef499->setSourceEndpoint(srcPt499);
+ ConnEnd dstPt499(Point(181.62835648698, 1143.856854916126), 15);
+ connRef499->setDestEndpoint(dstPt499);
+ connRef499->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints499(1);
+ checkpoints499[0] = Checkpoint(Point(290.62835648698, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef499->setRoutingCheckpoints(checkpoints499);
+
+ ConnRef *connRef500 = new ConnRef(router, 500);
+ ConnEnd srcPt500(Point(343.62835648698, 1164.856854916126), 8);
+ connRef500->setSourceEndpoint(srcPt500);
+ ConnEnd dstPt500(Point(530.62835648798, 1143.856854916126), 15);
+ connRef500->setDestEndpoint(dstPt500);
+ connRef500->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints500(1);
+ checkpoints500[0] = Checkpoint(Point(366.62835648698, 1143.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef500->setRoutingCheckpoints(checkpoints500);
+
+ ConnRef *connRef501 = new ConnRef(router, 501);
+ ConnEnd srcPt501(Point(1003.914070774694, 901.8568549171259), 2);
+ connRef501->setSourceEndpoint(srcPt501);
+ ConnEnd dstPt501(Point(982.9140707746942, 1143.856854916126), 15);
+ connRef501->setDestEndpoint(dstPt501);
+ connRef501->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints501(1);
+ checkpoints501[0] = Checkpoint(Point(982.9140707746942, 916.8568549171259), (ConnDirFlags) 15, (ConnDirFlags) 1);
+ connRef501->setRoutingCheckpoints(checkpoints501);
+
+ ConnRef *connRef502 = new ConnRef(router, 502);
+ ConnEnd srcPt502(Point(1642.12835648998, -618.4098117525407), 8);
+ connRef502->setSourceEndpoint(srcPt502);
+ ConnEnd dstPt502(Point(1700.12835648998, -558.5348117525407), 15);
+ connRef502->setDestEndpoint(dstPt502);
+ connRef502->setRoutingType((ConnType)2);
+
+ ConnRef *connRef503 = new ConnRef(router, 503);
+ ConnEnd srcPt503(Point(1788.12835649098, -558.5348117525407), 4);
+ connRef503->setSourceEndpoint(srcPt503);
+ ConnEnd dstPt503(Point(1700.12835648998, -558.5348117525407), 15);
+ connRef503->setDestEndpoint(dstPt503);
+ connRef503->setRoutingType((ConnType)2);
+
+ ConnRef *connRef504 = new ConnRef(router, 504);
+ ConnEnd srcPt504(Point(475.62835648698, -737.9812403239691), 8);
+ connRef504->setSourceEndpoint(srcPt504);
+ ConnEnd dstPt504(Point(530.62835648798, -298.4098117515406), 15);
+ connRef504->setDestEndpoint(dstPt504);
+ connRef504->setRoutingType((ConnType)2);
+
+ ConnRef *connRef505 = new ConnRef(router, 505);
+ ConnEnd srcPt505(Point(717.62835648798, -807.4098117525407), 4);
+ connRef505->setSourceEndpoint(srcPt505);
+ ConnEnd dstPt505(Point(530.62835648798, -298.4098117515406), 15);
+ connRef505->setDestEndpoint(dstPt505);
+ connRef505->setRoutingType((ConnType)2);
+
+ ConnRef *connRef506 = new ConnRef(router, 506);
+ ConnEnd srcPt506(Point(717.62835648798, -681.4098117525407), 4);
+ connRef506->setSourceEndpoint(srcPt506);
+ ConnEnd dstPt506(Point(530.62835648798, -298.4098117515406), 15);
+ connRef506->setDestEndpoint(dstPt506);
+ connRef506->setRoutingType((ConnType)2);
+
+ ConnRef *connRef507 = new ConnRef(router, 507);
+ ConnEnd srcPt507(Point(982.9140707746942, -449.4098117525406), 2);
+ connRef507->setSourceEndpoint(srcPt507);
+ ConnEnd dstPt507(Point(982.9140707746942, -298.4098117515406), 15);
+ connRef507->setDestEndpoint(dstPt507);
+ connRef507->setRoutingType((ConnType)2);
+
+ ConnRef *connRef508 = new ConnRef(router, 508);
+ ConnEnd srcPt508(Point(1068.12835648898, -558.5348117525407), 15);
+ connRef508->setSourceEndpoint(srcPt508);
+ ConnEnd dstPt508(Point(982.9140707746942, -479.4098117525406), 1);
+ connRef508->setDestEndpoint(dstPt508);
+ connRef508->setRoutingType((ConnType)2);
+
+ ConnRef *connRef509 = new ConnRef(router, 509);
+ ConnEnd srcPt509(Point(1216.12835648898, -558.5348117525407), 4);
+ connRef509->setSourceEndpoint(srcPt509);
+ ConnEnd dstPt509(Point(1068.12835648898, -558.5348117525407), 15);
+ connRef509->setDestEndpoint(dstPt509);
+ connRef509->setRoutingType((ConnType)2);
+
+ ConnRef *connRef510 = new ConnRef(router, 510);
+ ConnEnd srcPt510(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef510->setSourceEndpoint(srcPt510);
+ ConnEnd dstPt510(Point(166.62835648698, -126.4098117515406), 4);
+ connRef510->setDestEndpoint(dstPt510);
+ connRef510->setRoutingType((ConnType)2);
+
+ ConnRef *connRef511 = new ConnRef(router, 511);
+ ConnEnd srcPt511(Point(196.62835648698, -126.4098117515406), 8);
+ connRef511->setSourceEndpoint(srcPt511);
+ ConnEnd dstPt511(Point(530.62835648798, -298.4098117515406), 15);
+ connRef511->setDestEndpoint(dstPt511);
+ connRef511->setRoutingType((ConnType)2);
+
+ ConnRef *connRef512 = new ConnRef(router, 512);
+ ConnEnd srcPt512(Point(651.62835648798, -20.40981175154064), 4);
+ connRef512->setSourceEndpoint(srcPt512);
+ ConnEnd dstPt512(Point(530.62835648798, 66.25685491512604), 15);
+ connRef512->setDestEndpoint(dstPt512);
+ connRef512->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513 = new ConnRef(router, 513);
+ ConnEnd srcPt513(Point(926.62835648898, 421.7568549161261), 8);
+ connRef513->setSourceEndpoint(srcPt513);
+ ConnEnd dstPt513(Point(982.9140707746942, 66.25685491512604), 15);
+ connRef513->setDestEndpoint(dstPt513);
+ connRef513->setRoutingType((ConnType)2);
+
+ ConnRef *connRef514 = new ConnRef(router, 514);
+ ConnEnd srcPt514(Point(563.62835648798, 421.7568549161261), 15);
+ connRef514->setSourceEndpoint(srcPt514);
+ ConnEnd dstPt514(Point(896.62835648898, 421.7568549161261), 4);
+ connRef514->setDestEndpoint(dstPt514);
+ connRef514->setRoutingType((ConnType)2);
+
+ ConnRef *connRef515 = new ConnRef(router, 515);
+ ConnEnd srcPt515(Point(508.62835648698, 421.7568549161261), 8);
+ connRef515->setSourceEndpoint(srcPt515);
+ ConnEnd dstPt515(Point(563.62835648798, 421.7568549161261), 15);
+ connRef515->setDestEndpoint(dstPt515);
+ connRef515->setRoutingType((ConnType)2);
+
+ ConnRef *connRef516 = new ConnRef(router, 516);
+ ConnEnd srcPt516(Point(116.62835648598, 1063.856854916126), 8);
+ connRef516->setSourceEndpoint(srcPt516);
+ ConnEnd dstPt516(Point(530.62835648798, 1143.856854916126), 15);
+ connRef516->setDestEndpoint(dstPt516);
+ connRef516->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints516(1);
+ checkpoints516[0] = Checkpoint(Point(139.62835648598, 1042.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef516->setRoutingCheckpoints(checkpoints516);
+
+ ConnRef *connRef517 = new ConnRef(router, 517);
+ ConnEnd srcPt517(Point(16.62835648497997, -558.5348117525407), 4);
+ connRef517->setSourceEndpoint(srcPt517);
+ ConnEnd dstPt517(Point(-319.87164351602, -298.4098117515406), 15);
+ connRef517->setDestEndpoint(dstPt517);
+ connRef517->setRoutingType((ConnType)2);
+#endif
+ ConnRef *connRef518 = new ConnRef(router, 518);
+ ConnEnd srcPt518(Point(-483.87164351602, -833.9812403239691), 4);
+ connRef518->setSourceEndpoint(srcPt518);
+ ConnEnd dstPt518(Point(-695.12164351602, -737.9812403239691), 15);
+ connRef518->setDestEndpoint(dstPt518);
+ connRef518->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints518(1);
+ checkpoints518[0] = Checkpoint(Point(-506.87164351602, -737.9812403239691), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef518->setRoutingCheckpoints(checkpoints518);
+
+ ConnRef *connRef519 = new ConnRef(router, 519);
+ ConnEnd srcPt519(Point(-483.87164351602, -758.9812403239691), 4);
+ connRef519->setSourceEndpoint(srcPt519);
+ ConnEnd dstPt519(Point(-695.12164351602, -737.9812403239691), 15);
+ connRef519->setDestEndpoint(dstPt519);
+ connRef519->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints519(1);
+ checkpoints519[0] = Checkpoint(Point(-506.87164351602, -737.9812403239691), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef519->setRoutingCheckpoints(checkpoints519);
+
+ ConnRef *connRef520 = new ConnRef(router, 520);
+ ConnEnd srcPt520(Point(-483.87164351602, -716.9812403239691), 4);
+ connRef520->setSourceEndpoint(srcPt520);
+ ConnEnd dstPt520(Point(-695.12164351602, -737.9812403239691), 15);
+ connRef520->setDestEndpoint(dstPt520);
+ connRef520->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints520(1);
+ checkpoints520[0] = Checkpoint(Point(-506.87164351602, -737.9812403239691), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef520->setRoutingCheckpoints(checkpoints520);
+
+#ifdef REST
+ ConnRef *connRef521 = new ConnRef(router, 521);
+ ConnEnd srcPt521(Point(262.62835648698, -737.9812403239691), 15);
+ connRef521->setSourceEndpoint(srcPt521);
+ ConnEnd dstPt521(Point(445.62835648698, -737.9812403239691), 4);
+ connRef521->setDestEndpoint(dstPt521);
+ connRef521->setRoutingType((ConnType)2);
+
+ ConnRef *connRef522 = new ConnRef(router, 522);
+ ConnEnd srcPt522(Point(-841.12164351602, 668.6568549161261), 15);
+ connRef522->setSourceEndpoint(srcPt522);
+ ConnEnd dstPt522(Point(-728.12164351602, 756.8568549161259), 1);
+ connRef522->setDestEndpoint(dstPt522);
+ connRef522->setRoutingType((ConnType)2);
+
+ ConnRef *connRef523 = new ConnRef(router, 523);
+ ConnEnd srcPt523(Point(-841.12164351602, 890.8568549161259), 15);
+ connRef523->setSourceEndpoint(srcPt523);
+ ConnEnd dstPt523(Point(-874.12164351602, 786.8568549161259), 2);
+ connRef523->setDestEndpoint(dstPt523);
+ connRef523->setRoutingType((ConnType)2);
+
+ ConnRef *connRef524 = new ConnRef(router, 524);
+ ConnEnd srcPt524(Point(412.62835648698, -469.4098117515406), 4);
+ connRef524->setSourceEndpoint(srcPt524);
+ ConnEnd dstPt524(Point(181.62835648698, -298.4098117515406), 15);
+ connRef524->setDestEndpoint(dstPt524);
+ connRef524->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints524(1);
+ checkpoints524[0] = Checkpoint(Point(389.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef524->setRoutingCheckpoints(checkpoints524);
+
+ ConnRef *connRef525 = new ConnRef(router, 525);
+ ConnEnd srcPt525(Point(412.62835648698, -394.4098117515406), 4);
+ connRef525->setSourceEndpoint(srcPt525);
+ ConnEnd dstPt525(Point(181.62835648698, -298.4098117515406), 15);
+ connRef525->setDestEndpoint(dstPt525);
+ connRef525->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints525(1);
+ checkpoints525[0] = Checkpoint(Point(389.62835648698, -298.4098117515406), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef525->setRoutingCheckpoints(checkpoints525);
+
+ ConnRef *connRef526 = new ConnRef(router, 526);
+ ConnEnd srcPt526(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef526->setSourceEndpoint(srcPt526);
+ ConnEnd dstPt526(Point(1612.12835648998, -618.4098117525407), 4);
+ connRef526->setDestEndpoint(dstPt526);
+ connRef526->setRoutingType((ConnType)2);
+
+ ConnRef *connRef527 = new ConnRef(router, 527);
+ ConnEnd srcPt527(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef527->setSourceEndpoint(srcPt527);
+ ConnEnd dstPt527(Point(1543.12835648898, 635.6568549161261), 4);
+ connRef527->setDestEndpoint(dstPt527);
+ connRef527->setRoutingType((ConnType)2);
+
+ ConnRef *connRef528 = new ConnRef(router, 528);
+ ConnEnd srcPt528(Point(1514.12835648898, -298.4098117515406), 15);
+ connRef528->setSourceEndpoint(srcPt528);
+ ConnEnd dstPt528(Point(1612.12835648998, -497.4098117525407), 4);
+ connRef528->setDestEndpoint(dstPt528);
+ connRef528->setRoutingType((ConnType)2);
+
+ ConnRef *connRef529 = new ConnRef(router, 529);
+ ConnEnd srcPt529(Point(-695.12164351602, 66.25685491512604), 15);
+ connRef529->setSourceEndpoint(srcPt529);
+ ConnEnd dstPt529(Point(-516.87164351602, 201.256854916126), 4);
+ connRef529->setDestEndpoint(dstPt529);
+ connRef529->setRoutingType((ConnType)2);
+
+ ConnRef *connRef530 = new ConnRef(router, 530);
+ ConnEnd srcPt530(Point(-319.87164351602, 66.25685491512604), 15);
+ connRef530->setSourceEndpoint(srcPt530);
+ ConnEnd dstPt530(Point(-319.87164351602, 505.756854916126), 1);
+ connRef530->setDestEndpoint(dstPt530);
+ connRef530->setRoutingType((ConnType)2);
+
+ ConnRef *connRef531 = new ConnRef(router, 531);
+ ConnEnd srcPt531(Point(-74.87164351502003, 1551.106854917126), 4);
+ connRef531->setSourceEndpoint(srcPt531);
+ ConnEnd dstPt531(Point(-319.87164351602, 1647.106854917126), 15);
+ connRef531->setDestEndpoint(dstPt531);
+ connRef531->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints531(1);
+ checkpoints531[0] = Checkpoint(Point(-97.87164351502003, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef531->setRoutingCheckpoints(checkpoints531);
+
+ ConnRef *connRef532 = new ConnRef(router, 532);
+ ConnEnd srcPt532(Point(-74.87164351502003, 1626.106854917126), 4);
+ connRef532->setSourceEndpoint(srcPt532);
+ ConnEnd dstPt532(Point(-319.87164351602, 1647.106854917126), 15);
+ connRef532->setDestEndpoint(dstPt532);
+ connRef532->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints532(1);
+ checkpoints532[0] = Checkpoint(Point(-97.87164351502003, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef532->setRoutingCheckpoints(checkpoints532);
+
+ ConnRef *connRef533 = new ConnRef(router, 533);
+ ConnEnd srcPt533(Point(379.62835648698, 1626.106854917126), 4);
+ connRef533->setSourceEndpoint(srcPt533);
+ ConnEnd dstPt533(Point(181.62835648698, 1647.106854917126), 15);
+ connRef533->setDestEndpoint(dstPt533);
+ connRef533->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints533(1);
+ checkpoints533[0] = Checkpoint(Point(356.62835648698, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef533->setRoutingCheckpoints(checkpoints533);
+
+ ConnRef *connRef534 = new ConnRef(router, 534);
+ ConnEnd srcPt534(Point(617.9873402531949, 1626.106854917126), 4);
+ connRef534->setSourceEndpoint(srcPt534);
+ ConnEnd dstPt534(Point(530.62835648798, 1647.106854917126), 15);
+ connRef534->setDestEndpoint(dstPt534);
+ connRef534->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints534(1);
+ checkpoints534[0] = Checkpoint(Point(594.9873402531949, 1647.106854917126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef534->setRoutingCheckpoints(checkpoints534);
+
+ ConnRef *connRef535 = new ConnRef(router, 535);
+ ConnEnd srcPt535(Point(982.9140707746942, 1647.106854917126), 15);
+ connRef535->setSourceEndpoint(srcPt535);
+ ConnEnd dstPt535(Point(1152.12835648898, 1567.106854916126), 4);
+ connRef535->setDestEndpoint(dstPt535);
+ connRef535->setRoutingType((ConnType)2);
+
+ ConnRef *connRef536 = new ConnRef(router, 536);
+ ConnEnd srcPt536(Point(982.9140707746942, 1647.106854917126), 15);
+ connRef536->setSourceEndpoint(srcPt536);
+ ConnEnd dstPt536(Point(1152.12835648898, 1706.773521583792), 4);
+ connRef536->setDestEndpoint(dstPt536);
+ connRef536->setRoutingType((ConnType)2);
+
+ ConnRef *connRef537 = new ConnRef(router, 537);
+ ConnEnd srcPt537(Point(1700.12835648998, 1309.606854916126), 15);
+ connRef537->setSourceEndpoint(srcPt537);
+ ConnEnd dstPt537(Point(1755.12835649098, 1309.606854916126), 4);
+ connRef537->setDestEndpoint(dstPt537);
+ connRef537->setRoutingType((ConnType)2);
+
+ ConnRef *connRef538 = new ConnRef(router, 538);
+ ConnEnd srcPt538(Point(1134.12835648898, 1433.106854916126), 15);
+ connRef538->setSourceEndpoint(srcPt538);
+ ConnEnd dstPt538(Point(1315.12835648898, 1433.106854916126), 4);
+ connRef538->setDestEndpoint(dstPt538);
+ connRef538->setRoutingType((ConnType)2);
+
+ ConnRef *connRef539 = new ConnRef(router, 539);
+ ConnEnd srcPt539(Point(1700.12835648998, 1647.106854917126), 15);
+ connRef539->setSourceEndpoint(srcPt539);
+ ConnEnd dstPt539(Point(1755.12835649098, 1647.106854917126), 4);
+ connRef539->setDestEndpoint(dstPt539);
+ connRef539->setRoutingType((ConnType)2);
+
+ ConnRef *connRef540 = new ConnRef(router, 540);
+ ConnEnd srcPt540(Point(1873.12835649198, 1647.106854917126), 15);
+ connRef540->setSourceEndpoint(srcPt540);
+ ConnEnd dstPt540(Point(1928.12835649298, 1647.106854917126), 4);
+ connRef540->setDestEndpoint(dstPt540);
+ connRef540->setRoutingType((ConnType)2);
+
+ ConnRef *connRef541 = new ConnRef(router, 541);
+ ConnEnd srcPt541(Point(1700.12835648998, 33.25685491512604), 15);
+ connRef541->setSourceEndpoint(srcPt541);
+ ConnEnd dstPt541(Point(1755.12835649098, 33.25685491512604), 4);
+ connRef541->setDestEndpoint(dstPt541);
+ connRef541->setRoutingType((ConnType)2);
+
+ ConnRef *connRef542 = new ConnRef(router, 542);
+ ConnEnd srcPt542(Point(1873.12835649198, -298.4098117515406), 15);
+ connRef542->setSourceEndpoint(srcPt542);
+ ConnEnd dstPt542(Point(1928.12835649298, -298.4098117515406), 4);
+ connRef542->setDestEndpoint(dstPt542);
+ connRef542->setRoutingType((ConnType)2);
+
+ ConnRef *connRef543 = new ConnRef(router, 543);
+ ConnEnd srcPt543(Point(1700.12835648998, -298.4098117515406), 15);
+ connRef543->setSourceEndpoint(srcPt543);
+ ConnEnd dstPt543(Point(1755.12835649098, -298.4098117515406), 4);
+ connRef543->setDestEndpoint(dstPt543);
+ connRef543->setRoutingType((ConnType)2);
+
+ ConnRef *connRef544 = new ConnRef(router, 544);
+ ConnEnd srcPt544(Point(181.62835648698, 66.25685491512604), 15);
+ connRef544->setSourceEndpoint(srcPt544);
+ ConnEnd dstPt544(Point(181.62835648698, 505.756854916126), 1);
+ connRef544->setDestEndpoint(dstPt544);
+ connRef544->setRoutingType((ConnType)2);
+
+ ConnRef *connRef545 = new ConnRef(router, 545);
+ ConnEnd srcPt545(Point(181.62835648698, 1499.106854916126), 15);
+ connRef545->setSourceEndpoint(srcPt545);
+ ConnEnd dstPt545(Point(181.62835648698, 1390.606854916126), 2);
+ connRef545->setDestEndpoint(dstPt545);
+ connRef545->setRoutingType((ConnType)2);
+
+ ConnRef *connRef546 = new ConnRef(router, 546);
+ ConnEnd srcPt546(Point(115.62835648698, 1466.106854916126), 15);
+ connRef546->setSourceEndpoint(srcPt546);
+ ConnEnd dstPt546(Point(181.62835648698, 1390.606854916126), 2);
+ connRef546->setDestEndpoint(dstPt546);
+ connRef546->setRoutingType((ConnType)2);
+
+ ConnRef *connRef547 = new ConnRef(router, 547);
+ ConnEnd srcPt547(Point(115.62835648698, 1254.856854916126), 15);
+ connRef547->setSourceEndpoint(srcPt547);
+ ConnEnd dstPt547(Point(31.62835648497997, 1360.606854916126), 1);
+ connRef547->setDestEndpoint(dstPt547);
+ connRef547->setRoutingType((ConnType)2);
+
+ ConnRef *connRef548 = new ConnRef(router, 548);
+ ConnEnd srcPt548(Point(86.62835648597996, 1063.856854916126), 4);
+ connRef548->setSourceEndpoint(srcPt548);
+ ConnEnd dstPt548(Point(-319.87164351602, 1143.856854916126), 15);
+ connRef548->setDestEndpoint(dstPt548);
+ connRef548->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints548(1);
+ checkpoints548[0] = Checkpoint(Point(63.62835648597996, 1042.856854916126), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef548->setRoutingCheckpoints(checkpoints548);
+
+ ConnRef *connRef549 = new ConnRef(router, 549);
+ ConnEnd srcPt549(Point(961.9140707746942, 871.8568549171259), 1);
+ connRef549->setSourceEndpoint(srcPt549);
+ ConnEnd dstPt549(Point(982.9140707746942, 738.8568549161259), 15);
+ connRef549->setDestEndpoint(dstPt549);
+ connRef549->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints549(1);
+ checkpoints549[0] = Checkpoint(Point(982.9140707746942, 856.8568549171259), (ConnDirFlags) 15, (ConnDirFlags) 2);
+ connRef549->setRoutingCheckpoints(checkpoints549);
+
+ ConnRef *connRef550 = new ConnRef(router, 550);
+ ConnEnd srcPt550(Point(1003.914070774694, 871.8568549171259), 1);
+ connRef550->setSourceEndpoint(srcPt550);
+ ConnEnd dstPt550(Point(982.9140707746942, 738.8568549161259), 15);
+ connRef550->setDestEndpoint(dstPt550);
+ connRef550->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints550(1);
+ checkpoints550[0] = Checkpoint(Point(982.9140707746942, 856.8568549171259), (ConnDirFlags) 15, (ConnDirFlags) 2);
+ connRef550->setRoutingCheckpoints(checkpoints550);
+
+ ConnRef *connRef551 = new ConnRef(router, 551);
+ ConnEnd srcPt551(Point(181.62835648698, 738.8568549161259), 15);
+ connRef551->setSourceEndpoint(srcPt551);
+ ConnEnd dstPt551(Point(46.62835648497997, 738.8568549161259), 8);
+ connRef551->setDestEndpoint(dstPt551);
+ connRef551->setRoutingType((ConnType)2);
+
+ ConnRef *connRef552 = new ConnRef(router, 552);
+ ConnEnd srcPt552(Point(346.62835648698, 759.8568549161259), 4);
+ connRef552->setSourceEndpoint(srcPt552);
+ ConnEnd dstPt552(Point(181.62835648698, 738.8568549161259), 15);
+ connRef552->setDestEndpoint(dstPt552);
+ connRef552->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints552(1);
+ checkpoints552[0] = Checkpoint(Point(323.62835648698, 738.8568549161259), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef552->setRoutingCheckpoints(checkpoints552);
+
+ ConnRef *connRef553 = new ConnRef(router, 553);
+ ConnEnd srcPt553(Point(-319.87164351602, 738.8568549161259), 15);
+ connRef553->setSourceEndpoint(srcPt553);
+ ConnEnd dstPt553(Point(133.62835648698, 804.8568549161259), 4);
+ connRef553->setDestEndpoint(dstPt553);
+ connRef553->setRoutingType((ConnType)2);
+
+ ConnRef *connRef554 = new ConnRef(router, 554);
+ ConnEnd srcPt554(Point(-435.87164351602, 635.6568549161261), 15);
+ connRef554->setSourceEndpoint(srcPt554);
+ ConnEnd dstPt554(Point(-534.87164351602, 535.756854916126), 2);
+ connRef554->setDestEndpoint(dstPt554);
+ connRef554->setRoutingType((ConnType)2);
+
+ ConnRef *connRef555 = new ConnRef(router, 555);
+ ConnEnd srcPt555(Point(-435.87164351602, 454.7568549161261), 15);
+ connRef555->setSourceEndpoint(srcPt555);
+ ConnEnd dstPt555(Point(-319.87164351602, 505.756854916126), 1);
+ connRef555->setDestEndpoint(dstPt555);
+ connRef555->setRoutingType((ConnType)2);
+
+ ConnRef *connRef556 = new ConnRef(router, 556);
+ ConnEnd srcPt556(Point(115.62835648698, 635.6568549161261), 15);
+ connRef556->setSourceEndpoint(srcPt556);
+ ConnEnd dstPt556(Point(-125.87164351502, 535.756854916126), 2);
+ connRef556->setDestEndpoint(dstPt556);
+ connRef556->setRoutingType((ConnType)2);
+
+ ConnRef *connRef557 = new ConnRef(router, 557);
+ ConnEnd srcPt557(Point(115.62835648698, 454.7568549161261), 15);
+ connRef557->setSourceEndpoint(srcPt557);
+ ConnEnd dstPt557(Point(181.62835648698, 505.756854916126), 1);
+ connRef557->setDestEndpoint(dstPt557);
+ connRef557->setRoutingType((ConnType)2);
+
+ ConnRef *connRef558 = new ConnRef(router, 558);
+ ConnEnd srcPt558(Point(1873.12835649198, -558.5348117525407), 15);
+ connRef558->setSourceEndpoint(srcPt558);
+ ConnEnd dstPt558(Point(1818.12835649098, -558.5348117525407), 8);
+ connRef558->setDestEndpoint(dstPt558);
+ connRef558->setRoutingType((ConnType)2);
+
+ ConnRef *connRef559 = new ConnRef(router, 559);
+ ConnEnd srcPt559(Point(944.62835648898, -681.4098117525407), 15);
+ connRef559->setSourceEndpoint(srcPt559);
+ ConnEnd dstPt559(Point(747.62835648798, -681.4098117525407), 8);
+ connRef559->setDestEndpoint(dstPt559);
+ connRef559->setRoutingType((ConnType)2);
+
+ ConnRef *connRef560 = new ConnRef(router, 560);
+ ConnEnd srcPt560(Point(944.62835648898, -681.4098117525407), 15);
+ connRef560->setSourceEndpoint(srcPt560);
+ ConnEnd dstPt560(Point(166.62835648698, -126.4098117515406), 4);
+ connRef560->setDestEndpoint(dstPt560);
+ connRef560->setRoutingType((ConnType)2);
+
+ ConnRef *connRef561 = new ConnRef(router, 561);
+ ConnEnd srcPt561(Point(944.62835648898, -807.4098117525407), 15);
+ connRef561->setSourceEndpoint(srcPt561);
+ ConnEnd dstPt561(Point(747.62835648798, -807.4098117525407), 8);
+ connRef561->setDestEndpoint(dstPt561);
+ connRef561->setRoutingType((ConnType)2);
+
+ ConnRef *connRef562 = new ConnRef(router, 562);
+ ConnEnd srcPt562(Point(1363.12835648898, -558.5348117525407), 15);
+ connRef562->setSourceEndpoint(srcPt562);
+ ConnEnd dstPt562(Point(1246.12835648898, -558.5348117525407), 8);
+ connRef562->setDestEndpoint(dstPt562);
+ connRef562->setRoutingType((ConnType)2);
+
+ ConnRef *connRef563 = new ConnRef(router, 563);
+ ConnEnd srcPt563(Point(845.62835648898, -20.40981175154064), 15);
+ connRef563->setSourceEndpoint(srcPt563);
+ ConnEnd dstPt563(Point(681.62835648798, -20.40981175154064), 8);
+ connRef563->setDestEndpoint(dstPt563);
+ connRef563->setRoutingType((ConnType)2);
+
+ ConnRef *connRef564 = new ConnRef(router, 564);
+ ConnEnd srcPt564(Point(295.62835648698, 421.7568549161261), 15);
+ connRef564->setSourceEndpoint(srcPt564);
+ ConnEnd dstPt564(Point(478.62835648698, 421.7568549161261), 4);
+ connRef564->setDestEndpoint(dstPt564);
+ connRef564->setRoutingType((ConnType)2);
+
+ ConnRef *connRef565 = new ConnRef(router, 565);
+ ConnEnd srcPt565(Point(181.62835648698, -558.5348117525407), 15);
+ connRef565->setSourceEndpoint(srcPt565);
+ ConnEnd dstPt565(Point(46.62835648497997, -558.5348117525407), 8);
+ connRef565->setDestEndpoint(dstPt565);
+ connRef565->setRoutingType((ConnType)2);
+
+ ConnRef *connRef566 = new ConnRef(router, 566);
+ ConnEnd srcPt566(Point(1667.12835648998, 635.6568549161261), 15);
+ connRef566->setSourceEndpoint(srcPt566);
+ ConnEnd dstPt566(Point(1722.12835649098, 635.6568549161261), 4);
+ connRef566->setDestEndpoint(dstPt566);
+ connRef566->setRoutingType((ConnType)2);
+
+ ConnRef *connRef567 = new ConnRef(router, 567);
+ ConnEnd srcPt567(Point(1573.12835648898, 635.6568549161261), 8);
+ connRef567->setSourceEndpoint(srcPt567);
+ ConnEnd dstPt567(Point(1667.12835648998, 635.6568549161261), 15);
+ connRef567->setDestEndpoint(dstPt567);
+ connRef567->setRoutingType((ConnType)2);
+
+ ConnRef *connRef568 = new ConnRef(router, 568);
+ ConnEnd srcPt568(Point(1752.12835649098, 635.6568549161261), 8);
+ connRef568->setSourceEndpoint(srcPt568);
+ ConnEnd dstPt568(Point(1873.12835649198, 635.6568549161261), 15);
+ connRef568->setDestEndpoint(dstPt568);
+ connRef568->setRoutingType((ConnType)2);
+
+ ConnRef *connRef569 = new ConnRef(router, 569);
+ ConnEnd srcPt569(Point(1752.12835649098, 635.6568549161261), 8);
+ connRef569->setSourceEndpoint(srcPt569);
+ ConnEnd dstPt569(Point(1836.12835649098, 487.756854916126), 15);
+ connRef569->setDestEndpoint(dstPt569);
+ connRef569->setRoutingType((ConnType)2);
+
+ ConnRef *connRef570 = new ConnRef(router, 570);
+ ConnEnd srcPt570(Point(2218.795023162646, 614.6568549161261), 4);
+ connRef570->setSourceEndpoint(srcPt570);
+ ConnEnd dstPt570(Point(2153.795023161646, 635.6568549161261), 15);
+ connRef570->setDestEndpoint(dstPt570);
+ connRef570->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints570(1);
+ checkpoints570[0] = Checkpoint(Point(2195.795023162646, 635.6568549161261), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef570->setRoutingCheckpoints(checkpoints570);
+
+ ConnRef *connRef571 = new ConnRef(router, 571);
+ ConnEnd srcPt571(Point(2218.795023162646, 656.6568549161261), 4);
+ connRef571->setSourceEndpoint(srcPt571);
+ ConnEnd dstPt571(Point(2153.795023161646, 635.6568549161261), 15);
+ connRef571->setDestEndpoint(dstPt571);
+ connRef571->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints571(1);
+ checkpoints571[0] = Checkpoint(Point(2195.795023162646, 635.6568549161261), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef571->setRoutingCheckpoints(checkpoints571);
+
+ ConnRef *connRef572 = new ConnRef(router, 572);
+ ConnEnd srcPt572(Point(2248.795023162646, 614.6568549161261), 8);
+ connRef572->setSourceEndpoint(srcPt572);
+ ConnEnd dstPt572(Point(2313.795023163646, 635.6568549161261), 15);
+ connRef572->setDestEndpoint(dstPt572);
+ connRef572->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints572(1);
+ checkpoints572[0] = Checkpoint(Point(2271.795023162646, 635.6568549161261), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef572->setRoutingCheckpoints(checkpoints572);
+
+ ConnRef *connRef573 = new ConnRef(router, 573);
+ ConnEnd srcPt573(Point(2013.795023159646, 635.6568549161261), 15);
+ connRef573->setSourceEndpoint(srcPt573);
+ ConnEnd dstPt573(Point(2068.795023160646, 635.6568549161261), 4);
+ connRef573->setDestEndpoint(dstPt573);
+ connRef573->setRoutingType((ConnType)2);
+
+ ConnRef *connRef574 = new ConnRef(router, 574);
+ ConnEnd srcPt574(Point(2098.795023160646, 635.6568549161261), 8);
+ connRef574->setSourceEndpoint(srcPt574);
+ ConnEnd dstPt574(Point(2153.795023161646, 635.6568549161261), 15);
+ connRef574->setDestEndpoint(dstPt574);
+ connRef574->setRoutingType((ConnType)2);
+
+ ConnRef *connRef575 = new ConnRef(router, 575);
+ ConnEnd srcPt575(Point(2248.795023162646, 656.6568549161261), 8);
+ connRef575->setSourceEndpoint(srcPt575);
+ ConnEnd dstPt575(Point(2313.795023163646, 635.6568549161261), 15);
+ connRef575->setDestEndpoint(dstPt575);
+ connRef575->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints575(1);
+ checkpoints575[0] = Checkpoint(Point(2271.795023162646, 635.6568549161261), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef575->setRoutingCheckpoints(checkpoints575);
+
+ ConnRef *connRef576 = new ConnRef(router, 576);
+ ConnEnd srcPt576(Point(1667.12835648998, 361.2568549161261), 15);
+ connRef576->setSourceEndpoint(srcPt576);
+ ConnEnd dstPt576(Point(1722.12835649098, 361.2568549161261), 4);
+ connRef576->setDestEndpoint(dstPt576);
+ connRef576->setRoutingType((ConnType)2);
+
+ ConnRef *connRef577 = new ConnRef(router, 577);
+ ConnEnd srcPt577(Point(1752.12835649098, 361.2568549161261), 8);
+ connRef577->setSourceEndpoint(srcPt577);
+ ConnEnd dstPt577(Point(1836.12835649098, 487.756854916126), 15);
+ connRef577->setDestEndpoint(dstPt577);
+ connRef577->setRoutingType((ConnType)2);
+
+ ConnRef *connRef578 = new ConnRef(router, 578);
+ ConnEnd srcPt578(Point(1752.12835649098, 361.2568549161261), 8);
+ connRef578->setSourceEndpoint(srcPt578);
+ ConnEnd dstPt578(Point(2013.795023159646, 635.6568549161261), 15);
+ connRef578->setDestEndpoint(dstPt578);
+ connRef578->setRoutingType((ConnType)2);
+
+ ConnRef *connRef579 = new ConnRef(router, 579);
+ ConnEnd srcPt579(Point(1642.12835648998, -497.4098117525407), 8);
+ connRef579->setSourceEndpoint(srcPt579);
+ ConnEnd dstPt579(Point(1700.12835648998, -558.5348117525407), 15);
+ connRef579->setDestEndpoint(dstPt579);
+ connRef579->setRoutingType((ConnType)2);
+
+ ConnRef *connRef580 = new ConnRef(router, 580);
+ ConnEnd srcPt580(Point(239.62835648698, 1375.606854916126), 4);
+ connRef580->setSourceEndpoint(srcPt580);
+ ConnEnd dstPt580(Point(181.62835648698, 1375.606854916126), 8);
+ connRef580->setDestEndpoint(dstPt580);
+ connRef580->setRoutingType((ConnType)2);
+
+ ConnRef *connRef581 = new ConnRef(router, 581);
+ ConnEnd srcPt581(Point(1943.12835649298, -16.74314508487396), 2);
+ connRef581->setSourceEndpoint(srcPt581);
+ ConnEnd dstPt581(Point(1943.12835649298, 33.25685491512604), 1);
+ connRef581->setDestEndpoint(dstPt581);
+ connRef581->setRoutingType((ConnType)2);
+
+ ConnRef *connRef582 = new ConnRef(router, 582);
+ ConnEnd srcPt582(Point(427.62835648698, -369.4098117515406), 2);
+ connRef582->setSourceEndpoint(srcPt582);
+ ConnEnd dstPt582(Point(427.62835648698, -319.4098117515406), 1);
+ connRef582->setDestEndpoint(dstPt582);
+ connRef582->setRoutingType((ConnType)2);
+
+ ConnRef *connRef583 = new ConnRef(router, 583);
+ ConnEnd srcPt583(Point(31.62835648497997, 895.8568549161259), 2);
+ connRef583->setSourceEndpoint(srcPt583);
+ ConnEnd dstPt583(Point(31.62835648497997, 945.8568549161259), 1);
+ connRef583->setDestEndpoint(dstPt583);
+ connRef583->setRoutingType((ConnType)2);
+
+ ConnRef *connRef584 = new ConnRef(router, 584);
+ ConnEnd srcPt584(Point(451.6283564879799, 1342.606854916126), 8);
+ connRef584->setSourceEndpoint(srcPt584);
+ ConnEnd dstPt584(Point(509.62835648798, 1342.606854916126), 4);
+ connRef584->setDestEndpoint(dstPt584);
+ connRef584->setRoutingType((ConnType)2);
+
+ ConnRef *connRef585 = new ConnRef(router, 585);
+ ConnEnd srcPt585(Point(-948.12164351602, -265.4098117515406), 4);
+ connRef585->setSourceEndpoint(srcPt585);
+ ConnEnd dstPt585(Point(-1006.12164351602, -265.4098117515406), 8);
+ connRef585->setDestEndpoint(dstPt585);
+ connRef585->setRoutingType((ConnType)2);
+
+ ConnRef *connRef586 = new ConnRef(router, 586);
+ ConnEnd srcPt586(Point(-948.12164351602, -497.4098117525407), 4);
+ connRef586->setSourceEndpoint(srcPt586);
+ ConnEnd dstPt586(Point(-1006.12164351602, -497.4098117525407), 8);
+ connRef586->setDestEndpoint(dstPt586);
+ connRef586->setRoutingType((ConnType)2);
+
+ ConnRef *connRef587 = new ConnRef(router, 587);
+ ConnEnd srcPt587(Point(-808.12164351602, -787.9812403239691), 2);
+ connRef587->setSourceEndpoint(srcPt587);
+ ConnEnd dstPt587(Point(-808.12164351602, -737.9812403239691), 1);
+ connRef587->setDestEndpoint(dstPt587);
+ connRef587->setRoutingType((ConnType)2);
+
+ ConnRef *connRef588 = new ConnRef(router, 588);
+ ConnEnd srcPt588(Point(-468.87164351602, -883.9812403239691), 2);
+ connRef588->setSourceEndpoint(srcPt588);
+ ConnEnd dstPt588(Point(-468.87164351602, -833.9812403239691), 1);
+ connRef588->setDestEndpoint(dstPt588);
+ connRef588->setRoutingType((ConnType)2);
+
+ ConnRef *connRef589 = new ConnRef(router, 589);
+ ConnEnd srcPt589(Point(-468.87164351602, -808.9812403239691), 2);
+ connRef589->setSourceEndpoint(srcPt589);
+ ConnEnd dstPt589(Point(-468.87164351602, -758.9812403239691), 1);
+ connRef589->setDestEndpoint(dstPt589);
+ connRef589->setRoutingType((ConnType)2);
+
+ ConnRef *connRef590 = new ConnRef(router, 590);
+ ConnEnd srcPt590(Point(115.62835648698, -787.9812403239691), 2);
+ connRef590->setSourceEndpoint(srcPt590);
+ ConnEnd dstPt590(Point(115.62835648698, -737.9812403239691), 1);
+ connRef590->setDestEndpoint(dstPt590);
+ connRef590->setRoutingType((ConnType)2);
+
+ ConnRef *connRef591 = new ConnRef(router, 591);
+ ConnEnd srcPt591(Point(-501.87164351602, -547.4098117525407), 2);
+ connRef591->setSourceEndpoint(srcPt591);
+ ConnEnd dstPt591(Point(-501.87164351602, -497.4098117525407), 1);
+ connRef591->setDestEndpoint(dstPt591);
+ connRef591->setRoutingType((ConnType)2);
+
+ ConnRef *connRef592 = new ConnRef(router, 592);
+ ConnEnd srcPt592(Point(-501.87164351602, -428.4098117525406), 2);
+ connRef592->setSourceEndpoint(srcPt592);
+ ConnEnd dstPt592(Point(-501.87164351602, -378.4098117525406), 1);
+ connRef592->setDestEndpoint(dstPt592);
+ connRef592->setRoutingType((ConnType)2);
+
+ ConnRef *connRef593 = new ConnRef(router, 593);
+ ConnEnd srcPt593(Point(96.62835648597996, -227.4098117515406), 1);
+ connRef593->setSourceEndpoint(srcPt593);
+ ConnEnd dstPt593(Point(96.62835648597996, -277.4098117515406), 2);
+ connRef593->setDestEndpoint(dstPt593);
+ connRef593->setRoutingType((ConnType)2);
+
+ ConnRef *connRef594 = new ConnRef(router, 594);
+ ConnEnd srcPt594(Point(96.62835648597996, -152.4098117515406), 1);
+ connRef594->setSourceEndpoint(srcPt594);
+ ConnEnd dstPt594(Point(96.62835648597996, -202.4098117515406), 2);
+ connRef594->setDestEndpoint(dstPt594);
+ connRef594->setRoutingType((ConnType)2);
+
+ ConnRef *connRef595 = new ConnRef(router, 595);
+ ConnEnd srcPt595(Point(427.62835648698, -227.4098117515406), 1);
+ connRef595->setSourceEndpoint(srcPt595);
+ ConnEnd dstPt595(Point(427.62835648698, -277.4098117515406), 2);
+ connRef595->setDestEndpoint(dstPt595);
+ connRef595->setRoutingType((ConnType)2);
+
+ ConnRef *connRef596 = new ConnRef(router, 596);
+ ConnEnd srcPt596(Point(427.62835648698, -152.4098117515406), 1);
+ connRef596->setSourceEndpoint(srcPt596);
+ ConnEnd dstPt596(Point(427.62835648698, -202.4098117515406), 2);
+ connRef596->setDestEndpoint(dstPt596);
+ connRef596->setRoutingType((ConnType)2);
+
+ ConnRef *connRef597 = new ConnRef(router, 597);
+ ConnEnd srcPt597(Point(-240.87164351602, -159.4098117515406), 4);
+ connRef597->setSourceEndpoint(srcPt597);
+ ConnEnd dstPt597(Point(-298.87164351602, -159.4098117515406), 8);
+ connRef597->setDestEndpoint(dstPt597);
+ connRef597->setRoutingType((ConnType)2);
+
+ ConnRef *connRef598 = new ConnRef(router, 598);
+ ConnEnd srcPt598(Point(-398.87164351602, -159.4098117515406), 8);
+ connRef598->setSourceEndpoint(srcPt598);
+ ConnEnd dstPt598(Point(-340.87164351602, -159.4098117515406), 4);
+ connRef598->setDestEndpoint(dstPt598);
+ connRef598->setRoutingType((ConnType)2);
+
+ ConnRef *connRef599 = new ConnRef(router, 599);
+ ConnEnd srcPt599(Point(96.62835648597996, -444.4098117515406), 2);
+ connRef599->setSourceEndpoint(srcPt599);
+ ConnEnd dstPt599(Point(96.62835648597996, -394.4098117515406), 1);
+ connRef599->setDestEndpoint(dstPt599);
+ connRef599->setRoutingType((ConnType)2);
+
+ ConnRef *connRef600 = new ConnRef(router, 600);
+ ConnEnd srcPt600(Point(96.62835648597996, -369.4098117515406), 2);
+ connRef600->setSourceEndpoint(srcPt600);
+ ConnEnd dstPt600(Point(96.62835648597996, -319.4098117515406), 1);
+ connRef600->setDestEndpoint(dstPt600);
+ connRef600->setRoutingType((ConnType)2);
+
+ ConnRef *connRef601 = new ConnRef(router, 601);
+ ConnEnd srcPt601(Point(427.62835648698, -519.4098117515407), 2);
+ connRef601->setSourceEndpoint(srcPt601);
+ ConnEnd dstPt601(Point(427.62835648698, -469.4098117515406), 1);
+ connRef601->setDestEndpoint(dstPt601);
+ connRef601->setRoutingType((ConnType)2);
+
+ ConnRef *connRef602 = new ConnRef(router, 602);
+ ConnEnd srcPt602(Point(427.62835648698, -444.4098117515406), 2);
+ connRef602->setSourceEndpoint(srcPt602);
+ ConnEnd dstPt602(Point(427.62835648698, -394.4098117515406), 1);
+ connRef602->setDestEndpoint(dstPt602);
+ connRef602->setRoutingType((ConnType)2);
+
+ ConnRef *connRef603 = new ConnRef(router, 603);
+ ConnEnd srcPt603(Point(845.62835648898, -182.4098117515406), 1);
+ connRef603->setSourceEndpoint(srcPt603);
+ ConnEnd dstPt603(Point(845.62835648898, -232.4098117515406), 2);
+ connRef603->setDestEndpoint(dstPt603);
+ connRef603->setRoutingType((ConnType)2);
+
+ ConnRef *connRef604 = new ConnRef(router, 604);
+ ConnEnd srcPt604(Point(632.9873402531949, -227.4098117515406), 1);
+ connRef604->setSourceEndpoint(srcPt604);
+ ConnEnd dstPt604(Point(632.9873402531949, -277.4098117515406), 2);
+ connRef604->setDestEndpoint(dstPt604);
+ connRef604->setRoutingType((ConnType)2);
+
+ ConnRef *connRef605 = new ConnRef(router, 605);
+ ConnEnd srcPt605(Point(632.9873402531949, -369.4098117515406), 2);
+ connRef605->setSourceEndpoint(srcPt605);
+ ConnEnd dstPt605(Point(632.9873402531949, -319.4098117515406), 1);
+ connRef605->setDestEndpoint(dstPt605);
+ connRef605->setRoutingType((ConnType)2);
+
+ ConnRef *connRef606 = new ConnRef(router, 606);
+ ConnEnd srcPt606(Point(1062.914070775694, -369.4098117515406), 2);
+ connRef606->setSourceEndpoint(srcPt606);
+ ConnEnd dstPt606(Point(1062.914070775694, -319.4098117515406), 1);
+ connRef606->setDestEndpoint(dstPt606);
+ connRef606->setRoutingType((ConnType)2);
+
+ ConnRef *connRef607 = new ConnRef(router, 607);
+ ConnEnd srcPt607(Point(1062.914070775694, -227.4098117515406), 1);
+ connRef607->setSourceEndpoint(srcPt607);
+ ConnEnd dstPt607(Point(1062.914070775694, -277.4098117515406), 2);
+ connRef607->setDestEndpoint(dstPt607);
+ connRef607->setRoutingType((ConnType)2);
+
+ ConnRef *connRef608 = new ConnRef(router, 608);
+ ConnEnd srcPt608(Point(1594.12835648998, -369.4098117515406), 2);
+ connRef608->setSourceEndpoint(srcPt608);
+ ConnEnd dstPt608(Point(1594.12835648998, -319.4098117515406), 1);
+ connRef608->setDestEndpoint(dstPt608);
+ connRef608->setRoutingType((ConnType)2);
+
+ ConnRef *connRef609 = new ConnRef(router, 609);
+ ConnEnd srcPt609(Point(1594.12835648998, -227.4098117515406), 1);
+ connRef609->setSourceEndpoint(srcPt609);
+ ConnEnd dstPt609(Point(1594.12835648998, -277.4098117515406), 2);
+ connRef609->setDestEndpoint(dstPt609);
+ connRef609->setRoutingType((ConnType)2);
+
+ ConnRef *connRef610 = new ConnRef(router, 610);
+ ConnEnd srcPt610(Point(1770.12835649098, -348.4098117515406), 2);
+ connRef610->setSourceEndpoint(srcPt610);
+ ConnEnd dstPt610(Point(1770.12835649098, -298.4098117515406), 1);
+ connRef610->setDestEndpoint(dstPt610);
+ connRef610->setRoutingType((ConnType)2);
+
+ ConnRef *connRef611 = new ConnRef(router, 611);
+ ConnEnd srcPt611(Point(1943.12835649298, -348.4098117515406), 2);
+ connRef611->setSourceEndpoint(srcPt611);
+ ConnEnd dstPt611(Point(1943.12835649298, -298.4098117515406), 1);
+ connRef611->setDestEndpoint(dstPt611);
+ connRef611->setRoutingType((ConnType)2);
+
+ ConnRef *connRef612 = new ConnRef(router, 612);
+ ConnEnd srcPt612(Point(-501.87164351602, 149.256854915126), 1);
+ connRef612->setSourceEndpoint(srcPt612);
+ ConnEnd dstPt612(Point(-501.87164351602, 99.25685491512604), 2);
+ connRef612->setDestEndpoint(dstPt612);
+ connRef612->setRoutingType((ConnType)2);
+
+ ConnRef *connRef613 = new ConnRef(router, 613);
+ ConnEnd srcPt613(Point(-501.87164351602, 251.2568549161261), 1);
+ connRef613->setSourceEndpoint(srcPt613);
+ ConnEnd dstPt613(Point(-501.87164351602, 201.256854916126), 2);
+ connRef613->setDestEndpoint(dstPt613);
+ connRef613->setRoutingType((ConnType)2);
+
+ ConnRef *connRef614 = new ConnRef(router, 614);
+ ConnEnd srcPt614(Point(-26.87164351502003, -4.743145084873959), 2);
+ connRef614->setSourceEndpoint(srcPt614);
+ ConnEnd dstPt614(Point(-26.87164351502003, 45.25685491512604), 1);
+ connRef614->setDestEndpoint(dstPt614);
+ connRef614->setRoutingType((ConnType)2);
+
+ ConnRef *connRef615 = new ConnRef(router, 615);
+ ConnEnd srcPt615(Point(-26.87164351502003, 137.256854915126), 1);
+ connRef615->setSourceEndpoint(srcPt615);
+ ConnEnd dstPt615(Point(-26.87164351502003, 87.25685491512604), 2);
+ connRef615->setDestEndpoint(dstPt615);
+ connRef615->setRoutingType((ConnType)2);
+
+ ConnRef *connRef616 = new ConnRef(router, 616);
+ ConnEnd srcPt616(Point(450.62835648698, 137.256854915126), 1);
+ connRef616->setSourceEndpoint(srcPt616);
+ ConnEnd dstPt616(Point(450.62835648698, 87.25685491512604), 2);
+ connRef616->setDestEndpoint(dstPt616);
+ connRef616->setRoutingType((ConnType)2);
+
+ ConnRef *connRef617 = new ConnRef(router, 617);
+ ConnEnd srcPt617(Point(450.62835648698, -4.743145084873959), 2);
+ connRef617->setSourceEndpoint(srcPt617);
+ ConnEnd dstPt617(Point(450.62835648698, 45.25685491512604), 1);
+ connRef617->setDestEndpoint(dstPt617);
+ connRef617->setRoutingType((ConnType)2);
+
+ ConnRef *connRef618 = new ConnRef(router, 618);
+ ConnEnd srcPt618(Point(765.62835648798, -4.743145084873959), 2);
+ connRef618->setSourceEndpoint(srcPt618);
+ ConnEnd dstPt618(Point(765.62835648798, 45.25685491512604), 1);
+ connRef618->setDestEndpoint(dstPt618);
+ connRef618->setRoutingType((ConnType)2);
+
+ ConnRef *connRef619 = new ConnRef(router, 619);
+ ConnEnd srcPt619(Point(765.62835648798, 137.256854915126), 1);
+ connRef619->setSourceEndpoint(srcPt619);
+ ConnEnd dstPt619(Point(765.62835648798, 87.25685491512604), 2);
+ connRef619->setDestEndpoint(dstPt619);
+ connRef619->setRoutingType((ConnType)2);
+
+ ConnRef *connRef620 = new ConnRef(router, 620);
+ ConnEnd srcPt620(Point(1040.914070774694, -126.4098117515406), 4);
+ connRef620->setSourceEndpoint(srcPt620);
+ ConnEnd dstPt620(Point(982.9140707746942, -126.4098117515406), 8);
+ connRef620->setDestEndpoint(dstPt620);
+ connRef620->setRoutingType((ConnType)2);
+
+ ConnRef *connRef621 = new ConnRef(router, 621);
+ ConnEnd srcPt621(Point(1487.12835648898, -126.4098117515406), 4);
+ connRef621->setSourceEndpoint(srcPt621);
+ ConnEnd dstPt621(Point(1429.12835648898, -126.4098117515406), 8);
+ connRef621->setDestEndpoint(dstPt621);
+ connRef621->setRoutingType((ConnType)2);
+
+ ConnRef *connRef622 = new ConnRef(router, 622);
+ ConnEnd srcPt622(Point(1101.12835648898, -4.743145084873959), 2);
+ connRef622->setSourceEndpoint(srcPt622);
+ ConnEnd dstPt622(Point(1101.12835648898, 45.25685491512604), 1);
+ connRef622->setDestEndpoint(dstPt622);
+ connRef622->setRoutingType((ConnType)2);
+
+ ConnRef *connRef623 = new ConnRef(router, 623);
+ ConnEnd srcPt623(Point(1101.12835648898, 137.256854915126), 1);
+ connRef623->setSourceEndpoint(srcPt623);
+ ConnEnd dstPt623(Point(1101.12835648898, 87.25685491512604), 2);
+ connRef623->setDestEndpoint(dstPt623);
+ connRef623->setRoutingType((ConnType)2);
+
+ ConnRef *connRef624 = new ConnRef(router, 624);
+ ConnEnd srcPt624(Point(699.62835648798, 305.2568549161261), 1);
+ connRef624->setSourceEndpoint(srcPt624);
+ ConnEnd dstPt624(Point(699.62835648798, 255.2568549161261), 2);
+ connRef624->setDestEndpoint(dstPt624);
+ connRef624->setRoutingType((ConnType)2);
+
+ ConnRef *connRef625 = new ConnRef(router, 625);
+ ConnEnd srcPt625(Point(1627.12835648998, -16.74314508487396), 2);
+ connRef625->setSourceEndpoint(srcPt625);
+ ConnEnd dstPt625(Point(1627.12835648998, 33.25685491512604), 1);
+ connRef625->setDestEndpoint(dstPt625);
+ connRef625->setRoutingType((ConnType)2);
+
+ ConnRef *connRef626 = new ConnRef(router, 626);
+ ConnEnd srcPt626(Point(1770.12835649098, -16.74314508487396), 2);
+ connRef626->setSourceEndpoint(srcPt626);
+ ConnEnd dstPt626(Point(1770.12835649098, 33.25685491512604), 1);
+ connRef626->setDestEndpoint(dstPt626);
+ connRef626->setRoutingType((ConnType)2);
+
+ ConnRef *connRef627 = new ConnRef(router, 627);
+ ConnEnd srcPt627(Point(-932.12164351602, 771.8568549161259), 8);
+ connRef627->setSourceEndpoint(srcPt627);
+ ConnEnd dstPt627(Point(-874.12164351602, 771.8568549161259), 4);
+ connRef627->setDestEndpoint(dstPt627);
+ connRef627->setRoutingType((ConnType)2);
+
+ ConnRef *connRef628 = new ConnRef(router, 628);
+ ConnEnd srcPt628(Point(-786.12164351602, 771.8568549161259), 8);
+ connRef628->setSourceEndpoint(srcPt628);
+ ConnEnd dstPt628(Point(-728.12164351602, 771.8568549161259), 4);
+ connRef628->setDestEndpoint(dstPt628);
+ connRef628->setRoutingType((ConnType)2);
+
+ ConnRef *connRef629 = new ConnRef(router, 629);
+ ConnEnd srcPt629(Point(-592.87164351602, 520.756854916126), 8);
+ connRef629->setSourceEndpoint(srcPt629);
+ ConnEnd dstPt629(Point(-534.87164351602, 520.756854916126), 4);
+ connRef629->setDestEndpoint(dstPt629);
+ connRef629->setRoutingType((ConnType)2);
+
+ ConnRef *connRef630 = new ConnRef(router, 630);
+ ConnEnd srcPt630(Point(-261.87164351602, 520.756854916126), 4);
+ connRef630->setSourceEndpoint(srcPt630);
+ ConnEnd dstPt630(Point(-319.87164351602, 520.756854916126), 8);
+ connRef630->setDestEndpoint(dstPt630);
+ connRef630->setRoutingType((ConnType)2);
+
+ ConnRef *connRef631 = new ConnRef(router, 631);
+ ConnEnd srcPt631(Point(-183.87164351502, 520.756854916126), 8);
+ connRef631->setSourceEndpoint(srcPt631);
+ ConnEnd dstPt631(Point(-125.87164351502, 520.756854916126), 4);
+ connRef631->setDestEndpoint(dstPt631);
+ connRef631->setRoutingType((ConnType)2);
+
+ ConnRef *connRef632 = new ConnRef(router, 632);
+ ConnEnd srcPt632(Point(239.62835648698, 520.756854916126), 4);
+ connRef632->setSourceEndpoint(srcPt632);
+ ConnEnd dstPt632(Point(181.62835648698, 520.756854916126), 8);
+ connRef632->setDestEndpoint(dstPt632);
+ connRef632->setRoutingType((ConnType)2);
+
+ ConnRef *connRef633 = new ConnRef(router, 633);
+ ConnEnd srcPt633(Point(31.62835648497997, 688.8568549161259), 2);
+ connRef633->setSourceEndpoint(srcPt633);
+ ConnEnd dstPt633(Point(31.62835648497997, 738.8568549161259), 1);
+ connRef633->setDestEndpoint(dstPt633);
+ connRef633->setRoutingType((ConnType)2);
+
+ ConnRef *connRef634 = new ConnRef(router, 634);
+ ConnEnd srcPt634(Point(-410.87164351602, 978.8568549161259), 8);
+ connRef634->setSourceEndpoint(srcPt634);
+ ConnEnd dstPt634(Point(-352.87164351602, 978.8568549161259), 4);
+ connRef634->setDestEndpoint(dstPt634);
+ connRef634->setRoutingType((ConnType)2);
+
+ ConnRef *connRef635 = new ConnRef(router, 635);
+ ConnEnd srcPt635(Point(-637.12164351602, 1044.856854916126), 4);
+ connRef635->setSourceEndpoint(srcPt635);
+ ConnEnd dstPt635(Point(-695.12164351602, 1044.856854916126), 8);
+ connRef635->setDestEndpoint(dstPt635);
+ connRef635->setRoutingType((ConnType)2);
+
+ ConnRef *connRef636 = new ConnRef(router, 636);
+ ConnEnd srcPt636(Point(361.62835648698, 667.8568549161259), 2);
+ connRef636->setSourceEndpoint(srcPt636);
+ ConnEnd dstPt636(Point(361.62835648698, 717.8568549161259), 1);
+ connRef636->setDestEndpoint(dstPt636);
+ connRef636->setRoutingType((ConnType)2);
+
+ ConnRef *connRef637 = new ConnRef(router, 637);
+ ConnEnd srcPt637(Point(666.62835648798, 529.006854916126), 2);
+ connRef637->setSourceEndpoint(srcPt637);
+ ConnEnd dstPt637(Point(666.62835648798, 579.006854916126), 1);
+ connRef637->setDestEndpoint(dstPt637);
+ connRef637->setRoutingType((ConnType)2);
+
+ ConnRef *connRef638 = new ConnRef(router, 638);
+ ConnEnd srcPt638(Point(148.62835648698, 854.8568549161259), 1);
+ connRef638->setSourceEndpoint(srcPt638);
+ ConnEnd dstPt638(Point(148.62835648698, 804.8568549161259), 2);
+ connRef638->setDestEndpoint(dstPt638);
+ connRef638->setRoutingType((ConnType)2);
+
+ ConnRef *connRef639 = new ConnRef(router, 639);
+ ConnEnd srcPt639(Point(798.62835648798, 667.8568549161259), 2);
+ connRef639->setSourceEndpoint(srcPt639);
+ ConnEnd dstPt639(Point(798.62835648798, 717.8568549161259), 1);
+ connRef639->setDestEndpoint(dstPt639);
+ connRef639->setRoutingType((ConnType)2);
+
+ ConnRef *connRef640 = new ConnRef(router, 640);
+ ConnEnd srcPt640(Point(798.62835648798, 809.8568549161259), 1);
+ connRef640->setSourceEndpoint(srcPt640);
+ ConnEnd dstPt640(Point(798.62835648798, 759.8568549161259), 2);
+ connRef640->setDestEndpoint(dstPt640);
+ connRef640->setRoutingType((ConnType)2);
+
+ ConnRef *connRef641 = new ConnRef(router, 641);
+ ConnEnd srcPt641(Point(654.62835648798, 857.8568549161259), 4);
+ connRef641->setSourceEndpoint(srcPt641);
+ ConnEnd dstPt641(Point(596.62835648798, 857.8568549161259), 8);
+ connRef641->setDestEndpoint(dstPt641);
+ connRef641->setRoutingType((ConnType)2);
+
+ ConnRef *connRef642 = new ConnRef(router, 642);
+ ConnEnd srcPt642(Point(101.62835648598, 971.8568549161259), 2);
+ connRef642->setSourceEndpoint(srcPt642);
+ ConnEnd dstPt642(Point(101.62835648598, 1021.856854916126), 1);
+ connRef642->setDestEndpoint(dstPt642);
+ connRef642->setRoutingType((ConnType)2);
+
+ ConnRef *connRef643 = new ConnRef(router, 643);
+ ConnEnd srcPt643(Point(-92.87164351502003, 1214.856854916126), 1);
+ connRef643->setSourceEndpoint(srcPt643);
+ ConnEnd dstPt643(Point(-92.87164351502003, 1164.856854916126), 2);
+ connRef643->setDestEndpoint(dstPt643);
+ connRef643->setRoutingType((ConnType)2);
+
+ ConnRef *connRef644 = new ConnRef(router, 644);
+ ConnEnd srcPt644(Point(-92.87164351502003, 1072.856854916126), 2);
+ connRef644->setSourceEndpoint(srcPt644);
+ ConnEnd dstPt644(Point(-92.87164351502003, 1122.856854916126), 1);
+ connRef644->setDestEndpoint(dstPt644);
+ connRef644->setRoutingType((ConnType)2);
+
+ ConnRef *connRef645 = new ConnRef(router, 645);
+ ConnEnd srcPt645(Point(328.62835648698, 1072.856854916126), 2);
+ connRef645->setSourceEndpoint(srcPt645);
+ ConnEnd dstPt645(Point(328.62835648698, 1122.856854916126), 1);
+ connRef645->setDestEndpoint(dstPt645);
+ connRef645->setRoutingType((ConnType)2);
+
+ ConnRef *connRef646 = new ConnRef(router, 646);
+ ConnEnd srcPt646(Point(845.62835648898, 1060.856854916126), 2);
+ connRef646->setSourceEndpoint(srcPt646);
+ ConnEnd dstPt646(Point(845.62835648898, 1110.856854916126), 1);
+ connRef646->setDestEndpoint(dstPt646);
+ connRef646->setRoutingType((ConnType)2);
+
+ ConnRef *connRef647 = new ConnRef(router, 647);
+ ConnEnd srcPt647(Point(903.9140707746942, 886.8568549171259), 8);
+ connRef647->setSourceEndpoint(srcPt647);
+ ConnEnd dstPt647(Point(961.9140707746942, 886.8568549171259), 4);
+ connRef647->setDestEndpoint(dstPt647);
+ connRef647->setRoutingType((ConnType)2);
+
+ ConnRef *connRef648 = new ConnRef(router, 648);
+ ConnEnd srcPt648(Point(1225.12835648898, 1011.856854916126), 4);
+ connRef648->setSourceEndpoint(srcPt648);
+ ConnEnd dstPt648(Point(1167.12835648898, 1011.856854916126), 8);
+ connRef648->setDestEndpoint(dstPt648);
+ connRef648->setRoutingType((ConnType)2);
+
+ ConnRef *connRef649 = new ConnRef(router, 649);
+ ConnEnd srcPt649(Point(1225.12835648898, 1110.856854916126), 4);
+ connRef649->setSourceEndpoint(srcPt649);
+ ConnEnd dstPt649(Point(1167.12835648898, 1110.856854916126), 8);
+ connRef649->setDestEndpoint(dstPt649);
+ connRef649->setRoutingType((ConnType)2);
+
+ ConnRef *connRef650 = new ConnRef(router, 650);
+ ConnEnd srcPt650(Point(1167.12835648898, 1226.856854916126), 1);
+ connRef650->setSourceEndpoint(srcPt650);
+ ConnEnd dstPt650(Point(1167.12835648898, 1176.856854916126), 2);
+ connRef650->setDestEndpoint(dstPt650);
+ connRef650->setRoutingType((ConnType)2);
+
+ ConnRef *connRef651 = new ConnRef(router, 651);
+ ConnEnd srcPt651(Point(-26.37164351502003, 1375.606854916126), 8);
+ connRef651->setSourceEndpoint(srcPt651);
+ ConnEnd dstPt651(Point(31.62835648497997, 1375.606854916126), 4);
+ connRef651->setDestEndpoint(dstPt651);
+ connRef651->setRoutingType((ConnType)2);
+
+ ConnRef *connRef652 = new ConnRef(router, 652);
+ ConnEnd srcPt652(Point(609.62835648798, 1342.606854916126), 4);
+ connRef652->setSourceEndpoint(srcPt652);
+ ConnEnd dstPt652(Point(551.62835648798, 1342.606854916126), 8);
+ connRef652->setDestEndpoint(dstPt652);
+ connRef652->setRoutingType((ConnType)2);
+
+ ConnRef *connRef653 = new ConnRef(router, 653);
+ ConnEnd srcPt653(Point(-501.87164351602, 1597.106854917126), 2);
+ connRef653->setSourceEndpoint(srcPt653);
+ ConnEnd dstPt653(Point(-501.87164351602, 1647.106854917126), 1);
+ connRef653->setDestEndpoint(dstPt653);
+ connRef653->setRoutingType((ConnType)2);
+
+ ConnRef *connRef654 = new ConnRef(router, 654);
+ ConnEnd srcPt654(Point(-59.87164351502003, 1718.106854917126), 1);
+ connRef654->setSourceEndpoint(srcPt654);
+ ConnEnd dstPt654(Point(-59.87164351502003, 1668.106854917126), 2);
+ connRef654->setDestEndpoint(dstPt654);
+ connRef654->setRoutingType((ConnType)2);
+
+ ConnRef *connRef655 = new ConnRef(router, 655);
+ ConnEnd srcPt655(Point(-59.87164351502003, 1501.106854917126), 2);
+ connRef655->setSourceEndpoint(srcPt655);
+ ConnEnd dstPt655(Point(-59.87164351502003, 1551.106854917126), 1);
+ connRef655->setDestEndpoint(dstPt655);
+ connRef655->setRoutingType((ConnType)2);
+
+ ConnRef *connRef656 = new ConnRef(router, 656);
+ ConnEnd srcPt656(Point(-59.87164351502003, 1576.106854917126), 2);
+ connRef656->setSourceEndpoint(srcPt656);
+ ConnEnd dstPt656(Point(-59.87164351502003, 1626.106854917126), 1);
+ connRef656->setDestEndpoint(dstPt656);
+ connRef656->setRoutingType((ConnType)2);
+
+ ConnRef *connRef657 = new ConnRef(router, 657);
+ ConnEnd srcPt657(Point(394.62835648698, 1718.106854917126), 1);
+ connRef657->setSourceEndpoint(srcPt657);
+ ConnEnd dstPt657(Point(394.62835648698, 1668.106854917126), 2);
+ connRef657->setDestEndpoint(dstPt657);
+ connRef657->setRoutingType((ConnType)2);
+
+ ConnRef *connRef658 = new ConnRef(router, 658);
+ ConnEnd srcPt658(Point(394.62835648698, 1576.106854917126), 2);
+ connRef658->setSourceEndpoint(srcPt658);
+ ConnEnd dstPt658(Point(394.62835648698, 1626.106854917126), 1);
+ connRef658->setDestEndpoint(dstPt658);
+ connRef658->setRoutingType((ConnType)2);
+
+ ConnRef *connRef659 = new ConnRef(router, 659);
+ ConnEnd srcPt659(Point(632.9873402531949, 1576.106854917126), 2);
+ connRef659->setSourceEndpoint(srcPt659);
+ ConnEnd dstPt659(Point(632.9873402531949, 1626.106854917126), 1);
+ connRef659->setDestEndpoint(dstPt659);
+ connRef659->setRoutingType((ConnType)2);
+
+ ConnRef *connRef660 = new ConnRef(router, 660);
+ ConnEnd srcPt660(Point(632.9873402531949, 1718.106854917126), 1);
+ connRef660->setSourceEndpoint(srcPt660);
+ ConnEnd dstPt660(Point(632.9873402531949, 1668.106854917126), 2);
+ connRef660->setDestEndpoint(dstPt660);
+ connRef660->setRoutingType((ConnType)2);
+
+ ConnRef *connRef661 = new ConnRef(router, 661);
+ ConnEnd srcPt661(Point(1167.12835648898, 1517.106854916126), 2);
+ connRef661->setSourceEndpoint(srcPt661);
+ ConnEnd dstPt661(Point(1167.12835648898, 1567.106854916126), 1);
+ connRef661->setDestEndpoint(dstPt661);
+ connRef661->setRoutingType((ConnType)2);
+
+ ConnRef *connRef662 = new ConnRef(router, 662);
+ ConnEnd srcPt662(Point(1167.12835648898, 1656.773521583792), 2);
+ connRef662->setSourceEndpoint(srcPt662);
+ ConnEnd dstPt662(Point(1167.12835648898, 1706.773521583792), 1);
+ connRef662->setDestEndpoint(dstPt662);
+ connRef662->setRoutingType((ConnType)2);
+
+ ConnRef *connRef663 = new ConnRef(router, 663);
+ ConnEnd srcPt663(Point(1330.12835648898, 1383.106854916126), 2);
+ connRef663->setSourceEndpoint(srcPt663);
+ ConnEnd dstPt663(Point(1330.12835648898, 1433.106854916126), 1);
+ connRef663->setDestEndpoint(dstPt663);
+ connRef663->setRoutingType((ConnType)2);
+
+ ConnRef *connRef664 = new ConnRef(router, 664);
+ ConnEnd srcPt664(Point(1627.12835648998, 1259.606854916126), 2);
+ connRef664->setSourceEndpoint(srcPt664);
+ ConnEnd dstPt664(Point(1627.12835648998, 1309.606854916126), 1);
+ connRef664->setDestEndpoint(dstPt664);
+ connRef664->setRoutingType((ConnType)2);
+
+ ConnRef *connRef665 = new ConnRef(router, 665);
+ ConnEnd srcPt665(Point(1594.12835648998, 1576.106854917126), 2);
+ connRef665->setSourceEndpoint(srcPt665);
+ ConnEnd dstPt665(Point(1594.12835648998, 1626.106854917126), 1);
+ connRef665->setDestEndpoint(dstPt665);
+ connRef665->setRoutingType((ConnType)2);
+
+ ConnRef *connRef666 = new ConnRef(router, 666);
+ ConnEnd srcPt666(Point(1594.12835648998, 1718.106854917126), 1);
+ connRef666->setSourceEndpoint(srcPt666);
+ ConnEnd dstPt666(Point(1594.12835648998, 1668.106854917126), 2);
+ connRef666->setDestEndpoint(dstPt666);
+ connRef666->setRoutingType((ConnType)2);
+
+ ConnRef *connRef667 = new ConnRef(router, 667);
+ ConnEnd srcPt667(Point(1770.12835649098, 1259.606854916126), 2);
+ connRef667->setSourceEndpoint(srcPt667);
+ ConnEnd dstPt667(Point(1770.12835649098, 1309.606854916126), 1);
+ connRef667->setDestEndpoint(dstPt667);
+ connRef667->setRoutingType((ConnType)2);
+
+ ConnRef *connRef668 = new ConnRef(router, 668);
+ ConnEnd srcPt668(Point(1770.12835649098, 1597.106854917126), 2);
+ connRef668->setSourceEndpoint(srcPt668);
+ ConnEnd dstPt668(Point(1770.12835649098, 1647.106854917126), 1);
+ connRef668->setDestEndpoint(dstPt668);
+ connRef668->setRoutingType((ConnType)2);
+
+ ConnRef *connRef669 = new ConnRef(router, 669);
+ ConnEnd srcPt669(Point(1943.12835649298, 1597.106854917126), 2);
+ connRef669->setSourceEndpoint(srcPt669);
+ ConnEnd dstPt669(Point(1943.12835649298, 1647.106854917126), 1);
+ connRef669->setDestEndpoint(dstPt669);
+ connRef669->setRoutingType((ConnType)2);
+
+ ConnRef *connRef670 = new ConnRef(router, 670);
+ ConnEnd srcPt670(Point(-468.87164351602, -666.9812403239691), 1);
+ connRef670->setSourceEndpoint(srcPt670);
+ ConnEnd dstPt670(Point(-468.87164351602, -716.9812403239691), 2);
+ connRef670->setDestEndpoint(dstPt670);
+ connRef670->setRoutingType((ConnType)2);
+
+ ConnRef *connRef671 = new ConnRef(router, 671);
+ ConnEnd srcPt671(Point(361.62835648698, 809.8568549161259), 1);
+ connRef671->setSourceEndpoint(srcPt671);
+ ConnEnd dstPt671(Point(361.62835648698, 759.8568549161259), 2);
+ connRef671->setDestEndpoint(dstPt671);
+ connRef671->setRoutingType((ConnType)2);
+
+ ConnRef *connRef672 = new ConnRef(router, 672);
+ ConnEnd srcPt672(Point(328.62835648698, 1214.856854916126), 1);
+ connRef672->setSourceEndpoint(srcPt672);
+ ConnEnd dstPt672(Point(328.62835648698, 1164.856854916126), 2);
+ connRef672->setDestEndpoint(dstPt672);
+ connRef672->setRoutingType((ConnType)2);
+
+ ConnRef *connRef673 = new ConnRef(router, 673);
+ ConnEnd srcPt673(Point(1061.914070774694, 886.8568549171259), 4);
+ connRef673->setSourceEndpoint(srcPt673);
+ ConnEnd dstPt673(Point(1003.914070774694, 886.8568549171259), 8);
+ connRef673->setDestEndpoint(dstPt673);
+ connRef673->setRoutingType((ConnType)2);
+
+ ConnRef *connRef674 = new ConnRef(router, 674);
+ ConnEnd srcPt674(Point(1627.12835648998, -668.4098117525407), 2);
+ connRef674->setSourceEndpoint(srcPt674);
+ ConnEnd dstPt674(Point(1627.12835648998, -618.4098117525407), 1);
+ connRef674->setDestEndpoint(dstPt674);
+ connRef674->setRoutingType((ConnType)2);
+
+ ConnRef *connRef675 = new ConnRef(router, 675);
+ ConnEnd srcPt675(Point(1803.12835649098, -608.5348117525407), 2);
+ connRef675->setSourceEndpoint(srcPt675);
+ ConnEnd dstPt675(Point(1803.12835649098, -558.5348117525407), 1);
+ connRef675->setDestEndpoint(dstPt675);
+ connRef675->setRoutingType((ConnType)2);
+
+ ConnRef *connRef676 = new ConnRef(router, 676);
+ ConnEnd srcPt676(Point(460.62835648698, -787.9812403239691), 2);
+ connRef676->setSourceEndpoint(srcPt676);
+ ConnEnd dstPt676(Point(460.62835648698, -737.9812403239691), 1);
+ connRef676->setDestEndpoint(dstPt676);
+ connRef676->setRoutingType((ConnType)2);
+
+ ConnRef *connRef677 = new ConnRef(router, 677);
+ ConnEnd srcPt677(Point(732.62835648798, -857.4098117525407), 2);
+ connRef677->setSourceEndpoint(srcPt677);
+ ConnEnd dstPt677(Point(732.62835648798, -807.4098117525407), 1);
+ connRef677->setDestEndpoint(dstPt677);
+ connRef677->setRoutingType((ConnType)2);
+
+ ConnRef *connRef678 = new ConnRef(router, 678);
+ ConnEnd srcPt678(Point(732.62835648798, -731.4098117525407), 2);
+ connRef678->setSourceEndpoint(srcPt678);
+ ConnEnd dstPt678(Point(732.62835648798, -681.4098117525407), 1);
+ connRef678->setDestEndpoint(dstPt678);
+ connRef678->setRoutingType((ConnType)2);
+
+ ConnRef *connRef679 = new ConnRef(router, 679);
+ ConnEnd srcPt679(Point(1040.914070774694, -464.4098117525406), 4);
+ connRef679->setSourceEndpoint(srcPt679);
+ ConnEnd dstPt679(Point(982.9140707746942, -464.4098117525406), 8);
+ connRef679->setDestEndpoint(dstPt679);
+ connRef679->setRoutingType((ConnType)2);
+
+ ConnRef *connRef680 = new ConnRef(router, 680);
+ ConnEnd srcPt680(Point(1231.12835648898, -608.5348117525407), 2);
+ connRef680->setSourceEndpoint(srcPt680);
+ ConnEnd dstPt680(Point(1231.12835648898, -558.5348117525407), 1);
+ connRef680->setDestEndpoint(dstPt680);
+ connRef680->setRoutingType((ConnType)2);
+
+ ConnRef *connRef681 = new ConnRef(router, 681);
+ ConnEnd srcPt681(Point(181.62835648698, -76.40981175154064), 1);
+ connRef681->setSourceEndpoint(srcPt681);
+ ConnEnd dstPt681(Point(181.62835648698, -126.4098117515406), 2);
+ connRef681->setDestEndpoint(dstPt681);
+ connRef681->setRoutingType((ConnType)2);
+
+ ConnRef *connRef682 = new ConnRef(router, 682);
+ ConnEnd srcPt682(Point(666.62835648798, -70.40981175154064), 2);
+ connRef682->setSourceEndpoint(srcPt682);
+ ConnEnd dstPt682(Point(666.62835648798, -20.40981175154064), 1);
+ connRef682->setDestEndpoint(dstPt682);
+ connRef682->setRoutingType((ConnType)2);
+
+ ConnRef *connRef683 = new ConnRef(router, 683);
+ ConnEnd srcPt683(Point(911.62835648898, 371.7568549161261), 2);
+ connRef683->setSourceEndpoint(srcPt683);
+ ConnEnd dstPt683(Point(911.62835648898, 421.7568549161261), 1);
+ connRef683->setDestEndpoint(dstPt683);
+ connRef683->setRoutingType((ConnType)2);
+
+ ConnRef *connRef684 = new ConnRef(router, 684);
+ ConnEnd srcPt684(Point(493.62835648698, 371.7568549161261), 2);
+ connRef684->setSourceEndpoint(srcPt684);
+ ConnEnd dstPt684(Point(493.62835648698, 421.7568549161261), 1);
+ connRef684->setDestEndpoint(dstPt684);
+ connRef684->setRoutingType((ConnType)2);
+
+ ConnRef *connRef685 = new ConnRef(router, 685);
+ ConnEnd srcPt685(Point(101.62835648598, 1113.856854916126), 1);
+ connRef685->setSourceEndpoint(srcPt685);
+ ConnEnd dstPt685(Point(101.62835648598, 1063.856854916126), 2);
+ connRef685->setDestEndpoint(dstPt685);
+ connRef685->setRoutingType((ConnType)2);
+
+ ConnRef *connRef686 = new ConnRef(router, 686);
+ ConnEnd srcPt686(Point(31.62835648497997, -608.5348117525407), 2);
+ connRef686->setSourceEndpoint(srcPt686);
+ ConnEnd dstPt686(Point(31.62835648497997, -558.5348117525407), 1);
+ connRef686->setDestEndpoint(dstPt686);
+ connRef686->setRoutingType((ConnType)2);
+
+ ConnRef *connRef687 = new ConnRef(router, 687);
+ ConnEnd srcPt687(Point(1558.12835648898, 585.6568549161261), 2);
+ connRef687->setSourceEndpoint(srcPt687);
+ ConnEnd dstPt687(Point(1558.12835648898, 635.6568549161261), 1);
+ connRef687->setDestEndpoint(dstPt687);
+ connRef687->setRoutingType((ConnType)2);
+
+ ConnRef *connRef688 = new ConnRef(router, 688);
+ ConnEnd srcPt688(Point(1737.12835649098, 585.6568549161261), 2);
+ connRef688->setSourceEndpoint(srcPt688);
+ ConnEnd dstPt688(Point(1737.12835649098, 635.6568549161261), 1);
+ connRef688->setDestEndpoint(dstPt688);
+ connRef688->setRoutingType((ConnType)2);
+
+ ConnRef *connRef689 = new ConnRef(router, 689);
+ ConnEnd srcPt689(Point(2233.795023162646, 564.6568549161261), 2);
+ connRef689->setSourceEndpoint(srcPt689);
+ ConnEnd dstPt689(Point(2233.795023162646, 614.6568549161261), 1);
+ connRef689->setDestEndpoint(dstPt689);
+ connRef689->setRoutingType((ConnType)2);
+
+ ConnRef *connRef690 = new ConnRef(router, 690);
+ ConnEnd srcPt690(Point(2083.795023160646, 585.6568549161261), 2);
+ connRef690->setSourceEndpoint(srcPt690);
+ ConnEnd dstPt690(Point(2083.795023160646, 635.6568549161261), 1);
+ connRef690->setDestEndpoint(dstPt690);
+ connRef690->setRoutingType((ConnType)2);
+
+ ConnRef *connRef691 = new ConnRef(router, 691);
+ ConnEnd srcPt691(Point(2233.795023162646, 706.6568549161261), 1);
+ connRef691->setSourceEndpoint(srcPt691);
+ ConnEnd dstPt691(Point(2233.795023162646, 656.6568549161261), 2);
+ connRef691->setDestEndpoint(dstPt691);
+ connRef691->setRoutingType((ConnType)2);
+
+ ConnRef *connRef692 = new ConnRef(router, 692);
+ ConnEnd srcPt692(Point(1737.12835649098, 311.2568549161261), 2);
+ connRef692->setSourceEndpoint(srcPt692);
+ ConnEnd dstPt692(Point(1737.12835649098, 361.2568549161261), 1);
+ connRef692->setDestEndpoint(dstPt692);
+ connRef692->setRoutingType((ConnType)2);
+
+ ConnRef *connRef693 = new ConnRef(router, 693);
+ ConnEnd srcPt693(Point(1627.12835648998, -547.4098117525407), 2);
+ connRef693->setSourceEndpoint(srcPt693);
+ ConnEnd dstPt693(Point(1627.12835648998, -497.4098117525407), 1);
+ connRef693->setDestEndpoint(dstPt693);
+ connRef693->setRoutingType((ConnType)2);
+
+ ConnRef *connRef694 = new ConnRef(router, 694);
+ ConnEnd srcPt694(Point(-125.87164351502, -877.4098117525407), 15);
+ connRef694->setSourceEndpoint(srcPt694);
+ ConnEnd dstPt694(Point(-662.12164351602, -876.9098117525407), 8);
+ connRef694->setDestEndpoint(dstPt694);
+ connRef694->setRoutingType((ConnType)2);
+
+ ConnRef *connRef695 = new ConnRef(router, 695);
+ ConnEnd srcPt695(Point(-1006.12164351602, -126.4098117515406), 15);
+ connRef695->setSourceEndpoint(srcPt695);
+ ConnEnd dstPt695(Point(-1005.62164351602, 280.7568549161261), 1);
+ connRef695->setDestEndpoint(dstPt695);
+ connRef695->setRoutingType((ConnType)2);
+
+ ConnRef *connRef696 = new ConnRef(router, 696);
+ ConnEnd srcPt696(Point(2046.795023159646, -298.4098117515406), 15);
+ connRef696->setSourceEndpoint(srcPt696);
+ ConnEnd dstPt696(Point(2035.795023161646, -369.9098117525406), 4);
+ connRef696->setDestEndpoint(dstPt696);
+ connRef696->setRoutingType((ConnType)2);
+
+ ConnRef *connRef697 = new ConnRef(router, 697);
+ ConnEnd srcPt697(Point(2046.795023159646, 1647.106854917126), 15);
+ connRef697->setSourceEndpoint(srcPt697);
+ ConnEnd dstPt697(Point(2035.295023161646, 1575.606854916126), 4);
+ connRef697->setDestEndpoint(dstPt697);
+ connRef697->setRoutingType((ConnType)2);
+
+ ConnRef *connRef698 = new ConnRef(router, 698);
+ ConnEnd srcPt698(Point(-1006.12164351602, -431.4098117525406), 15);
+ connRef698->setSourceEndpoint(srcPt698);
+ ConnEnd dstPt698(Point(-1109.62164351702, -152.4098117515406), 1);
+ connRef698->setDestEndpoint(dstPt698);
+ connRef698->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/checkpointNudging3");
+ bool overlap = router->existsOrthogonalSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/checkpoints01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/checkpoints01.cpp
new file mode 100644
index 0000000..83ea0ff
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/checkpoints01.cpp
@@ -0,0 +1,62 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 105);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+ Rectangle rect478845150(Point(50695, 51070), Point(50705, 51080));
+ JunctionRef *junctionRef478845150 = new JunctionRef(router,
+ Point(50700, 51075), 478845150);
+
+ Rectangle rect92712048(Point(51246, 50475), Point(51304, 50585));
+ new ShapeRef(router, rect92712048, 92712048);
+ Rectangle rect23127921(Point(50365, 50766), Point(50485, 50834));
+ new ShapeRef(router, rect23127921, 23127921);
+ Rectangle rect159957148(Point(51740, 50891), Point(51860, 50959));
+ new ShapeRef(router, rect159957148, 159957148);
+ Rectangle rect1350214(Point(50375, 51015), Point(50625, 51135));
+ new ShapeRef(router, rect1350214, 1350214);
+ Rectangle rect247197258(Point(50265, 51046), Point(50375, 51104));
+ new ShapeRef(router, rect247197258, 247197258);
+ Rectangle rect281096654(Point(50700, 50390), Point(51000, 50610));
+ new ShapeRef(router, rect281096654, 281096654);
+ ConnEnd srcPt342420237(Point(50425, 50800), 15);
+ ConnEnd dstPt342420237(Point(50710, 50450), 4);
+ new ConnRef(router, srcPt342420237, dstPt342420237, 342420237);
+ ConnEnd srcPt352019675(Point(50990, 50500), 8);
+ ConnEnd dstPt352019675(junctionRef478845150);
+ //ConnEnd dstPt352019675(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt352019675, dstPt352019675, 352019675);
+ ConnEnd srcPt42699400(junctionRef478845150);
+ //ConnEnd srcPt42699400(Point(50700, 51075), 15);
+ ConnEnd dstPt42699400(Point(50615, 51075), 8);
+ new ConnRef(router, srcPt42699400, dstPt42699400, 42699400);
+ ConnEnd srcPt94712625(Point(50710, 50550), 4);
+ ConnEnd dstPt94712625(junctionRef478845150);
+ //ConnEnd dstPt94712625(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt94712625, dstPt94712625, 94712625);
+
+ ConnEnd srcPt92802970(Point(50990, 50450), 8);
+ ConnEnd dstPt92802970(Point(51275, 50485), 1);
+ ConnRef *conn = new ConnRef(router, srcPt92802970, dstPt92802970, 92802970);
+ std::vector<Checkpoint> checkpoints;
+ checkpoints.push_back(Point(50000, 50000));
+ checkpoints.push_back(Point(50200, 50000));
+ checkpoints.push_back(Point(50200, 50200));
+ conn->setRoutingCheckpoints(checkpoints);
+
+ ConnEnd srcPt716502036(Point(50710, 50500), 4);
+ ConnEnd dstPt716502036(Point(51800, 50925), 15);
+ new ConnRef(router, srcPt716502036, dstPt716502036, 716502036);
+ router->processTransaction();
+ router->outputDiagram("output/checkpoints01-1");
+ router->moveJunction(junctionRef478845150, 585, 0);
+ router->processTransaction();
+ router->outputDiagram("output/checkpoints01-2");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/checkpoints02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/checkpoints02.cpp
new file mode 100644
index 0000000..c6fa9ee
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/checkpoints02.cpp
@@ -0,0 +1,105 @@
+// This is a regression test checking for a problem where orthogonal c-bends
+// due to checkpoints were being incorrectly limited in one dimension as if
+// they were bending around an obstacle.
+
+#include <cmath>
+
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(365.3425124847556, 152.0752314071785);
+ poly5.ps[1] = Point(365.3425124847556, 214.0752314071785);
+ poly5.ps[2] = Point(303.3425124847556, 214.0752314071785);
+ poly5.ps[3] = Point(303.3425124847556, 152.0752314071785);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(365.3425124847556, 24.07523140617849);
+ poly7.ps[1] = Point(365.3425124847556, 86.07523140617849);
+ poly7.ps[2] = Point(303.3425124847556, 86.07523140617849);
+ poly7.ps[3] = Point(303.3425124847556, 24.07523140617849);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(541.6758458190889, 24.07523140617849);
+ poly8.ps[1] = Point(541.6758458190889, 44.07523140617849);
+ poly8.ps[2] = Point(509.6758458190889, 44.07523140617849);
+ poly8.ps[3] = Point(509.6758458190889, 24.07523140617849);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(541.6758458190889, 66.07523140617849);
+ poly10.ps[1] = Point(541.6758458190889, 86.07523140617849);
+ poly10.ps[2] = Point(509.6758458190889, 86.07523140617849);
+ poly10.ps[3] = Point(509.6758458190889, 66.07523140617849);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(420.3425124847556, 101.0752314061785);
+ poly61.ps[1] = Point(420.3425124847556, 141.0752314061785);
+ poly61.ps[2] = Point(344.3425124847556, 141.0752314061785);
+ poly61.ps[3] = Point(344.3425124847556, 101.0752314061785);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(563.5758458190888, 34.07523140617849);
+ poly92.ps[1] = Point(563.5758458190888, 76.07523140617849);
+ poly92.ps[2] = Point(487.7758458190889, 76.07523140617849);
+ poly92.ps[3] = Point(487.7758458190889, 34.07523140617849);
+ new ShapeRef(router, poly92, 92);
+
+ ConnRef *connRef109 = new ConnRef(router, 109);
+ ConnEnd srcPt109(Point(510.6758458190889, 34.07523140617849), 4);
+ connRef109->setSourceEndpoint(srcPt109);
+ ConnEnd dstPt109(Point(334.3425124847556, 183.0752314071785), 15);
+ connRef109->setDestEndpoint(dstPt109);
+ connRef109->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints109(1);
+ checkpoints109[0] = Checkpoint(Point(487.6758458190889, 55.07523140617849), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef109->setRoutingCheckpoints(checkpoints109);
+
+ ConnRef *connRef110 = new ConnRef(router, 110);
+ ConnEnd srcPt110(Point(510.6758458190889, 76.07523140617849), 4);
+ connRef110->setSourceEndpoint(srcPt110);
+ ConnEnd dstPt110(Point(334.3425124847556, 183.0752314071785), 15);
+ connRef110->setDestEndpoint(dstPt110);
+ connRef110->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints110(1);
+ checkpoints110[0] = Checkpoint(Point(487.6758458190889, 55.07523140617849), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef110->setRoutingCheckpoints(checkpoints110);
+
+ router->processTransaction();
+ router->outputDiagram("output/checkpoints02");
+
+ bool succeeded = true;
+ double checkpointY = 55.07523140617849;
+ Avoid::PolyLine route109 = connRef109->displayRoute();
+ if (fabs(route109.ps[route109.size() - 3].y - checkpointY) < 2)
+ {
+ succeeded = false;
+ }
+
+ Avoid::PolyLine route110 = connRef110->displayRoute();
+ if (fabs(route110.ps[route110.size() - 3].y - checkpointY) < 2)
+ {
+ succeeded = false;
+ }
+
+ delete router;
+ return (succeeded) ? 0 : 1;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/checkpoints03.cpp b/src/3rdparty/adaptagrams/libavoid/tests/checkpoints03.cpp
new file mode 100644
index 0000000..15da706
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/checkpoints03.cpp
@@ -0,0 +1,96 @@
+// This is a regression test for a problem where free segments slightly offset
+// from effectively fixed segments going through a checkpoint did not get
+// aligned.
+#include <cmath>
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(918.6758458220888, 441.0752314081785);
+ poly41.ps[1] = Point(918.6758458220888, 503.0752314081785);
+ poly41.ps[2] = Point(856.6758458220888, 503.0752314081785);
+ poly41.ps[3] = Point(856.6758458220888, 441.0752314081785);
+ new ShapeRef(router, poly41, 41);
+
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(710.6758458200889, 441.0752314081785);
+ poly43.ps[1] = Point(710.6758458200889, 461.0752314081785);
+ poly43.ps[2] = Point(678.6758458200889, 461.0752314081785);
+ poly43.ps[3] = Point(678.6758458200889, 441.0752314081785);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(710.6758458200889, 483.0752314081785);
+ poly44.ps[1] = Point(710.6758458200889, 503.0752314081785);
+ poly44.ps[2] = Point(678.6758458200889, 503.0752314081785);
+ poly44.ps[3] = Point(678.6758458200889, 483.0752314081785);
+ new ShapeRef(router, poly44, 44);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(709.6758458200889, 451.0752314081785), 8);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(887.6758458220888, 472.0752314081786), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints149(1);
+ checkpoints149[0] = Checkpoint(Point(732.6758458200889, 472.0752314081785), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef149->setRoutingCheckpoints(checkpoints149);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(709.6758458200889, 493.0752314081785), 8);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(887.6758458220888, 472.0752314081786), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints150(1);
+ checkpoints150[0] = Checkpoint(Point(732.6758458200889, 472.0752314081785), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef150->setRoutingCheckpoints(checkpoints150);
+
+ router->processTransaction();
+ router->outputDiagram("output/checkpoints03");
+
+ bool succeeded = true;
+ Avoid::PolyLine route149 = connRef149->displayRoute();
+ Avoid::PolyLine route150 = connRef150->displayRoute();
+ if (route149.size() > 4 || route150.size() > 4)
+ {
+ // Five segments weren't merged into three. The segments in the shape
+ // on right weren't shifted to align with the segments going through
+ // the checkpoint.
+ succeeded = false;
+ }
+ if (succeeded == true)
+ {
+ // The segments were merged by were not centred around the
+ // checkpoint.
+ double checkpointY = 472.0752314081785;
+ if (fabs(route149.ps[route149.size() - 1].y - checkpointY) < 2)
+ {
+ succeeded = false;
+ }
+
+ if (fabs(route150.ps[route150.size() - 1].y - checkpointY) < 2)
+ {
+ succeeded = false;
+ }
+ }
+ delete router;
+ return (succeeded) ? 0 : 1;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/complex.cpp b/src/3rdparty/adaptagrams/libavoid/tests/complex.cpp
new file mode 100644
index 0000000..6335a11
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/complex.cpp
@@ -0,0 +1,107 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2007 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+
+
+static void connCallback(void *ptr)
+{
+ Avoid::ConnRef *connRef = (Avoid::ConnRef *) ptr;
+
+ printf("Connector %u needs rerouting!\n", connRef->id());
+
+ const Avoid::PolyLine& route = connRef->route();
+ printf("New path: ");
+ for (size_t i = 0; i < route.ps.size(); ++i)
+ {
+ printf("%s(%f, %f)", (i > 0) ? "-" : "",
+ route.ps[i].x, route.ps[i].y);
+ }
+ printf("\n");
+}
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting |
+ Avoid::PolyLineRouting);
+
+ Avoid::Point srcPt(1.2, 0.5);
+ Avoid::Point dstPt(1.5, 4);
+ Avoid::ConnRef *connRef = new Avoid::ConnRef(router, srcPt, dstPt);
+ connRef->setCallback(connCallback, connRef);
+ // Force inital callback:
+ router->processTransaction();
+
+ printf("\nAdding a shape.\n");
+ // Create the ShapeRef:
+ Avoid::Polygon shapePoly(3);
+ shapePoly.ps[0] = Avoid::Point(1, 1);
+ shapePoly.ps[1] = Avoid::Point(2.5, 1.5);
+ shapePoly.ps[2] = Avoid::Point(1.5, 2.5);
+ Avoid::ShapeRef *shapeRef = new Avoid::ShapeRef(router, shapePoly);
+ router->processTransaction();
+
+ printf("\nShifting endpoint.\n");
+ Avoid::Point dstPt2(6, 4.5);
+ connRef->setDestEndpoint(dstPt2);
+ // It's expected you know the connector needs rerouting, so the callback
+ // isn't called. You can force it to be called though, via:
+ router->processTransaction();
+
+ printf("\nMoving shape right by 0.5.\n");
+ router->moveShape(shapeRef, 0.5, 0);
+ router->processTransaction();
+
+ printf("\nChanging type to orthogonal.\n");
+ connRef->setRoutingType(Avoid::ConnType_Orthogonal);
+ router->processTransaction();
+
+ printf("\nChanging type back to polyline.\n");
+ connRef->setRoutingType(Avoid::ConnType_PolyLine);
+ router->processTransaction();
+
+ router->deleteConnector(connRef);
+ printf("\nRemoving shape.\n");
+ router->deleteShape(shapeRef);
+ router->processTransaction();
+
+ printf("\nReadding shape.\n");
+ shapeRef = new Avoid::ShapeRef(router, shapePoly);
+ router->processTransaction();
+
+ printf("\nMoving shape right by 0.5.\n");
+ router->moveShape(shapeRef, 0.5, 0);
+ router->processTransaction();
+
+ router->deleteShape(shapeRef);
+ shapeRef = nullptr;
+ router->processTransaction();
+
+ router->outputDiagram("output/complex");
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/connectionpin01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/connectionpin01.cpp
new file mode 100644
index 0000000..92c3760
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/connectionpin01.cpp
@@ -0,0 +1,68 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2010 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+#include "libavoid/connectionpin.h"
+
+// A testcase to check the functionality for connection pins.
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting);
+
+ // Create the ShapeRef:
+ Avoid::Rectangle shapeRect1(Avoid::Point(0, 0), Avoid::Point(10, 10));
+ Avoid::ShapeRef *shapeRef1 = new Avoid::ShapeRef(router, shapeRect1);
+
+
+ Avoid::Rectangle shapeRect2(Avoid::Point(40, 20), Avoid::Point(50, 30));
+ Avoid::ShapeRef *shapeRef2 = new Avoid::ShapeRef(router, shapeRect2);
+
+ const unsigned int CENTRE = 1;
+ new Avoid::ShapeConnectionPin(shapeRef1, CENTRE, Avoid::ATTACH_POS_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+ new Avoid::ShapeConnectionPin(shapeRef2, CENTRE, Avoid::ATTACH_POS_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+
+ Avoid::ConnEnd dstEnd(shapeRef1, CENTRE);
+ Avoid::ConnEnd srcEnd(shapeRef2, CENTRE);
+ new Avoid::ConnRef(router, srcEnd, dstEnd);
+ // Force inital callback:
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin01-1");
+
+ router->moveShape(shapeRef2, 5, 0);
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin01-2");
+
+ router->moveShape(shapeRef1, 0, -10);
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin01-3");
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/connectionpin02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/connectionpin02.cpp
new file mode 100644
index 0000000..5724150
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/connectionpin02.cpp
@@ -0,0 +1,113 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2010 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+#include "libavoid/connectionpin.h"
+
+// A testcase to check the functionality for connection pins.
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting);
+ router->setRoutingPenalty((Avoid::PenaltyType)0, 50);
+
+ // Create the ShapeRef:
+ Avoid::Rectangle shapeRect1(Avoid::Point(0, 0), Avoid::Point(10, 10));
+ Avoid::ShapeRef *shapeRef1 = new Avoid::ShapeRef(router, shapeRect1);
+
+ Avoid::Rectangle shapeRect2(Avoid::Point(0, 90), Avoid::Point(20, 100));
+ Avoid::ShapeRef *shapeRef2 = new Avoid::ShapeRef(router, shapeRect2);
+
+ Avoid::Rectangle shapeRect3(Avoid::Point(50, 40), Avoid::Point(90, 80));
+ Avoid::ShapeRef *shapeRef3 = new Avoid::ShapeRef(router, shapeRect3);
+
+ // Create pins two input pins on the left side of shape 3.
+ const unsigned int INPUT = 1;
+ new Avoid::ShapeConnectionPin(shapeRef3, INPUT, 0.25,
+ 0.4, true, 0, Avoid::ConnDirLeft);
+ new Avoid::ShapeConnectionPin(shapeRef3, INPUT, 0.75,
+ 0.6, true, 0, Avoid::ConnDirLeft);
+
+ // And centre pins for two other shapes.
+ new Avoid::ShapeConnectionPin(shapeRef1, Avoid::CONNECTIONPIN_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+ new Avoid::ShapeConnectionPin(shapeRef2, Avoid::CONNECTIONPIN_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+
+ // Create connectors from each shape to an input pin on shape 3.
+ Avoid::ConnEnd srcEnd(shapeRef2, Avoid::CONNECTIONPIN_CENTRE);
+ Avoid::ConnEnd dstEnd(shapeRef3, INPUT);
+ new Avoid::ConnRef(router, srcEnd, dstEnd);
+
+ srcEnd = Avoid::ConnEnd(shapeRef1, Avoid::CONNECTIONPIN_CENTRE);
+ dstEnd = Avoid::ConnEnd(shapeRef3, INPUT);
+ new Avoid::ConnRef(router, srcEnd, dstEnd);
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-1");
+
+ router->moveShape(shapeRef1, 0, 90);
+ router->moveShape(shapeRef2, 0, -90);
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-2");
+
+ router->moveShape(shapeRef3, 0, -60);
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-3");
+
+ shapeRef3->transformConnectionPinPositions(Avoid::TransformationType_CW90);
+ /*
+ delete pin1;
+ delete pin2;
+ pin1 = new Avoid::ShapeConnectionPin(shapeRef3, INPUT,
+ Avoid::ATTACH_POS_RIGHT, 0.25, 5, Avoid::ConnDirRight);
+ pin2 = new Avoid::ShapeConnectionPin(shapeRef3, INPUT,
+ Avoid::ATTACH_POS_RIGHT, 0.75, 5, Avoid::ConnDirRight);
+ */
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-4");
+
+ shapeRef3->transformConnectionPinPositions(Avoid::TransformationType_CW180);
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-5");
+
+ shapeRef3->transformConnectionPinPositions(Avoid::TransformationType_CW270);
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-6");
+
+ shapeRef3->transformConnectionPinPositions(Avoid::TransformationType_FlipX);
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-7");
+
+ shapeRef3->transformConnectionPinPositions(Avoid::TransformationType_FlipY);
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin02-8");
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/connectionpin03.cpp b/src/3rdparty/adaptagrams/libavoid/tests/connectionpin03.cpp
new file mode 100644
index 0000000..a877817
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/connectionpin03.cpp
@@ -0,0 +1,328 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly219926511(4);
+ poly219926511.ps[0] = Point(50760, 51240);
+ poly219926511.ps[1] = Point(50760, 51260);
+ poly219926511.ps[2] = Point(50740, 51260);
+ poly219926511.ps[3] = Point(50740, 51240);
+ ShapeRef *shapeRef219926511 = new ShapeRef(router, poly219926511, 219926511);
+ new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 1);
+ new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 2);
+
+ JunctionRef *shapeRef171026375 = new JunctionRef(router, Point(51075, 51225), 171026375);
+
+ Polygon poly878674(4);
+ poly878674.ps[0] = Point(51454, 51200);
+ poly878674.ps[1] = Point(51454, 51285);
+ poly878674.ps[2] = Point(51396, 51285);
+ poly878674.ps[3] = Point(51396, 51200);
+ new ShapeRef(router, poly878674, 878674);
+
+ Polygon poly286906544(4);
+ poly286906544.ps[0] = Point(50704, 51250);
+ poly286906544.ps[1] = Point(50704, 51335);
+ poly286906544.ps[2] = Point(50646, 51335);
+ poly286906544.ps[3] = Point(50646, 51250);
+ new ShapeRef(router, poly286906544, 286906544);
+
+ Polygon poly170813081(4);
+ poly170813081.ps[0] = Point(51104, 51090);
+ poly170813081.ps[1] = Point(51104, 51175);
+ poly170813081.ps[2] = Point(51046, 51175);
+ poly170813081.ps[3] = Point(51046, 51090);
+ new ShapeRef(router, poly170813081, 170813081);
+
+ Polygon poly342721632(4);
+ poly342721632.ps[0] = Point(51910, 50946);
+ poly342721632.ps[1] = Point(51910, 51004);
+ poly342721632.ps[2] = Point(51825, 51004);
+ poly342721632.ps[3] = Point(51825, 50946);
+ new ShapeRef(router, poly342721632, 342721632);
+
+ Polygon poly223927132(4);
+ poly223927132.ps[0] = Point(51510, 51190);
+ poly223927132.ps[1] = Point(51510, 51210);
+ poly223927132.ps[2] = Point(51490, 51210);
+ poly223927132.ps[3] = Point(51490, 51190);
+ ShapeRef *shapeRef223927132 = new ShapeRef(router, poly223927132, 223927132);
+ new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 1);
+ new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 2);
+
+ JunctionRef *shapeRef102578723 = new JunctionRef(router, Point(51275, 50725), 102578723);
+
+ JunctionRef *shapeRef17922268 = new JunctionRef(router, Point(50850, 50975), 17922268);
+
+ Polygon poly11057158(4);
+ poly11057158.ps[0] = Point(51679, 51200);
+ poly11057158.ps[1] = Point(51679, 51285);
+ poly11057158.ps[2] = Point(51621, 51285);
+ poly11057158.ps[3] = Point(51621, 51200);
+ new ShapeRef(router, poly11057158, 11057158);
+
+ Polygon poly322446045(4);
+ poly322446045.ps[0] = Point(50779, 51240);
+ poly322446045.ps[1] = Point(50779, 51335);
+ poly322446045.ps[2] = Point(50721, 51335);
+ poly322446045.ps[3] = Point(50721, 51240);
+ new ShapeRef(router, poly322446045, 322446045);
+
+ Polygon poly767565928(4);
+ poly767565928.ps[0] = Point(51004, 50741);
+ poly767565928.ps[1] = Point(51004, 50826);
+ poly767565928.ps[2] = Point(50946, 50826);
+ poly767565928.ps[3] = Point(50946, 50741);
+ new ShapeRef(router, poly767565928, 767565928);
+
+ Polygon poly280939374(4);
+ poly280939374.ps[0] = Point(51085, 50971);
+ poly280939374.ps[1] = Point(51085, 51029);
+ poly280939374.ps[2] = Point(51000, 51029);
+ poly280939374.ps[3] = Point(51000, 50971);
+ new ShapeRef(router, poly280939374, 280939374);
+
+ Polygon poly630623707(4);
+ poly630623707.ps[0] = Point(51279, 50925);
+ poly630623707.ps[1] = Point(51279, 51010);
+ poly630623707.ps[2] = Point(51221, 51010);
+ poly630623707.ps[3] = Point(51221, 50925);
+ new ShapeRef(router, poly630623707, 630623707);
+
+ Polygon poly28160455(4);
+ poly28160455.ps[0] = Point(50879, 51250);
+ poly28160455.ps[1] = Point(50879, 51335);
+ poly28160455.ps[2] = Point(50821, 51335);
+ poly28160455.ps[3] = Point(50821, 51250);
+ new ShapeRef(router, poly28160455, 28160455);
+
+ Polygon poly525890448(4);
+ poly525890448.ps[0] = Point(51174, 50721);
+ poly525890448.ps[1] = Point(51174, 50779);
+ poly525890448.ps[2] = Point(51089, 50779);
+ poly525890448.ps[3] = Point(51089, 50721);
+ new ShapeRef(router, poly525890448, 525890448);
+
+ Polygon poly157182552(4);
+ poly157182552.ps[0] = Point(51529, 51190);
+ poly157182552.ps[1] = Point(51529, 51285);
+ poly157182552.ps[2] = Point(51471, 51285);
+ poly157182552.ps[3] = Point(51471, 51190);
+ new ShapeRef(router, poly157182552, 157182552);
+
+ Polygon poly799637520(4);
+ poly799637520.ps[0] = Point(50625, 50896);
+ poly799637520.ps[1] = Point(50625, 50954);
+ poly799637520.ps[2] = Point(50540, 50954);
+ poly799637520.ps[3] = Point(50540, 50896);
+ new ShapeRef(router, poly799637520, 799637520);
+
+ Polygon poly60349320(4);
+ poly60349320.ps[0] = Point(50904, 51025);
+ poly60349320.ps[1] = Point(50904, 51110);
+ poly60349320.ps[2] = Point(50846, 51110);
+ poly60349320.ps[3] = Point(50846, 51025);
+ new ShapeRef(router, poly60349320, 60349320);
+
+ Polygon poly119851894(4);
+ poly119851894.ps[0] = Point(51179, 51225);
+ poly119851894.ps[1] = Point(51179, 51310);
+ poly119851894.ps[2] = Point(51121, 51310);
+ poly119851894.ps[3] = Point(51121, 51225);
+ new ShapeRef(router, poly119851894, 119851894);
+
+ Polygon poly233164275(4);
+ poly233164275.ps[0] = Point(51604, 51200);
+ poly233164275.ps[1] = Point(51604, 51285);
+ poly233164275.ps[2] = Point(51546, 51285);
+ poly233164275.ps[3] = Point(51546, 51200);
+ new ShapeRef(router, poly233164275, 233164275);
+
+ Polygon poly807558175(4);
+ poly807558175.ps[0] = Point(51604, 51000);
+ poly807558175.ps[1] = Point(51604, 51085);
+ poly807558175.ps[2] = Point(51546, 51085);
+ poly807558175.ps[3] = Point(51546, 51000);
+ new ShapeRef(router, poly807558175, 807558175);
+
+ JunctionRef *shapeRef265539540 = new JunctionRef(router, Point(51625, 50950), 265539540);
+
+ Polygon poly108859552(4);
+ poly108859552.ps[0] = Point(51560, 50721);
+ poly108859552.ps[1] = Point(51560, 50779);
+ poly108859552.ps[2] = Point(51475, 50779);
+ poly108859552.ps[3] = Point(51475, 50721);
+ new ShapeRef(router, poly108859552, 108859552);
+
+ Polygon poly404900496(4);
+ poly404900496.ps[0] = Point(51525, 50946);
+ poly404900496.ps[1] = Point(51525, 51004);
+ poly404900496.ps[2] = Point(51440, 51004);
+ poly404900496.ps[3] = Point(51440, 50946);
+ new ShapeRef(router, poly404900496, 404900496);
+
+ Polygon poly620445000(4);
+ poly620445000.ps[0] = Point(51029, 51225);
+ poly620445000.ps[1] = Point(51029, 51310);
+ poly620445000.ps[2] = Point(50971, 51310);
+ poly620445000.ps[3] = Point(50971, 51225);
+ new ShapeRef(router, poly620445000, 620445000);
+
+ ConnRef *connRef450684531 = new ConnRef(router, 450684531);
+ ConnEnd srcPt450684531(Point(51165, 50750), 8);
+ connRef450684531->setSourceEndpoint(srcPt450684531);
+ ConnEnd dstPt450684531(shapeRef102578723);
+ connRef450684531->setDestEndpoint(dstPt450684531);
+ connRef450684531->setRoutingType((ConnType)2);
+
+ ConnRef *connRef135371350 = new ConnRef(router, 135371350);
+ ConnEnd srcPt135371350(shapeRef102578723);
+ connRef135371350->setSourceEndpoint(srcPt135371350);
+ ConnEnd dstPt135371350(Point(51250, 50935), 1);
+ connRef135371350->setDestEndpoint(dstPt135371350);
+ connRef135371350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef143333770 = new ConnRef(router, 143333770);
+ ConnEnd srcPt143333770(Point(51485, 50750), 4);
+ connRef143333770->setSourceEndpoint(srcPt143333770);
+ ConnEnd dstPt143333770(shapeRef102578723);
+ connRef143333770->setDestEndpoint(dstPt143333770);
+ connRef143333770->setRoutingType((ConnType)2);
+
+ ConnRef *connRef102966575 = new ConnRef(router, 102966575);
+ ConnEnd srcPt102966575(Point(50615, 50925), 8);
+ connRef102966575->setSourceEndpoint(srcPt102966575);
+ ConnEnd dstPt102966575(shapeRef17922268);
+ connRef102966575->setDestEndpoint(dstPt102966575);
+ connRef102966575->setRoutingType((ConnType)2);
+
+ ConnRef *connRef68998920 = new ConnRef(router, 68998920);
+ ConnEnd srcPt68998920(shapeRef17922268);
+ connRef68998920->setSourceEndpoint(srcPt68998920);
+ ConnEnd dstPt68998920(Point(50975, 50815), 2);
+ connRef68998920->setDestEndpoint(dstPt68998920);
+ connRef68998920->setRoutingType((ConnType)2);
+
+ ConnRef *connRef1625709 = new ConnRef(router, 1625709);
+ ConnEnd srcPt1625709(shapeRef17922268);
+ connRef1625709->setSourceEndpoint(srcPt1625709);
+ ConnEnd dstPt1625709(Point(50875, 51035), 1);
+ connRef1625709->setDestEndpoint(dstPt1625709);
+ connRef1625709->setRoutingType((ConnType)2);
+
+ ConnRef *connRef34178450 = new ConnRef(router, 34178450);
+ ConnEnd srcPt34178450(shapeRef17922268);
+ connRef34178450->setSourceEndpoint(srcPt34178450);
+ ConnEnd dstPt34178450(Point(51010, 51000), 4);
+ connRef34178450->setDestEndpoint(dstPt34178450);
+ connRef34178450->setRoutingType((ConnType)2);
+
+ ConnRef *connRef7982176 = new ConnRef(router, 7982176);
+ ConnEnd srcPt7982176(Point(50675, 51260), 1);
+ connRef7982176->setSourceEndpoint(srcPt7982176);
+ ConnEnd dstPt7982176(shapeRef219926511, 2147483646);
+ connRef7982176->setDestEndpoint(dstPt7982176);
+ connRef7982176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197177982 = new ConnRef(router, 197177982);
+ ConnEnd srcPt197177982(Point(50750, 51250), 15);
+ connRef197177982->setSourceEndpoint(srcPt197177982);
+ ConnEnd dstPt197177982(Point(50750, 51260), 1);
+ connRef197177982->setDestEndpoint(dstPt197177982);
+ connRef197177982->setRoutingType((ConnType)2);
+
+ ConnRef *connRef398066432 = new ConnRef(router, 398066432);
+ ConnEnd srcPt398066432(shapeRef219926511, 2147483646);
+ connRef398066432->setSourceEndpoint(srcPt398066432);
+ ConnEnd dstPt398066432(Point(50850, 51260), 1);
+ connRef398066432->setDestEndpoint(dstPt398066432);
+ connRef398066432->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314512308 = new ConnRef(router, 314512308);
+ ConnEnd srcPt314512308(Point(51000, 51235), 1);
+ connRef314512308->setSourceEndpoint(srcPt314512308);
+ ConnEnd dstPt314512308(shapeRef171026375);
+ connRef314512308->setDestEndpoint(dstPt314512308);
+ connRef314512308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182776308 = new ConnRef(router, 182776308);
+ ConnEnd srcPt182776308(Point(51075, 51225), 15);
+ connRef182776308->setSourceEndpoint(srcPt182776308);
+ ConnEnd dstPt182776308(Point(51075, 51165), 2);
+ connRef182776308->setDestEndpoint(dstPt182776308);
+ connRef182776308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef96504835 = new ConnRef(router, 96504835);
+ ConnEnd srcPt96504835(Point(51150, 51235), 1);
+ connRef96504835->setSourceEndpoint(srcPt96504835);
+ ConnEnd dstPt96504835(shapeRef171026375);
+ connRef96504835->setDestEndpoint(dstPt96504835);
+ connRef96504835->setRoutingType((ConnType)2);
+
+ ConnRef *connRef118099300 = new ConnRef(router, 118099300);
+ ConnEnd srcPt118099300(Point(51425, 51210), 1);
+ connRef118099300->setSourceEndpoint(srcPt118099300);
+ ConnEnd dstPt118099300(shapeRef223927132, 2147483646);
+ connRef118099300->setDestEndpoint(dstPt118099300);
+ connRef118099300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176080410 = new ConnRef(router, 176080410);
+ ConnEnd srcPt176080410(shapeRef223927132, 2147483646);
+ connRef176080410->setSourceEndpoint(srcPt176080410);
+ ConnEnd dstPt176080410(Point(51575, 51210), 1);
+ connRef176080410->setDestEndpoint(dstPt176080410);
+ connRef176080410->setRoutingType((ConnType)2);
+
+ ConnRef *connRef426666001 = new ConnRef(router, 426666001);
+ ConnEnd srcPt426666001(Point(51500, 51210), 1);
+ connRef426666001->setSourceEndpoint(srcPt426666001);
+ ConnEnd dstPt426666001(Point(51500, 51200), 15);
+ connRef426666001->setDestEndpoint(dstPt426666001);
+ connRef426666001->setRoutingType((ConnType)2);
+
+ ConnRef *connRef795762792 = new ConnRef(router, 795762792);
+ ConnEnd srcPt795762792(Point(51650, 51210), 1);
+ connRef795762792->setSourceEndpoint(srcPt795762792);
+ ConnEnd dstPt795762792(shapeRef223927132, 2147483646);
+ connRef795762792->setDestEndpoint(dstPt795762792);
+ connRef795762792->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467016913 = new ConnRef(router, 467016913);
+ ConnEnd srcPt467016913(shapeRef265539540);
+ connRef467016913->setSourceEndpoint(srcPt467016913);
+ ConnEnd dstPt467016913(Point(51575, 51010), 1);
+ connRef467016913->setDestEndpoint(dstPt467016913);
+ connRef467016913->setRoutingType((ConnType)2);
+
+ ConnRef *connRef45740440 = new ConnRef(router, 45740440);
+ ConnEnd srcPt45740440(Point(51835, 50975), 4);
+ connRef45740440->setSourceEndpoint(srcPt45740440);
+ ConnEnd dstPt45740440(shapeRef265539540);
+ connRef45740440->setDestEndpoint(dstPt45740440);
+ connRef45740440->setRoutingType((ConnType)2);
+
+ ConnRef *connRef985644192 = new ConnRef(router, 985644192);
+ ConnEnd srcPt985644192(Point(51515, 50975), 8);
+ connRef985644192->setSourceEndpoint(srcPt985644192);
+ ConnEnd dstPt985644192(shapeRef265539540);
+ connRef985644192->setDestEndpoint(dstPt985644192);
+ connRef985644192->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/connectionpin03");
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/connendmove.cpp b/src/3rdparty/adaptagrams/libavoid/tests/connendmove.cpp
new file mode 100644
index 0000000..dfcbf8e
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/connendmove.cpp
@@ -0,0 +1,85 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2007 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+// Regression test to catch a bug where moving detaching a connected
+// endpoint that was scheduled to move would result in a double free.
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting);
+
+ // Create the ShapeRef:
+ Avoid::Rectangle shapeRect1(Avoid::Point(0, 0), Avoid::Point(10, 10));
+ Avoid::ShapeRef *shapeRef1 = new Avoid::ShapeRef(router, shapeRect1);
+ const unsigned int CENTRE = 1;
+ new Avoid::ShapeConnectionPin(shapeRef1, CENTRE,
+ Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+
+ Avoid::Rectangle shapeRect2(Avoid::Point(0, 0), Avoid::Point(10, 10));
+ Avoid::ShapeRef *shapeRef2 = new Avoid::ShapeRef(router, shapeRect1);
+
+ Avoid::ConnEnd dstPt(shapeRef1, CENTRE);
+ Avoid::Point srcPt(1.5, 4);
+ Avoid::ConnRef *connRef = new Avoid::ConnRef(router, srcPt, dstPt);
+ // Force inital callback:
+ router->processTransaction();
+ router->outputDiagram("output/connendmove-1");
+
+ Avoid::Point dstPt2(20, 20);
+ connRef->setDestEndpoint(dstPt2);
+ router->moveShape(shapeRef1, 0.5, 0);
+
+ router->processTransaction();
+ router->outputDiagram("output/connendmove-2");
+
+ srcPt.x += 0.5;
+ connRef->setSourceEndpoint(srcPt);
+ router->moveShape(shapeRef1, 0.5, 0);
+ router->moveShape(shapeRef2, 0, 0.5);
+
+ srcPt.x += 0.5;
+ connRef->setSourceEndpoint(srcPt);
+ router->moveShape(shapeRef1, 0.5, 0);
+ router->moveShape(shapeRef2, 0, 0.5);
+
+ srcPt.x += 0.5;
+ connRef->setSourceEndpoint(srcPt);
+ router->moveShape(shapeRef1, 0.5, 0);
+ router->moveShape(shapeRef2, 0, 0.5);
+
+ srcPt.x += 0.5;
+ connRef->setSourceEndpoint(srcPt);
+ router->moveShape(shapeRef1, 0.5, 0);
+ router->moveShape(shapeRef2, 0, 0.5);
+
+ router->processTransaction();
+ router->outputDiagram("output/connendmove-3");
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/corneroverlap01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/corneroverlap01.cpp
new file mode 100644
index 0000000..a0db76d
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/corneroverlap01.cpp
@@ -0,0 +1,154 @@
+// From cornertouching_libavoid-debug bug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setOrthogonalNudgeDistance(12);
+
+ Polygon poly21424960(4);
+ poly21424960.ps[0] = Point(29950, 27210);
+ poly21424960.ps[1] = Point(29950, 27290);
+ poly21424960.ps[2] = Point(29700, 27290);
+ poly21424960.ps[3] = Point(29700, 27210);
+ new ShapeRef(router, poly21424960, 21424960);
+
+ Polygon poly435105790(4);
+ poly435105790.ps[0] = Point(29950, 27110);
+ poly435105790.ps[1] = Point(29950, 27190);
+ poly435105790.ps[2] = Point(29700, 27190);
+ poly435105790.ps[3] = Point(29700, 27110);
+ new ShapeRef(router, poly435105790, 435105790);
+
+ Polygon poly40787191(4);
+ poly40787191.ps[0] = Point(29950, 27010);
+ poly40787191.ps[1] = Point(29950, 27090);
+ poly40787191.ps[2] = Point(29700, 27090);
+ poly40787191.ps[3] = Point(29700, 27010);
+ new ShapeRef(router, poly40787191, 40787191);
+
+ Polygon poly76911264(4);
+ poly76911264.ps[0] = Point(29950, 26910);
+ poly76911264.ps[1] = Point(29950, 26990);
+ poly76911264.ps[2] = Point(29700, 26990);
+ poly76911264.ps[3] = Point(29700, 26910);
+ new ShapeRef(router, poly76911264, 76911264);
+
+ Polygon poly506213376(4);
+ poly506213376.ps[0] = Point(29925, 26820);
+ poly506213376.ps[1] = Point(29925, 26880);
+ poly506213376.ps[2] = Point(29675, 26880);
+ poly506213376.ps[3] = Point(29675, 26820);
+ new ShapeRef(router, poly506213376, 506213376);
+
+ Polygon poly134604636(4);
+ poly134604636.ps[0] = Point(29925, 26720);
+ poly134604636.ps[1] = Point(29925, 26780);
+ poly134604636.ps[2] = Point(29675, 26780);
+ poly134604636.ps[3] = Point(29675, 26720);
+ new ShapeRef(router, poly134604636, 134604636);
+
+ Polygon poly14353632(4);
+ poly14353632.ps[0] = Point(29600, 26590);
+ poly14353632.ps[1] = Point(29600, 27660);
+ poly14353632.ps[2] = Point(28440, 27660);
+ poly14353632.ps[3] = Point(28440, 26590);
+ new ShapeRef(router, poly14353632, 14353632);
+
+ ConnRef *connRef70269732 = new ConnRef(router, 70269732);
+ ConnEnd srcPt70269732(Point(29590, 26700), 8);
+ connRef70269732->setSourceEndpoint(srcPt70269732);
+ ConnEnd dstPt70269732(Point(29915, 26750), 8);
+ connRef70269732->setDestEndpoint(dstPt70269732);
+ connRef70269732->setRoutingType((ConnType)2);
+
+ ConnRef *connRef371572709 = new ConnRef(router, 371572709);
+ ConnEnd srcPt371572709(Point(29590, 26800), 8);
+ connRef371572709->setSourceEndpoint(srcPt371572709);
+ ConnEnd dstPt371572709(Point(29915, 26850), 8);
+ connRef371572709->setDestEndpoint(dstPt371572709);
+ connRef371572709->setRoutingType((ConnType)2);
+
+ ConnRef *connRef876797766 = new ConnRef(router, 876797766);
+ ConnEnd srcPt876797766(Point(29590, 26900), 8);
+ connRef876797766->setSourceEndpoint(srcPt876797766);
+ ConnEnd dstPt876797766(Point(29940, 26950), 8);
+ connRef876797766->setDestEndpoint(dstPt876797766);
+ connRef876797766->setRoutingType((ConnType)2);
+
+ ConnRef *connRef134423590 = new ConnRef(router, 134423590);
+ ConnEnd srcPt134423590(Point(29590, 27000), 8);
+ connRef134423590->setSourceEndpoint(srcPt134423590);
+ ConnEnd dstPt134423590(Point(29940, 27050), 8);
+ connRef134423590->setDestEndpoint(dstPt134423590);
+ connRef134423590->setRoutingType((ConnType)2);
+
+ ConnRef *connRef872586669 = new ConnRef(router, 872586669);
+ ConnEnd srcPt872586669(Point(29590, 27100), 8);
+ connRef872586669->setSourceEndpoint(srcPt872586669);
+ ConnEnd dstPt872586669(Point(29940, 27150), 8);
+ connRef872586669->setDestEndpoint(dstPt872586669);
+ connRef872586669->setRoutingType((ConnType)2);
+
+ ConnRef *connRef23601612 = new ConnRef(router, 23601612);
+ ConnEnd srcPt23601612(Point(29590, 27200), 8);
+ connRef23601612->setSourceEndpoint(srcPt23601612);
+ ConnEnd dstPt23601612(Point(29940, 27250), 8);
+ connRef23601612->setDestEndpoint(dstPt23601612);
+ connRef23601612->setRoutingType((ConnType)2);
+
+ ConnRef *connRef737483980 = new ConnRef(router, 737483980);
+ ConnEnd srcPt737483980(Point(29685, 26750), 4);
+ connRef737483980->setSourceEndpoint(srcPt737483980);
+ ConnEnd dstPt737483980(Point(29590, 26650), 8);
+ connRef737483980->setDestEndpoint(dstPt737483980);
+ connRef737483980->setRoutingType((ConnType)2);
+
+ ConnRef *connRef410784855 = new ConnRef(router, 410784855);
+ ConnEnd srcPt410784855(Point(29685, 26850), 4);
+ connRef410784855->setSourceEndpoint(srcPt410784855);
+ ConnEnd dstPt410784855(Point(29590, 26750), 8);
+ connRef410784855->setDestEndpoint(dstPt410784855);
+ connRef410784855->setRoutingType((ConnType)2);
+
+ ConnRef *connRef15771480 = new ConnRef(router, 15771480);
+ ConnEnd srcPt15771480(Point(29710, 26950), 4);
+ connRef15771480->setSourceEndpoint(srcPt15771480);
+ ConnEnd dstPt15771480(Point(29590, 26850), 8);
+ connRef15771480->setDestEndpoint(dstPt15771480);
+ connRef15771480->setRoutingType((ConnType)2);
+
+ ConnRef *connRef34657402 = new ConnRef(router, 34657402);
+ ConnEnd srcPt34657402(Point(29710, 27050), 4);
+ connRef34657402->setSourceEndpoint(srcPt34657402);
+ ConnEnd dstPt34657402(Point(29590, 26950), 8);
+ connRef34657402->setDestEndpoint(dstPt34657402);
+ connRef34657402->setRoutingType((ConnType)2);
+
+ ConnRef *connRef98191218 = new ConnRef(router, 98191218);
+ ConnEnd srcPt98191218(Point(29710, 27150), 4);
+ connRef98191218->setSourceEndpoint(srcPt98191218);
+ ConnEnd dstPt98191218(Point(29590, 27050), 8);
+ connRef98191218->setDestEndpoint(dstPt98191218);
+ connRef98191218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef23433311 = new ConnRef(router, 23433311);
+ ConnEnd srcPt23433311(Point(29710, 27250), 4);
+ connRef23433311->setSourceEndpoint(srcPt23433311);
+ ConnEnd dstPt23433311(Point(29590, 27150), 8);
+ connRef23433311->setDestEndpoint(dstPt23433311);
+ connRef23433311->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/corneroverlap01");
+ bool touching = router->existsOrthogonalTouchingPaths();
+ delete router;
+ return (touching) ? 1 : 0;
+};
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/endlessLoop01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/endlessLoop01.cpp
new file mode 100644
index 0000000..8053be8
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/endlessLoop01.cpp
@@ -0,0 +1,142 @@
+#include "libavoid/libavoid.h"
+#include <sstream>
+using namespace Avoid;
+
+void outputDiagram(Avoid::Router * router)
+{
+ static int counter = 0;
+ std::ostringstream os;
+ os << (++counter);
+ router->outputDiagram(os.str());
+}
+
+void test()
+{
+ // The contents of this function can be replaced by the automatically generated test code from the debug svg file
+ Avoid::ConnEnd end1_0;
+ Avoid::ConnEnd end2_0;
+ Avoid::Polygon poly0;
+ std::vector<Avoid::Checkpoint> checkpoints_0;
+ Avoid::Router * router0 = new Avoid::Router(Avoid::OrthogonalRouting);
+ Avoid::HyperedgeNewAndDeletedObjectLists newanddeletedobjects_0;
+ Avoid::ConnRefList::const_iterator connit_0;
+ Avoid::JunctionRefList::const_iterator junctionit_0;
+ router0->setTransactionUse(true);
+ router0->setRoutingPenalty(Avoid::segmentPenalty);
+ router0->setRoutingPenalty(Avoid::crossingPenalty);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::idealNudgingDistance, 25);
+ router0->setRoutingOption(Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(50700, 50615));
+ poly0.setPoint(1, Avoid::Point(50700, 51185));
+ poly0.setPoint(2, Avoid::Point(50365, 51185));
+ poly0.setPoint(3, Avoid::Point(50365, 50615));
+ Avoid::ShapeRef * shape0_355243155 = new Avoid::ShapeRef(router0, poly0, 355243155);
+ Avoid::ShapeConnectionPin * pin0_355243155_0 = new Avoid::ShapeConnectionPin(shape0_355243155, 1, 1, 0.149122807018, true, 10, 8);
+ pin0_355243155_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_1 = new Avoid::ShapeConnectionPin(shape0_355243155, 2, 1, 0.675438596491, true, 10, 8);
+ pin0_355243155_1->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_2 = new Avoid::ShapeConnectionPin(shape0_355243155, 3, 1, 0.80701754386, true, 10, 8);
+ pin0_355243155_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_3 = new Avoid::ShapeConnectionPin(shape0_355243155, 4, 1, 0.543859649123, true, 10, 8);
+ pin0_355243155_3->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_4 = new Avoid::ShapeConnectionPin(shape0_355243155, 5, 1, 0.280701754386, true, 10, 8);
+ pin0_355243155_4->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_5 = new Avoid::ShapeConnectionPin(shape0_355243155, 6, 1, 0.412280701754, true, 10, 8);
+ pin0_355243155_5->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_6 = new Avoid::ShapeConnectionPin(shape0_355243155, 7, 0.477611940299, 0.982456140351, true, 10, 2);
+ pin0_355243155_6->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_355243155_7 = new Avoid::ShapeConnectionPin(shape0_355243155, 8, 0.253731343284, 0.982456140351, true, 10, 2);
+ pin0_355243155_7->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51060, 50816));
+ poly0.setPoint(1, Avoid::Point(51060, 50884));
+ poly0.setPoint(2, Avoid::Point(50940, 50884));
+ poly0.setPoint(3, Avoid::Point(50940, 50816));
+ Avoid::ShapeRef * shape0_35177560 = new Avoid::ShapeRef(router0, poly0, 35177560);
+ Avoid::ShapeConnectionPin * pin0_35177560_0 = new Avoid::ShapeConnectionPin(shape0_35177560, 1, 0.5, 0.5, true, 0, 15);
+ pin0_35177560_0->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51060, 50966));
+ poly0.setPoint(1, Avoid::Point(51060, 51034));
+ poly0.setPoint(2, Avoid::Point(50940, 51034));
+ poly0.setPoint(3, Avoid::Point(50940, 50966));
+ Avoid::ShapeRef * shape0_214253640 = new Avoid::ShapeRef(router0, poly0, 214253640);
+ Avoid::ShapeConnectionPin * pin0_214253640_0 = new Avoid::ShapeConnectionPin(shape0_214253640, 1, 0.5, 0.5, true, 0, 15);
+ pin0_214253640_0->setExclusive(true);
+ Avoid::JunctionRef * junction0_636368600 = new Avoid::JunctionRef(router0, Avoid::Point(50875, 50850), 636368600);
+ Avoid::JunctionRef * junction0_503331836 = new Avoid::JunctionRef(router0, Avoid::Point(50875, 51000), 503331836);
+ Avoid::JunctionRef * junction0_46074711 = new Avoid::JunctionRef(router0, Avoid::Point(50775, 51000), 46074711);
+ Avoid::JunctionRef * junction0_390996481 = new Avoid::JunctionRef(router0, Avoid::Point(50775, 50850), 390996481);
+ end1_0 = Avoid::ConnEnd(junction0_636368600);
+ end2_0 = Avoid::ConnEnd(shape0_35177560, 1);
+ Avoid::ConnRef * conn0_929108568 = new Avoid::ConnRef(router0, end1_0, end2_0, 929108568);
+ end1_0 = Avoid::ConnEnd(junction0_503331836);
+ end2_0 = Avoid::ConnEnd(shape0_214253640, 1);
+ Avoid::ConnRef * conn0_627671070 = new Avoid::ConnRef(router0, end1_0, end2_0, 627671070);
+ end1_0 = Avoid::ConnEnd(junction0_636368600);
+ end2_0 = Avoid::ConnEnd(junction0_503331836);
+ Avoid::ConnRef * conn0_510680660 = new Avoid::ConnRef(router0, end1_0, end2_0, 510680660);
+ end1_0 = Avoid::ConnEnd(shape0_355243155, 2);
+ end2_0 = Avoid::ConnEnd(junction0_46074711);
+ Avoid::ConnRef * conn0_175131537 = new Avoid::ConnRef(router0, end1_0, end2_0, 175131537);
+ end1_0 = Avoid::ConnEnd(junction0_46074711);
+ end2_0 = Avoid::ConnEnd(junction0_503331836);
+ Avoid::ConnRef * conn0_545568780 = new Avoid::ConnRef(router0, end1_0, end2_0, 545568780);
+ end1_0 = Avoid::ConnEnd(shape0_355243155, 6);
+ end2_0 = Avoid::ConnEnd(junction0_390996481);
+ Avoid::ConnRef * conn0_17788857 = new Avoid::ConnRef(router0, end1_0, end2_0, 17788857);
+ end1_0 = Avoid::ConnEnd(junction0_390996481);
+ end2_0 = Avoid::ConnEnd(junction0_636368600);
+ Avoid::ConnRef * conn0_160581511 = new Avoid::ConnRef(router0, end1_0, end2_0, 160581511);
+ end1_0 = Avoid::ConnEnd(junction0_46074711);
+ end2_0 = Avoid::ConnEnd(junction0_390996481);
+ Avoid::ConnRef * conn0_92116728 = new Avoid::ConnRef(router0, end1_0, end2_0, 92116728);
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ outputDiagram(router0);
+ router0->deleteConnector(conn0_92116728);
+ conn0_92116728 = nullptr;
+ router0->deleteConnector(conn0_160581511);
+ conn0_160581511 = nullptr;
+ router0->deleteConnector(conn0_17788857);
+ conn0_17788857 = nullptr;
+ router0->deleteJunction(junction0_390996481);
+ junction0_390996481 = nullptr;
+ router0->deleteConnector(conn0_545568780);
+ conn0_545568780 = nullptr;
+ router0->deleteConnector(conn0_175131537);
+ conn0_175131537 = nullptr;
+ router0->deleteJunction(junction0_46074711);
+ junction0_46074711 = nullptr;
+ router0->deleteConnector(conn0_510680660);
+ conn0_510680660 = nullptr;
+ router0->deleteConnector(conn0_627671070);
+ conn0_627671070 = nullptr;
+ router0->deleteJunction(junction0_503331836);
+ junction0_503331836 = nullptr;
+ router0->deleteConnector(conn0_929108568);
+ conn0_929108568 = nullptr;
+ router0->deleteJunction(junction0_636368600);
+ junction0_636368600 = nullptr;
+ router0->deleteShape(shape0_214253640);
+ shape0_214253640 = nullptr;
+ router0->deleteShape(shape0_35177560);
+ shape0_35177560 = nullptr;
+ router0->deleteShape(shape0_355243155);
+ shape0_355243155 = nullptr;
+
+ router0->processTransaction();
+
+ delete router0;
+}
+
+extern "C" int main(void)
+{
+ test();
+ return 0;
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/example.cpp b/src/3rdparty/adaptagrams/libavoid/tests/example.cpp
new file mode 100644
index 0000000..b4a24f7
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/example.cpp
@@ -0,0 +1,81 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2007 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+
+
+static void connCallback(void *ptr)
+{
+ Avoid::ConnRef *connRef = (Avoid::ConnRef *) ptr;
+
+ printf("Connector %u needs rerouting!\n", connRef->id());
+
+ const Avoid::PolyLine& route = connRef->displayRoute();
+ printf("New path: ");
+ for (size_t i = 0; i < route.ps.size(); ++i)
+ {
+ printf("%s(%f, %f)", (i > 0) ? "-" : "",
+ route.ps[i].x, route.ps[i].y);
+ }
+ printf("\n");
+}
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::PolyLineRouting);
+
+ Avoid::Point srcPt(1.2, 0.5);
+ Avoid::Point dstPt(1.5, 4);
+ Avoid::ConnRef *connRef = new Avoid::ConnRef(router, srcPt, dstPt);
+ connRef->setCallback(connCallback, connRef);
+ // Force inital callback:
+ router->processTransaction();
+
+ printf("\nAdding a shape.\n");
+ // Create the ShapeRef:
+ Avoid::Polygon shapePoly(3);
+ shapePoly.ps[0] = Avoid::Point(1, 1);
+ shapePoly.ps[1] = Avoid::Point(2.5, 1.5);
+ shapePoly.ps[2] = Avoid::Point(1.5, 2.5);
+ Avoid::ShapeRef *shapeRef = new Avoid::ShapeRef(router, shapePoly);
+ router->processTransaction();
+
+ printf("\nShifting endpoint.\n");
+ Avoid::Point dstPt2(6, 4.5);
+ connRef->setDestEndpoint(dstPt2);
+ // It's expected you know the connector needs rerouting, so the callback
+ // isn't called. You can force it to be called though, via:
+ router->processTransaction();
+
+ printf("\nMoving shape right by 0.5.\n");
+ router->moveShape(shapeRef, 0.5, 0);
+ router->processTransaction();
+
+ router->outputDiagram("output/example");
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging1.cpp b/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging1.cpp
new file mode 100644
index 0000000..0408e46
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging1.cpp
@@ -0,0 +1,5227 @@
+// KEGG -> SBGN example #330
+//
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+
+ /*
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1337.46, 45);
+ poly1.ps[1] = Point(1337.46, 80);
+ poly1.ps[2] = Point(1028.46, 80);
+ poly1.ps[3] = Point(1028.46, 45);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(1793.79, 126.5);
+ poly2.ps[1] = Point(1793.79, 188.5);
+ poly2.ps[2] = Point(1731.79, 188.5);
+ poly2.ps[3] = Point(1731.79, 126.5);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1416.86, 538.7);
+ poly3.ps[1] = Point(1416.86, 600.7);
+ poly3.ps[2] = Point(1354.86, 600.7);
+ poly3.ps[3] = Point(1354.86, 538.7);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(2072.79, 538.7);
+ poly4.ps[1] = Point(2072.79, 600.7);
+ poly4.ps[2] = Point(2010.79, 600.7);
+ poly4.ps[3] = Point(2010.79, 538.7);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1594.6, 947.5);
+ poly5.ps[1] = Point(1594.6, 1009.5);
+ poly5.ps[2] = Point(1532.6, 1009.5);
+ poly5.ps[3] = Point(1532.6, 947.5);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(641.333, 802.833);
+ poly6.ps[1] = Point(641.333, 864.833);
+ poly6.ps[2] = Point(579.333, 864.833);
+ poly6.ps[3] = Point(579.333, 802.833);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(421.333, 2368.05);
+ poly7.ps[1] = Point(421.333, 2430.05);
+ poly7.ps[2] = Point(359.333, 2430.05);
+ poly7.ps[3] = Point(359.333, 2368.05);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1594.6, 2368.05);
+ poly8.ps[1] = Point(1594.6, 2430.05);
+ poly8.ps[2] = Point(1532.6, 2430.05);
+ poly8.ps[3] = Point(1532.6, 2368.05);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1813.79, 1347.24);
+ poly9.ps[1] = Point(1813.79, 1409.24);
+ poly9.ps[2] = Point(1751.79, 1409.24);
+ poly9.ps[3] = Point(1751.79, 1347.24);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(1813.79, 1538.64);
+ poly10.ps[1] = Point(1813.79, 1600.64);
+ poly10.ps[2] = Point(1751.79, 1600.64);
+ poly10.ps[3] = Point(1751.79, 1538.64);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(2072.79, 1538.64);
+ poly11.ps[1] = Point(2072.79, 1600.64);
+ poly11.ps[2] = Point(2010.79, 1600.64);
+ poly11.ps[3] = Point(2010.79, 1538.64);
+ new ShapeRef(router, poly11, 11);
+ */
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(2072.79, 1841.95);
+ poly12.ps[1] = Point(2072.79, 1903.95);
+ poly12.ps[2] = Point(2010.79, 1903.95);
+ poly12.ps[3] = Point(2010.79, 1841.95);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(2272.79, 1841.95);
+ poly13.ps[1] = Point(2272.79, 1903.95);
+ poly13.ps[2] = Point(2210.79, 1903.95);
+ poly13.ps[3] = Point(2210.79, 1841.95);
+ new ShapeRef(router, poly13, 13);
+
+ /*
+ Polygon poly14(4);
+ poly14.ps[0] = Point(2578.71, 1841.95);
+ poly14.ps[1] = Point(2578.71, 1903.95);
+ poly14.ps[2] = Point(2516.71, 1903.95);
+ poly14.ps[3] = Point(2516.71, 1841.95);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(2818.54, 1841.95);
+ poly15.ps[1] = Point(2818.54, 1903.95);
+ poly15.ps[2] = Point(2756.54, 1903.95);
+ poly15.ps[3] = Point(2756.54, 1841.95);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(3150.9, 1841.95);
+ poly16.ps[1] = Point(3150.9, 1903.95);
+ poly16.ps[2] = Point(3088.9, 1903.95);
+ poly16.ps[3] = Point(3088.9, 1841.95);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(1346.96, 281.5);
+ poly17.ps[1] = Point(1346.96, 343.5);
+ poly17.ps[2] = Point(1284.96, 343.5);
+ poly17.ps[3] = Point(1284.96, 281.5);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(2072.79, 281.5);
+ poly18.ps[1] = Point(2072.79, 343.5);
+ poly18.ps[2] = Point(2010.79, 343.5);
+ poly18.ps[3] = Point(2010.79, 281.5);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(3247.44, 2154.05);
+ poly19.ps[1] = Point(3247.44, 2216.05);
+ poly19.ps[2] = Point(3185.44, 2216.05);
+ poly19.ps[3] = Point(3185.44, 2154.05);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(2578.71, 2154.05);
+ poly20.ps[1] = Point(2578.71, 2216.05);
+ poly20.ps[2] = Point(2516.71, 2216.05);
+ poly20.ps[3] = Point(2516.71, 2154.05);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(1104.18, 2154.05);
+ poly21.ps[1] = Point(1104.18, 2216.05);
+ poly21.ps[2] = Point(1042.18, 2216.05);
+ poly21.ps[3] = Point(1042.18, 2154.05);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(1104.18, 1409.24);
+ poly22.ps[1] = Point(1104.18, 1471.24);
+ poly22.ps[2] = Point(1042.18, 1471.24);
+ poly22.ps[3] = Point(1042.18, 1409.24);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(354, 802.833);
+ poly23.ps[1] = Point(354, 864.833);
+ poly23.ps[2] = Point(292, 864.833);
+ poly23.ps[3] = Point(292, 802.833);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(641.333, 1245.24);
+ poly24.ps[1] = Point(641.333, 1307.24);
+ poly24.ps[2] = Point(579.333, 1307.24);
+ poly24.ps[3] = Point(579.333, 1245.24);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(907.358, 1245.24);
+ poly25.ps[1] = Point(907.358, 1307.24);
+ poly25.ps[2] = Point(845.358, 1307.24);
+ poly25.ps[3] = Point(845.358, 1245.24);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(1104.18, 1245.24);
+ poly26.ps[1] = Point(1104.18, 1307.24);
+ poly26.ps[2] = Point(1042.18, 1307.24);
+ poly26.ps[3] = Point(1042.18, 1245.24);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(1104.18, 947.5);
+ poly27.ps[1] = Point(1104.18, 1009.5);
+ poly27.ps[2] = Point(1042.18, 1009.5);
+ poly27.ps[3] = Point(1042.18, 947.5);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(354, 344.5);
+ poly28.ps[1] = Point(354, 406.5);
+ poly28.ps[2] = Point(292, 406.5);
+ poly28.ps[3] = Point(292, 344.5);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(2272.79, 809.75);
+ poly29.ps[1] = Point(2272.79, 871.75);
+ poly29.ps[2] = Point(2210.79, 871.75);
+ poly29.ps[3] = Point(2210.79, 809.75);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(2578.71, 809.75);
+ poly30.ps[1] = Point(2578.71, 871.75);
+ poly30.ps[2] = Point(2516.71, 871.75);
+ poly30.ps[3] = Point(2516.71, 809.75);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(2818.54, 809.75);
+ poly31.ps[1] = Point(2818.54, 871.75);
+ poly31.ps[2] = Point(2756.54, 871.75);
+ poly31.ps[3] = Point(2756.54, 809.75);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(2999.99, 809.75);
+ poly32.ps[1] = Point(2999.99, 871.75);
+ poly32.ps[2] = Point(2937.99, 871.75);
+ poly32.ps[3] = Point(2937.99, 809.75);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(2272.79, 189.875);
+ poly33.ps[1] = Point(2272.79, 251.875);
+ poly33.ps[2] = Point(2210.79, 251.875);
+ poly33.ps[3] = Point(2210.79, 189.875);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(2578.71, 189.875);
+ poly34.ps[1] = Point(2578.71, 251.875);
+ poly34.ps[2] = Point(2516.71, 251.875);
+ poly34.ps[3] = Point(2516.71, 189.875);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(2818.54, 189.875);
+ poly35.ps[1] = Point(2818.54, 251.875);
+ poly35.ps[2] = Point(2756.54, 251.875);
+ poly35.ps[3] = Point(2756.54, 189.875);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(3145.24, 189.875);
+ poly36.ps[1] = Point(3145.24, 251.875);
+ poly36.ps[2] = Point(3083.24, 251.875);
+ poly36.ps[3] = Point(3083.24, 189.875);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(2999.99, 1010.64);
+ poly37.ps[1] = Point(2999.99, 1072.64);
+ poly37.ps[2] = Point(2937.99, 1072.64);
+ poly37.ps[3] = Point(2937.99, 1010.64);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(3145.24, 406.7);
+ poly38.ps[1] = Point(3145.24, 468.7);
+ poly38.ps[2] = Point(3083.24, 468.7);
+ poly38.ps[3] = Point(3083.24, 406.7);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(2818.54, 406.7);
+ poly39.ps[1] = Point(2818.54, 468.7);
+ poly39.ps[2] = Point(2756.54, 468.7);
+ poly39.ps[3] = Point(2756.54, 406.7);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(2578.71, 406.7);
+ poly40.ps[1] = Point(2578.71, 468.7);
+ poly40.ps[2] = Point(2516.71, 468.7);
+ poly40.ps[3] = Point(2516.71, 406.7);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(1989.29, 1010.64);
+ poly41.ps[1] = Point(1989.29, 1072.64);
+ poly41.ps[2] = Point(1927.29, 1072.64);
+ poly41.ps[3] = Point(1927.29, 1010.64);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(2272.79, 1010.64);
+ poly42.ps[1] = Point(2272.79, 1072.64);
+ poly42.ps[2] = Point(2210.79, 1072.64);
+ poly42.ps[3] = Point(2210.79, 1010.64);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(2578.71, 1010.64);
+ poly43.ps[1] = Point(2578.71, 1072.64);
+ poly43.ps[2] = Point(2516.71, 1072.64);
+ poly43.ps[3] = Point(2516.71, 1010.64);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(2272.79, 1538.64);
+ poly44.ps[1] = Point(2272.79, 1600.64);
+ poly44.ps[2] = Point(2210.79, 1600.64);
+ poly44.ps[3] = Point(2210.79, 1538.64);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(2578.71, 1538.64);
+ poly45.ps[1] = Point(2578.71, 1600.64);
+ poly45.ps[2] = Point(2516.71, 1600.64);
+ poly45.ps[3] = Point(2516.71, 1538.64);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(2272.79, 1347.24);
+ poly46.ps[1] = Point(2272.79, 1409.24);
+ poly46.ps[2] = Point(2210.79, 1409.24);
+ poly46.ps[3] = Point(2210.79, 1347.24);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(2072.79, 1992.95);
+ poly47.ps[1] = Point(2072.79, 2054.95);
+ poly47.ps[2] = Point(2010.79, 2054.95);
+ poly47.ps[3] = Point(2010.79, 1992.95);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(2272.79, 1992.95);
+ poly48.ps[1] = Point(2272.79, 2054.95);
+ poly48.ps[2] = Point(2210.79, 2054.95);
+ poly48.ps[3] = Point(2210.79, 1992.95);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(2999.99, 1700.64);
+ poly49.ps[1] = Point(2999.99, 1762.64);
+ poly49.ps[2] = Point(2937.99, 1762.64);
+ poly49.ps[3] = Point(2937.99, 1700.64);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(2766.54, 331.5);
+ poly50.ps[1] = Point(2766.54, 393.5);
+ poly50.ps[2] = Point(2704.54, 393.5);
+ poly50.ps[3] = Point(2704.54, 331.5);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1594.6, 2914.3);
+ poly51.ps[1] = Point(1594.6, 2976.3);
+ poly51.ps[2] = Point(1532.6, 2976.3);
+ poly51.ps[3] = Point(1532.6, 2914.3);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(1594.6, 3382.3);
+ poly52.ps[1] = Point(1594.6, 3444.3);
+ poly52.ps[2] = Point(1532.6, 3444.3);
+ poly52.ps[3] = Point(1532.6, 3382.3);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(641.333, 2498.3);
+ poly53.ps[1] = Point(641.333, 2560.3);
+ poly53.ps[2] = Point(579.333, 2560.3);
+ poly53.ps[3] = Point(579.333, 2498.3);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(641.333, 2643.3);
+ poly54.ps[1] = Point(641.333, 2705.3);
+ poly54.ps[2] = Point(579.333, 2705.3);
+ poly54.ps[3] = Point(579.333, 2643.3);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(641.333, 2914.3);
+ poly55.ps[1] = Point(641.333, 2976.3);
+ poly55.ps[2] = Point(579.333, 2976.3);
+ poly55.ps[3] = Point(579.333, 2914.3);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(2272.79, 2914.3);
+ poly56.ps[1] = Point(2272.79, 2976.3);
+ poly56.ps[2] = Point(2210.79, 2976.3);
+ poly56.ps[3] = Point(2210.79, 2914.3);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(2353.71, 2643.3);
+ poly57.ps[1] = Point(2353.71, 2705.3);
+ poly57.ps[2] = Point(2291.71, 2705.3);
+ poly57.ps[3] = Point(2291.71, 2643.3);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(2578.71, 2914.3);
+ poly58.ps[1] = Point(2578.71, 2976.3);
+ poly58.ps[2] = Point(2516.71, 2976.3);
+ poly58.ps[3] = Point(2516.71, 2914.3);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(2353.71, 2498.3);
+ poly59.ps[1] = Point(2353.71, 2560.3);
+ poly59.ps[2] = Point(2291.71, 2560.3);
+ poly59.ps[3] = Point(2291.71, 2498.3);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(907.358, 2498.3);
+ poly60.ps[1] = Point(907.358, 2560.3);
+ poly60.ps[2] = Point(845.358, 2560.3);
+ poly60.ps[3] = Point(845.358, 2498.3);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(907.358, 2643.3);
+ poly61.ps[1] = Point(907.358, 2705.3);
+ poly61.ps[2] = Point(845.358, 2705.3);
+ poly61.ps[3] = Point(845.358, 2643.3);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(907.358, 2914.3);
+ poly62.ps[1] = Point(907.358, 2976.3);
+ poly62.ps[2] = Point(845.358, 2976.3);
+ poly62.ps[3] = Point(845.358, 2914.3);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(3353.24, 2368.05);
+ poly63.ps[1] = Point(3353.24, 2430.05);
+ poly63.ps[2] = Point(3291.24, 2430.05);
+ poly63.ps[3] = Point(3291.24, 2368.05);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(2999.99, 2266.05);
+ poly64.ps[1] = Point(2999.99, 2328.05);
+ poly64.ps[2] = Point(2937.99, 2328.05);
+ poly64.ps[3] = Point(2937.99, 2266.05);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(3509.07, 1347.24);
+ poly65.ps[1] = Point(3509.07, 1409.24);
+ poly65.ps[2] = Point(3447.07, 1409.24);
+ poly65.ps[3] = Point(3447.07, 1347.24);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(3509.07, 3382.3);
+ poly66.ps[1] = Point(3509.07, 3444.3);
+ poly66.ps[2] = Point(3447.07, 3444.3);
+ poly66.ps[3] = Point(3447.07, 3382.3);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(230, 496.5);
+ poly67.ps[1] = Point(230, 528.5);
+ poly67.ps[2] = Point(210, 528.5);
+ poly67.ps[3] = Point(210, 496.5);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(141, 632.5);
+ poly68.ps[1] = Point(141, 664.5);
+ poly68.ps[2] = Point(121, 664.5);
+ poly68.ps[3] = Point(121, 632.5);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(556.333, 698.5);
+ poly69.ps[1] = Point(556.333, 718.5);
+ poly69.ps[2] = Point(524.333, 718.5);
+ poly69.ps[3] = Point(524.333, 698.5);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(556.333, 823.833);
+ poly70.ps[1] = Point(556.333, 843.833);
+ poly70.ps[2] = Point(524.333, 843.833);
+ poly70.ps[3] = Point(524.333, 823.833);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(1405.46, 692.5);
+ poly71.ps[1] = Point(1405.46, 724.5);
+ poly71.ps[2] = Point(1385.46, 724.5);
+ poly71.ps[3] = Point(1385.46, 692.5);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(1558.46, 281.5);
+ poly72.ps[1] = Point(1558.46, 301.5);
+ poly72.ps[2] = Point(1526.46, 301.5);
+ poly72.ps[3] = Point(1526.46, 281.5);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(1492.46, 57.5);
+ poly73.ps[1] = Point(1492.46, 231.5);
+ poly73.ps[2] = Point(1359.46, 231.5);
+ poly73.ps[3] = Point(1359.46, 57.5);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(1958.29, 281.5);
+ poly74.ps[1] = Point(1958.29, 301.5);
+ poly74.ps[2] = Point(1926.29, 301.5);
+ poly74.ps[3] = Point(1926.29, 281.5);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(2042.79, 767.5);
+ poly75.ps[1] = Point(2042.79, 787.5);
+ poly75.ps[2] = Point(2010.79, 787.5);
+ poly75.ps[3] = Point(2010.79, 767.5);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(556.333, 1266.24);
+ poly76.ps[1] = Point(556.333, 1286.24);
+ poly76.ps[2] = Point(524.333, 1286.24);
+ poly76.ps[3] = Point(524.333, 1266.24);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(727.958, 1266.24);
+ poly77.ps[1] = Point(727.958, 1286.24);
+ poly77.ps[2] = Point(695.958, 1286.24);
+ poly77.ps[3] = Point(695.958, 1266.24);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(988.958, 1266.24);
+ poly78.ps[1] = Point(988.958, 1286.24);
+ poly78.ps[2] = Point(956.958, 1286.24);
+ poly78.ps[3] = Point(956.958, 1266.24);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(1060.96, 1127.64);
+ poly79.ps[1] = Point(1060.96, 1159.64);
+ poly79.ps[2] = Point(1040.96, 1159.64);
+ poly79.ps[3] = Point(1040.96, 1127.64);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(1401.86, 959.5);
+ poly80.ps[1] = Point(1401.86, 979.5);
+ poly80.ps[2] = Point(1369.86, 979.5);
+ poly80.ps[3] = Point(1369.86, 959.5);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(1401.86, 1031.64);
+ poly81.ps[1] = Point(1401.86, 1051.64);
+ poly81.ps[2] = Point(1369.86, 1051.64);
+ poly81.ps[3] = Point(1369.86, 1031.64);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(1401.86, 1133.64);
+ poly82.ps[1] = Point(1401.86, 1153.64);
+ poly82.ps[2] = Point(1369.86, 1153.64);
+ poly82.ps[3] = Point(1369.86, 1133.64);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(1656.79, 1260.24);
+ poly83.ps[1] = Point(1656.79, 1292.24);
+ poly83.ps[2] = Point(1636.79, 1292.24);
+ poly83.ps[3] = Point(1636.79, 1260.24);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(1967.87, 1581.64);
+ poly84.ps[1] = Point(1967.87, 1621.64);
+ poly84.ps[2] = Point(1891.87, 1621.64);
+ poly84.ps[3] = Point(1891.87, 1581.64);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(1942.79, 1643.64);
+ poly85.ps[1] = Point(1942.79, 1663.64);
+ poly85.ps[2] = Point(1910.79, 1663.64);
+ poly85.ps[3] = Point(1910.79, 1643.64);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(1973.29, 1347.24);
+ poly86.ps[1] = Point(1973.29, 1409.24);
+ poly86.ps[2] = Point(1911.29, 1409.24);
+ poly86.ps[3] = Point(1911.29, 1347.24);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(1968.29, 1424.24);
+ poly87.ps[1] = Point(1968.29, 1456.24);
+ poly87.ps[2] = Point(1948.29, 1456.24);
+ poly87.ps[3] = Point(1948.29, 1424.24);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(2004.87, 1914.95);
+ poly88.ps[1] = Point(2004.87, 1954.95);
+ poly88.ps[2] = Point(1948.87, 1954.95);
+ poly88.ps[3] = Point(1948.87, 1914.95);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(2051.79, 1706.64);
+ poly89.ps[1] = Point(2051.79, 1738.64);
+ poly89.ps[2] = Point(2031.79, 1738.64);
+ poly89.ps[3] = Point(2031.79, 1706.64);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(2187.79, 1559.64);
+ poly90.ps[1] = Point(2187.79, 1579.64);
+ poly90.ps[2] = Point(2155.79, 1579.64);
+ poly90.ps[3] = Point(2155.79, 1559.64);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(2056.87, 1487.64);
+ poly91.ps[1] = Point(2056.87, 1527.64);
+ poly91.ps[2] = Point(2000.87, 1527.64);
+ poly91.ps[3] = Point(2000.87, 1487.64);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(2251.79, 1424.24);
+ poly92.ps[1] = Point(2251.79, 1456.24);
+ poly92.ps[2] = Point(2231.79, 1456.24);
+ poly92.ps[3] = Point(2231.79, 1424.24);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(2578.71, 1347.24);
+ poly93.ps[1] = Point(2578.71, 1409.24);
+ poly93.ps[2] = Point(2516.71, 1409.24);
+ poly93.ps[3] = Point(2516.71, 1347.24);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(2493.71, 1499.44);
+ poly94.ps[1] = Point(2493.71, 1519.44);
+ poly94.ps[2] = Point(2461.71, 1519.44);
+ poly94.ps[3] = Point(2461.71, 1499.44);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(2493.71, 1571.64);
+ poly95.ps[1] = Point(2493.71, 1591.64);
+ poly95.ps[2] = Point(2461.71, 1591.64);
+ poly95.ps[3] = Point(2461.71, 1571.64);
+ new ShapeRef(router, poly95, 95);
+ */
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(2187.79, 1862.95);
+ poly96.ps[1] = Point(2187.79, 1882.95);
+ poly96.ps[2] = Point(2155.79, 1882.95);
+ poly96.ps[3] = Point(2155.79, 1862.95);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(2139.79, 1864.95);
+ poly97.ps[1] = Point(2139.79, 1904.95);
+ poly97.ps[2] = Point(2063.79, 1904.95);
+ poly97.ps[3] = Point(2063.79, 1864.95);
+ new ShapeRef(router, poly97, 97);
+
+ /*
+ Polygon poly98(4);
+ poly98.ps[0] = Point(2237.79, 1713.77);
+ poly98.ps[1] = Point(2237.79, 1753.77);
+ poly98.ps[2] = Point(2161.79, 1753.77);
+ poly98.ps[3] = Point(2161.79, 1713.77);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(2493.71, 2003.95);
+ poly99.ps[1] = Point(2493.71, 2023.95);
+ poly99.ps[2] = Point(2461.71, 2023.95);
+ poly99.ps[3] = Point(2461.71, 2003.95);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(2493.71, 2045.95);
+ poly100.ps[1] = Point(2493.71, 2065.95);
+ poly100.ps[2] = Point(2461.71, 2065.95);
+ poly100.ps[3] = Point(2461.71, 2045.95);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(2676.54, 1802.64);
+ poly101.ps[1] = Point(2676.54, 1822.64);
+ poly101.ps[2] = Point(2644.54, 1822.64);
+ poly101.ps[3] = Point(2644.54, 1802.64);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(2653.54, 1874.95);
+ poly102.ps[1] = Point(2653.54, 1894.95);
+ poly102.ps[2] = Point(2621.54, 1894.95);
+ poly102.ps[3] = Point(2621.54, 1874.95);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(2751.54, 1874.95);
+ poly103.ps[1] = Point(2751.54, 1894.95);
+ poly103.ps[2] = Point(2719.54, 1894.95);
+ poly103.ps[3] = Point(2719.54, 1874.95);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(2914.99, 1802.64);
+ poly104.ps[1] = Point(2914.99, 1822.64);
+ poly104.ps[2] = Point(2882.99, 1822.64);
+ poly104.ps[3] = Point(2882.99, 1802.64);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(2891.99, 1874.95);
+ poly105.ps[1] = Point(2891.99, 1894.95);
+ poly105.ps[2] = Point(2859.99, 1894.95);
+ poly105.ps[3] = Point(2859.99, 1874.95);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(2969.99, 1874.95);
+ poly106.ps[1] = Point(2969.99, 1894.95);
+ poly106.ps[2] = Point(2937.99, 1894.95);
+ poly106.ps[3] = Point(2937.99, 1874.95);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(2251.79, 692.5);
+ poly107.ps[1] = Point(2251.79, 724.5);
+ poly107.ps[2] = Point(2231.79, 724.5);
+ poly107.ps[3] = Point(2231.79, 692.5);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(2557.71, 692.5);
+ poly108.ps[1] = Point(2557.71, 724.5);
+ poly108.ps[2] = Point(2537.71, 724.5);
+ poly108.ps[3] = Point(2537.71, 692.5);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(2797.54, 692.5);
+ poly109.ps[1] = Point(2797.54, 724.5);
+ poly109.ps[2] = Point(2777.54, 724.5);
+ poly109.ps[3] = Point(2777.54, 692.5);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(2978.99, 692.5);
+ poly110.ps[1] = Point(2978.99, 724.5);
+ poly110.ps[2] = Point(2958.99, 724.5);
+ poly110.ps[3] = Point(2958.99, 692.5);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(2978.99, 898.5);
+ poly111.ps[1] = Point(2978.99, 930.5);
+ poly111.ps[2] = Point(2958.99, 930.5);
+ poly111.ps[3] = Point(2958.99, 898.5);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(2251.79, 285.75);
+ poly112.ps[1] = Point(2251.79, 317.75);
+ poly112.ps[2] = Point(2231.79, 317.75);
+ poly112.ps[3] = Point(2231.79, 285.75);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(2493.71, 210.875);
+ poly113.ps[1] = Point(2493.71, 230.875);
+ poly113.ps[2] = Point(2461.71, 230.875);
+ poly113.ps[3] = Point(2461.71, 210.875);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(2557.71, 285.75);
+ poly114.ps[1] = Point(2557.71, 317.75);
+ poly114.ps[2] = Point(2537.71, 317.75);
+ poly114.ps[3] = Point(2537.71, 285.75);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(2681.54, 210.875);
+ poly115.ps[1] = Point(2681.54, 230.875);
+ poly115.ps[2] = Point(2649.54, 230.875);
+ poly115.ps[3] = Point(2649.54, 210.875);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(2681.54, 427.7);
+ poly116.ps[1] = Point(2681.54, 447.7);
+ poly116.ps[2] = Point(2649.54, 447.7);
+ poly116.ps[3] = Point(2649.54, 427.7);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(2935.99, 427.7);
+ poly117.ps[1] = Point(2935.99, 447.7);
+ poly117.ps[2] = Point(2903.99, 447.7);
+ poly117.ps[3] = Point(2903.99, 427.7);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(3149.24, 285.75);
+ poly118.ps[1] = Point(3149.24, 317.75);
+ poly118.ps[2] = Point(3129.24, 317.75);
+ poly118.ps[3] = Point(3129.24, 285.75);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(3494.07, 904.5);
+ poly119.ps[1] = Point(3494.07, 924.5);
+ poly119.ps[2] = Point(3462.07, 924.5);
+ poly119.ps[3] = Point(3462.07, 904.5);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(3488.07, 1856.95);
+ poly120.ps[1] = Point(3488.07, 1888.95);
+ poly120.ps[2] = Point(3468.07, 1888.95);
+ poly120.ps[3] = Point(3468.07, 1856.95);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(3488.07, 2596.3);
+ poly121.ps[1] = Point(3488.07, 2628.3);
+ poly121.ps[2] = Point(3468.07, 2628.3);
+ poly121.ps[3] = Point(3468.07, 2596.3);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(2803.54, 3407.3);
+ poly122.ps[1] = Point(2803.54, 3427.3);
+ poly122.ps[2] = Point(2771.54, 3427.3);
+ poly122.ps[3] = Point(2771.54, 3407.3);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(2803.54, 3509.3);
+ poly123.ps[1] = Point(2803.54, 3529.3);
+ poly123.ps[2] = Point(2771.54, 3529.3);
+ poly123.ps[3] = Point(2771.54, 3509.3);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(3606.07, 2596.3);
+ poly124.ps[1] = Point(3606.07, 2628.3);
+ poly124.ps[2] = Point(3586.07, 2628.3);
+ poly124.ps[3] = Point(3586.07, 2596.3);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(3606.07, 898.5);
+ poly125.ps[1] = Point(3606.07, 930.5);
+ poly125.ps[2] = Point(3586.07, 930.5);
+ poly125.ps[3] = Point(3586.07, 898.5);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(3336.74, 898.5);
+ poly126.ps[1] = Point(3336.74, 930.5);
+ poly126.ps[2] = Point(3316.74, 930.5);
+ poly126.ps[3] = Point(3316.74, 898.5);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(3232.44, 2389.05);
+ poly127.ps[1] = Point(3232.44, 2409.05);
+ poly127.ps[2] = Point(3200.44, 2409.05);
+ poly127.ps[3] = Point(3200.44, 2389.05);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(3232.44, 2287.05);
+ poly128.ps[1] = Point(3232.44, 2307.05);
+ poly128.ps[2] = Point(3200.44, 2307.05);
+ poly128.ps[3] = Point(3200.44, 2287.05);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(2803.54, 2287.05);
+ poly129.ps[1] = Point(2803.54, 2307.05);
+ poly129.ps[2] = Point(2771.54, 2307.05);
+ poly129.ps[3] = Point(2771.54, 2287.05);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(3232.44, 904.5);
+ poly130.ps[1] = Point(3232.44, 924.5);
+ poly130.ps[2] = Point(3200.44, 924.5);
+ poly130.ps[3] = Point(3200.44, 904.5);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(2803.54, 2175.05);
+ poly131.ps[1] = Point(2803.54, 2195.05);
+ poly131.ps[2] = Point(2771.54, 2195.05);
+ poly131.ps[3] = Point(2771.54, 2175.05);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(2415.71, 2175.05);
+ poly132.ps[1] = Point(2415.71, 2195.05);
+ poly132.ps[2] = Point(2383.71, 2195.05);
+ poly132.ps[3] = Point(2383.71, 2175.05);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(1942.79, 2175.05);
+ poly133.ps[1] = Point(1942.79, 2195.05);
+ poly133.ps[2] = Point(1910.79, 2195.05);
+ poly133.ps[3] = Point(1910.79, 2175.05);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(727.958, 2175.05);
+ poly134.ps[1] = Point(727.958, 2195.05);
+ poly134.ps[2] = Point(695.958, 2195.05);
+ poly134.ps[3] = Point(695.958, 2175.05);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(1573.6, 2007.95);
+ poly135.ps[1] = Point(1573.6, 2039.95);
+ poly135.ps[2] = Point(1553.6, 2039.95);
+ poly135.ps[3] = Point(1553.6, 2007.95);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(727.958, 1368.24);
+ poly136.ps[1] = Point(727.958, 1388.24);
+ poly136.ps[2] = Point(695.958, 1388.24);
+ poly136.ps[3] = Point(695.958, 1368.24);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(721.958, 1424.24);
+ poly137.ps[1] = Point(721.958, 1456.24);
+ poly137.ps[2] = Point(701.958, 1456.24);
+ poly137.ps[3] = Point(701.958, 1424.24);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1395.86, 1424.24);
+ poly138.ps[1] = Point(1395.86, 1456.24);
+ poly138.ps[2] = Point(1375.86, 1456.24);
+ poly138.ps[3] = Point(1375.86, 1424.24);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(626.333, 2467.3);
+ poly139.ps[1] = Point(626.333, 2487.3);
+ poly139.ps[2] = Point(594.333, 2487.3);
+ poly139.ps[3] = Point(594.333, 2467.3);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(620.333, 2596.3);
+ poly140.ps[1] = Point(620.333, 2628.3);
+ poly140.ps[2] = Point(600.333, 2628.3);
+ poly140.ps[3] = Point(600.333, 2596.3);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1508.87, 2033.77);
+ poly141.ps[1] = Point(1508.87, 2073.77);
+ poly141.ps[2] = Point(1452.87, 2073.77);
+ poly141.ps[3] = Point(1452.87, 2033.77);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(626.333, 3061.3);
+ poly142.ps[1] = Point(626.333, 3081.3);
+ poly142.ps[2] = Point(594.333, 3081.3);
+ poly142.ps[3] = Point(594.333, 3061.3);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(1207.96, 2596.3);
+ poly143.ps[1] = Point(1207.96, 2628.3);
+ poly143.ps[2] = Point(1187.96, 2628.3);
+ poly143.ps[3] = Point(1187.96, 2596.3);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(1325.96, 2596.3);
+ poly144.ps[1] = Point(1325.96, 2628.3);
+ poly144.ps[2] = Point(1305.96, 2628.3);
+ poly144.ps[3] = Point(1305.96, 2596.3);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(1656.79, 2741.3);
+ poly145.ps[1] = Point(1656.79, 2773.3);
+ poly145.ps[2] = Point(1636.79, 2773.3);
+ poly145.ps[3] = Point(1636.79, 2741.3);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(1573.6, 2672.3);
+ poly146.ps[1] = Point(1573.6, 2704.3);
+ poly146.ps[2] = Point(1553.6, 2704.3);
+ poly146.ps[3] = Point(1553.6, 2672.3);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(1548.46, 2741.3);
+ poly147.ps[1] = Point(1548.46, 2773.3);
+ poly147.ps[2] = Point(1528.46, 2773.3);
+ poly147.ps[3] = Point(1528.46, 2741.3);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(1656.79, 3124.3);
+ poly148.ps[1] = Point(1656.79, 3156.3);
+ poly148.ps[2] = Point(1636.79, 3156.3);
+ poly148.ps[3] = Point(1636.79, 3124.3);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(1548.46, 3124.3);
+ poly149.ps[1] = Point(1548.46, 3156.3);
+ poly149.ps[2] = Point(1528.46, 3156.3);
+ poly149.ps[3] = Point(1528.46, 3124.3);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(1573.6, 3055.3);
+ poly150.ps[1] = Point(1573.6, 3087.3);
+ poly150.ps[2] = Point(1553.6, 3087.3);
+ poly150.ps[3] = Point(1553.6, 3055.3);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(2245.79, 2739.3);
+ poly151.ps[1] = Point(2245.79, 2759.3);
+ poly151.ps[2] = Point(2213.79, 2759.3);
+ poly151.ps[3] = Point(2213.79, 2739.3);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(2344.71, 2596.3);
+ poly152.ps[1] = Point(2344.71, 2628.3);
+ poly152.ps[2] = Point(2324.71, 2628.3);
+ poly152.ps[3] = Point(2324.71, 2596.3);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(2493.71, 2945.3);
+ poly153.ps[1] = Point(2493.71, 2965.3);
+ poly153.ps[2] = Point(2461.71, 2965.3);
+ poly153.ps[3] = Point(2461.71, 2945.3);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(860.958, 2461.3);
+ poly154.ps[1] = Point(860.958, 2493.3);
+ poly154.ps[2] = Point(840.958, 2493.3);
+ poly154.ps[3] = Point(840.958, 2461.3);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(974.958, 2467.3);
+ poly155.ps[1] = Point(974.958, 2487.3);
+ poly155.ps[2] = Point(942.958, 2487.3);
+ poly155.ps[3] = Point(942.958, 2467.3);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(886.358, 2596.3);
+ poly156.ps[1] = Point(886.358, 2628.3);
+ poly156.ps[2] = Point(866.358, 2628.3);
+ poly156.ps[3] = Point(866.358, 2596.3);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(886.358, 2741.3);
+ poly157.ps[1] = Point(886.358, 2773.3);
+ poly157.ps[2] = Point(866.358, 2773.3);
+ poly157.ps[3] = Point(866.358, 2741.3);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(892.358, 3061.3);
+ poly158.ps[1] = Point(892.358, 3081.3);
+ poly158.ps[2] = Point(860.358, 3081.3);
+ poly158.ps[3] = Point(860.358, 3061.3);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(2187.79, 1031.64);
+ poly159.ps[1] = Point(2187.79, 1051.64);
+ poly159.ps[2] = Point(2155.79, 1051.64);
+ poly159.ps[3] = Point(2155.79, 1031.64);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(2493.71, 1031.64);
+ poly160.ps[1] = Point(2493.71, 1051.64);
+ poly160.ps[2] = Point(2461.71, 1051.64);
+ poly160.ps[3] = Point(2461.71, 1031.64);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(2257.79, 1133.64);
+ poly161.ps[1] = Point(2257.79, 1153.64);
+ poly161.ps[2] = Point(2225.79, 1153.64);
+ poly161.ps[3] = Point(2225.79, 1133.64);
+ new ShapeRef(router, poly161, 161);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(1785.79, 496.5);
+ poly162.ps[1] = Point(1785.79, 516.5);
+ poly162.ps[2] = Point(1753.79, 516.5);
+ poly162.ps[3] = Point(1753.79, 496.5);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(1785.79, 567.5);
+ poly163.ps[1] = Point(1785.79, 587.5);
+ poly163.ps[2] = Point(1753.79, 587.5);
+ poly163.ps[3] = Point(1753.79, 567.5);
+ new ShapeRef(router, poly163, 163);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(3509.07, 2154.05);
+ poly164.ps[1] = Point(3509.07, 2216.05);
+ poly164.ps[2] = Point(3447.07, 2216.05);
+ poly164.ps[3] = Point(3447.07, 2154.05);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(3627.07, 2154.05);
+ poly165.ps[1] = Point(3627.07, 2216.05);
+ poly165.ps[2] = Point(3565.07, 2216.05);
+ poly165.ps[3] = Point(3565.07, 2154.05);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(2051.79, 1260.24);
+ poly166.ps[1] = Point(2051.79, 1292.24);
+ poly166.ps[2] = Point(2031.79, 1292.24);
+ poly166.ps[3] = Point(2031.79, 1260.24);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(333, 1109.24);
+ poly167.ps[1] = Point(333, 1141.24);
+ poly167.ps[2] = Point(313, 1141.24);
+ poly167.ps[3] = Point(313, 1109.24);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(291, 1127.64);
+ poly168.ps[1] = Point(291, 1159.64);
+ poly168.ps[2] = Point(271, 1159.64);
+ poly168.ps[3] = Point(271, 1127.64);
+ new ShapeRef(router, poly168, 168);
+
+ Polygon poly169(4);
+ poly169.ps[0] = Point(475.333, 1127.64);
+ poly169.ps[1] = Point(475.333, 1159.64);
+ poly169.ps[2] = Point(455.333, 1159.64);
+ poly169.ps[3] = Point(455.333, 1127.64);
+ new ShapeRef(router, poly169, 169);
+
+ Polygon poly170(4);
+ poly170.ps[0] = Point(3151.24, 1436.94);
+ poly170.ps[1] = Point(3151.24, 1601.94);
+ poly170.ps[2] = Point(3051.24, 1601.94);
+ poly170.ps[3] = Point(3051.24, 1436.94);
+ new ShapeRef(router, poly170, 170);
+
+ Polygon poly171(4);
+ poly171.ps[0] = Point(2153.8, 354.5);
+ poly171.ps[1] = Point(2153.8, 414.5);
+ poly171.ps[2] = Point(1901.8, 414.5);
+ poly171.ps[3] = Point(1901.8, 354.5);
+ new ShapeRef(router, poly171, 171);
+
+ Polygon poly172(4);
+ poly172.ps[0] = Point(1923.29, 1174.24);
+ poly172.ps[1] = Point(1923.29, 1234.24);
+ poly172.ps[2] = Point(1666.29, 1234.24);
+ poly172.ps[3] = Point(1666.29, 1174.24);
+ new ShapeRef(router, poly172, 172);
+
+ Polygon poly173(4);
+ poly173.ps[0] = Point(1521.6, 2799.3);
+ poly173.ps[1] = Point(1521.6, 2973.3);
+ poly173.ps[2] = Point(1228.6, 2973.3);
+ poly173.ps[3] = Point(1228.6, 2799.3);
+ new ShapeRef(router, poly173, 173);
+
+ Polygon poly174(4);
+ poly174.ps[0] = Point(1273.96, 211.5);
+ poly174.ps[1] = Point(1273.96, 385.5);
+ poly174.ps[2] = Point(1191.96, 385.5);
+ poly174.ps[3] = Point(1191.96, 211.5);
+ new ShapeRef(router, poly174, 174);
+
+ Polygon poly175(4);
+ poly175.ps[0] = Point(1335.86, 902.5);
+ poly175.ps[1] = Point(1335.86, 1076.5);
+ poly175.ps[2] = Point(1253.86, 1076.5);
+ poly175.ps[3] = Point(1253.86, 902.5);
+ new ShapeRef(router, poly175, 175);
+
+ Polygon poly176(4);
+ poly176.ps[0] = Point(2984.99, 1489.44);
+ poly176.ps[1] = Point(2984.99, 1549.44);
+ poly176.ps[2] = Point(2706.99, 1549.44);
+ poly176.ps[3] = Point(2706.99, 1489.44);
+ new ShapeRef(router, poly176, 176);
+
+ Polygon poly177(4);
+ poly177.ps[0] = Point(2646.54, 3113.3);
+ poly177.ps[1] = Point(2646.54, 3287.3);
+ poly177.ps[2] = Point(2566.54, 3287.3);
+ poly177.ps[3] = Point(2566.54, 3113.3);
+ new ShapeRef(router, poly177, 177);
+
+ Polygon poly178(4);
+ poly178.ps[0] = Point(1892.79, 3178.3);
+ poly178.ps[1] = Point(1892.79, 3240.3);
+ poly178.ps[2] = Point(1830.79, 3240.3);
+ poly178.ps[3] = Point(1830.79, 3178.3);
+ new ShapeRef(router, poly178, 178);
+
+ Polygon poly179(4);
+ poly179.ps[0] = Point(1798.79, 3391.3);
+ poly179.ps[1] = Point(1798.79, 3411.3);
+ poly179.ps[2] = Point(1766.79, 3411.3);
+ poly179.ps[3] = Point(1766.79, 3391.3);
+ new ShapeRef(router, poly179, 179);
+
+ Polygon poly180(4);
+ poly180.ps[0] = Point(1798.79, 3187.3);
+ poly180.ps[1] = Point(1798.79, 3207.3);
+ poly180.ps[2] = Point(1766.79, 3207.3);
+ poly180.ps[3] = Point(1766.79, 3187.3);
+ new ShapeRef(router, poly180, 180);
+
+ Polygon poly181(4);
+ poly181.ps[0] = Point(2791.54, 113.5);
+ poly181.ps[1] = Point(2791.54, 133.5);
+ poly181.ps[2] = Point(2759.54, 133.5);
+ poly181.ps[3] = Point(2759.54, 113.5);
+ new ShapeRef(router, poly181, 181);
+
+ Polygon poly182(4);
+ poly182.ps[0] = Point(2858.54, 2843.3);
+ poly182.ps[1] = Point(2858.54, 2903.3);
+ poly182.ps[2] = Point(2624.54, 2903.3);
+ poly182.ps[3] = Point(2624.54, 2843.3);
+ new ShapeRef(router, poly182, 182);
+
+ Polygon poly183(4);
+ poly183.ps[0] = Point(1969.79, 2935.3);
+ poly183.ps[1] = Point(1969.79, 2955.3);
+ poly183.ps[2] = Point(1937.79, 2955.3);
+ poly183.ps[3] = Point(1937.79, 2935.3);
+ new ShapeRef(router, poly183, 183);
+
+ Polygon poly184(4);
+ poly184.ps[0] = Point(2187.79, 210.875);
+ poly184.ps[1] = Point(2187.79, 230.875);
+ poly184.ps[2] = Point(2155.79, 230.875);
+ poly184.ps[3] = Point(2155.79, 210.875);
+ new ShapeRef(router, poly184, 184);
+
+ Polygon poly185(4);
+ poly185.ps[0] = Point(2072.79, 189.875);
+ poly185.ps[1] = Point(2072.79, 251.875);
+ poly185.ps[2] = Point(2010.79, 251.875);
+ poly185.ps[3] = Point(2010.79, 189.875);
+ new ShapeRef(router, poly185, 185);
+
+ Polygon poly186(4);
+ poly186.ps[0] = Point(2072.79, 2154.05);
+ poly186.ps[1] = Point(2072.79, 2216.05);
+ poly186.ps[2] = Point(2010.79, 2216.05);
+ poly186.ps[3] = Point(2010.79, 2154.05);
+ new ShapeRef(router, poly186, 186);
+
+ Polygon poly187(4);
+ poly187.ps[0] = Point(1806.79, 1841.95);
+ poly187.ps[1] = Point(1806.79, 1903.95);
+ poly187.ps[2] = Point(1744.79, 1903.95);
+ poly187.ps[3] = Point(1744.79, 1841.95);
+ new ShapeRef(router, poly187, 187);
+
+ Polygon poly188(4);
+ poly188.ps[0] = Point(1942.79, 1862.95);
+ poly188.ps[1] = Point(1942.79, 1882.95);
+ poly188.ps[2] = Point(1910.79, 1882.95);
+ poly188.ps[3] = Point(1910.79, 1862.95);
+ new ShapeRef(router, poly188, 188);
+
+ Polygon poly189(4);
+ poly189.ps[0] = Point(1104.18, 1841.95);
+ poly189.ps[1] = Point(1104.18, 1903.95);
+ poly189.ps[2] = Point(1042.18, 1903.95);
+ poly189.ps[3] = Point(1042.18, 1841.95);
+ new ShapeRef(router, poly189, 189);
+
+ Polygon poly190(4);
+ poly190.ps[0] = Point(1480.46, 1862.95);
+ poly190.ps[1] = Point(1480.46, 1882.95);
+ poly190.ps[2] = Point(1448.46, 1882.95);
+ poly190.ps[3] = Point(1448.46, 1862.95);
+ new ShapeRef(router, poly190, 190);
+
+ Polygon poly191(4);
+ poly191.ps[0] = Point(907.358, 1841.95);
+ poly191.ps[1] = Point(907.358, 1903.95);
+ poly191.ps[2] = Point(845.358, 1903.95);
+ poly191.ps[3] = Point(845.358, 1841.95);
+ new ShapeRef(router, poly191, 191);
+
+ Polygon poly192(4);
+ poly192.ps[0] = Point(988.958, 1862.95);
+ poly192.ps[1] = Point(988.958, 1882.95);
+ poly192.ps[2] = Point(956.958, 1882.95);
+ poly192.ps[3] = Point(956.958, 1862.95);
+ new ShapeRef(router, poly192, 192);
+
+ Polygon poly193(4);
+ poly193.ps[0] = Point(1104.18, 1700.64);
+ poly193.ps[1] = Point(1104.18, 1762.64);
+ poly193.ps[2] = Point(1042.18, 1762.64);
+ poly193.ps[3] = Point(1042.18, 1700.64);
+ new ShapeRef(router, poly193, 193);
+
+ Polygon poly194(4);
+ poly194.ps[0] = Point(1104.18, 1992.95);
+ poly194.ps[1] = Point(1104.18, 2054.95);
+ poly194.ps[2] = Point(1042.18, 2054.95);
+ poly194.ps[3] = Point(1042.18, 1992.95);
+ new ShapeRef(router, poly194, 194);
+
+ Polygon poly195(4);
+ poly195.ps[0] = Point(1551.87, 1611.77);
+ poly195.ps[1] = Point(1551.87, 1651.77);
+ poly195.ps[2] = Point(1475.87, 1651.77);
+ poly195.ps[3] = Point(1475.87, 1611.77);
+ new ShapeRef(router, poly195, 195);
+
+ Polygon poly196(4);
+ poly196.ps[0] = Point(2578.71, 1617.64);
+ poly196.ps[1] = Point(2578.71, 1679.64);
+ poly196.ps[2] = Point(2516.71, 1679.64);
+ poly196.ps[3] = Point(2516.71, 1617.64);
+ new ShapeRef(router, poly196, 196);
+
+ Polygon poly197(4);
+ poly197.ps[0] = Point(3099.24, 285.75);
+ poly197.ps[1] = Point(3099.24, 317.75);
+ poly197.ps[2] = Point(3079.24, 317.75);
+ poly197.ps[3] = Point(3079.24, 285.75);
+ new ShapeRef(router, poly197, 197);
+
+ Polygon poly198(4);
+ poly198.ps[0] = Point(2732.54, 2489.3);
+ poly198.ps[1] = Point(2732.54, 2533.3);
+ poly198.ps[2] = Point(2592.54, 2533.3);
+ poly198.ps[3] = Point(2592.54, 2489.3);
+ new ShapeRef(router, poly198, 198);
+
+ Polygon poly199(4);
+ poly199.ps[0] = Point(1822.83, 2270.38);
+ poly199.ps[1] = Point(1822.83, 2330.38);
+ poly199.ps[2] = Point(1504.83, 2330.38);
+ poly199.ps[3] = Point(1504.83, 2270.38);
+ new ShapeRef(router, poly199, 199);
+
+ Polygon poly200(4);
+ poly200.ps[0] = Point(2072.79, 2643.3);
+ poly200.ps[1] = Point(2072.79, 2705.3);
+ poly200.ps[2] = Point(2010.79, 2705.3);
+ poly200.ps[3] = Point(2010.79, 2643.3);
+ new ShapeRef(router, poly200, 200);
+
+ Polygon poly201(4);
+ poly201.ps[0] = Point(2051.79, 2733.3);
+ poly201.ps[1] = Point(2051.79, 2765.3);
+ poly201.ps[2] = Point(2031.79, 2765.3);
+ poly201.ps[3] = Point(2031.79, 2733.3);
+ new ShapeRef(router, poly201, 201);
+
+ Polygon poly202(4);
+ poly202.ps[0] = Point(1892.79, 2460.3);
+ poly202.ps[1] = Point(1892.79, 2522.3);
+ poly202.ps[2] = Point(1830.79, 2522.3);
+ poly202.ps[3] = Point(1830.79, 2460.3);
+ new ShapeRef(router, poly202, 202);
+
+ Polygon poly203(4);
+ poly203.ps[0] = Point(1892.79, 2643.3);
+ poly203.ps[1] = Point(1892.79, 2705.3);
+ poly203.ps[2] = Point(1830.79, 2705.3);
+ poly203.ps[3] = Point(1830.79, 2643.3);
+ new ShapeRef(router, poly203, 203);
+
+ Polygon poly204(4);
+ poly204.ps[0] = Point(1871.79, 2733.3);
+ poly204.ps[1] = Point(1871.79, 2765.3);
+ poly204.ps[2] = Point(1851.79, 2765.3);
+ poly204.ps[3] = Point(1851.79, 2733.3);
+ new ShapeRef(router, poly204, 204);
+
+ Polygon poly205(4);
+ poly205.ps[0] = Point(1892.79, 2780.3);
+ poly205.ps[1] = Point(1892.79, 2842.3);
+ poly205.ps[2] = Point(1830.79, 2842.3);
+ poly205.ps[3] = Point(1830.79, 2780.3);
+ new ShapeRef(router, poly205, 205);
+
+ Polygon poly206(4);
+ poly206.ps[0] = Point(1830.79, 2498.3);
+ poly206.ps[1] = Point(1830.79, 2560.3);
+ poly206.ps[2] = Point(1768.79, 2560.3);
+ poly206.ps[3] = Point(1768.79, 2498.3);
+ new ShapeRef(router, poly206, 206);
+
+ Polygon poly207(4);
+ poly207.ps[0] = Point(1793.79, 1914.95);
+ poly207.ps[1] = Point(1793.79, 1958.95);
+ poly207.ps[2] = Point(1713.79, 1958.95);
+ poly207.ps[3] = Point(1713.79, 1914.95);
+ new ShapeRef(router, poly207, 207);
+
+ Polygon poly208(4);
+ poly208.ps[0] = Point(1104.18, 538.7);
+ poly208.ps[1] = Point(1104.18, 600.7);
+ poly208.ps[2] = Point(1042.18, 600.7);
+ poly208.ps[3] = Point(1042.18, 538.7);
+ new ShapeRef(router, poly208, 208);
+
+ Polygon poly209(4);
+ poly209.ps[0] = Point(1083.18, 692.5);
+ poly209.ps[1] = Point(1083.18, 724.5);
+ poly209.ps[2] = Point(1063.18, 724.5);
+ poly209.ps[3] = Point(1063.18, 692.5);
+ new ShapeRef(router, poly209, 209);
+
+ Polygon poly210(4);
+ poly210.ps[0] = Point(1245.46, 559.7);
+ poly210.ps[1] = Point(1245.46, 579.7);
+ poly210.ps[2] = Point(1213.46, 579.7);
+ poly210.ps[3] = Point(1213.46, 559.7);
+ new ShapeRef(router, poly210, 210);
+
+ Polygon poly211(4);
+ poly211.ps[0] = Point(907.358, 344.5);
+ poly211.ps[1] = Point(907.358, 406.5);
+ poly211.ps[2] = Point(845.358, 406.5);
+ poly211.ps[3] = Point(845.358, 344.5);
+ new ShapeRef(router, poly211, 211);
+
+ Polygon poly212(4);
+ poly212.ps[0] = Point(886.358, 553.7);
+ poly212.ps[1] = Point(886.358, 585.7);
+ poly212.ps[2] = Point(866.358, 585.7);
+ poly212.ps[3] = Point(866.358, 553.7);
+ new ShapeRef(router, poly212, 212);
+
+ Polygon poly213(4);
+ poly213.ps[0] = Point(812.958, 684.5);
+ poly213.ps[1] = Point(812.958, 746.5);
+ poly213.ps[2] = Point(750.958, 746.5);
+ poly213.ps[3] = Point(750.958, 684.5);
+ new ShapeRef(router, poly213, 213);
+
+ Polygon poly214(4);
+ poly214.ps[0] = Point(414.333, 496.5);
+ poly214.ps[1] = Point(414.333, 528.5);
+ poly214.ps[2] = Point(394.333, 528.5);
+ poly214.ps[3] = Point(394.333, 496.5);
+ new ShapeRef(router, poly214, 214);
+
+ Polygon poly215(4);
+ poly215.ps[0] = Point(2493.71, 2854.3);
+ poly215.ps[1] = Point(2493.71, 2874.3);
+ poly215.ps[2] = Point(2461.71, 2874.3);
+ poly215.ps[3] = Point(2461.71, 2854.3);
+ new ShapeRef(router, poly215, 215);
+
+ Polygon poly216(4);
+ poly216.ps[0] = Point(3150.9, 2498.3);
+ poly216.ps[1] = Point(3150.9, 2560.3);
+ poly216.ps[2] = Point(3088.9, 2560.3);
+ poly216.ps[3] = Point(3088.9, 2498.3);
+ new ShapeRef(router, poly216, 216);
+
+ Polygon poly217(4);
+ poly217.ps[0] = Point(2999.99, 2643.3);
+ poly217.ps[1] = Point(2999.99, 2705.3);
+ poly217.ps[2] = Point(2937.99, 2705.3);
+ poly217.ps[3] = Point(2937.99, 2643.3);
+ new ShapeRef(router, poly217, 217);
+
+ Polygon poly218(4);
+ poly218.ps[0] = Point(2926.99, 2602.3);
+ poly218.ps[1] = Point(2926.99, 2622.3);
+ poly218.ps[2] = Point(2894.99, 2622.3);
+ poly218.ps[3] = Point(2894.99, 2602.3);
+ new ShapeRef(router, poly218, 218);
+
+ Polygon poly219(4);
+ poly219.ps[0] = Point(3150.9, 2841.3);
+ poly219.ps[1] = Point(3150.9, 2903.3);
+ poly219.ps[2] = Point(3088.9, 2903.3);
+ poly219.ps[3] = Point(3088.9, 2841.3);
+ new ShapeRef(router, poly219, 219);
+
+ Polygon poly220(4);
+ poly220.ps[0] = Point(2999.99, 3178.3);
+ poly220.ps[1] = Point(2999.99, 3240.3);
+ poly220.ps[2] = Point(2937.99, 3240.3);
+ poly220.ps[3] = Point(2937.99, 3178.3);
+ new ShapeRef(router, poly220, 220);
+
+ Polygon poly221(4);
+ poly221.ps[0] = Point(3252.24, 2643.3);
+ poly221.ps[1] = Point(3252.24, 2705.3);
+ poly221.ps[2] = Point(3190.24, 2705.3);
+ poly221.ps[3] = Point(3190.24, 2643.3);
+ new ShapeRef(router, poly221, 221);
+
+ Polygon poly222(4);
+ poly222.ps[0] = Point(3247.44, 3178.3);
+ poly222.ps[1] = Point(3247.44, 3240.3);
+ poly222.ps[2] = Point(3185.44, 3240.3);
+ poly222.ps[3] = Point(3185.44, 3178.3);
+ new ShapeRef(router, poly222, 222);
+
+ Polygon poly223(4);
+ poly223.ps[0] = Point(3252.24, 2596.3);
+ poly223.ps[1] = Point(3252.24, 2628.3);
+ poly223.ps[2] = Point(3232.24, 2628.3);
+ poly223.ps[3] = Point(3232.24, 2596.3);
+ new ShapeRef(router, poly223, 223);
+
+ Polygon poly224(4);
+ poly224.ps[0] = Point(2900.99, 3061.3);
+ poly224.ps[1] = Point(2900.99, 3081.3);
+ poly224.ps[2] = Point(2868.99, 3081.3);
+ poly224.ps[3] = Point(2868.99, 3061.3);
+ new ShapeRef(router, poly224, 224);
+
+ Polygon poly225(4);
+ poly225.ps[0] = Point(3336.74, 3055.3);
+ poly225.ps[1] = Point(3336.74, 3087.3);
+ poly225.ps[2] = Point(3316.74, 3087.3);
+ poly225.ps[3] = Point(3316.74, 3055.3);
+ new ShapeRef(router, poly225, 225);
+
+ Polygon poly226(4);
+ poly226.ps[0] = Point(1798.79, 3289.3);
+ poly226.ps[1] = Point(1798.79, 3309.3);
+ poly226.ps[2] = Point(1766.79, 3309.3);
+ poly226.ps[3] = Point(1766.79, 3289.3);
+ new ShapeRef(router, poly226, 226);
+
+ Polygon poly227(4);
+ poly227.ps[0] = Point(210, 492.5);
+ poly227.ps[1] = Point(210, 532.5);
+ poly227.ps[2] = Point(134, 532.5);
+ poly227.ps[3] = Point(134, 492.5);
+ new ShapeRef(router, poly227, 227);
+
+ Polygon poly228(4);
+ poly228.ps[0] = Point(121, 628.5);
+ poly228.ps[1] = Point(121, 668.5);
+ poly228.ps[2] = Point(45, 668.5);
+ poly228.ps[3] = Point(45, 628.5);
+ new ShapeRef(router, poly228, 228);
+
+ Polygon poly229(4);
+ poly229.ps[0] = Point(568.333, 638.5);
+ poly229.ps[1] = Point(568.333, 698.5);
+ poly229.ps[2] = Point(512.333, 698.5);
+ poly229.ps[3] = Point(512.333, 638.5);
+ new ShapeRef(router, poly229, 229);
+
+ Polygon poly230(4);
+ poly230.ps[0] = Point(568.333, 763.833);
+ poly230.ps[1] = Point(568.333, 823.833);
+ poly230.ps[2] = Point(512.333, 823.833);
+ poly230.ps[3] = Point(512.333, 763.833);
+ new ShapeRef(router, poly230, 230);
+
+ Polygon poly231(4);
+ poly231.ps[0] = Point(1481.46, 688.5);
+ poly231.ps[1] = Point(1481.46, 728.5);
+ poly231.ps[2] = Point(1405.46, 728.5);
+ poly231.ps[3] = Point(1405.46, 688.5);
+ new ShapeRef(router, poly231, 231);
+
+ Polygon poly232(4);
+ poly232.ps[0] = Point(1570.46, 221.5);
+ poly232.ps[1] = Point(1570.46, 281.5);
+ poly232.ps[2] = Point(1514.46, 281.5);
+ poly232.ps[3] = Point(1514.46, 221.5);
+ new ShapeRef(router, poly232, 232);
+
+ Polygon poly233(4);
+ poly233.ps[0] = Point(1970.29, 221.5);
+ poly233.ps[1] = Point(1970.29, 281.5);
+ poly233.ps[2] = Point(1914.29, 281.5);
+ poly233.ps[3] = Point(1914.29, 221.5);
+ new ShapeRef(router, poly233, 233);
+
+ Polygon poly234(4);
+ poly234.ps[0] = Point(2054.79, 707.5);
+ poly234.ps[1] = Point(2054.79, 767.5);
+ poly234.ps[2] = Point(1998.79, 767.5);
+ poly234.ps[3] = Point(1998.79, 707.5);
+ new ShapeRef(router, poly234, 234);
+
+ Polygon poly235(4);
+ poly235.ps[0] = Point(568.333, 1206.24);
+ poly235.ps[1] = Point(568.333, 1266.24);
+ poly235.ps[2] = Point(512.333, 1266.24);
+ poly235.ps[3] = Point(512.333, 1206.24);
+ new ShapeRef(router, poly235, 235);
+
+ Polygon poly236(4);
+ poly236.ps[0] = Point(739.958, 1206.24);
+ poly236.ps[1] = Point(739.958, 1266.24);
+ poly236.ps[2] = Point(683.958, 1266.24);
+ poly236.ps[3] = Point(683.958, 1206.24);
+ new ShapeRef(router, poly236, 236);
+
+ Polygon poly237(4);
+ poly237.ps[0] = Point(1000.96, 1206.24);
+ poly237.ps[1] = Point(1000.96, 1266.24);
+ poly237.ps[2] = Point(944.958, 1266.24);
+ poly237.ps[3] = Point(944.958, 1206.24);
+ new ShapeRef(router, poly237, 237);
+
+ Polygon poly238(4);
+ poly238.ps[0] = Point(1040.96, 1123.64);
+ poly238.ps[1] = Point(1040.96, 1163.64);
+ poly238.ps[2] = Point(964.958, 1163.64);
+ poly238.ps[3] = Point(964.958, 1123.64);
+ new ShapeRef(router, poly238, 238);
+
+ Polygon poly239(4);
+ poly239.ps[0] = Point(1413.86, 899.5);
+ poly239.ps[1] = Point(1413.86, 959.5);
+ poly239.ps[2] = Point(1357.86, 959.5);
+ poly239.ps[3] = Point(1357.86, 899.5);
+ new ShapeRef(router, poly239, 239);
+
+ Polygon poly240(4);
+ poly240.ps[0] = Point(1413.86, 1051.64);
+ poly240.ps[1] = Point(1413.86, 1111.64);
+ poly240.ps[2] = Point(1357.86, 1111.64);
+ poly240.ps[3] = Point(1357.86, 1051.64);
+ new ShapeRef(router, poly240, 240);
+
+ Polygon poly241(4);
+ poly241.ps[0] = Point(1413.86, 1153.64);
+ poly241.ps[1] = Point(1413.86, 1213.64);
+ poly241.ps[2] = Point(1357.86, 1213.64);
+ poly241.ps[3] = Point(1357.86, 1153.64);
+ new ShapeRef(router, poly241, 241);
+
+ Polygon poly242(4);
+ poly242.ps[0] = Point(1732.79, 1256.24);
+ poly242.ps[1] = Point(1732.79, 1296.24);
+ poly242.ps[2] = Point(1656.79, 1296.24);
+ poly242.ps[3] = Point(1656.79, 1256.24);
+ new ShapeRef(router, poly242, 242);
+
+ Polygon poly243(4);
+ poly243.ps[0] = Point(1954.79, 1663.64);
+ poly243.ps[1] = Point(1954.79, 1723.64);
+ poly243.ps[2] = Point(1898.79, 1723.64);
+ poly243.ps[3] = Point(1898.79, 1663.64);
+ new ShapeRef(router, poly243, 243);
+
+ Polygon poly244(4);
+ poly244.ps[0] = Point(2044.29, 1420.24);
+ poly244.ps[1] = Point(2044.29, 1460.24);
+ poly244.ps[2] = Point(1968.29, 1460.24);
+ poly244.ps[3] = Point(1968.29, 1420.24);
+ new ShapeRef(router, poly244, 244);
+
+ Polygon poly245(4);
+ poly245.ps[0] = Point(2127.79, 1702.64);
+ poly245.ps[1] = Point(2127.79, 1742.64);
+ poly245.ps[2] = Point(2051.79, 1742.64);
+ poly245.ps[3] = Point(2051.79, 1702.64);
+ new ShapeRef(router, poly245, 245);
+
+ Polygon poly246(4);
+ poly246.ps[0] = Point(2199.79, 1499.64);
+ poly246.ps[1] = Point(2199.79, 1559.64);
+ poly246.ps[2] = Point(2143.79, 1559.64);
+ poly246.ps[3] = Point(2143.79, 1499.64);
+ new ShapeRef(router, poly246, 246);
+
+ Polygon poly247(4);
+ poly247.ps[0] = Point(2327.79, 1420.24);
+ poly247.ps[1] = Point(2327.79, 1460.24);
+ poly247.ps[2] = Point(2251.79, 1460.24);
+ poly247.ps[3] = Point(2251.79, 1420.24);
+ new ShapeRef(router, poly247, 247);
+
+ Polygon poly248(4);
+ poly248.ps[0] = Point(2505.71, 1439.44);
+ poly248.ps[1] = Point(2505.71, 1499.44);
+ poly248.ps[2] = Point(2449.71, 1499.44);
+ poly248.ps[3] = Point(2449.71, 1439.44);
+ new ShapeRef(router, poly248, 248);
+
+ Polygon poly249(4);
+ poly249.ps[0] = Point(2505.71, 1591.64);
+ poly249.ps[1] = Point(2505.71, 1651.64);
+ poly249.ps[2] = Point(2449.71, 1651.64);
+ poly249.ps[3] = Point(2449.71, 1591.64);
+ new ShapeRef(router, poly249, 249);
+ */
+
+ Polygon poly250(4);
+ poly250.ps[0] = Point(2199.79, 1802.95);
+ poly250.ps[1] = Point(2199.79, 1862.95);
+ poly250.ps[2] = Point(2143.79, 1862.95);
+ poly250.ps[3] = Point(2143.79, 1802.95);
+ new ShapeRef(router, poly250, 250);
+
+ /*
+ Polygon poly251(4);
+ poly251.ps[0] = Point(2505.71, 1943.95);
+ poly251.ps[1] = Point(2505.71, 2003.95);
+ poly251.ps[2] = Point(2449.71, 2003.95);
+ poly251.ps[3] = Point(2449.71, 1943.95);
+ new ShapeRef(router, poly251, 251);
+
+ Polygon poly252(4);
+ poly252.ps[0] = Point(2505.71, 2065.95);
+ poly252.ps[1] = Point(2505.71, 2125.95);
+ poly252.ps[2] = Point(2449.71, 2125.95);
+ poly252.ps[3] = Point(2449.71, 2065.95);
+ new ShapeRef(router, poly252, 252);
+
+ Polygon poly253(4);
+ poly253.ps[0] = Point(2688.54, 1742.64);
+ poly253.ps[1] = Point(2688.54, 1802.64);
+ poly253.ps[2] = Point(2632.54, 1802.64);
+ poly253.ps[3] = Point(2632.54, 1742.64);
+ new ShapeRef(router, poly253, 253);
+
+ Polygon poly254(4);
+ poly254.ps[0] = Point(2665.54, 1894.95);
+ poly254.ps[1] = Point(2665.54, 1954.95);
+ poly254.ps[2] = Point(2609.54, 1954.95);
+ poly254.ps[3] = Point(2609.54, 1894.95);
+ new ShapeRef(router, poly254, 254);
+
+ Polygon poly255(4);
+ poly255.ps[0] = Point(2763.54, 1894.95);
+ poly255.ps[1] = Point(2763.54, 1954.95);
+ poly255.ps[2] = Point(2707.54, 1954.95);
+ poly255.ps[3] = Point(2707.54, 1894.95);
+ new ShapeRef(router, poly255, 255);
+
+ Polygon poly256(4);
+ poly256.ps[0] = Point(2926.99, 1742.64);
+ poly256.ps[1] = Point(2926.99, 1802.64);
+ poly256.ps[2] = Point(2870.99, 1802.64);
+ poly256.ps[3] = Point(2870.99, 1742.64);
+ new ShapeRef(router, poly256, 256);
+
+ Polygon poly257(4);
+ poly257.ps[0] = Point(2903.99, 1894.95);
+ poly257.ps[1] = Point(2903.99, 1954.95);
+ poly257.ps[2] = Point(2847.99, 1954.95);
+ poly257.ps[3] = Point(2847.99, 1894.95);
+ new ShapeRef(router, poly257, 257);
+
+ Polygon poly258(4);
+ poly258.ps[0] = Point(2981.99, 1894.95);
+ poly258.ps[1] = Point(2981.99, 1954.95);
+ poly258.ps[2] = Point(2925.99, 1954.95);
+ poly258.ps[3] = Point(2925.99, 1894.95);
+ new ShapeRef(router, poly258, 258);
+
+ Polygon poly259(4);
+ poly259.ps[0] = Point(2327.79, 688.5);
+ poly259.ps[1] = Point(2327.79, 728.5);
+ poly259.ps[2] = Point(2251.79, 728.5);
+ poly259.ps[3] = Point(2251.79, 688.5);
+ new ShapeRef(router, poly259, 259);
+
+ Polygon poly260(4);
+ poly260.ps[0] = Point(2633.71, 688.5);
+ poly260.ps[1] = Point(2633.71, 728.5);
+ poly260.ps[2] = Point(2557.71, 728.5);
+ poly260.ps[3] = Point(2557.71, 688.5);
+ new ShapeRef(router, poly260, 260);
+
+ Polygon poly261(4);
+ poly261.ps[0] = Point(2873.54, 688.5);
+ poly261.ps[1] = Point(2873.54, 728.5);
+ poly261.ps[2] = Point(2797.54, 728.5);
+ poly261.ps[3] = Point(2797.54, 688.5);
+ new ShapeRef(router, poly261, 261);
+
+ Polygon poly262(4);
+ poly262.ps[0] = Point(3054.99, 688.5);
+ poly262.ps[1] = Point(3054.99, 728.5);
+ poly262.ps[2] = Point(2978.99, 728.5);
+ poly262.ps[3] = Point(2978.99, 688.5);
+ new ShapeRef(router, poly262, 262);
+
+ Polygon poly263(4);
+ poly263.ps[0] = Point(3054.99, 894.5);
+ poly263.ps[1] = Point(3054.99, 934.5);
+ poly263.ps[2] = Point(2978.99, 934.5);
+ poly263.ps[3] = Point(2978.99, 894.5);
+ new ShapeRef(router, poly263, 263);
+
+ Polygon poly264(4);
+ poly264.ps[0] = Point(2327.79, 281.75);
+ poly264.ps[1] = Point(2327.79, 321.75);
+ poly264.ps[2] = Point(2251.79, 321.75);
+ poly264.ps[3] = Point(2251.79, 281.75);
+ new ShapeRef(router, poly264, 264);
+
+ Polygon poly265(4);
+ poly265.ps[0] = Point(2505.71, 150.875);
+ poly265.ps[1] = Point(2505.71, 210.875);
+ poly265.ps[2] = Point(2449.71, 210.875);
+ poly265.ps[3] = Point(2449.71, 150.875);
+ new ShapeRef(router, poly265, 265);
+
+ Polygon poly266(4);
+ poly266.ps[0] = Point(2633.71, 281.75);
+ poly266.ps[1] = Point(2633.71, 321.75);
+ poly266.ps[2] = Point(2557.71, 321.75);
+ poly266.ps[3] = Point(2557.71, 281.75);
+ new ShapeRef(router, poly266, 266);
+
+ Polygon poly267(4);
+ poly267.ps[0] = Point(2693.54, 150.875);
+ poly267.ps[1] = Point(2693.54, 210.875);
+ poly267.ps[2] = Point(2637.54, 210.875);
+ poly267.ps[3] = Point(2637.54, 150.875);
+ new ShapeRef(router, poly267, 267);
+
+ Polygon poly268(4);
+ poly268.ps[0] = Point(2693.54, 367.7);
+ poly268.ps[1] = Point(2693.54, 427.7);
+ poly268.ps[2] = Point(2637.54, 427.7);
+ poly268.ps[3] = Point(2637.54, 367.7);
+ new ShapeRef(router, poly268, 268);
+
+ Polygon poly269(4);
+ poly269.ps[0] = Point(2947.99, 367.7);
+ poly269.ps[1] = Point(2947.99, 427.7);
+ poly269.ps[2] = Point(2891.99, 427.7);
+ poly269.ps[3] = Point(2891.99, 367.7);
+ new ShapeRef(router, poly269, 269);
+
+ Polygon poly270(4);
+ poly270.ps[0] = Point(3225.24, 281.75);
+ poly270.ps[1] = Point(3225.24, 321.75);
+ poly270.ps[2] = Point(3149.24, 321.75);
+ poly270.ps[3] = Point(3149.24, 281.75);
+ new ShapeRef(router, poly270, 270);
+
+ Polygon poly271(4);
+ poly271.ps[0] = Point(3506.07, 844.5);
+ poly271.ps[1] = Point(3506.07, 904.5);
+ poly271.ps[2] = Point(3450.07, 904.5);
+ poly271.ps[3] = Point(3450.07, 844.5);
+ new ShapeRef(router, poly271, 271);
+
+ Polygon poly272(4);
+ poly272.ps[0] = Point(3564.07, 1852.95);
+ poly272.ps[1] = Point(3564.07, 1892.95);
+ poly272.ps[2] = Point(3488.07, 1892.95);
+ poly272.ps[3] = Point(3488.07, 1852.95);
+ new ShapeRef(router, poly272, 272);
+
+ Polygon poly273(4);
+ poly273.ps[0] = Point(3564.07, 2592.3);
+ poly273.ps[1] = Point(3564.07, 2632.3);
+ poly273.ps[2] = Point(3488.07, 2632.3);
+ poly273.ps[3] = Point(3488.07, 2592.3);
+ new ShapeRef(router, poly273, 273);
+
+ Polygon poly274(4);
+ poly274.ps[0] = Point(2815.54, 3427.3);
+ poly274.ps[1] = Point(2815.54, 3487.3);
+ poly274.ps[2] = Point(2759.54, 3487.3);
+ poly274.ps[3] = Point(2759.54, 3427.3);
+ new ShapeRef(router, poly274, 274);
+
+ Polygon poly275(4);
+ poly275.ps[0] = Point(2815.54, 3529.3);
+ poly275.ps[1] = Point(2815.54, 3589.3);
+ poly275.ps[2] = Point(2759.54, 3589.3);
+ poly275.ps[3] = Point(2759.54, 3529.3);
+ new ShapeRef(router, poly275, 275);
+
+ Polygon poly276(4);
+ poly276.ps[0] = Point(3682.07, 2592.3);
+ poly276.ps[1] = Point(3682.07, 2632.3);
+ poly276.ps[2] = Point(3606.07, 2632.3);
+ poly276.ps[3] = Point(3606.07, 2592.3);
+ new ShapeRef(router, poly276, 276);
+
+ Polygon poly277(4);
+ poly277.ps[0] = Point(3682.07, 894.5);
+ poly277.ps[1] = Point(3682.07, 934.5);
+ poly277.ps[2] = Point(3606.07, 934.5);
+ poly277.ps[3] = Point(3606.07, 894.5);
+ new ShapeRef(router, poly277, 277);
+
+ Polygon poly278(4);
+ poly278.ps[0] = Point(3412.74, 894.5);
+ poly278.ps[1] = Point(3412.74, 934.5);
+ poly278.ps[2] = Point(3336.74, 934.5);
+ poly278.ps[3] = Point(3336.74, 894.5);
+ new ShapeRef(router, poly278, 278);
+
+ Polygon poly279(4);
+ poly279.ps[0] = Point(3244.44, 2329.05);
+ poly279.ps[1] = Point(3244.44, 2389.05);
+ poly279.ps[2] = Point(3188.44, 2389.05);
+ poly279.ps[3] = Point(3188.44, 2329.05);
+ new ShapeRef(router, poly279, 279);
+
+ Polygon poly280(4);
+ poly280.ps[0] = Point(3244.44, 2227.05);
+ poly280.ps[1] = Point(3244.44, 2287.05);
+ poly280.ps[2] = Point(3188.44, 2287.05);
+ poly280.ps[3] = Point(3188.44, 2227.05);
+ new ShapeRef(router, poly280, 280);
+
+ Polygon poly281(4);
+ poly281.ps[0] = Point(2815.54, 2227.05);
+ poly281.ps[1] = Point(2815.54, 2287.05);
+ poly281.ps[2] = Point(2759.54, 2287.05);
+ poly281.ps[3] = Point(2759.54, 2227.05);
+ new ShapeRef(router, poly281, 281);
+
+ Polygon poly282(4);
+ poly282.ps[0] = Point(3244.44, 844.5);
+ poly282.ps[1] = Point(3244.44, 904.5);
+ poly282.ps[2] = Point(3188.44, 904.5);
+ poly282.ps[3] = Point(3188.44, 844.5);
+ new ShapeRef(router, poly282, 282);
+
+ Polygon poly283(4);
+ poly283.ps[0] = Point(2815.54, 2115.05);
+ poly283.ps[1] = Point(2815.54, 2175.05);
+ poly283.ps[2] = Point(2759.54, 2175.05);
+ poly283.ps[3] = Point(2759.54, 2115.05);
+ new ShapeRef(router, poly283, 283);
+
+ Polygon poly284(4);
+ poly284.ps[0] = Point(2427.71, 2115.05);
+ poly284.ps[1] = Point(2427.71, 2175.05);
+ poly284.ps[2] = Point(2371.71, 2175.05);
+ poly284.ps[3] = Point(2371.71, 2115.05);
+ new ShapeRef(router, poly284, 284);
+
+ Polygon poly285(4);
+ poly285.ps[0] = Point(1954.79, 2115.05);
+ poly285.ps[1] = Point(1954.79, 2175.05);
+ poly285.ps[2] = Point(1898.79, 2175.05);
+ poly285.ps[3] = Point(1898.79, 2115.05);
+ new ShapeRef(router, poly285, 285);
+
+ Polygon poly286(4);
+ poly286.ps[0] = Point(739.958, 2115.05);
+ poly286.ps[1] = Point(739.958, 2175.05);
+ poly286.ps[2] = Point(683.958, 2175.05);
+ poly286.ps[3] = Point(683.958, 2115.05);
+ new ShapeRef(router, poly286, 286);
+
+ Polygon poly287(4);
+ poly287.ps[0] = Point(1649.6, 2003.95);
+ poly287.ps[1] = Point(1649.6, 2043.95);
+ poly287.ps[2] = Point(1573.6, 2043.95);
+ poly287.ps[3] = Point(1573.6, 2003.95);
+ new ShapeRef(router, poly287, 287);
+
+ Polygon poly288(4);
+ poly288.ps[0] = Point(739.958, 1308.24);
+ poly288.ps[1] = Point(739.958, 1368.24);
+ poly288.ps[2] = Point(683.958, 1368.24);
+ poly288.ps[3] = Point(683.958, 1308.24);
+ new ShapeRef(router, poly288, 288);
+
+ Polygon poly289(4);
+ poly289.ps[0] = Point(797.958, 1420.24);
+ poly289.ps[1] = Point(797.958, 1460.24);
+ poly289.ps[2] = Point(721.958, 1460.24);
+ poly289.ps[3] = Point(721.958, 1420.24);
+ new ShapeRef(router, poly289, 289);
+
+ Polygon poly290(4);
+ poly290.ps[0] = Point(1375.86, 1420.24);
+ poly290.ps[1] = Point(1375.86, 1460.24);
+ poly290.ps[2] = Point(1299.86, 1460.24);
+ poly290.ps[3] = Point(1299.86, 1420.24);
+ new ShapeRef(router, poly290, 290);
+
+ Polygon poly291(4);
+ poly291.ps[0] = Point(638.333, 2407.3);
+ poly291.ps[1] = Point(638.333, 2467.3);
+ poly291.ps[2] = Point(582.333, 2467.3);
+ poly291.ps[3] = Point(582.333, 2407.3);
+ new ShapeRef(router, poly291, 291);
+
+ Polygon poly292(4);
+ poly292.ps[0] = Point(696.333, 2592.3);
+ poly292.ps[1] = Point(696.333, 2632.3);
+ poly292.ps[2] = Point(620.333, 2632.3);
+ poly292.ps[3] = Point(620.333, 2592.3);
+ new ShapeRef(router, poly292, 292);
+
+ Polygon poly293(4);
+ poly293.ps[0] = Point(638.333, 3081.3);
+ poly293.ps[1] = Point(638.333, 3141.3);
+ poly293.ps[2] = Point(582.333, 3141.3);
+ poly293.ps[3] = Point(582.333, 3081.3);
+ new ShapeRef(router, poly293, 293);
+
+ Polygon poly294(4);
+ poly294.ps[0] = Point(1187.96, 2592.3);
+ poly294.ps[1] = Point(1187.96, 2632.3);
+ poly294.ps[2] = Point(1111.96, 2632.3);
+ poly294.ps[3] = Point(1111.96, 2592.3);
+ new ShapeRef(router, poly294, 294);
+
+ Polygon poly295(4);
+ poly295.ps[0] = Point(1305.96, 2592.3);
+ poly295.ps[1] = Point(1305.96, 2632.3);
+ poly295.ps[2] = Point(1229.96, 2632.3);
+ poly295.ps[3] = Point(1229.96, 2592.3);
+ new ShapeRef(router, poly295, 295);
+
+ Polygon poly296(4);
+ poly296.ps[0] = Point(1732.79, 2737.3);
+ poly296.ps[1] = Point(1732.79, 2777.3);
+ poly296.ps[2] = Point(1656.79, 2777.3);
+ poly296.ps[3] = Point(1656.79, 2737.3);
+ new ShapeRef(router, poly296, 296);
+
+ Polygon poly297(4);
+ poly297.ps[0] = Point(1649.6, 2668.3);
+ poly297.ps[1] = Point(1649.6, 2708.3);
+ poly297.ps[2] = Point(1573.6, 2708.3);
+ poly297.ps[3] = Point(1573.6, 2668.3);
+ new ShapeRef(router, poly297, 297);
+
+ Polygon poly298(4);
+ poly298.ps[0] = Point(1528.46, 2737.3);
+ poly298.ps[1] = Point(1528.46, 2777.3);
+ poly298.ps[2] = Point(1452.46, 2777.3);
+ poly298.ps[3] = Point(1452.46, 2737.3);
+ new ShapeRef(router, poly298, 298);
+
+ Polygon poly299(4);
+ poly299.ps[0] = Point(1732.79, 3120.3);
+ poly299.ps[1] = Point(1732.79, 3160.3);
+ poly299.ps[2] = Point(1656.79, 3160.3);
+ poly299.ps[3] = Point(1656.79, 3120.3);
+ new ShapeRef(router, poly299, 299);
+
+ Polygon poly300(4);
+ poly300.ps[0] = Point(1528.46, 3120.3);
+ poly300.ps[1] = Point(1528.46, 3160.3);
+ poly300.ps[2] = Point(1452.46, 3160.3);
+ poly300.ps[3] = Point(1452.46, 3120.3);
+ new ShapeRef(router, poly300, 300);
+
+ Polygon poly301(4);
+ poly301.ps[0] = Point(1649.6, 3051.3);
+ poly301.ps[1] = Point(1649.6, 3091.3);
+ poly301.ps[2] = Point(1573.6, 3091.3);
+ poly301.ps[3] = Point(1573.6, 3051.3);
+ new ShapeRef(router, poly301, 301);
+
+ Polygon poly302(4);
+ poly302.ps[0] = Point(2257.79, 2679.3);
+ poly302.ps[1] = Point(2257.79, 2739.3);
+ poly302.ps[2] = Point(2201.79, 2739.3);
+ poly302.ps[3] = Point(2201.79, 2679.3);
+ new ShapeRef(router, poly302, 302);
+
+ Polygon poly303(4);
+ poly303.ps[0] = Point(2420.71, 2592.3);
+ poly303.ps[1] = Point(2420.71, 2632.3);
+ poly303.ps[2] = Point(2344.71, 2632.3);
+ poly303.ps[3] = Point(2344.71, 2592.3);
+ new ShapeRef(router, poly303, 303);
+
+ Polygon poly304(4);
+ poly304.ps[0] = Point(2505.71, 2965.3);
+ poly304.ps[1] = Point(2505.71, 3025.3);
+ poly304.ps[2] = Point(2449.71, 3025.3);
+ poly304.ps[3] = Point(2449.71, 2965.3);
+ new ShapeRef(router, poly304, 304);
+
+ Polygon poly305(4);
+ poly305.ps[0] = Point(840.958, 2457.3);
+ poly305.ps[1] = Point(840.958, 2497.3);
+ poly305.ps[2] = Point(764.958, 2497.3);
+ poly305.ps[3] = Point(764.958, 2457.3);
+ new ShapeRef(router, poly305, 305);
+
+ Polygon poly306(4);
+ poly306.ps[0] = Point(986.958, 2407.3);
+ poly306.ps[1] = Point(986.958, 2467.3);
+ poly306.ps[2] = Point(930.958, 2467.3);
+ poly306.ps[3] = Point(930.958, 2407.3);
+ new ShapeRef(router, poly306, 306);
+
+ Polygon poly307(4);
+ poly307.ps[0] = Point(962.358, 2592.3);
+ poly307.ps[1] = Point(962.358, 2632.3);
+ poly307.ps[2] = Point(886.358, 2632.3);
+ poly307.ps[3] = Point(886.358, 2592.3);
+ new ShapeRef(router, poly307, 307);
+
+ Polygon poly308(4);
+ poly308.ps[0] = Point(962.358, 2737.3);
+ poly308.ps[1] = Point(962.358, 2777.3);
+ poly308.ps[2] = Point(886.358, 2777.3);
+ poly308.ps[3] = Point(886.358, 2737.3);
+ new ShapeRef(router, poly308, 308);
+
+ Polygon poly309(4);
+ poly309.ps[0] = Point(904.358, 3001.3);
+ poly309.ps[1] = Point(904.358, 3061.3);
+ poly309.ps[2] = Point(848.358, 3061.3);
+ poly309.ps[3] = Point(848.358, 3001.3);
+ new ShapeRef(router, poly309, 309);
+
+ Polygon poly310(4);
+ poly310.ps[0] = Point(2199.79, 971.643);
+ poly310.ps[1] = Point(2199.79, 1031.64);
+ poly310.ps[2] = Point(2143.79, 1031.64);
+ poly310.ps[3] = Point(2143.79, 971.643);
+ new ShapeRef(router, poly310, 310);
+
+ Polygon poly311(4);
+ poly311.ps[0] = Point(2505.71, 971.643);
+ poly311.ps[1] = Point(2505.71, 1031.64);
+ poly311.ps[2] = Point(2449.71, 1031.64);
+ poly311.ps[3] = Point(2449.71, 971.643);
+ new ShapeRef(router, poly311, 311);
+
+ Polygon poly312(4);
+ poly312.ps[0] = Point(2269.79, 1153.64);
+ poly312.ps[1] = Point(2269.79, 1213.64);
+ poly312.ps[2] = Point(2213.79, 1213.64);
+ poly312.ps[3] = Point(2213.79, 1153.64);
+ new ShapeRef(router, poly312, 312);
+
+ Polygon poly313(4);
+ poly313.ps[0] = Point(1797.79, 436.5);
+ poly313.ps[1] = Point(1797.79, 496.5);
+ poly313.ps[2] = Point(1741.79, 496.5);
+ poly313.ps[3] = Point(1741.79, 436.5);
+ new ShapeRef(router, poly313, 313);
+
+ Polygon poly314(4);
+ poly314.ps[0] = Point(1797.79, 587.5);
+ poly314.ps[1] = Point(1797.79, 647.5);
+ poly314.ps[2] = Point(1741.79, 647.5);
+ poly314.ps[3] = Point(1741.79, 587.5);
+ new ShapeRef(router, poly314, 314);
+
+ Polygon poly315(4);
+ poly315.ps[0] = Point(2127.79, 1256.24);
+ poly315.ps[1] = Point(2127.79, 1296.24);
+ poly315.ps[2] = Point(2051.79, 1296.24);
+ poly315.ps[3] = Point(2051.79, 1256.24);
+ new ShapeRef(router, poly315, 315);
+
+ Polygon poly316(4);
+ poly316.ps[0] = Point(409, 1105.24);
+ poly316.ps[1] = Point(409, 1145.24);
+ poly316.ps[2] = Point(333, 1145.24);
+ poly316.ps[3] = Point(333, 1105.24);
+ new ShapeRef(router, poly316, 316);
+
+ Polygon poly317(4);
+ poly317.ps[0] = Point(271, 1123.64);
+ poly317.ps[1] = Point(271, 1163.64);
+ poly317.ps[2] = Point(195, 1163.64);
+ poly317.ps[3] = Point(195, 1123.64);
+ new ShapeRef(router, poly317, 317);
+
+ Polygon poly318(4);
+ poly318.ps[0] = Point(551.333, 1123.64);
+ poly318.ps[1] = Point(551.333, 1163.64);
+ poly318.ps[2] = Point(475.333, 1163.64);
+ poly318.ps[3] = Point(475.333, 1123.64);
+ new ShapeRef(router, poly318, 318);
+
+ Polygon poly319(4);
+ poly319.ps[0] = Point(1810.79, 3331.3);
+ poly319.ps[1] = Point(1810.79, 3391.3);
+ poly319.ps[2] = Point(1754.79, 3391.3);
+ poly319.ps[3] = Point(1754.79, 3331.3);
+ new ShapeRef(router, poly319, 319);
+
+ Polygon poly320(4);
+ poly320.ps[0] = Point(1810.79, 3127.3);
+ poly320.ps[1] = Point(1810.79, 3187.3);
+ poly320.ps[2] = Point(1754.79, 3187.3);
+ poly320.ps[3] = Point(1754.79, 3127.3);
+ new ShapeRef(router, poly320, 320);
+
+ Polygon poly321(4);
+ poly321.ps[0] = Point(2803.54, 53.5);
+ poly321.ps[1] = Point(2803.54, 113.5);
+ poly321.ps[2] = Point(2747.54, 113.5);
+ poly321.ps[3] = Point(2747.54, 53.5);
+ new ShapeRef(router, poly321, 321);
+
+ Polygon poly322(4);
+ poly322.ps[0] = Point(1981.79, 2875.3);
+ poly322.ps[1] = Point(1981.79, 2935.3);
+ poly322.ps[2] = Point(1925.79, 2935.3);
+ poly322.ps[3] = Point(1925.79, 2875.3);
+ new ShapeRef(router, poly322, 322);
+
+ Polygon poly323(4);
+ poly323.ps[0] = Point(2199.79, 150.875);
+ poly323.ps[1] = Point(2199.79, 210.875);
+ poly323.ps[2] = Point(2143.79, 210.875);
+ poly323.ps[3] = Point(2143.79, 150.875);
+ new ShapeRef(router, poly323, 323);
+
+ Polygon poly324(4);
+ poly324.ps[0] = Point(1954.79, 1802.95);
+ poly324.ps[1] = Point(1954.79, 1862.95);
+ poly324.ps[2] = Point(1898.79, 1862.95);
+ poly324.ps[3] = Point(1898.79, 1802.95);
+ new ShapeRef(router, poly324, 324);
+
+ Polygon poly325(4);
+ poly325.ps[0] = Point(1492.46, 1802.95);
+ poly325.ps[1] = Point(1492.46, 1862.95);
+ poly325.ps[2] = Point(1436.46, 1862.95);
+ poly325.ps[3] = Point(1436.46, 1802.95);
+ new ShapeRef(router, poly325, 325);
+
+ Polygon poly326(4);
+ poly326.ps[0] = Point(1000.96, 1802.95);
+ poly326.ps[1] = Point(1000.96, 1862.95);
+ poly326.ps[2] = Point(944.958, 1862.95);
+ poly326.ps[3] = Point(944.958, 1802.95);
+ new ShapeRef(router, poly326, 326);
+
+ Polygon poly327(4);
+ poly327.ps[0] = Point(3079.24, 281.75);
+ poly327.ps[1] = Point(3079.24, 321.75);
+ poly327.ps[2] = Point(3003.24, 321.75);
+ poly327.ps[3] = Point(3003.24, 281.75);
+ new ShapeRef(router, poly327, 327);
+
+ Polygon poly328(4);
+ poly328.ps[0] = Point(2127.79, 2729.3);
+ poly328.ps[1] = Point(2127.79, 2769.3);
+ poly328.ps[2] = Point(2051.79, 2769.3);
+ poly328.ps[3] = Point(2051.79, 2729.3);
+ new ShapeRef(router, poly328, 328);
+
+ Polygon poly329(4);
+ poly329.ps[0] = Point(1947.79, 2729.3);
+ poly329.ps[1] = Point(1947.79, 2769.3);
+ poly329.ps[2] = Point(1871.79, 2769.3);
+ poly329.ps[3] = Point(1871.79, 2729.3);
+ new ShapeRef(router, poly329, 329);
+
+ Polygon poly330(4);
+ poly330.ps[0] = Point(1159.18, 688.5);
+ poly330.ps[1] = Point(1159.18, 728.5);
+ poly330.ps[2] = Point(1083.18, 728.5);
+ poly330.ps[3] = Point(1083.18, 688.5);
+ new ShapeRef(router, poly330, 330);
+
+ Polygon poly331(4);
+ poly331.ps[0] = Point(1257.46, 499.7);
+ poly331.ps[1] = Point(1257.46, 559.7);
+ poly331.ps[2] = Point(1201.46, 559.7);
+ poly331.ps[3] = Point(1201.46, 499.7);
+ new ShapeRef(router, poly331, 331);
+
+ Polygon poly332(4);
+ poly332.ps[0] = Point(962.358, 549.7);
+ poly332.ps[1] = Point(962.358, 589.7);
+ poly332.ps[2] = Point(886.358, 589.7);
+ poly332.ps[3] = Point(886.358, 549.7);
+ new ShapeRef(router, poly332, 332);
+
+ Polygon poly333(4);
+ poly333.ps[0] = Point(490.333, 492.5);
+ poly333.ps[1] = Point(490.333, 532.5);
+ poly333.ps[2] = Point(414.333, 532.5);
+ poly333.ps[3] = Point(414.333, 492.5);
+ new ShapeRef(router, poly333, 333);
+
+ Polygon poly334(4);
+ poly334.ps[0] = Point(2505.71, 2794.3);
+ poly334.ps[1] = Point(2505.71, 2854.3);
+ poly334.ps[2] = Point(2449.71, 2854.3);
+ poly334.ps[3] = Point(2449.71, 2794.3);
+ new ShapeRef(router, poly334, 334);
+
+ Polygon poly335(4);
+ poly335.ps[0] = Point(2938.99, 2542.3);
+ poly335.ps[1] = Point(2938.99, 2602.3);
+ poly335.ps[2] = Point(2882.99, 2602.3);
+ poly335.ps[3] = Point(2882.99, 2542.3);
+ new ShapeRef(router, poly335, 335);
+
+ Polygon poly336(4);
+ poly336.ps[0] = Point(3328.24, 2592.3);
+ poly336.ps[1] = Point(3328.24, 2632.3);
+ poly336.ps[2] = Point(3252.24, 2632.3);
+ poly336.ps[3] = Point(3252.24, 2592.3);
+ new ShapeRef(router, poly336, 336);
+
+ Polygon poly337(4);
+ poly337.ps[0] = Point(2912.99, 3001.3);
+ poly337.ps[1] = Point(2912.99, 3061.3);
+ poly337.ps[2] = Point(2856.99, 3061.3);
+ poly337.ps[3] = Point(2856.99, 3001.3);
+ new ShapeRef(router, poly337, 337);
+
+ Polygon poly338(4);
+ poly338.ps[0] = Point(3412.74, 3051.3);
+ poly338.ps[1] = Point(3412.74, 3091.3);
+ poly338.ps[2] = Point(3336.74, 3091.3);
+ poly338.ps[3] = Point(3336.74, 3051.3);
+ new ShapeRef(router, poly338, 338);
+
+ Polygon poly339(4);
+ poly339.ps[0] = Point(1810.79, 3229.3);
+ poly339.ps[1] = Point(1810.79, 3289.3);
+ poly339.ps[2] = Point(1754.79, 3289.3);
+ poly339.ps[3] = Point(1754.79, 3229.3);
+ new ShapeRef(router, poly339, 339);
+
+ Polygon poly340(4);
+ poly340.ps[0] = Point(1446.46, 172);
+ poly340.ps[1] = Point(1446.46, 232);
+ poly340.ps[2] = Point(1406.46, 232);
+ poly340.ps[3] = Point(1406.46, 172);
+ new ShapeRef(router, poly340, 340);
+
+ Polygon poly341(4);
+ poly341.ps[0] = Point(3101.74, 1542.44);
+ poly341.ps[1] = Point(3101.74, 1602.44);
+ poly341.ps[2] = Point(3061.74, 1602.44);
+ poly341.ps[3] = Point(3061.74, 1542.44);
+ new ShapeRef(router, poly341, 341);
+
+ Polygon poly342(4);
+ poly342.ps[0] = Point(3141.74, 1542.44);
+ poly342.ps[1] = Point(3141.74, 1602.44);
+ poly342.ps[2] = Point(3101.74, 1602.44);
+ poly342.ps[3] = Point(3101.74, 1542.44);
+ new ShapeRef(router, poly342, 342);
+
+ Polygon poly343(4);
+ poly343.ps[0] = Point(1962.3, 365);
+ poly343.ps[1] = Point(1962.3, 405);
+ poly343.ps[2] = Point(1902.3, 405);
+ poly343.ps[3] = Point(1902.3, 365);
+ new ShapeRef(router, poly343, 343);
+
+ Polygon poly344(4);
+ poly344.ps[0] = Point(1726.79, 1184.74);
+ poly344.ps[1] = Point(1726.79, 1224.74);
+ poly344.ps[2] = Point(1666.79, 1224.74);
+ poly344.ps[3] = Point(1666.79, 1184.74);
+ new ShapeRef(router, poly344, 344);
+
+ Polygon poly345(4);
+ poly345.ps[0] = Point(1923.79, 1184.74);
+ poly345.ps[1] = Point(1923.79, 1224.74);
+ poly345.ps[2] = Point(1863.79, 1224.74);
+ poly345.ps[3] = Point(1863.79, 1184.74);
+ new ShapeRef(router, poly345, 345);
+
+ Polygon poly346(4);
+ poly346.ps[0] = Point(1522.1, 2866.8);
+ poly346.ps[1] = Point(1522.1, 2906.8);
+ poly346.ps[2] = Point(1462.1, 2906.8);
+ poly346.ps[3] = Point(1462.1, 2866.8);
+ new ShapeRef(router, poly346, 346);
+
+ Polygon poly347(4);
+ poly347.ps[0] = Point(1395.6, 2799.8);
+ poly347.ps[1] = Point(1395.6, 2859.8);
+ poly347.ps[2] = Point(1355.6, 2859.8);
+ poly347.ps[3] = Point(1355.6, 2799.8);
+ new ShapeRef(router, poly347, 347);
+
+ Polygon poly348(4);
+ poly348.ps[0] = Point(1253.46, 326);
+ poly348.ps[1] = Point(1253.46, 386);
+ poly348.ps[2] = Point(1213.46, 386);
+ poly348.ps[3] = Point(1213.46, 326);
+ new ShapeRef(router, poly348, 348);
+
+ Polygon poly349(4);
+ poly349.ps[0] = Point(1315.36, 903);
+ poly349.ps[1] = Point(1315.36, 963);
+ poly349.ps[2] = Point(1275.36, 963);
+ poly349.ps[3] = Point(1275.36, 903);
+ new ShapeRef(router, poly349, 349);
+
+ Polygon poly350(4);
+ poly350.ps[0] = Point(2767.49, 1499.94);
+ poly350.ps[1] = Point(2767.49, 1539.94);
+ poly350.ps[2] = Point(2707.49, 1539.94);
+ poly350.ps[3] = Point(2707.49, 1499.94);
+ new ShapeRef(router, poly350, 350);
+
+ Polygon poly351(4);
+ poly351.ps[0] = Point(2627.04, 3113.8);
+ poly351.ps[1] = Point(2627.04, 3173.8);
+ poly351.ps[2] = Point(2587.04, 3173.8);
+ poly351.ps[3] = Point(2587.04, 3113.8);
+ new ShapeRef(router, poly351, 351);
+
+ Polygon poly352(4);
+ poly352.ps[0] = Point(2685.04, 2853.8);
+ poly352.ps[1] = Point(2685.04, 2893.8);
+ poly352.ps[2] = Point(2625.04, 2893.8);
+ poly352.ps[3] = Point(2625.04, 2853.8);
+ new ShapeRef(router, poly352, 352);
+
+ Polygon poly353(4);
+ poly353.ps[0] = Point(1823.33, 2280.88);
+ poly353.ps[1] = Point(1823.33, 2320.88);
+ poly353.ps[2] = Point(1763.33, 2320.88);
+ poly353.ps[3] = Point(1763.33, 2280.88);
+ new ShapeRef(router, poly353, 353);
+
+ ConnRef *connRef354 = new ConnRef(router, 354);
+ ConnEnd srcPt354(Point(1762.79, 157.5), 15);
+ connRef354->setSourceEndpoint(srcPt354);
+ ConnEnd dstPt354(Point(1927.29, 291.5), 4);
+ connRef354->setDestEndpoint(dstPt354);
+ connRef354->setRoutingType((ConnType)2);
+
+ ConnRef *connRef355 = new ConnRef(router, 355);
+ ConnEnd srcPt355(Point(1395.46, 693.5), 1);
+ connRef355->setSourceEndpoint(srcPt355);
+ ConnEnd dstPt355(Point(1385.86, 569.7), 15);
+ connRef355->setDestEndpoint(dstPt355);
+ connRef355->setRoutingType((ConnType)2);
+
+ ConnRef *connRef356 = new ConnRef(router, 356);
+ ConnEnd srcPt356(Point(1385.86, 569.7), 15);
+ connRef356->setSourceEndpoint(srcPt356);
+ ConnEnd dstPt356(Point(1527.46, 291.5), 4);
+ connRef356->setDestEndpoint(dstPt356);
+ connRef356->setRoutingType((ConnType)2);
+
+ ConnRef *connRef357 = new ConnRef(router, 357);
+ ConnEnd srcPt357(Point(1754.79, 506.5), 4);
+ connRef357->setSourceEndpoint(srcPt357);
+ ConnEnd dstPt357(Point(1385.86, 569.7), 15);
+ connRef357->setDestEndpoint(dstPt357);
+ connRef357->setRoutingType((ConnType)2);
+
+ ConnRef *connRef358 = new ConnRef(router, 358);
+ ConnEnd srcPt358(Point(1754.79, 577.5), 4);
+ connRef358->setSourceEndpoint(srcPt358);
+ ConnEnd dstPt358(Point(1385.86, 569.7), 15);
+ connRef358->setDestEndpoint(dstPt358);
+ connRef358->setRoutingType((ConnType)2);
+
+ ConnRef *connRef359 = new ConnRef(router, 359);
+ ConnEnd srcPt359(Point(1244.46, 569.7), 8);
+ connRef359->setSourceEndpoint(srcPt359);
+ ConnEnd dstPt359(Point(1385.86, 569.7), 15);
+ connRef359->setDestEndpoint(dstPt359);
+ connRef359->setRoutingType((ConnType)2);
+
+ ConnRef *connRef360 = new ConnRef(router, 360);
+ ConnEnd srcPt360(Point(1957.29, 291.5), 8);
+ connRef360->setSourceEndpoint(srcPt360);
+ ConnEnd dstPt360(Point(2041.79, 569.7), 15);
+ connRef360->setDestEndpoint(dstPt360);
+ connRef360->setRoutingType((ConnType)2);
+
+ ConnRef *connRef361 = new ConnRef(router, 361);
+ ConnEnd srcPt361(Point(2041.79, 569.7), 15);
+ connRef361->setSourceEndpoint(srcPt361);
+ ConnEnd dstPt361(Point(2041.79, 777.5), 8);
+ connRef361->setDestEndpoint(dstPt361);
+ connRef361->setRoutingType((ConnType)2);
+
+ ConnRef *connRef362 = new ConnRef(router, 362);
+ ConnEnd srcPt362(Point(2241.79, 693.5), 1);
+ connRef362->setSourceEndpoint(srcPt362);
+ ConnEnd dstPt362(Point(2041.79, 569.7), 15);
+ connRef362->setDestEndpoint(dstPt362);
+ connRef362->setRoutingType((ConnType)2);
+
+ ConnRef *connRef363 = new ConnRef(router, 363);
+ ConnEnd srcPt363(Point(2547.71, 693.5), 1);
+ connRef363->setSourceEndpoint(srcPt363);
+ ConnEnd dstPt363(Point(2041.79, 569.7), 15);
+ connRef363->setDestEndpoint(dstPt363);
+ connRef363->setRoutingType((ConnType)2);
+
+ ConnRef *connRef364 = new ConnRef(router, 364);
+ ConnEnd srcPt364(Point(2041.79, 569.7), 15);
+ connRef364->setSourceEndpoint(srcPt364);
+ ConnEnd dstPt364(Point(2787.54, 693.5), 1);
+ connRef364->setDestEndpoint(dstPt364);
+ connRef364->setRoutingType((ConnType)2);
+
+ ConnRef *connRef365 = new ConnRef(router, 365);
+ ConnEnd srcPt365(Point(2041.79, 569.7), 15);
+ connRef365->setSourceEndpoint(srcPt365);
+ ConnEnd dstPt365(Point(2968.99, 693.5), 1);
+ connRef365->setDestEndpoint(dstPt365);
+ connRef365->setRoutingType((ConnType)2);
+
+ ConnRef *connRef366 = new ConnRef(router, 366);
+ ConnEnd srcPt366(Point(2241.79, 316.75), 2);
+ connRef366->setSourceEndpoint(srcPt366);
+ ConnEnd dstPt366(Point(2041.79, 569.7), 15);
+ connRef366->setDestEndpoint(dstPt366);
+ connRef366->setRoutingType((ConnType)2);
+
+ ConnRef *connRef367 = new ConnRef(router, 367);
+ ConnEnd srcPt367(Point(2041.79, 569.7), 15);
+ connRef367->setSourceEndpoint(srcPt367);
+ ConnEnd dstPt367(Point(3463.07, 914.5), 4);
+ connRef367->setDestEndpoint(dstPt367);
+ connRef367->setRoutingType((ConnType)2);
+
+ ConnRef *connRef368 = new ConnRef(router, 368);
+ ConnEnd srcPt368(Point(2041.79, 569.7), 15);
+ connRef368->setSourceEndpoint(srcPt368);
+ ConnEnd dstPt368(Point(3596.07, 899.5), 1);
+ connRef368->setDestEndpoint(dstPt368);
+ connRef368->setRoutingType((ConnType)2);
+
+ ConnRef *connRef369 = new ConnRef(router, 369);
+ ConnEnd srcPt369(Point(2041.79, 569.7), 15);
+ connRef369->setSourceEndpoint(srcPt369);
+ ConnEnd dstPt369(Point(3326.74, 899.5), 1);
+ connRef369->setDestEndpoint(dstPt369);
+ connRef369->setRoutingType((ConnType)2);
+
+ ConnRef *connRef370 = new ConnRef(router, 370);
+ ConnEnd srcPt370(Point(2041.79, 569.7), 15);
+ connRef370->setSourceEndpoint(srcPt370);
+ ConnEnd dstPt370(Point(3201.44, 914.5), 4);
+ connRef370->setDestEndpoint(dstPt370);
+ connRef370->setRoutingType((ConnType)2);
+
+ ConnRef *connRef371 = new ConnRef(router, 371);
+ ConnEnd srcPt371(Point(1784.79, 506.5), 8);
+ connRef371->setSourceEndpoint(srcPt371);
+ ConnEnd dstPt371(Point(2041.79, 569.7), 15);
+ connRef371->setDestEndpoint(dstPt371);
+ connRef371->setRoutingType((ConnType)2);
+
+ ConnRef *connRef372 = new ConnRef(router, 372);
+ ConnEnd srcPt372(Point(1784.79, 577.5), 8);
+ connRef372->setSourceEndpoint(srcPt372);
+ ConnEnd dstPt372(Point(2041.79, 569.7), 15);
+ connRef372->setDestEndpoint(dstPt372);
+ connRef372->setRoutingType((ConnType)2);
+
+ ConnRef *connRef373 = new ConnRef(router, 373);
+ ConnEnd srcPt373(Point(1563.6, 978.5), 15);
+ connRef373->setSourceEndpoint(srcPt373);
+ ConnEnd dstPt373(Point(1395.46, 723.5), 2);
+ connRef373->setDestEndpoint(dstPt373);
+ connRef373->setRoutingType((ConnType)2);
+
+ ConnRef *connRef374 = new ConnRef(router, 374);
+ ConnEnd srcPt374(Point(2011.79, 777.5), 4);
+ connRef374->setSourceEndpoint(srcPt374);
+ ConnEnd dstPt374(Point(1563.6, 978.5), 15);
+ connRef374->setDestEndpoint(dstPt374);
+ connRef374->setRoutingType((ConnType)2);
+
+ ConnRef *connRef375 = new ConnRef(router, 375);
+ ConnEnd srcPt375(Point(1400.86, 969.5), 8);
+ connRef375->setSourceEndpoint(srcPt375);
+ ConnEnd dstPt375(Point(1563.6, 978.5), 15);
+ connRef375->setDestEndpoint(dstPt375);
+ connRef375->setRoutingType((ConnType)2);
+
+ ConnRef *connRef376 = new ConnRef(router, 376);
+ ConnEnd srcPt376(Point(1400.86, 1041.64), 8);
+ connRef376->setSourceEndpoint(srcPt376);
+ ConnEnd dstPt376(Point(1563.6, 978.5), 15);
+ connRef376->setDestEndpoint(dstPt376);
+ connRef376->setRoutingType((ConnType)2);
+
+ ConnRef *connRef377 = new ConnRef(router, 377);
+ ConnEnd srcPt377(Point(1400.86, 1143.64), 8);
+ connRef377->setSourceEndpoint(srcPt377);
+ ConnEnd dstPt377(Point(1563.6, 978.5), 15);
+ connRef377->setDestEndpoint(dstPt377);
+ connRef377->setRoutingType((ConnType)2);
+
+ ConnRef *connRef378 = new ConnRef(router, 378);
+ ConnEnd srcPt378(Point(1646.79, 1261.24), 1);
+ connRef378->setSourceEndpoint(srcPt378);
+ ConnEnd dstPt378(Point(1563.6, 978.5), 15);
+ connRef378->setDestEndpoint(dstPt378);
+ connRef378->setRoutingType((ConnType)2);
+
+ ConnRef *connRef379 = new ConnRef(router, 379);
+ ConnEnd srcPt379(Point(1563.6, 978.5), 15);
+ connRef379->setSourceEndpoint(srcPt379);
+ ConnEnd dstPt379(Point(1563.6, 2008.95), 1);
+ connRef379->setDestEndpoint(dstPt379);
+ connRef379->setRoutingType((ConnType)2);
+
+ ConnRef *connRef380 = new ConnRef(router, 380);
+ ConnEnd srcPt380(Point(2041.79, 1261.24), 1);
+ connRef380->setSourceEndpoint(srcPt380);
+ ConnEnd dstPt380(Point(1563.6, 978.5), 15);
+ connRef380->setDestEndpoint(dstPt380);
+ connRef380->setRoutingType((ConnType)2);
+
+ ConnRef *connRef381 = new ConnRef(router, 381);
+ ConnEnd srcPt381(Point(555.333, 708.5), 8);
+ connRef381->setSourceEndpoint(srcPt381);
+ ConnEnd dstPt381(Point(610.333, 833.833), 15);
+ connRef381->setDestEndpoint(dstPt381);
+ connRef381->setRoutingType((ConnType)2);
+
+ ConnRef *connRef382 = new ConnRef(router, 382);
+ ConnEnd srcPt382(Point(555.333, 833.833), 8);
+ connRef382->setSourceEndpoint(srcPt382);
+ ConnEnd dstPt382(Point(610.333, 833.833), 15);
+ connRef382->setDestEndpoint(dstPt382);
+ connRef382->setRoutingType((ConnType)2);
+
+ ConnRef *connRef383 = new ConnRef(router, 383);
+ ConnEnd srcPt383(Point(610.333, 833.833), 15);
+ connRef383->setSourceEndpoint(srcPt383);
+ ConnEnd dstPt383(Point(1395.46, 723.5), 2);
+ connRef383->setDestEndpoint(dstPt383);
+ connRef383->setRoutingType((ConnType)2);
+
+ ConnRef *connRef384 = new ConnRef(router, 384);
+ ConnEnd srcPt384(Point(610.333, 833.833), 15);
+ connRef384->setSourceEndpoint(srcPt384);
+ ConnEnd dstPt384(Point(1073.18, 723.5), 2);
+ connRef384->setDestEndpoint(dstPt384);
+ connRef384->setRoutingType((ConnType)2);
+
+ ConnRef *connRef385 = new ConnRef(router, 385);
+ ConnEnd srcPt385(Point(610.333, 833.833), 15);
+ connRef385->setSourceEndpoint(srcPt385);
+ ConnEnd dstPt385(Point(876.358, 584.7), 2);
+ connRef385->setDestEndpoint(dstPt385);
+ connRef385->setRoutingType((ConnType)2);
+
+ ConnRef *connRef386 = new ConnRef(router, 386);
+ ConnEnd srcPt386(Point(390.333, 2399.05), 15);
+ connRef386->setSourceEndpoint(srcPt386);
+ ConnEnd dstPt386(Point(525.333, 1276.24), 4);
+ connRef386->setDestEndpoint(dstPt386);
+ connRef386->setRoutingType((ConnType)2);
+
+ ConnRef *connRef387 = new ConnRef(router, 387);
+ ConnEnd srcPt387(Point(696.958, 2185.05), 4);
+ connRef387->setSourceEndpoint(srcPt387);
+ ConnEnd dstPt387(Point(390.333, 2399.05), 15);
+ connRef387->setDestEndpoint(dstPt387);
+ connRef387->setRoutingType((ConnType)2);
+
+ ConnRef *connRef388 = new ConnRef(router, 388);
+ ConnEnd srcPt388(Point(696.958, 1378.24), 4);
+ connRef388->setSourceEndpoint(srcPt388);
+ ConnEnd dstPt388(Point(390.333, 2399.05), 15);
+ connRef388->setDestEndpoint(dstPt388);
+ connRef388->setRoutingType((ConnType)2);
+
+ ConnRef *connRef389 = new ConnRef(router, 389);
+ ConnEnd srcPt389(Point(390.333, 2399.05), 15);
+ connRef389->setSourceEndpoint(srcPt389);
+ ConnEnd dstPt389(Point(711.958, 1455.24), 2);
+ connRef389->setDestEndpoint(dstPt389);
+ connRef389->setRoutingType((ConnType)2);
+
+ ConnRef *connRef390 = new ConnRef(router, 390);
+ ConnEnd srcPt390(Point(390.333, 2399.05), 15);
+ connRef390->setSourceEndpoint(srcPt390);
+ ConnEnd dstPt390(Point(625.333, 2477.3), 8);
+ connRef390->setDestEndpoint(dstPt390);
+ connRef390->setRoutingType((ConnType)2);
+
+ ConnRef *connRef391 = new ConnRef(router, 391);
+ ConnEnd srcPt391(Point(625.333, 3071.3), 8);
+ connRef391->setSourceEndpoint(srcPt391);
+ ConnEnd dstPt391(Point(390.333, 2399.05), 15);
+ connRef391->setDestEndpoint(dstPt391);
+ connRef391->setRoutingType((ConnType)2);
+
+ ConnRef *connRef392 = new ConnRef(router, 392);
+ ConnEnd srcPt392(Point(323, 1140.24), 2);
+ connRef392->setSourceEndpoint(srcPt392);
+ ConnEnd dstPt392(Point(390.333, 2399.05), 15);
+ connRef392->setDestEndpoint(dstPt392);
+ connRef392->setRoutingType((ConnType)2);
+
+ ConnRef *connRef393 = new ConnRef(router, 393);
+ ConnEnd srcPt393(Point(281, 1158.64), 2);
+ connRef393->setSourceEndpoint(srcPt393);
+ ConnEnd dstPt393(Point(390.333, 2399.05), 15);
+ connRef393->setDestEndpoint(dstPt393);
+ connRef393->setRoutingType((ConnType)2);
+
+ ConnRef *connRef394 = new ConnRef(router, 394);
+ ConnEnd srcPt394(Point(465.333, 1158.64), 2);
+ connRef394->setSourceEndpoint(srcPt394);
+ ConnEnd dstPt394(Point(390.333, 2399.05), 15);
+ connRef394->setDestEndpoint(dstPt394);
+ connRef394->setRoutingType((ConnType)2);
+
+ ConnRef *connRef395 = new ConnRef(router, 395);
+ ConnEnd srcPt395(Point(1523.87, 1631.77), 15);
+ connRef395->setSourceEndpoint(srcPt395);
+ ConnEnd dstPt395(Point(390.333, 2399.05), 15);
+ connRef395->setDestEndpoint(dstPt395);
+ connRef395->setRoutingType((ConnType)2);
+
+ ConnRef *connRef396 = new ConnRef(router, 396);
+ ConnEnd srcPt396(Point(3201.44, 2399.05), 4);
+ connRef396->setSourceEndpoint(srcPt396);
+ ConnEnd dstPt396(Point(1563.6, 2399.05), 15);
+ connRef396->setDestEndpoint(dstPt396);
+ connRef396->setRoutingType((ConnType)2);
+
+ ConnRef *connRef397 = new ConnRef(router, 397);
+ ConnEnd srcPt397(Point(2772.54, 2297.05), 4);
+ connRef397->setSourceEndpoint(srcPt397);
+ ConnEnd dstPt397(Point(1563.6, 2399.05), 15);
+ connRef397->setDestEndpoint(dstPt397);
+ connRef397->setRoutingType((ConnType)2);
+
+ ConnRef *connRef398 = new ConnRef(router, 398);
+ ConnEnd srcPt398(Point(1563.6, 2038.95), 2);
+ connRef398->setSourceEndpoint(srcPt398);
+ ConnEnd dstPt398(Point(1563.6, 2399.05), 15);
+ connRef398->setDestEndpoint(dstPt398);
+ connRef398->setRoutingType((ConnType)2);
+
+ ConnRef *connRef399 = new ConnRef(router, 399);
+ ConnEnd srcPt399(Point(1563.6, 2399.05), 15);
+ connRef399->setSourceEndpoint(srcPt399);
+ ConnEnd dstPt399(Point(625.333, 2477.3), 8);
+ connRef399->setDestEndpoint(dstPt399);
+ connRef399->setRoutingType((ConnType)2);
+
+ ConnRef *connRef400 = new ConnRef(router, 400);
+ ConnEnd srcPt400(Point(1563.6, 2399.05), 15);
+ connRef400->setSourceEndpoint(srcPt400);
+ ConnEnd dstPt400(Point(1646.79, 2742.3), 1);
+ connRef400->setDestEndpoint(dstPt400);
+ connRef400->setRoutingType((ConnType)2);
+
+ ConnRef *connRef401 = new ConnRef(router, 401);
+ ConnEnd srcPt401(Point(1563.6, 2399.05), 15);
+ connRef401->setSourceEndpoint(srcPt401);
+ ConnEnd dstPt401(Point(2214.79, 2749.3), 4);
+ connRef401->setDestEndpoint(dstPt401);
+ connRef401->setRoutingType((ConnType)2);
+
+ ConnRef *connRef402 = new ConnRef(router, 402);
+ ConnEnd srcPt402(Point(1563.6, 2399.05), 15);
+ connRef402->setSourceEndpoint(srcPt402);
+ ConnEnd dstPt402(Point(850.958, 2462.3), 1);
+ connRef402->setDestEndpoint(dstPt402);
+ connRef402->setRoutingType((ConnType)2);
+
+ ConnRef *connRef403 = new ConnRef(router, 403);
+ ConnEnd srcPt403(Point(1563.6, 2399.05), 15);
+ connRef403->setSourceEndpoint(srcPt403);
+ ConnEnd dstPt403(Point(973.958, 2477.3), 8);
+ connRef403->setDestEndpoint(dstPt403);
+ connRef403->setRoutingType((ConnType)2);
+
+ ConnRef *connRef404 = new ConnRef(router, 404);
+ ConnEnd srcPt404(Point(1563.6, 2399.05), 15);
+ connRef404->setSourceEndpoint(srcPt404);
+ ConnEnd dstPt404(Point(2895.99, 2612.3), 4);
+ connRef404->setDestEndpoint(dstPt404);
+ connRef404->setRoutingType((ConnType)2);
+
+ ConnRef *connRef405 = new ConnRef(router, 405);
+ ConnEnd srcPt405(Point(1563.6, 2399.05), 15);
+ connRef405->setSourceEndpoint(srcPt405);
+ ConnEnd dstPt405(Point(2869.99, 3071.3), 4);
+ connRef405->setDestEndpoint(dstPt405);
+ connRef405->setRoutingType((ConnType)2);
+
+ ConnRef *connRef406 = new ConnRef(router, 406);
+ ConnEnd srcPt406(Point(726.958, 1378.24), 8);
+ connRef406->setSourceEndpoint(srcPt406);
+ ConnEnd dstPt406(Point(1782.79, 1378.24), 15);
+ connRef406->setDestEndpoint(dstPt406);
+ connRef406->setRoutingType((ConnType)2);
+
+ ConnRef *connRef407 = new ConnRef(router, 407);
+ ConnEnd srcPt407(Point(1782.79, 1569.64), 15);
+ connRef407->setSourceEndpoint(srcPt407);
+ ConnEnd dstPt407(Point(1385.86, 1455.24), 2);
+ connRef407->setDestEndpoint(dstPt407);
+ connRef407->setRoutingType((ConnType)2);
+
+ ConnRef *connRef408 = new ConnRef(router, 408);
+ ConnEnd srcPt408(Point(1919.87, 1601.64), 15);
+ connRef408->setSourceEndpoint(srcPt408);
+ ConnEnd dstPt408(Point(2041.79, 1569.64), 15);
+ connRef408->setDestEndpoint(dstPt408);
+ connRef408->setRoutingType((ConnType)2);
+
+ ConnRef *connRef409 = new ConnRef(router, 409);
+ ConnEnd srcPt409(Point(2041.79, 1569.64), 15);
+ connRef409->setSourceEndpoint(srcPt409);
+ ConnEnd dstPt409(Point(1941.79, 1653.64), 8);
+ connRef409->setDestEndpoint(dstPt409);
+ connRef409->setRoutingType((ConnType)2);
+
+ ConnRef *connRef410 = new ConnRef(router, 410);
+ ConnEnd srcPt410(Point(1958.29, 1455.24), 2);
+ connRef410->setSourceEndpoint(srcPt410);
+ ConnEnd dstPt410(Point(2041.79, 1569.64), 15);
+ connRef410->setDestEndpoint(dstPt410);
+ connRef410->setRoutingType((ConnType)2);
+
+ ConnRef *connRef411 = new ConnRef(router, 411);
+ ConnEnd srcPt411(Point(2041.79, 1569.64), 15);
+ connRef411->setSourceEndpoint(srcPt411);
+ ConnEnd dstPt411(Point(2041.79, 1707.64), 1);
+ connRef411->setDestEndpoint(dstPt411);
+ connRef411->setRoutingType((ConnType)2);
+
+ ConnRef *connRef412 = new ConnRef(router, 412);
+ ConnEnd srcPt412(Point(2041.79, 1569.64), 15);
+ connRef412->setSourceEndpoint(srcPt412);
+ ConnEnd dstPt412(Point(2156.79, 1569.64), 4);
+ connRef412->setDestEndpoint(dstPt412);
+ connRef412->setRoutingType((ConnType)2);
+
+ ConnRef *connRef413 = new ConnRef(router, 413);
+ ConnEnd srcPt413(Point(2041.79, 1569.64), 15);
+ connRef413->setSourceEndpoint(srcPt413);
+ ConnEnd dstPt413(Point(2028.87, 1507.64), 15);
+ connRef413->setDestEndpoint(dstPt413);
+ connRef413->setRoutingType((ConnType)2);
+
+ ConnRef *connRef414 = new ConnRef(router, 414);
+ ConnEnd srcPt414(Point(1976.87, 1934.95), 15);
+ connRef414->setSourceEndpoint(srcPt414);
+ ConnEnd dstPt414(Point(2041.79, 1872.95), 15);
+ connRef414->setDestEndpoint(dstPt414);
+ connRef414->setRoutingType((ConnType)2);
+
+ ConnRef *connRef415 = new ConnRef(router, 415);
+ ConnEnd srcPt415(Point(2041.79, 1737.64), 2);
+ connRef415->setSourceEndpoint(srcPt415);
+ ConnEnd dstPt415(Point(2041.79, 1872.95), 15);
+ connRef415->setDestEndpoint(dstPt415);
+ connRef415->setRoutingType((ConnType)2);
+ */
+
+ ConnRef *connRef416 = new ConnRef(router, 416);
+ ConnEnd srcPt416(Point(2041.79, 1872.95), 15);
+ connRef416->setSourceEndpoint(srcPt416);
+ ConnEnd dstPt416(Point(2156.79, 1872.95), 4);
+ connRef416->setDestEndpoint(dstPt416);
+ connRef416->setRoutingType((ConnType)2);
+
+ /*
+ ConnRef *connRef417 = new ConnRef(router, 417);
+ ConnEnd srcPt417(Point(2111.79, 1884.95), 15);
+ connRef417->setSourceEndpoint(srcPt417);
+ ConnEnd dstPt417(Point(2041.79, 1872.95), 15);
+ connRef417->setDestEndpoint(dstPt417);
+ connRef417->setRoutingType((ConnType)2);
+
+ ConnRef *connRef418 = new ConnRef(router, 418);
+ ConnEnd srcPt418(Point(1941.79, 1872.95), 8);
+ connRef418->setSourceEndpoint(srcPt418);
+ ConnEnd dstPt418(Point(2041.79, 1872.95), 15);
+ connRef418->setDestEndpoint(dstPt418);
+ connRef418->setRoutingType((ConnType)2);
+
+ ConnRef *connRef419 = new ConnRef(router, 419);
+ ConnEnd srcPt419(Point(2189.79, 1733.77), 15);
+ connRef419->setSourceEndpoint(srcPt419);
+ ConnEnd dstPt419(Point(2547.71, 1872.95), 15);
+ connRef419->setDestEndpoint(dstPt419);
+ connRef419->setRoutingType((ConnType)2);
+
+ ConnRef *connRef420 = new ConnRef(router, 420);
+ ConnEnd srcPt420(Point(2492.71, 2013.95), 8);
+ connRef420->setSourceEndpoint(srcPt420);
+ ConnEnd dstPt420(Point(2547.71, 1872.95), 15);
+ connRef420->setDestEndpoint(dstPt420);
+ connRef420->setRoutingType((ConnType)2);
+
+ ConnRef *connRef421 = new ConnRef(router, 421);
+ ConnEnd srcPt421(Point(2492.71, 2055.95), 8);
+ connRef421->setSourceEndpoint(srcPt421);
+ ConnEnd dstPt421(Point(2547.71, 1872.95), 15);
+ connRef421->setDestEndpoint(dstPt421);
+ connRef421->setRoutingType((ConnType)2);
+
+ ConnRef *connRef422 = new ConnRef(router, 422);
+ ConnEnd srcPt422(Point(2547.71, 1872.95), 15);
+ connRef422->setSourceEndpoint(srcPt422);
+ ConnEnd dstPt422(Point(2645.54, 1812.64), 4);
+ connRef422->setDestEndpoint(dstPt422);
+ connRef422->setRoutingType((ConnType)2);
+
+ ConnRef *connRef423 = new ConnRef(router, 423);
+ ConnEnd srcPt423(Point(2547.71, 1872.95), 15);
+ connRef423->setSourceEndpoint(srcPt423);
+ ConnEnd dstPt423(Point(2622.54, 1884.95), 4);
+ connRef423->setDestEndpoint(dstPt423);
+ connRef423->setRoutingType((ConnType)2);
+
+ ConnRef *connRef424 = new ConnRef(router, 424);
+ ConnEnd srcPt424(Point(2547.71, 1872.95), 15);
+ connRef424->setSourceEndpoint(srcPt424);
+ ConnEnd dstPt424(Point(2720.54, 1884.95), 4);
+ connRef424->setDestEndpoint(dstPt424);
+ connRef424->setRoutingType((ConnType)2);
+
+ ConnRef *connRef425 = new ConnRef(router, 425);
+ ConnEnd srcPt425(Point(2787.54, 1872.95), 15);
+ connRef425->setSourceEndpoint(srcPt425);
+ ConnEnd dstPt425(Point(2883.99, 1812.64), 4);
+ connRef425->setDestEndpoint(dstPt425);
+ connRef425->setRoutingType((ConnType)2);
+
+ ConnRef *connRef426 = new ConnRef(router, 426);
+ ConnEnd srcPt426(Point(2787.54, 1872.95), 15);
+ connRef426->setSourceEndpoint(srcPt426);
+ ConnEnd dstPt426(Point(2860.99, 1884.95), 4);
+ connRef426->setDestEndpoint(dstPt426);
+ connRef426->setRoutingType((ConnType)2);
+
+ ConnRef *connRef427 = new ConnRef(router, 427);
+ ConnEnd srcPt427(Point(2787.54, 1872.95), 15);
+ connRef427->setSourceEndpoint(srcPt427);
+ ConnEnd dstPt427(Point(2938.99, 1884.95), 4);
+ connRef427->setDestEndpoint(dstPt427);
+ connRef427->setRoutingType((ConnType)2);
+
+ ConnRef *connRef428 = new ConnRef(router, 428);
+ ConnEnd srcPt428(Point(1315.96, 312.5), 15);
+ connRef428->setSourceEndpoint(srcPt428);
+ ConnEnd dstPt428(Point(1527.46, 291.5), 4);
+ connRef428->setDestEndpoint(dstPt428);
+ connRef428->setRoutingType((ConnType)2);
+
+ ConnRef *connRef429 = new ConnRef(router, 429);
+ ConnEnd srcPt429(Point(3216.44, 2185.05), 15);
+ connRef429->setSourceEndpoint(srcPt429);
+ ConnEnd dstPt429(Point(2802.54, 2185.05), 8);
+ connRef429->setDestEndpoint(dstPt429);
+ connRef429->setRoutingType((ConnType)2);
+
+ ConnRef *connRef430 = new ConnRef(router, 430);
+ ConnEnd srcPt430(Point(2772.54, 2185.05), 4);
+ connRef430->setSourceEndpoint(srcPt430);
+ ConnEnd dstPt430(Point(2547.71, 2185.05), 15);
+ connRef430->setDestEndpoint(dstPt430);
+ connRef430->setRoutingType((ConnType)2);
+
+ ConnRef *connRef431 = new ConnRef(router, 431);
+ ConnEnd srcPt431(Point(2547.71, 2185.05), 15);
+ connRef431->setSourceEndpoint(srcPt431);
+ ConnEnd dstPt431(Point(2414.71, 2185.05), 8);
+ connRef431->setDestEndpoint(dstPt431);
+ connRef431->setRoutingType((ConnType)2);
+
+ ConnRef *connRef432 = new ConnRef(router, 432);
+ ConnEnd srcPt432(Point(1911.79, 2185.05), 4);
+ connRef432->setSourceEndpoint(srcPt432);
+ ConnEnd dstPt432(Point(1073.18, 2185.05), 15);
+ connRef432->setDestEndpoint(dstPt432);
+ connRef432->setRoutingType((ConnType)2);
+
+ ConnRef *connRef433 = new ConnRef(router, 433);
+ ConnEnd srcPt433(Point(1073.18, 2185.05), 15);
+ connRef433->setSourceEndpoint(srcPt433);
+ ConnEnd dstPt433(Point(726.958, 2185.05), 8);
+ connRef433->setDestEndpoint(dstPt433);
+ connRef433->setRoutingType((ConnType)2);
+
+ ConnRef *connRef434 = new ConnRef(router, 434);
+ ConnEnd srcPt434(Point(1073.18, 1440.24), 15);
+ connRef434->setSourceEndpoint(srcPt434);
+ ConnEnd dstPt434(Point(1385.86, 1455.24), 2);
+ connRef434->setDestEndpoint(dstPt434);
+ connRef434->setRoutingType((ConnType)2);
+
+ ConnRef *connRef435 = new ConnRef(router, 435);
+ ConnEnd srcPt435(Point(323, 833.833), 15);
+ connRef435->setSourceEndpoint(srcPt435);
+ ConnEnd dstPt435(Point(131, 663.5), 2);
+ connRef435->setDestEndpoint(dstPt435);
+ connRef435->setRoutingType((ConnType)2);
+
+ ConnRef *connRef436 = new ConnRef(router, 436);
+ ConnEnd srcPt436(Point(525.333, 708.5), 4);
+ connRef436->setSourceEndpoint(srcPt436);
+ ConnEnd dstPt436(Point(323, 833.833), 15);
+ connRef436->setDestEndpoint(dstPt436);
+ connRef436->setRoutingType((ConnType)2);
+
+ ConnRef *connRef437 = new ConnRef(router, 437);
+ ConnEnd srcPt437(Point(323, 833.833), 15);
+ connRef437->setSourceEndpoint(srcPt437);
+ ConnEnd dstPt437(Point(525.333, 833.833), 4);
+ connRef437->setDestEndpoint(dstPt437);
+ connRef437->setRoutingType((ConnType)2);
+
+ ConnRef *connRef438 = new ConnRef(router, 438);
+ ConnEnd srcPt438(Point(323, 1110.24), 1);
+ connRef438->setSourceEndpoint(srcPt438);
+ ConnEnd dstPt438(Point(323, 833.833), 15);
+ connRef438->setDestEndpoint(dstPt438);
+ connRef438->setRoutingType((ConnType)2);
+
+ ConnRef *connRef439 = new ConnRef(router, 439);
+ ConnEnd srcPt439(Point(281, 1128.64), 1);
+ connRef439->setSourceEndpoint(srcPt439);
+ ConnEnd dstPt439(Point(323, 833.833), 15);
+ connRef439->setDestEndpoint(dstPt439);
+ connRef439->setRoutingType((ConnType)2);
+
+ ConnRef *connRef440 = new ConnRef(router, 440);
+ ConnEnd srcPt440(Point(465.333, 1128.64), 1);
+ connRef440->setSourceEndpoint(srcPt440);
+ ConnEnd dstPt440(Point(323, 833.833), 15);
+ connRef440->setDestEndpoint(dstPt440);
+ connRef440->setRoutingType((ConnType)2);
+
+ ConnRef *connRef441 = new ConnRef(router, 441);
+ ConnEnd srcPt441(Point(610.333, 1276.24), 15);
+ connRef441->setSourceEndpoint(srcPt441);
+ ConnEnd dstPt441(Point(696.958, 1276.24), 4);
+ connRef441->setDestEndpoint(dstPt441);
+ connRef441->setRoutingType((ConnType)2);
+
+ ConnRef *connRef442 = new ConnRef(router, 442);
+ ConnEnd srcPt442(Point(876.358, 1276.24), 15);
+ connRef442->setSourceEndpoint(srcPt442);
+ ConnEnd dstPt442(Point(957.958, 1276.24), 4);
+ connRef442->setDestEndpoint(dstPt442);
+ connRef442->setRoutingType((ConnType)2);
+
+ ConnRef *connRef443 = new ConnRef(router, 443);
+ ConnEnd srcPt443(Point(1073.18, 1276.24), 15);
+ connRef443->setSourceEndpoint(srcPt443);
+ ConnEnd dstPt443(Point(1050.96, 1158.64), 2);
+ connRef443->setDestEndpoint(dstPt443);
+ connRef443->setRoutingType((ConnType)2);
+
+ ConnRef *connRef444 = new ConnRef(router, 444);
+ ConnEnd srcPt444(Point(1073.18, 978.5), 15);
+ connRef444->setSourceEndpoint(srcPt444);
+ ConnEnd dstPt444(Point(1370.86, 969.5), 4);
+ connRef444->setDestEndpoint(dstPt444);
+ connRef444->setRoutingType((ConnType)2);
+
+ ConnRef *connRef445 = new ConnRef(router, 445);
+ ConnEnd srcPt445(Point(1073.18, 978.5), 15);
+ connRef445->setSourceEndpoint(srcPt445);
+ ConnEnd dstPt445(Point(1370.86, 1041.64), 4);
+ connRef445->setDestEndpoint(dstPt445);
+ connRef445->setRoutingType((ConnType)2);
+
+ ConnRef *connRef446 = new ConnRef(router, 446);
+ ConnEnd srcPt446(Point(1370.86, 1143.64), 4);
+ connRef446->setSourceEndpoint(srcPt446);
+ ConnEnd dstPt446(Point(1073.18, 978.5), 15);
+ connRef446->setDestEndpoint(dstPt446);
+ connRef446->setRoutingType((ConnType)2);
+
+ ConnRef *connRef447 = new ConnRef(router, 447);
+ ConnEnd srcPt447(Point(1073.18, 978.5), 15);
+ connRef447->setSourceEndpoint(srcPt447);
+ ConnEnd dstPt447(Point(1073.18, 723.5), 2);
+ connRef447->setDestEndpoint(dstPt447);
+ connRef447->setRoutingType((ConnType)2);
+
+ ConnRef *connRef448 = new ConnRef(router, 448);
+ ConnEnd srcPt448(Point(220, 497.5), 1);
+ connRef448->setSourceEndpoint(srcPt448);
+ ConnEnd dstPt448(Point(323, 375.5), 15);
+ connRef448->setDestEndpoint(dstPt448);
+ connRef448->setRoutingType((ConnType)2);
+
+ ConnRef *connRef449 = new ConnRef(router, 449);
+ ConnEnd srcPt449(Point(404.333, 497.5), 1);
+ connRef449->setSourceEndpoint(srcPt449);
+ ConnEnd dstPt449(Point(323, 375.5), 15);
+ connRef449->setDestEndpoint(dstPt449);
+ connRef449->setRoutingType((ConnType)2);
+
+ ConnRef *connRef450 = new ConnRef(router, 450);
+ ConnEnd srcPt450(Point(2241.79, 723.5), 2);
+ connRef450->setSourceEndpoint(srcPt450);
+ ConnEnd dstPt450(Point(2241.79, 840.75), 15);
+ connRef450->setDestEndpoint(dstPt450);
+ connRef450->setRoutingType((ConnType)2);
+
+ ConnRef *connRef451 = new ConnRef(router, 451);
+ ConnEnd srcPt451(Point(2968.99, 840.75), 15);
+ connRef451->setSourceEndpoint(srcPt451);
+ ConnEnd dstPt451(Point(2968.99, 899.5), 1);
+ connRef451->setDestEndpoint(dstPt451);
+ connRef451->setRoutingType((ConnType)2);
+
+ ConnRef *connRef452 = new ConnRef(router, 452);
+ ConnEnd srcPt452(Point(2241.79, 286.75), 1);
+ connRef452->setSourceEndpoint(srcPt452);
+ ConnEnd dstPt452(Point(2241.79, 220.875), 15);
+ connRef452->setDestEndpoint(dstPt452);
+ connRef452->setRoutingType((ConnType)2);
+
+ ConnRef *connRef453 = new ConnRef(router, 453);
+ ConnEnd srcPt453(Point(2241.79, 220.875), 15);
+ connRef453->setSourceEndpoint(srcPt453);
+ ConnEnd dstPt453(Point(2462.71, 220.875), 4);
+ connRef453->setDestEndpoint(dstPt453);
+ connRef453->setRoutingType((ConnType)2);
+
+ ConnRef *connRef454 = new ConnRef(router, 454);
+ ConnEnd srcPt454(Point(2186.79, 220.875), 8);
+ connRef454->setSourceEndpoint(srcPt454);
+ ConnEnd dstPt454(Point(2241.79, 220.875), 15);
+ connRef454->setDestEndpoint(dstPt454);
+ connRef454->setRoutingType((ConnType)2);
+
+ ConnRef *connRef455 = new ConnRef(router, 455);
+ ConnEnd srcPt455(Point(2547.71, 220.875), 15);
+ connRef455->setSourceEndpoint(srcPt455);
+ ConnEnd dstPt455(Point(2547.71, 286.75), 1);
+ connRef455->setDestEndpoint(dstPt455);
+ connRef455->setRoutingType((ConnType)2);
+
+ ConnRef *connRef456 = new ConnRef(router, 456);
+ ConnEnd srcPt456(Point(2547.71, 220.875), 15);
+ connRef456->setSourceEndpoint(srcPt456);
+ ConnEnd dstPt456(Point(2650.54, 220.875), 4);
+ connRef456->setDestEndpoint(dstPt456);
+ connRef456->setRoutingType((ConnType)2);
+
+ ConnRef *connRef457 = new ConnRef(router, 457);
+ ConnEnd srcPt457(Point(3114.24, 220.875), 15);
+ connRef457->setSourceEndpoint(srcPt457);
+ ConnEnd dstPt457(Point(3139.24, 286.75), 1);
+ connRef457->setDestEndpoint(dstPt457);
+ connRef457->setRoutingType((ConnType)2);
+
+ ConnRef *connRef458 = new ConnRef(router, 458);
+ ConnEnd srcPt458(Point(2790.54, 123.5), 8);
+ connRef458->setSourceEndpoint(srcPt458);
+ ConnEnd dstPt458(Point(3114.24, 220.875), 15);
+ connRef458->setDestEndpoint(dstPt458);
+ connRef458->setRoutingType((ConnType)2);
+
+ ConnRef *connRef459 = new ConnRef(router, 459);
+ ConnEnd srcPt459(Point(3114.24, 220.875), 15);
+ connRef459->setSourceEndpoint(srcPt459);
+ ConnEnd dstPt459(Point(3089.24, 286.75), 1);
+ connRef459->setDestEndpoint(dstPt459);
+ connRef459->setRoutingType((ConnType)2);
+
+ ConnRef *connRef460 = new ConnRef(router, 460);
+ ConnEnd srcPt460(Point(2934.99, 437.7), 8);
+ connRef460->setSourceEndpoint(srcPt460);
+ ConnEnd dstPt460(Point(3114.24, 437.7), 15);
+ connRef460->setDestEndpoint(dstPt460);
+ connRef460->setRoutingType((ConnType)2);
+
+ ConnRef *connRef461 = new ConnRef(router, 461);
+ ConnEnd srcPt461(Point(3139.24, 316.75), 2);
+ connRef461->setSourceEndpoint(srcPt461);
+ ConnEnd dstPt461(Point(3114.24, 437.7), 15);
+ connRef461->setDestEndpoint(dstPt461);
+ connRef461->setRoutingType((ConnType)2);
+
+ ConnRef *connRef462 = new ConnRef(router, 462);
+ ConnEnd srcPt462(Point(2787.54, 437.7), 15);
+ connRef462->setSourceEndpoint(srcPt462);
+ ConnEnd dstPt462(Point(2680.54, 437.7), 8);
+ connRef462->setDestEndpoint(dstPt462);
+ connRef462->setRoutingType((ConnType)2);
+
+ ConnRef *connRef463 = new ConnRef(router, 463);
+ ConnEnd srcPt463(Point(2904.99, 437.7), 4);
+ connRef463->setSourceEndpoint(srcPt463);
+ ConnEnd dstPt463(Point(2787.54, 437.7), 15);
+ connRef463->setDestEndpoint(dstPt463);
+ connRef463->setRoutingType((ConnType)2);
+
+ ConnRef *connRef464 = new ConnRef(router, 464);
+ ConnEnd srcPt464(Point(2650.54, 437.7), 4);
+ connRef464->setSourceEndpoint(srcPt464);
+ ConnEnd dstPt464(Point(2547.71, 437.7), 15);
+ connRef464->setDestEndpoint(dstPt464);
+ connRef464->setRoutingType((ConnType)2);
+
+ ConnRef *connRef465 = new ConnRef(router, 465);
+ ConnEnd srcPt465(Point(2156.79, 1041.64), 4);
+ connRef465->setSourceEndpoint(srcPt465);
+ ConnEnd dstPt465(Point(1958.29, 1041.64), 15);
+ connRef465->setDestEndpoint(dstPt465);
+ connRef465->setRoutingType((ConnType)2);
+
+ ConnRef *connRef466 = new ConnRef(router, 466);
+ ConnEnd srcPt466(Point(1958.29, 1041.64), 15);
+ connRef466->setSourceEndpoint(srcPt466);
+ ConnEnd dstPt466(Point(2226.79, 1143.64), 4);
+ connRef466->setDestEndpoint(dstPt466);
+ connRef466->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467 = new ConnRef(router, 467);
+ ConnEnd srcPt467(Point(2241.79, 1041.64), 15);
+ connRef467->setSourceEndpoint(srcPt467);
+ ConnEnd dstPt467(Point(2462.71, 1041.64), 4);
+ connRef467->setDestEndpoint(dstPt467);
+ connRef467->setRoutingType((ConnType)2);
+
+ ConnRef *connRef468 = new ConnRef(router, 468);
+ ConnEnd srcPt468(Point(2256.79, 1143.64), 8);
+ connRef468->setSourceEndpoint(srcPt468);
+ ConnEnd dstPt468(Point(2547.71, 1041.64), 15);
+ connRef468->setDestEndpoint(dstPt468);
+ connRef468->setRoutingType((ConnType)2);
+
+ ConnRef *connRef469 = new ConnRef(router, 469);
+ ConnEnd srcPt469(Point(2186.79, 1569.64), 8);
+ connRef469->setSourceEndpoint(srcPt469);
+ ConnEnd dstPt469(Point(2241.79, 1569.64), 15);
+ connRef469->setDestEndpoint(dstPt469);
+ connRef469->setRoutingType((ConnType)2);
+
+ ConnRef *connRef470 = new ConnRef(router, 470);
+ ConnEnd srcPt470(Point(2241.79, 1569.64), 15);
+ connRef470->setSourceEndpoint(srcPt470);
+ ConnEnd dstPt470(Point(2241.79, 1455.24), 2);
+ connRef470->setDestEndpoint(dstPt470);
+ connRef470->setRoutingType((ConnType)2);
+
+ ConnRef *connRef471 = new ConnRef(router, 471);
+ ConnEnd srcPt471(Point(2241.79, 1569.64), 15);
+ connRef471->setSourceEndpoint(srcPt471);
+ ConnEnd dstPt471(Point(2462.71, 1509.44), 4);
+ connRef471->setDestEndpoint(dstPt471);
+ connRef471->setRoutingType((ConnType)2);
+
+ ConnRef *connRef472 = new ConnRef(router, 472);
+ ConnEnd srcPt472(Point(2241.79, 1569.64), 15);
+ connRef472->setSourceEndpoint(srcPt472);
+ ConnEnd dstPt472(Point(2462.71, 1581.64), 4);
+ connRef472->setDestEndpoint(dstPt472);
+ connRef472->setRoutingType((ConnType)2);
+
+ ConnRef *connRef473 = new ConnRef(router, 473);
+ ConnEnd srcPt473(Point(2241.79, 1425.24), 1);
+ connRef473->setSourceEndpoint(srcPt473);
+ ConnEnd dstPt473(Point(2241.79, 1378.24), 15);
+ connRef473->setDestEndpoint(dstPt473);
+ connRef473->setRoutingType((ConnType)2);
+
+ ConnRef *connRef474 = new ConnRef(router, 474);
+ ConnEnd srcPt474(Point(2041.79, 2023.95), 15);
+ connRef474->setSourceEndpoint(srcPt474);
+ ConnEnd dstPt474(Point(1976.87, 1934.95), 15);
+ connRef474->setDestEndpoint(dstPt474);
+ connRef474->setRoutingType((ConnType)2);
+
+ ConnRef *connRef475 = new ConnRef(router, 475);
+ ConnEnd srcPt475(Point(2241.79, 2023.95), 15);
+ connRef475->setSourceEndpoint(srcPt475);
+ ConnEnd dstPt475(Point(2462.71, 2013.95), 4);
+ connRef475->setDestEndpoint(dstPt475);
+ connRef475->setRoutingType((ConnType)2);
+
+ ConnRef *connRef476 = new ConnRef(router, 476);
+ ConnEnd srcPt476(Point(2241.79, 2023.95), 15);
+ connRef476->setSourceEndpoint(srcPt476);
+ ConnEnd dstPt476(Point(2462.71, 2055.95), 4);
+ connRef476->setDestEndpoint(dstPt476);
+ connRef476->setRoutingType((ConnType)2);
+
+ ConnRef *connRef477 = new ConnRef(router, 477);
+ ConnEnd srcPt477(Point(1563.6, 2945.3), 15);
+ connRef477->setSourceEndpoint(srcPt477);
+ ConnEnd dstPt477(Point(1646.79, 3125.3), 1);
+ connRef477->setDestEndpoint(dstPt477);
+ connRef477->setRoutingType((ConnType)2);
+
+ ConnRef *connRef478 = new ConnRef(router, 478);
+ ConnEnd srcPt478(Point(1563.6, 2945.3), 15);
+ connRef478->setSourceEndpoint(srcPt478);
+ ConnEnd dstPt478(Point(1538.46, 3125.3), 1);
+ connRef478->setDestEndpoint(dstPt478);
+ connRef478->setRoutingType((ConnType)2);
+
+ ConnRef *connRef479 = new ConnRef(router, 479);
+ ConnEnd srcPt479(Point(1563.6, 2945.3), 15);
+ connRef479->setSourceEndpoint(srcPt479);
+ ConnEnd dstPt479(Point(1563.6, 3056.3), 1);
+ connRef479->setDestEndpoint(dstPt479);
+ connRef479->setRoutingType((ConnType)2);
+
+ ConnRef *connRef480 = new ConnRef(router, 480);
+ ConnEnd srcPt480(Point(1938.79, 2945.3), 4);
+ connRef480->setSourceEndpoint(srcPt480);
+ ConnEnd dstPt480(Point(1563.6, 2945.3), 15);
+ connRef480->setDestEndpoint(dstPt480);
+ connRef480->setRoutingType((ConnType)2);
+
+ ConnRef *connRef481 = new ConnRef(router, 481);
+ ConnEnd srcPt481(Point(2772.54, 3417.3), 4);
+ connRef481->setSourceEndpoint(srcPt481);
+ ConnEnd dstPt481(Point(1563.6, 3413.3), 15);
+ connRef481->setDestEndpoint(dstPt481);
+ connRef481->setRoutingType((ConnType)2);
+
+ ConnRef *connRef482 = new ConnRef(router, 482);
+ ConnEnd srcPt482(Point(1563.6, 3413.3), 15);
+ connRef482->setSourceEndpoint(srcPt482);
+ ConnEnd dstPt482(Point(2772.54, 3519.3), 4);
+ connRef482->setDestEndpoint(dstPt482);
+ connRef482->setRoutingType((ConnType)2);
+
+ ConnRef *connRef483 = new ConnRef(router, 483);
+ ConnEnd srcPt483(Point(625.333, 3071.3), 8);
+ connRef483->setSourceEndpoint(srcPt483);
+ ConnEnd dstPt483(Point(1563.6, 3413.3), 15);
+ connRef483->setDestEndpoint(dstPt483);
+ connRef483->setRoutingType((ConnType)2);
+
+ ConnRef *connRef484 = new ConnRef(router, 484);
+ ConnEnd srcPt484(Point(1646.79, 3155.3), 2);
+ connRef484->setSourceEndpoint(srcPt484);
+ ConnEnd dstPt484(Point(1563.6, 3413.3), 15);
+ connRef484->setDestEndpoint(dstPt484);
+ connRef484->setRoutingType((ConnType)2);
+
+ ConnRef *connRef485 = new ConnRef(router, 485);
+ ConnEnd srcPt485(Point(1538.46, 3155.3), 2);
+ connRef485->setSourceEndpoint(srcPt485);
+ ConnEnd dstPt485(Point(1563.6, 3413.3), 15);
+ connRef485->setDestEndpoint(dstPt485);
+ connRef485->setRoutingType((ConnType)2);
+
+ ConnRef *connRef486 = new ConnRef(router, 486);
+ ConnEnd srcPt486(Point(1563.6, 3086.3), 2);
+ connRef486->setSourceEndpoint(srcPt486);
+ ConnEnd dstPt486(Point(1563.6, 3413.3), 15);
+ connRef486->setDestEndpoint(dstPt486);
+ connRef486->setRoutingType((ConnType)2);
+
+ ConnRef *connRef487 = new ConnRef(router, 487);
+ ConnEnd srcPt487(Point(891.358, 3071.3), 8);
+ connRef487->setSourceEndpoint(srcPt487);
+ ConnEnd dstPt487(Point(1563.6, 3413.3), 15);
+ connRef487->setDestEndpoint(dstPt487);
+ connRef487->setRoutingType((ConnType)2);
+
+ ConnRef *connRef488 = new ConnRef(router, 488);
+ ConnEnd srcPt488(Point(1767.79, 3401.3), 4);
+ connRef488->setSourceEndpoint(srcPt488);
+ ConnEnd dstPt488(Point(1563.6, 3413.3), 15);
+ connRef488->setDestEndpoint(dstPt488);
+ connRef488->setRoutingType((ConnType)2);
+
+ ConnRef *connRef489 = new ConnRef(router, 489);
+ ConnEnd srcPt489(Point(1563.6, 3413.3), 15);
+ connRef489->setSourceEndpoint(srcPt489);
+ ConnEnd dstPt489(Point(1767.79, 3197.3), 4);
+ connRef489->setDestEndpoint(dstPt489);
+ connRef489->setRoutingType((ConnType)2);
+
+ ConnRef *connRef490 = new ConnRef(router, 490);
+ ConnEnd srcPt490(Point(1563.6, 3413.3), 15);
+ connRef490->setSourceEndpoint(srcPt490);
+ ConnEnd dstPt490(Point(1767.79, 3299.3), 4);
+ connRef490->setDestEndpoint(dstPt490);
+ connRef490->setRoutingType((ConnType)2);
+
+ ConnRef *connRef491 = new ConnRef(router, 491);
+ ConnEnd srcPt491(Point(610.333, 2529.3), 15);
+ connRef491->setSourceEndpoint(srcPt491);
+ ConnEnd dstPt491(Point(610.333, 2597.3), 1);
+ connRef491->setDestEndpoint(dstPt491);
+ connRef491->setRoutingType((ConnType)2);
+
+ ConnRef *connRef492 = new ConnRef(router, 492);
+ ConnEnd srcPt492(Point(610.333, 2674.3), 15);
+ connRef492->setSourceEndpoint(srcPt492);
+ ConnEnd dstPt492(Point(1480.87, 2053.77), 15);
+ connRef492->setDestEndpoint(dstPt492);
+ connRef492->setRoutingType((ConnType)2);
+
+ ConnRef *connRef493 = new ConnRef(router, 493);
+ ConnEnd srcPt493(Point(610.333, 2945.3), 15);
+ connRef493->setSourceEndpoint(srcPt493);
+ ConnEnd dstPt493(Point(595.333, 3071.3), 4);
+ connRef493->setDestEndpoint(dstPt493);
+ connRef493->setRoutingType((ConnType)2);
+
+ ConnRef *connRef494 = new ConnRef(router, 494);
+ ConnEnd srcPt494(Point(2244.79, 2749.3), 8);
+ connRef494->setSourceEndpoint(srcPt494);
+ ConnEnd dstPt494(Point(2241.79, 2945.3), 15);
+ connRef494->setDestEndpoint(dstPt494);
+ connRef494->setRoutingType((ConnType)2);
+
+ ConnRef *connRef495 = new ConnRef(router, 495);
+ ConnEnd srcPt495(Point(2241.79, 2945.3), 15);
+ connRef495->setSourceEndpoint(srcPt495);
+ ConnEnd dstPt495(Point(2462.71, 2955.3), 4);
+ connRef495->setDestEndpoint(dstPt495);
+ connRef495->setRoutingType((ConnType)2);
+
+ ConnRef *connRef496 = new ConnRef(router, 496);
+ ConnEnd srcPt496(Point(2241.79, 2945.3), 15);
+ connRef496->setSourceEndpoint(srcPt496);
+ ConnEnd dstPt496(Point(1968.79, 2945.3), 8);
+ connRef496->setDestEndpoint(dstPt496);
+ connRef496->setRoutingType((ConnType)2);
+
+ ConnRef *connRef497 = new ConnRef(router, 497);
+ ConnEnd srcPt497(Point(2241.79, 2945.3), 15);
+ connRef497->setSourceEndpoint(srcPt497);
+ ConnEnd dstPt497(Point(2462.71, 2864.3), 4);
+ connRef497->setDestEndpoint(dstPt497);
+ connRef497->setRoutingType((ConnType)2);
+
+ ConnRef *connRef498 = new ConnRef(router, 498);
+ ConnEnd srcPt498(Point(2322.71, 2674.3), 15);
+ connRef498->setSourceEndpoint(srcPt498);
+ ConnEnd dstPt498(Point(2214.79, 2749.3), 4);
+ connRef498->setDestEndpoint(dstPt498);
+ connRef498->setRoutingType((ConnType)2);
+
+ ConnRef *connRef499 = new ConnRef(router, 499);
+ ConnEnd srcPt499(Point(2334.71, 2627.3), 2);
+ connRef499->setSourceEndpoint(srcPt499);
+ ConnEnd dstPt499(Point(2322.71, 2674.3), 15);
+ connRef499->setDestEndpoint(dstPt499);
+ connRef499->setRoutingType((ConnType)2);
+
+ ConnRef *connRef500 = new ConnRef(router, 500);
+ ConnEnd srcPt500(Point(2322.71, 2674.3), 15);
+ connRef500->setSourceEndpoint(srcPt500);
+ ConnEnd dstPt500(Point(2462.71, 2955.3), 4);
+ connRef500->setDestEndpoint(dstPt500);
+ connRef500->setRoutingType((ConnType)2);
+
+ ConnRef *connRef501 = new ConnRef(router, 501);
+ ConnEnd srcPt501(Point(2322.71, 2674.3), 15);
+ connRef501->setSourceEndpoint(srcPt501);
+ ConnEnd dstPt501(Point(2462.71, 2864.3), 4);
+ connRef501->setDestEndpoint(dstPt501);
+ connRef501->setRoutingType((ConnType)2);
+
+ ConnRef *connRef502 = new ConnRef(router, 502);
+ ConnEnd srcPt502(Point(2322.71, 2529.3), 15);
+ connRef502->setSourceEndpoint(srcPt502);
+ ConnEnd dstPt502(Point(2334.71, 2597.3), 1);
+ connRef502->setDestEndpoint(dstPt502);
+ connRef502->setRoutingType((ConnType)2);
+
+ ConnRef *connRef503 = new ConnRef(router, 503);
+ ConnEnd srcPt503(Point(876.358, 2529.3), 15);
+ connRef503->setSourceEndpoint(srcPt503);
+ ConnEnd dstPt503(Point(876.358, 2597.3), 1);
+ connRef503->setDestEndpoint(dstPt503);
+ connRef503->setRoutingType((ConnType)2);
+
+ ConnRef *connRef504 = new ConnRef(router, 504);
+ ConnEnd srcPt504(Point(876.358, 2674.3), 15);
+ connRef504->setSourceEndpoint(srcPt504);
+ ConnEnd dstPt504(Point(876.358, 2742.3), 1);
+ connRef504->setDestEndpoint(dstPt504);
+ connRef504->setRoutingType((ConnType)2);
+
+ ConnRef *connRef505 = new ConnRef(router, 505);
+ ConnEnd srcPt505(Point(876.358, 2945.3), 15);
+ connRef505->setSourceEndpoint(srcPt505);
+ ConnEnd dstPt505(Point(861.358, 3071.3), 4);
+ connRef505->setDestEndpoint(dstPt505);
+ connRef505->setRoutingType((ConnType)2);
+
+ ConnRef *connRef506 = new ConnRef(router, 506);
+ ConnEnd srcPt506(Point(3322.24, 2399.05), 15);
+ connRef506->setSourceEndpoint(srcPt506);
+ ConnEnd dstPt506(Point(3231.44, 2399.05), 8);
+ connRef506->setDestEndpoint(dstPt506);
+ connRef506->setRoutingType((ConnType)2);
+
+ ConnRef *connRef507 = new ConnRef(router, 507);
+ ConnEnd srcPt507(Point(3322.24, 2399.05), 15);
+ connRef507->setSourceEndpoint(srcPt507);
+ ConnEnd dstPt507(Point(3231.44, 2297.05), 8);
+ connRef507->setDestEndpoint(dstPt507);
+ connRef507->setRoutingType((ConnType)2);
+
+ ConnRef *connRef508 = new ConnRef(router, 508);
+ ConnEnd srcPt508(Point(3322.24, 2399.05), 15);
+ connRef508->setSourceEndpoint(srcPt508);
+ ConnEnd dstPt508(Point(3242.24, 2597.3), 1);
+ connRef508->setDestEndpoint(dstPt508);
+ connRef508->setRoutingType((ConnType)2);
+
+ ConnRef *connRef509 = new ConnRef(router, 509);
+ ConnEnd srcPt509(Point(3322.24, 2399.05), 15);
+ connRef509->setSourceEndpoint(srcPt509);
+ ConnEnd dstPt509(Point(3326.74, 3056.3), 1);
+ connRef509->setDestEndpoint(dstPt509);
+ connRef509->setRoutingType((ConnType)2);
+
+ ConnRef *connRef510 = new ConnRef(router, 510);
+ ConnEnd srcPt510(Point(2968.99, 2297.05), 15);
+ connRef510->setSourceEndpoint(srcPt510);
+ ConnEnd dstPt510(Point(2802.54, 2297.05), 8);
+ connRef510->setDestEndpoint(dstPt510);
+ connRef510->setRoutingType((ConnType)2);
+
+ ConnRef *connRef511 = new ConnRef(router, 511);
+ ConnEnd srcPt511(Point(3478.07, 1378.24), 15);
+ connRef511->setSourceEndpoint(srcPt511);
+ ConnEnd dstPt511(Point(3478.07, 1857.95), 1);
+ connRef511->setDestEndpoint(dstPt511);
+ connRef511->setRoutingType((ConnType)2);
+
+ ConnRef *connRef512 = new ConnRef(router, 512);
+ ConnEnd srcPt512(Point(3478.07, 2627.3), 2);
+ connRef512->setSourceEndpoint(srcPt512);
+ ConnEnd dstPt512(Point(3478.07, 3413.3), 15);
+ connRef512->setDestEndpoint(dstPt512);
+ connRef512->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513 = new ConnRef(router, 513);
+ ConnEnd srcPt513(Point(2802.54, 3417.3), 8);
+ connRef513->setSourceEndpoint(srcPt513);
+ ConnEnd dstPt513(Point(3478.07, 3413.3), 15);
+ connRef513->setDestEndpoint(dstPt513);
+ connRef513->setRoutingType((ConnType)2);
+
+ ConnRef *connRef514 = new ConnRef(router, 514);
+ ConnEnd srcPt514(Point(3596.07, 2627.3), 2);
+ connRef514->setSourceEndpoint(srcPt514);
+ ConnEnd dstPt514(Point(3478.07, 3413.3), 15);
+ connRef514->setDestEndpoint(dstPt514);
+ connRef514->setRoutingType((ConnType)2);
+
+ ConnRef *connRef515 = new ConnRef(router, 515);
+ ConnEnd srcPt515(Point(220, 527.5), 2);
+ connRef515->setSourceEndpoint(srcPt515);
+ ConnEnd dstPt515(Point(323, 833.833), 15);
+ connRef515->setDestEndpoint(dstPt515);
+ connRef515->setRoutingType((ConnType)2);
+
+ ConnRef *connRef516 = new ConnRef(router, 516);
+ ConnEnd srcPt516(Point(131, 633.5), 1);
+ connRef516->setSourceEndpoint(srcPt516);
+ ConnEnd dstPt516(Point(323, 375.5), 15);
+ connRef516->setDestEndpoint(dstPt516);
+ connRef516->setRoutingType((ConnType)2);
+
+ ConnRef *connRef517 = new ConnRef(router, 517);
+ ConnEnd srcPt517(Point(1557.46, 291.5), 8);
+ connRef517->setSourceEndpoint(srcPt517);
+ ConnEnd dstPt517(Point(1762.79, 157.5), 15);
+ connRef517->setDestEndpoint(dstPt517);
+ connRef517->setRoutingType((ConnType)2);
+
+ ConnRef *connRef518 = new ConnRef(router, 518);
+ ConnEnd srcPt518(Point(1957.29, 291.5), 8);
+ connRef518->setSourceEndpoint(srcPt518);
+ ConnEnd dstPt518(Point(2041.79, 312.5), 15);
+ connRef518->setDestEndpoint(dstPt518);
+ connRef518->setRoutingType((ConnType)2);
+
+ ConnRef *connRef519 = new ConnRef(router, 519);
+ ConnEnd srcPt519(Point(2011.79, 777.5), 4);
+ connRef519->setSourceEndpoint(srcPt519);
+ ConnEnd dstPt519(Point(1958.29, 1041.64), 15);
+ connRef519->setDestEndpoint(dstPt519);
+ connRef519->setRoutingType((ConnType)2);
+
+ ConnRef *connRef520 = new ConnRef(router, 520);
+ ConnEnd srcPt520(Point(555.333, 1276.24), 8);
+ connRef520->setSourceEndpoint(srcPt520);
+ ConnEnd dstPt520(Point(610.333, 1276.24), 15);
+ connRef520->setDestEndpoint(dstPt520);
+ connRef520->setRoutingType((ConnType)2);
+
+ ConnRef *connRef521 = new ConnRef(router, 521);
+ ConnEnd srcPt521(Point(726.958, 1276.24), 8);
+ connRef521->setSourceEndpoint(srcPt521);
+ ConnEnd dstPt521(Point(876.358, 1276.24), 15);
+ connRef521->setDestEndpoint(dstPt521);
+ connRef521->setRoutingType((ConnType)2);
+
+ ConnRef *connRef522 = new ConnRef(router, 522);
+ ConnEnd srcPt522(Point(987.958, 1276.24), 8);
+ connRef522->setSourceEndpoint(srcPt522);
+ ConnEnd dstPt522(Point(1073.18, 1276.24), 15);
+ connRef522->setDestEndpoint(dstPt522);
+ connRef522->setRoutingType((ConnType)2);
+
+ ConnRef *connRef523 = new ConnRef(router, 523);
+ ConnEnd srcPt523(Point(1050.96, 1128.64), 1);
+ connRef523->setSourceEndpoint(srcPt523);
+ ConnEnd dstPt523(Point(1073.18, 978.5), 15);
+ connRef523->setDestEndpoint(dstPt523);
+ connRef523->setRoutingType((ConnType)2);
+
+ ConnRef *connRef524 = new ConnRef(router, 524);
+ ConnEnd srcPt524(Point(1646.79, 1291.24), 2);
+ connRef524->setSourceEndpoint(srcPt524);
+ ConnEnd dstPt524(Point(1782.79, 1378.24), 15);
+ connRef524->setDestEndpoint(dstPt524);
+ connRef524->setRoutingType((ConnType)2);
+
+ ConnRef *connRef525 = new ConnRef(router, 525);
+ ConnEnd srcPt525(Point(1919.87, 1601.64), 15);
+ connRef525->setSourceEndpoint(srcPt525);
+ ConnEnd dstPt525(Point(1782.79, 1569.64), 15);
+ connRef525->setDestEndpoint(dstPt525);
+ connRef525->setRoutingType((ConnType)2);
+
+ ConnRef *connRef526 = new ConnRef(router, 526);
+ ConnEnd srcPt526(Point(1911.79, 1653.64), 4);
+ connRef526->setSourceEndpoint(srcPt526);
+ ConnEnd dstPt526(Point(1782.79, 1569.64), 15);
+ connRef526->setDestEndpoint(dstPt526);
+ connRef526->setRoutingType((ConnType)2);
+
+ ConnRef *connRef527 = new ConnRef(router, 527);
+ ConnEnd srcPt527(Point(1942.29, 1378.24), 15);
+ connRef527->setSourceEndpoint(srcPt527);
+ ConnEnd dstPt527(Point(1958.29, 1425.24), 1);
+ connRef527->setDestEndpoint(dstPt527);
+ connRef527->setRoutingType((ConnType)2);
+
+ ConnRef *connRef528 = new ConnRef(router, 528);
+ ConnEnd srcPt528(Point(2028.87, 1507.64), 15);
+ connRef528->setSourceEndpoint(srcPt528);
+ ConnEnd dstPt528(Point(2241.79, 1378.24), 15);
+ connRef528->setDestEndpoint(dstPt528);
+ connRef528->setRoutingType((ConnType)2);
+
+ ConnRef *connRef529 = new ConnRef(router, 529);
+ ConnEnd srcPt529(Point(2492.71, 1509.44), 8);
+ connRef529->setSourceEndpoint(srcPt529);
+ ConnEnd dstPt529(Point(2547.71, 1569.64), 15);
+ connRef529->setDestEndpoint(dstPt529);
+ connRef529->setRoutingType((ConnType)2);
+
+ ConnRef *connRef530 = new ConnRef(router, 530);
+ ConnEnd srcPt530(Point(2492.71, 1581.64), 8);
+ connRef530->setSourceEndpoint(srcPt530);
+ ConnEnd dstPt530(Point(2547.71, 1569.64), 15);
+ connRef530->setDestEndpoint(dstPt530);
+ connRef530->setRoutingType((ConnType)2);
+ */
+
+ ConnRef *connRef531 = new ConnRef(router, 531);
+ ConnEnd srcPt531(Point(2186.79, 1872.95), 8);
+ connRef531->setSourceEndpoint(srcPt531);
+ ConnEnd dstPt531(Point(2241.79, 1872.95), 15);
+ connRef531->setDestEndpoint(dstPt531);
+ connRef531->setRoutingType((ConnType)2);
+
+ /*
+ ConnRef *connRef532 = new ConnRef(router, 532);
+ ConnEnd srcPt532(Point(2675.54, 1812.64), 8);
+ connRef532->setSourceEndpoint(srcPt532);
+ ConnEnd dstPt532(Point(2787.54, 1872.95), 15);
+ connRef532->setDestEndpoint(dstPt532);
+ connRef532->setRoutingType((ConnType)2);
+
+ ConnRef *connRef533 = new ConnRef(router, 533);
+ ConnEnd srcPt533(Point(2652.54, 1884.95), 8);
+ connRef533->setSourceEndpoint(srcPt533);
+ ConnEnd dstPt533(Point(2787.54, 1872.95), 15);
+ connRef533->setDestEndpoint(dstPt533);
+ connRef533->setRoutingType((ConnType)2);
+
+ ConnRef *connRef534 = new ConnRef(router, 534);
+ ConnEnd srcPt534(Point(2750.54, 1884.95), 8);
+ connRef534->setSourceEndpoint(srcPt534);
+ ConnEnd dstPt534(Point(2787.54, 1872.95), 15);
+ connRef534->setDestEndpoint(dstPt534);
+ connRef534->setRoutingType((ConnType)2);
+
+ ConnRef *connRef535 = new ConnRef(router, 535);
+ ConnEnd srcPt535(Point(2913.99, 1812.64), 8);
+ connRef535->setSourceEndpoint(srcPt535);
+ ConnEnd dstPt535(Point(3119.9, 1872.95), 15);
+ connRef535->setDestEndpoint(dstPt535);
+ connRef535->setRoutingType((ConnType)2);
+
+ ConnRef *connRef536 = new ConnRef(router, 536);
+ ConnEnd srcPt536(Point(2913.99, 1812.64), 8);
+ connRef536->setSourceEndpoint(srcPt536);
+ ConnEnd dstPt536(Point(2968.99, 1731.64), 15);
+ connRef536->setDestEndpoint(dstPt536);
+ connRef536->setRoutingType((ConnType)2);
+
+ ConnRef *connRef537 = new ConnRef(router, 537);
+ ConnEnd srcPt537(Point(2890.99, 1884.95), 8);
+ connRef537->setSourceEndpoint(srcPt537);
+ ConnEnd dstPt537(Point(3119.9, 1872.95), 15);
+ connRef537->setDestEndpoint(dstPt537);
+ connRef537->setRoutingType((ConnType)2);
+
+ ConnRef *connRef538 = new ConnRef(router, 538);
+ ConnEnd srcPt538(Point(2890.99, 1884.95), 8);
+ connRef538->setSourceEndpoint(srcPt538);
+ ConnEnd dstPt538(Point(2968.99, 1731.64), 15);
+ connRef538->setDestEndpoint(dstPt538);
+ connRef538->setRoutingType((ConnType)2);
+
+ ConnRef *connRef539 = new ConnRef(router, 539);
+ ConnEnd srcPt539(Point(2968.99, 1884.95), 8);
+ connRef539->setSourceEndpoint(srcPt539);
+ ConnEnd dstPt539(Point(3119.9, 1872.95), 15);
+ connRef539->setDestEndpoint(dstPt539);
+ connRef539->setRoutingType((ConnType)2);
+
+ ConnRef *connRef540 = new ConnRef(router, 540);
+ ConnEnd srcPt540(Point(2968.99, 1884.95), 8);
+ connRef540->setSourceEndpoint(srcPt540);
+ ConnEnd dstPt540(Point(2968.99, 1731.64), 15);
+ connRef540->setDestEndpoint(dstPt540);
+ connRef540->setRoutingType((ConnType)2);
+
+ ConnRef *connRef541 = new ConnRef(router, 541);
+ ConnEnd srcPt541(Point(2547.71, 723.5), 2);
+ connRef541->setSourceEndpoint(srcPt541);
+ ConnEnd dstPt541(Point(2547.71, 840.75), 15);
+ connRef541->setDestEndpoint(dstPt541);
+ connRef541->setRoutingType((ConnType)2);
+
+ ConnRef *connRef542 = new ConnRef(router, 542);
+ ConnEnd srcPt542(Point(2787.54, 723.5), 2);
+ connRef542->setSourceEndpoint(srcPt542);
+ ConnEnd dstPt542(Point(2787.54, 840.75), 15);
+ connRef542->setDestEndpoint(dstPt542);
+ connRef542->setRoutingType((ConnType)2);
+
+ ConnRef *connRef543 = new ConnRef(router, 543);
+ ConnEnd srcPt543(Point(2968.99, 723.5), 2);
+ connRef543->setSourceEndpoint(srcPt543);
+ ConnEnd dstPt543(Point(2968.99, 840.75), 15);
+ connRef543->setDestEndpoint(dstPt543);
+ connRef543->setRoutingType((ConnType)2);
+
+ ConnRef *connRef544 = new ConnRef(router, 544);
+ ConnEnd srcPt544(Point(2968.99, 929.5), 2);
+ connRef544->setSourceEndpoint(srcPt544);
+ ConnEnd dstPt544(Point(2968.99, 1041.64), 15);
+ connRef544->setDestEndpoint(dstPt544);
+ connRef544->setRoutingType((ConnType)2);
+
+ ConnRef *connRef545 = new ConnRef(router, 545);
+ ConnEnd srcPt545(Point(2492.71, 220.875), 8);
+ connRef545->setSourceEndpoint(srcPt545);
+ ConnEnd dstPt545(Point(2547.71, 220.875), 15);
+ connRef545->setDestEndpoint(dstPt545);
+ connRef545->setRoutingType((ConnType)2);
+
+ ConnRef *connRef546 = new ConnRef(router, 546);
+ ConnEnd srcPt546(Point(2547.71, 316.75), 2);
+ connRef546->setSourceEndpoint(srcPt546);
+ ConnEnd dstPt546(Point(2547.71, 437.7), 15);
+ connRef546->setDestEndpoint(dstPt546);
+ connRef546->setRoutingType((ConnType)2);
+
+ ConnRef *connRef547 = new ConnRef(router, 547);
+ ConnEnd srcPt547(Point(2547.71, 316.75), 2);
+ connRef547->setSourceEndpoint(srcPt547);
+ ConnEnd dstPt547(Point(2735.54, 362.5), 15);
+ connRef547->setDestEndpoint(dstPt547);
+ connRef547->setRoutingType((ConnType)2);
+
+ ConnRef *connRef548 = new ConnRef(router, 548);
+ ConnEnd srcPt548(Point(2680.54, 220.875), 8);
+ connRef548->setSourceEndpoint(srcPt548);
+ ConnEnd dstPt548(Point(2787.54, 220.875), 15);
+ connRef548->setDestEndpoint(dstPt548);
+ connRef548->setRoutingType((ConnType)2);
+
+ ConnRef *connRef549 = new ConnRef(router, 549);
+ ConnEnd srcPt549(Point(3493.07, 914.5), 8);
+ connRef549->setSourceEndpoint(srcPt549);
+ ConnEnd dstPt549(Point(3478.07, 1378.24), 15);
+ connRef549->setDestEndpoint(dstPt549);
+ connRef549->setRoutingType((ConnType)2);
+
+ ConnRef *connRef550 = new ConnRef(router, 550);
+ ConnEnd srcPt550(Point(3478.07, 1887.95), 2);
+ connRef550->setSourceEndpoint(srcPt550);
+ ConnEnd dstPt550(Point(3478.07, 2185.05), 15);
+ connRef550->setDestEndpoint(dstPt550);
+ connRef550->setRoutingType((ConnType)2);
+
+ ConnRef *connRef551 = new ConnRef(router, 551);
+ ConnEnd srcPt551(Point(2802.54, 3519.3), 8);
+ connRef551->setSourceEndpoint(srcPt551);
+ ConnEnd dstPt551(Point(3478.07, 3413.3), 15);
+ connRef551->setDestEndpoint(dstPt551);
+ connRef551->setRoutingType((ConnType)2);
+
+ ConnRef *connRef552 = new ConnRef(router, 552);
+ ConnEnd srcPt552(Point(3596.07, 929.5), 2);
+ connRef552->setSourceEndpoint(srcPt552);
+ ConnEnd dstPt552(Point(3596.07, 2185.05), 15);
+ connRef552->setDestEndpoint(dstPt552);
+ connRef552->setRoutingType((ConnType)2);
+
+ ConnRef *connRef553 = new ConnRef(router, 553);
+ ConnEnd srcPt553(Point(3326.74, 929.5), 2);
+ connRef553->setSourceEndpoint(srcPt553);
+ ConnEnd dstPt553(Point(3322.24, 2399.05), 15);
+ connRef553->setDestEndpoint(dstPt553);
+ connRef553->setRoutingType((ConnType)2);
+
+ ConnRef *connRef554 = new ConnRef(router, 554);
+ ConnEnd srcPt554(Point(3201.44, 2297.05), 4);
+ connRef554->setSourceEndpoint(srcPt554);
+ ConnEnd dstPt554(Point(2968.99, 2297.05), 15);
+ connRef554->setDestEndpoint(dstPt554);
+ connRef554->setRoutingType((ConnType)2);
+
+ ConnRef *connRef555 = new ConnRef(router, 555);
+ ConnEnd srcPt555(Point(3231.44, 914.5), 8);
+ connRef555->setSourceEndpoint(srcPt555);
+ ConnEnd dstPt555(Point(3216.44, 2185.05), 15);
+ connRef555->setDestEndpoint(dstPt555);
+ connRef555->setRoutingType((ConnType)2);
+
+ ConnRef *connRef556 = new ConnRef(router, 556);
+ ConnEnd srcPt556(Point(2384.71, 2185.05), 4);
+ connRef556->setSourceEndpoint(srcPt556);
+ ConnEnd dstPt556(Point(2041.79, 2185.05), 15);
+ connRef556->setDestEndpoint(dstPt556);
+ connRef556->setRoutingType((ConnType)2);
+
+ ConnRef *connRef557 = new ConnRef(router, 557);
+ ConnEnd srcPt557(Point(711.958, 1425.24), 1);
+ connRef557->setSourceEndpoint(srcPt557);
+ ConnEnd dstPt557(Point(1073.18, 1440.24), 15);
+ connRef557->setDestEndpoint(dstPt557);
+ connRef557->setRoutingType((ConnType)2);
+
+ ConnRef *connRef558 = new ConnRef(router, 558);
+ ConnEnd srcPt558(Point(1385.86, 1425.24), 1);
+ connRef558->setSourceEndpoint(srcPt558);
+ ConnEnd dstPt558(Point(1782.79, 1378.24), 15);
+ connRef558->setDestEndpoint(dstPt558);
+ connRef558->setRoutingType((ConnType)2);
+
+ ConnRef *connRef559 = new ConnRef(router, 559);
+ ConnEnd srcPt559(Point(595.333, 2477.3), 4);
+ connRef559->setSourceEndpoint(srcPt559);
+ ConnEnd dstPt559(Point(610.333, 2529.3), 15);
+ connRef559->setDestEndpoint(dstPt559);
+ connRef559->setRoutingType((ConnType)2);
+
+ ConnRef *connRef560 = new ConnRef(router, 560);
+ ConnEnd srcPt560(Point(610.333, 2627.3), 2);
+ connRef560->setSourceEndpoint(srcPt560);
+ ConnEnd dstPt560(Point(610.333, 2674.3), 15);
+ connRef560->setDestEndpoint(dstPt560);
+ connRef560->setRoutingType((ConnType)2);
+
+ ConnRef *connRef561 = new ConnRef(router, 561);
+ ConnEnd srcPt561(Point(1480.87, 2053.77), 15);
+ connRef561->setSourceEndpoint(srcPt561);
+ ConnEnd dstPt561(Point(610.333, 2945.3), 15);
+ connRef561->setDestEndpoint(dstPt561);
+ connRef561->setRoutingType((ConnType)2);
+
+ ConnRef *connRef562 = new ConnRef(router, 562);
+ ConnEnd srcPt562(Point(1197.96, 2627.3), 2);
+ connRef562->setSourceEndpoint(srcPt562);
+ ConnEnd dstPt562(Point(1563.6, 2945.3), 15);
+ connRef562->setDestEndpoint(dstPt562);
+ connRef562->setRoutingType((ConnType)2);
+
+ ConnRef *connRef563 = new ConnRef(router, 563);
+ ConnEnd srcPt563(Point(1315.96, 2627.3), 2);
+ connRef563->setSourceEndpoint(srcPt563);
+ ConnEnd dstPt563(Point(1563.6, 2945.3), 15);
+ connRef563->setDestEndpoint(dstPt563);
+ connRef563->setRoutingType((ConnType)2);
+
+ ConnRef *connRef564 = new ConnRef(router, 564);
+ ConnEnd srcPt564(Point(1646.79, 2772.3), 2);
+ connRef564->setSourceEndpoint(srcPt564);
+ ConnEnd dstPt564(Point(1563.6, 2945.3), 15);
+ connRef564->setDestEndpoint(dstPt564);
+ connRef564->setRoutingType((ConnType)2);
+
+ ConnRef *connRef565 = new ConnRef(router, 565);
+ ConnEnd srcPt565(Point(1563.6, 2703.3), 2);
+ connRef565->setSourceEndpoint(srcPt565);
+ ConnEnd dstPt565(Point(1563.6, 2945.3), 15);
+ connRef565->setDestEndpoint(dstPt565);
+ connRef565->setRoutingType((ConnType)2);
+
+ ConnRef *connRef566 = new ConnRef(router, 566);
+ ConnEnd srcPt566(Point(1538.46, 2772.3), 2);
+ connRef566->setSourceEndpoint(srcPt566);
+ ConnEnd dstPt566(Point(1563.6, 2945.3), 15);
+ connRef566->setDestEndpoint(dstPt566);
+ connRef566->setRoutingType((ConnType)2);
+
+ ConnRef *connRef567 = new ConnRef(router, 567);
+ ConnEnd srcPt567(Point(2492.71, 2955.3), 8);
+ connRef567->setSourceEndpoint(srcPt567);
+ ConnEnd dstPt567(Point(2547.71, 2945.3), 15);
+ connRef567->setDestEndpoint(dstPt567);
+ connRef567->setRoutingType((ConnType)2);
+
+ ConnRef *connRef568 = new ConnRef(router, 568);
+ ConnEnd srcPt568(Point(850.958, 2492.3), 2);
+ connRef568->setSourceEndpoint(srcPt568);
+ ConnEnd dstPt568(Point(876.358, 2529.3), 15);
+ connRef568->setDestEndpoint(dstPt568);
+ connRef568->setRoutingType((ConnType)2);
+
+ ConnRef *connRef569 = new ConnRef(router, 569);
+ ConnEnd srcPt569(Point(943.958, 2477.3), 4);
+ connRef569->setSourceEndpoint(srcPt569);
+ ConnEnd dstPt569(Point(876.358, 2529.3), 15);
+ connRef569->setDestEndpoint(dstPt569);
+ connRef569->setRoutingType((ConnType)2);
+
+ ConnRef *connRef570 = new ConnRef(router, 570);
+ ConnEnd srcPt570(Point(876.358, 2627.3), 2);
+ connRef570->setSourceEndpoint(srcPt570);
+ ConnEnd dstPt570(Point(876.358, 2674.3), 15);
+ connRef570->setDestEndpoint(dstPt570);
+ connRef570->setRoutingType((ConnType)2);
+
+ ConnRef *connRef571 = new ConnRef(router, 571);
+ ConnEnd srcPt571(Point(876.358, 2772.3), 2);
+ connRef571->setSourceEndpoint(srcPt571);
+ ConnEnd dstPt571(Point(876.358, 2945.3), 15);
+ connRef571->setDestEndpoint(dstPt571);
+ connRef571->setRoutingType((ConnType)2);
+
+ ConnRef *connRef572 = new ConnRef(router, 572);
+ ConnEnd srcPt572(Point(2186.79, 1041.64), 8);
+ connRef572->setSourceEndpoint(srcPt572);
+ ConnEnd dstPt572(Point(2241.79, 1041.64), 15);
+ connRef572->setDestEndpoint(dstPt572);
+ connRef572->setRoutingType((ConnType)2);
+
+ ConnRef *connRef573 = new ConnRef(router, 573);
+ ConnEnd srcPt573(Point(2492.71, 1041.64), 8);
+ connRef573->setSourceEndpoint(srcPt573);
+ ConnEnd dstPt573(Point(2547.71, 1041.64), 15);
+ connRef573->setDestEndpoint(dstPt573);
+ connRef573->setRoutingType((ConnType)2);
+
+ ConnRef *connRef574 = new ConnRef(router, 574);
+ ConnEnd srcPt574(Point(3478.07, 2185.05), 15);
+ connRef574->setSourceEndpoint(srcPt574);
+ ConnEnd dstPt574(Point(3478.07, 2597.3), 1);
+ connRef574->setDestEndpoint(dstPt574);
+ connRef574->setRoutingType((ConnType)2);
+
+ ConnRef *connRef575 = new ConnRef(router, 575);
+ ConnEnd srcPt575(Point(3596.07, 2185.05), 15);
+ connRef575->setSourceEndpoint(srcPt575);
+ ConnEnd dstPt575(Point(3596.07, 2597.3), 1);
+ connRef575->setDestEndpoint(dstPt575);
+ connRef575->setRoutingType((ConnType)2);
+
+ ConnRef *connRef576 = new ConnRef(router, 576);
+ ConnEnd srcPt576(Point(2041.79, 1291.24), 2);
+ connRef576->setSourceEndpoint(srcPt576);
+ ConnEnd dstPt576(Point(2041.79, 1569.64), 15);
+ connRef576->setDestEndpoint(dstPt576);
+ connRef576->setRoutingType((ConnType)2);
+
+ ConnRef *connRef577 = new ConnRef(router, 577);
+ ConnEnd srcPt577(Point(1797.79, 3401.3), 8);
+ connRef577->setSourceEndpoint(srcPt577);
+ ConnEnd dstPt577(Point(1861.79, 3209.3), 15);
+ connRef577->setDestEndpoint(dstPt577);
+ connRef577->setRoutingType((ConnType)2);
+
+ ConnRef *connRef578 = new ConnRef(router, 578);
+ ConnEnd srcPt578(Point(1797.79, 3197.3), 8);
+ connRef578->setSourceEndpoint(srcPt578);
+ ConnEnd dstPt578(Point(1861.79, 3209.3), 15);
+ connRef578->setDestEndpoint(dstPt578);
+ connRef578->setRoutingType((ConnType)2);
+
+ ConnRef *connRef579 = new ConnRef(router, 579);
+ ConnEnd srcPt579(Point(2760.54, 123.5), 4);
+ connRef579->setSourceEndpoint(srcPt579);
+ ConnEnd dstPt579(Point(2241.79, 220.875), 15);
+ connRef579->setDestEndpoint(dstPt579);
+ connRef579->setRoutingType((ConnType)2);
+
+ ConnRef *connRef580 = new ConnRef(router, 580);
+ ConnEnd srcPt580(Point(2760.54, 123.5), 4);
+ connRef580->setSourceEndpoint(srcPt580);
+ ConnEnd dstPt580(Point(2547.71, 220.875), 15);
+ connRef580->setDestEndpoint(dstPt580);
+ connRef580->setRoutingType((ConnType)2);
+
+ ConnRef *connRef581 = new ConnRef(router, 581);
+ ConnEnd srcPt581(Point(2156.79, 220.875), 4);
+ connRef581->setSourceEndpoint(srcPt581);
+ ConnEnd dstPt581(Point(2041.79, 220.875), 15);
+ connRef581->setDestEndpoint(dstPt581);
+ connRef581->setRoutingType((ConnType)2);
+
+ ConnRef *connRef582 = new ConnRef(router, 582);
+ ConnEnd srcPt582(Point(2041.79, 2185.05), 15);
+ connRef582->setSourceEndpoint(srcPt582);
+ ConnEnd dstPt582(Point(1941.79, 2185.05), 8);
+ connRef582->setDestEndpoint(dstPt582);
+ connRef582->setRoutingType((ConnType)2);
+
+ ConnRef *connRef583 = new ConnRef(router, 583);
+ ConnEnd srcPt583(Point(1775.79, 1872.95), 15);
+ connRef583->setSourceEndpoint(srcPt583);
+ ConnEnd dstPt583(Point(1479.46, 1872.95), 8);
+ connRef583->setDestEndpoint(dstPt583);
+ connRef583->setRoutingType((ConnType)2);
+
+ ConnRef *connRef584 = new ConnRef(router, 584);
+ ConnEnd srcPt584(Point(1911.79, 1872.95), 4);
+ connRef584->setSourceEndpoint(srcPt584);
+ ConnEnd dstPt584(Point(1775.79, 1872.95), 15);
+ connRef584->setDestEndpoint(dstPt584);
+ connRef584->setRoutingType((ConnType)2);
+
+ ConnRef *connRef585 = new ConnRef(router, 585);
+ ConnEnd srcPt585(Point(1449.46, 1872.95), 4);
+ connRef585->setSourceEndpoint(srcPt585);
+ ConnEnd dstPt585(Point(1073.18, 1872.95), 15);
+ connRef585->setDestEndpoint(dstPt585);
+ connRef585->setRoutingType((ConnType)2);
+
+ ConnRef *connRef586 = new ConnRef(router, 586);
+ ConnEnd srcPt586(Point(1073.18, 1872.95), 15);
+ connRef586->setSourceEndpoint(srcPt586);
+ ConnEnd dstPt586(Point(987.958, 1872.95), 8);
+ connRef586->setDestEndpoint(dstPt586);
+ connRef586->setRoutingType((ConnType)2);
+
+ ConnRef *connRef587 = new ConnRef(router, 587);
+ ConnEnd srcPt587(Point(957.958, 1872.95), 4);
+ connRef587->setSourceEndpoint(srcPt587);
+ ConnEnd dstPt587(Point(876.358, 1872.95), 15);
+ connRef587->setDestEndpoint(dstPt587);
+ connRef587->setRoutingType((ConnType)2);
+
+ ConnRef *connRef588 = new ConnRef(router, 588);
+ ConnEnd srcPt588(Point(3089.24, 316.75), 2);
+ connRef588->setSourceEndpoint(srcPt588);
+ ConnEnd dstPt588(Point(3114.24, 437.7), 15);
+ connRef588->setDestEndpoint(dstPt588);
+ connRef588->setRoutingType((ConnType)2);
+
+ ConnRef *connRef589 = new ConnRef(router, 589);
+ ConnEnd srcPt589(Point(2041.79, 2674.3), 15);
+ connRef589->setSourceEndpoint(srcPt589);
+ ConnEnd dstPt589(Point(2041.79, 2734.3), 1);
+ connRef589->setDestEndpoint(dstPt589);
+ connRef589->setRoutingType((ConnType)2);
+
+ ConnRef *connRef590 = new ConnRef(router, 590);
+ ConnEnd srcPt590(Point(2041.79, 2764.3), 2);
+ connRef590->setSourceEndpoint(srcPt590);
+ ConnEnd dstPt590(Point(2241.79, 2945.3), 15);
+ connRef590->setDestEndpoint(dstPt590);
+ connRef590->setRoutingType((ConnType)2);
+
+ ConnRef *connRef591 = new ConnRef(router, 591);
+ ConnEnd srcPt591(Point(1861.79, 2674.3), 15);
+ connRef591->setSourceEndpoint(srcPt591);
+ ConnEnd dstPt591(Point(1861.79, 2734.3), 1);
+ connRef591->setDestEndpoint(dstPt591);
+ connRef591->setRoutingType((ConnType)2);
+
+ ConnRef *connRef592 = new ConnRef(router, 592);
+ ConnEnd srcPt592(Point(1861.79, 2764.3), 2);
+ connRef592->setSourceEndpoint(srcPt592);
+ ConnEnd dstPt592(Point(1861.79, 2811.3), 15);
+ connRef592->setDestEndpoint(dstPt592);
+ connRef592->setRoutingType((ConnType)2);
+
+ ConnRef *connRef593 = new ConnRef(router, 593);
+ ConnEnd srcPt593(Point(1073.18, 569.7), 15);
+ connRef593->setSourceEndpoint(srcPt593);
+ ConnEnd dstPt593(Point(1214.46, 569.7), 4);
+ connRef593->setDestEndpoint(dstPt593);
+ connRef593->setRoutingType((ConnType)2);
+
+ ConnRef *connRef594 = new ConnRef(router, 594);
+ ConnEnd srcPt594(Point(1073.18, 693.5), 1);
+ connRef594->setSourceEndpoint(srcPt594);
+ ConnEnd dstPt594(Point(1073.18, 569.7), 15);
+ connRef594->setDestEndpoint(dstPt594);
+ connRef594->setRoutingType((ConnType)2);
+
+ ConnRef *connRef595 = new ConnRef(router, 595);
+ ConnEnd srcPt595(Point(876.358, 554.7), 1);
+ connRef595->setSourceEndpoint(srcPt595);
+ ConnEnd dstPt595(Point(876.358, 375.5), 15);
+ connRef595->setDestEndpoint(dstPt595);
+ connRef595->setRoutingType((ConnType)2);
+
+ ConnRef *connRef596 = new ConnRef(router, 596);
+ ConnEnd srcPt596(Point(781.958, 715.5), 15);
+ connRef596->setSourceEndpoint(srcPt596);
+ ConnEnd dstPt596(Point(876.358, 584.7), 2);
+ connRef596->setDestEndpoint(dstPt596);
+ connRef596->setRoutingType((ConnType)2);
+
+ ConnRef *connRef597 = new ConnRef(router, 597);
+ ConnEnd srcPt597(Point(404.333, 527.5), 2);
+ connRef597->setSourceEndpoint(srcPt597);
+ ConnEnd dstPt597(Point(323, 833.833), 15);
+ connRef597->setDestEndpoint(dstPt597);
+ connRef597->setRoutingType((ConnType)2);
+
+ ConnRef *connRef598 = new ConnRef(router, 598);
+ ConnEnd srcPt598(Point(2492.71, 2864.3), 8);
+ connRef598->setSourceEndpoint(srcPt598);
+ ConnEnd dstPt598(Point(2547.71, 2945.3), 15);
+ connRef598->setDestEndpoint(dstPt598);
+ connRef598->setRoutingType((ConnType)2);
+
+ ConnRef *connRef599 = new ConnRef(router, 599);
+ ConnEnd srcPt599(Point(3119.9, 2529.3), 15);
+ connRef599->setSourceEndpoint(srcPt599);
+ ConnEnd dstPt599(Point(2895.99, 2612.3), 4);
+ connRef599->setDestEndpoint(dstPt599);
+ connRef599->setRoutingType((ConnType)2);
+
+ ConnRef *connRef600 = new ConnRef(router, 600);
+ ConnEnd srcPt600(Point(3119.9, 2529.3), 15);
+ connRef600->setSourceEndpoint(srcPt600);
+ ConnEnd dstPt600(Point(3242.24, 2597.3), 1);
+ connRef600->setDestEndpoint(dstPt600);
+ connRef600->setRoutingType((ConnType)2);
+
+ ConnRef *connRef601 = new ConnRef(router, 601);
+ ConnEnd srcPt601(Point(2925.99, 2612.3), 8);
+ connRef601->setSourceEndpoint(srcPt601);
+ ConnEnd dstPt601(Point(2968.99, 2674.3), 15);
+ connRef601->setDestEndpoint(dstPt601);
+ connRef601->setRoutingType((ConnType)2);
+
+ ConnRef *connRef602 = new ConnRef(router, 602);
+ ConnEnd srcPt602(Point(3119.9, 2872.3), 15);
+ connRef602->setSourceEndpoint(srcPt602);
+ ConnEnd dstPt602(Point(2869.99, 3071.3), 4);
+ connRef602->setDestEndpoint(dstPt602);
+ connRef602->setRoutingType((ConnType)2);
+
+ ConnRef *connRef603 = new ConnRef(router, 603);
+ ConnEnd srcPt603(Point(3119.9, 2872.3), 15);
+ connRef603->setSourceEndpoint(srcPt603);
+ ConnEnd dstPt603(Point(3326.74, 3056.3), 1);
+ connRef603->setDestEndpoint(dstPt603);
+ connRef603->setRoutingType((ConnType)2);
+
+ ConnRef *connRef604 = new ConnRef(router, 604);
+ ConnEnd srcPt604(Point(3242.24, 2627.3), 2);
+ connRef604->setSourceEndpoint(srcPt604);
+ ConnEnd dstPt604(Point(3221.24, 2674.3), 15);
+ connRef604->setDestEndpoint(dstPt604);
+ connRef604->setRoutingType((ConnType)2);
+
+ ConnRef *connRef605 = new ConnRef(router, 605);
+ ConnEnd srcPt605(Point(2899.99, 3071.3), 8);
+ connRef605->setSourceEndpoint(srcPt605);
+ ConnEnd dstPt605(Point(2968.99, 3209.3), 15);
+ connRef605->setDestEndpoint(dstPt605);
+ connRef605->setRoutingType((ConnType)2);
+
+ ConnRef *connRef606 = new ConnRef(router, 606);
+ ConnEnd srcPt606(Point(3326.74, 3086.3), 2);
+ connRef606->setSourceEndpoint(srcPt606);
+ ConnEnd dstPt606(Point(3216.44, 3209.3), 15);
+ connRef606->setDestEndpoint(dstPt606);
+ connRef606->setRoutingType((ConnType)2);
+
+ ConnRef *connRef607 = new ConnRef(router, 607);
+ ConnEnd srcPt607(Point(1797.79, 3299.3), 8);
+ connRef607->setSourceEndpoint(srcPt607);
+ ConnEnd dstPt607(Point(1861.79, 3209.3), 15);
+ connRef607->setDestEndpoint(dstPt607);
+ connRef607->setRoutingType((ConnType)2);
+
+ ConnRef *connRef608 = new ConnRef(router, 608);
+ ConnEnd srcPt608(Point(162, 512.5), 8);
+ connRef608->setSourceEndpoint(srcPt608);
+ ConnEnd dstPt608(Point(220, 512.5), 4);
+ connRef608->setDestEndpoint(dstPt608);
+ connRef608->setRoutingType((ConnType)2);
+
+ ConnRef *connRef609 = new ConnRef(router, 609);
+ ConnEnd srcPt609(Point(73, 648.5), 8);
+ connRef609->setSourceEndpoint(srcPt609);
+ ConnEnd dstPt609(Point(131, 648.5), 4);
+ connRef609->setDestEndpoint(dstPt609);
+ connRef609->setRoutingType((ConnType)2);
+
+ ConnRef *connRef610 = new ConnRef(router, 610);
+ ConnEnd srcPt610(Point(540.333, 658.5), 2);
+ connRef610->setSourceEndpoint(srcPt610);
+ ConnEnd dstPt610(Point(540.333, 708.5), 1);
+ connRef610->setDestEndpoint(dstPt610);
+ connRef610->setRoutingType((ConnType)2);
+
+ ConnRef *connRef611 = new ConnRef(router, 611);
+ ConnEnd srcPt611(Point(540.333, 783.833), 2);
+ connRef611->setSourceEndpoint(srcPt611);
+ ConnEnd dstPt611(Point(540.333, 833.833), 1);
+ connRef611->setDestEndpoint(dstPt611);
+ connRef611->setRoutingType((ConnType)2);
+
+ ConnRef *connRef612 = new ConnRef(router, 612);
+ ConnEnd srcPt612(Point(1453.46, 708.5), 4);
+ connRef612->setSourceEndpoint(srcPt612);
+ ConnEnd dstPt612(Point(1395.46, 708.5), 8);
+ connRef612->setDestEndpoint(dstPt612);
+ connRef612->setRoutingType((ConnType)2);
+
+ ConnRef *connRef613 = new ConnRef(router, 613);
+ ConnEnd srcPt613(Point(1542.46, 241.5), 2);
+ connRef613->setSourceEndpoint(srcPt613);
+ ConnEnd dstPt613(Point(1542.46, 291.5), 1);
+ connRef613->setDestEndpoint(dstPt613);
+ connRef613->setRoutingType((ConnType)2);
+
+ ConnRef *connRef614 = new ConnRef(router, 614);
+ ConnEnd srcPt614(Point(1942.29, 241.5), 2);
+ connRef614->setSourceEndpoint(srcPt614);
+ ConnEnd dstPt614(Point(1942.29, 291.5), 1);
+ connRef614->setDestEndpoint(dstPt614);
+ connRef614->setRoutingType((ConnType)2);
+
+ ConnRef *connRef615 = new ConnRef(router, 615);
+ ConnEnd srcPt615(Point(2026.79, 727.5), 2);
+ connRef615->setSourceEndpoint(srcPt615);
+ ConnEnd dstPt615(Point(2026.79, 777.5), 1);
+ connRef615->setDestEndpoint(dstPt615);
+ connRef615->setRoutingType((ConnType)2);
+
+ ConnRef *connRef616 = new ConnRef(router, 616);
+ ConnEnd srcPt616(Point(540.333, 1226.24), 2);
+ connRef616->setSourceEndpoint(srcPt616);
+ ConnEnd dstPt616(Point(540.333, 1276.24), 1);
+ connRef616->setDestEndpoint(dstPt616);
+ connRef616->setRoutingType((ConnType)2);
+
+ ConnRef *connRef617 = new ConnRef(router, 617);
+ ConnEnd srcPt617(Point(711.958, 1226.24), 2);
+ connRef617->setSourceEndpoint(srcPt617);
+ ConnEnd dstPt617(Point(711.958, 1276.24), 1);
+ connRef617->setDestEndpoint(dstPt617);
+ connRef617->setRoutingType((ConnType)2);
+
+ ConnRef *connRef618 = new ConnRef(router, 618);
+ ConnEnd srcPt618(Point(972.958, 1226.24), 2);
+ connRef618->setSourceEndpoint(srcPt618);
+ ConnEnd dstPt618(Point(972.958, 1276.24), 1);
+ connRef618->setDestEndpoint(dstPt618);
+ connRef618->setRoutingType((ConnType)2);
+
+ ConnRef *connRef619 = new ConnRef(router, 619);
+ ConnEnd srcPt619(Point(992.958, 1143.64), 8);
+ connRef619->setSourceEndpoint(srcPt619);
+ ConnEnd dstPt619(Point(1050.96, 1143.64), 4);
+ connRef619->setDestEndpoint(dstPt619);
+ connRef619->setRoutingType((ConnType)2);
+
+ ConnRef *connRef620 = new ConnRef(router, 620);
+ ConnEnd srcPt620(Point(1385.86, 919.5), 2);
+ connRef620->setSourceEndpoint(srcPt620);
+ ConnEnd dstPt620(Point(1385.86, 969.5), 1);
+ connRef620->setDestEndpoint(dstPt620);
+ connRef620->setRoutingType((ConnType)2);
+
+ ConnRef *connRef621 = new ConnRef(router, 621);
+ ConnEnd srcPt621(Point(1385.86, 1091.64), 1);
+ connRef621->setSourceEndpoint(srcPt621);
+ ConnEnd dstPt621(Point(1385.86, 1041.64), 2);
+ connRef621->setDestEndpoint(dstPt621);
+ connRef621->setRoutingType((ConnType)2);
+
+ ConnRef *connRef622 = new ConnRef(router, 622);
+ ConnEnd srcPt622(Point(1385.86, 1193.64), 1);
+ connRef622->setSourceEndpoint(srcPt622);
+ ConnEnd dstPt622(Point(1385.86, 1143.64), 2);
+ connRef622->setDestEndpoint(dstPt622);
+ connRef622->setRoutingType((ConnType)2);
+
+ ConnRef *connRef623 = new ConnRef(router, 623);
+ ConnEnd srcPt623(Point(1704.79, 1276.24), 4);
+ connRef623->setSourceEndpoint(srcPt623);
+ ConnEnd dstPt623(Point(1646.79, 1276.24), 8);
+ connRef623->setDestEndpoint(dstPt623);
+ connRef623->setRoutingType((ConnType)2);
+
+ ConnRef *connRef624 = new ConnRef(router, 624);
+ ConnEnd srcPt624(Point(1926.79, 1703.64), 1);
+ connRef624->setSourceEndpoint(srcPt624);
+ ConnEnd dstPt624(Point(1926.79, 1653.64), 2);
+ connRef624->setDestEndpoint(dstPt624);
+ connRef624->setRoutingType((ConnType)2);
+
+ ConnRef *connRef625 = new ConnRef(router, 625);
+ ConnEnd srcPt625(Point(2016.29, 1440.24), 4);
+ connRef625->setSourceEndpoint(srcPt625);
+ ConnEnd dstPt625(Point(1958.29, 1440.24), 8);
+ connRef625->setDestEndpoint(dstPt625);
+ connRef625->setRoutingType((ConnType)2);
+
+ ConnRef *connRef626 = new ConnRef(router, 626);
+ ConnEnd srcPt626(Point(2099.79, 1722.64), 4);
+ connRef626->setSourceEndpoint(srcPt626);
+ ConnEnd dstPt626(Point(2041.79, 1722.64), 8);
+ connRef626->setDestEndpoint(dstPt626);
+ connRef626->setRoutingType((ConnType)2);
+
+ ConnRef *connRef627 = new ConnRef(router, 627);
+ ConnEnd srcPt627(Point(2171.79, 1519.64), 2);
+ connRef627->setSourceEndpoint(srcPt627);
+ ConnEnd dstPt627(Point(2171.79, 1569.64), 1);
+ connRef627->setDestEndpoint(dstPt627);
+ connRef627->setRoutingType((ConnType)2);
+
+ ConnRef *connRef628 = new ConnRef(router, 628);
+ ConnEnd srcPt628(Point(2299.79, 1440.24), 4);
+ connRef628->setSourceEndpoint(srcPt628);
+ ConnEnd dstPt628(Point(2241.79, 1440.24), 8);
+ connRef628->setDestEndpoint(dstPt628);
+ connRef628->setRoutingType((ConnType)2);
+
+ ConnRef *connRef629 = new ConnRef(router, 629);
+ ConnEnd srcPt629(Point(2477.71, 1459.44), 2);
+ connRef629->setSourceEndpoint(srcPt629);
+ ConnEnd dstPt629(Point(2477.71, 1509.44), 1);
+ connRef629->setDestEndpoint(dstPt629);
+ connRef629->setRoutingType((ConnType)2);
+
+ ConnRef *connRef630 = new ConnRef(router, 630);
+ ConnEnd srcPt630(Point(2477.71, 1631.64), 1);
+ connRef630->setSourceEndpoint(srcPt630);
+ ConnEnd dstPt630(Point(2477.71, 1581.64), 2);
+ connRef630->setDestEndpoint(dstPt630);
+ connRef630->setRoutingType((ConnType)2);
+
+ ConnRef *connRef631 = new ConnRef(router, 631);
+ ConnEnd srcPt631(Point(2171.79, 1822.95), 2);
+ connRef631->setSourceEndpoint(srcPt631);
+ ConnEnd dstPt631(Point(2171.79, 1872.95), 1);
+ connRef631->setDestEndpoint(dstPt631);
+ connRef631->setRoutingType((ConnType)2);
+
+ ConnRef *connRef632 = new ConnRef(router, 632);
+ ConnEnd srcPt632(Point(2477.71, 1963.95), 2);
+ connRef632->setSourceEndpoint(srcPt632);
+ ConnEnd dstPt632(Point(2477.71, 2013.95), 1);
+ connRef632->setDestEndpoint(dstPt632);
+ connRef632->setRoutingType((ConnType)2);
+
+ ConnRef *connRef633 = new ConnRef(router, 633);
+ ConnEnd srcPt633(Point(2477.71, 2105.95), 1);
+ connRef633->setSourceEndpoint(srcPt633);
+ ConnEnd dstPt633(Point(2477.71, 2055.95), 2);
+ connRef633->setDestEndpoint(dstPt633);
+ connRef633->setRoutingType((ConnType)2);
+
+ ConnRef *connRef634 = new ConnRef(router, 634);
+ ConnEnd srcPt634(Point(2660.54, 1762.64), 2);
+ connRef634->setSourceEndpoint(srcPt634);
+ ConnEnd dstPt634(Point(2660.54, 1812.64), 1);
+ connRef634->setDestEndpoint(dstPt634);
+ connRef634->setRoutingType((ConnType)2);
+
+ ConnRef *connRef635 = new ConnRef(router, 635);
+ ConnEnd srcPt635(Point(2637.54, 1934.95), 1);
+ connRef635->setSourceEndpoint(srcPt635);
+ ConnEnd dstPt635(Point(2637.54, 1884.95), 2);
+ connRef635->setDestEndpoint(dstPt635);
+ connRef635->setRoutingType((ConnType)2);
+
+ ConnRef *connRef636 = new ConnRef(router, 636);
+ ConnEnd srcPt636(Point(2735.54, 1934.95), 1);
+ connRef636->setSourceEndpoint(srcPt636);
+ ConnEnd dstPt636(Point(2735.54, 1884.95), 2);
+ connRef636->setDestEndpoint(dstPt636);
+ connRef636->setRoutingType((ConnType)2);
+
+ ConnRef *connRef637 = new ConnRef(router, 637);
+ ConnEnd srcPt637(Point(2898.99, 1762.64), 2);
+ connRef637->setSourceEndpoint(srcPt637);
+ ConnEnd dstPt637(Point(2898.99, 1812.64), 1);
+ connRef637->setDestEndpoint(dstPt637);
+ connRef637->setRoutingType((ConnType)2);
+
+ ConnRef *connRef638 = new ConnRef(router, 638);
+ ConnEnd srcPt638(Point(2875.99, 1934.95), 1);
+ connRef638->setSourceEndpoint(srcPt638);
+ ConnEnd dstPt638(Point(2875.99, 1884.95), 2);
+ connRef638->setDestEndpoint(dstPt638);
+ connRef638->setRoutingType((ConnType)2);
+
+ ConnRef *connRef639 = new ConnRef(router, 639);
+ ConnEnd srcPt639(Point(2953.99, 1934.95), 1);
+ connRef639->setSourceEndpoint(srcPt639);
+ ConnEnd dstPt639(Point(2953.99, 1884.95), 2);
+ connRef639->setDestEndpoint(dstPt639);
+ connRef639->setRoutingType((ConnType)2);
+
+ ConnRef *connRef640 = new ConnRef(router, 640);
+ ConnEnd srcPt640(Point(2299.79, 708.5), 4);
+ connRef640->setSourceEndpoint(srcPt640);
+ ConnEnd dstPt640(Point(2241.79, 708.5), 8);
+ connRef640->setDestEndpoint(dstPt640);
+ connRef640->setRoutingType((ConnType)2);
+
+ ConnRef *connRef641 = new ConnRef(router, 641);
+ ConnEnd srcPt641(Point(2605.71, 708.5), 4);
+ connRef641->setSourceEndpoint(srcPt641);
+ ConnEnd dstPt641(Point(2547.71, 708.5), 8);
+ connRef641->setDestEndpoint(dstPt641);
+ connRef641->setRoutingType((ConnType)2);
+
+ ConnRef *connRef642 = new ConnRef(router, 642);
+ ConnEnd srcPt642(Point(2845.54, 708.5), 4);
+ connRef642->setSourceEndpoint(srcPt642);
+ ConnEnd dstPt642(Point(2787.54, 708.5), 8);
+ connRef642->setDestEndpoint(dstPt642);
+ connRef642->setRoutingType((ConnType)2);
+
+ ConnRef *connRef643 = new ConnRef(router, 643);
+ ConnEnd srcPt643(Point(3026.99, 708.5), 4);
+ connRef643->setSourceEndpoint(srcPt643);
+ ConnEnd dstPt643(Point(2968.99, 708.5), 8);
+ connRef643->setDestEndpoint(dstPt643);
+ connRef643->setRoutingType((ConnType)2);
+
+ ConnRef *connRef644 = new ConnRef(router, 644);
+ ConnEnd srcPt644(Point(3026.99, 914.5), 4);
+ connRef644->setSourceEndpoint(srcPt644);
+ ConnEnd dstPt644(Point(2968.99, 914.5), 8);
+ connRef644->setDestEndpoint(dstPt644);
+ connRef644->setRoutingType((ConnType)2);
+
+ ConnRef *connRef645 = new ConnRef(router, 645);
+ ConnEnd srcPt645(Point(2299.79, 301.75), 4);
+ connRef645->setSourceEndpoint(srcPt645);
+ ConnEnd dstPt645(Point(2241.79, 301.75), 8);
+ connRef645->setDestEndpoint(dstPt645);
+ connRef645->setRoutingType((ConnType)2);
+
+ ConnRef *connRef646 = new ConnRef(router, 646);
+ ConnEnd srcPt646(Point(2477.71, 170.875), 2);
+ connRef646->setSourceEndpoint(srcPt646);
+ ConnEnd dstPt646(Point(2477.71, 220.875), 1);
+ connRef646->setDestEndpoint(dstPt646);
+ connRef646->setRoutingType((ConnType)2);
+
+ ConnRef *connRef647 = new ConnRef(router, 647);
+ ConnEnd srcPt647(Point(2605.71, 301.75), 4);
+ connRef647->setSourceEndpoint(srcPt647);
+ ConnEnd dstPt647(Point(2547.71, 301.75), 8);
+ connRef647->setDestEndpoint(dstPt647);
+ connRef647->setRoutingType((ConnType)2);
+
+ ConnRef *connRef648 = new ConnRef(router, 648);
+ ConnEnd srcPt648(Point(2665.54, 170.875), 2);
+ connRef648->setSourceEndpoint(srcPt648);
+ ConnEnd dstPt648(Point(2665.54, 220.875), 1);
+ connRef648->setDestEndpoint(dstPt648);
+ connRef648->setRoutingType((ConnType)2);
+
+ ConnRef *connRef649 = new ConnRef(router, 649);
+ ConnEnd srcPt649(Point(2665.54, 387.7), 2);
+ connRef649->setSourceEndpoint(srcPt649);
+ ConnEnd dstPt649(Point(2665.54, 437.7), 1);
+ connRef649->setDestEndpoint(dstPt649);
+ connRef649->setRoutingType((ConnType)2);
+
+ ConnRef *connRef650 = new ConnRef(router, 650);
+ ConnEnd srcPt650(Point(2919.99, 387.7), 2);
+ connRef650->setSourceEndpoint(srcPt650);
+ ConnEnd dstPt650(Point(2919.99, 437.7), 1);
+ connRef650->setDestEndpoint(dstPt650);
+ connRef650->setRoutingType((ConnType)2);
+
+ ConnRef *connRef651 = new ConnRef(router, 651);
+ ConnEnd srcPt651(Point(3197.24, 301.75), 4);
+ connRef651->setSourceEndpoint(srcPt651);
+ ConnEnd dstPt651(Point(3139.24, 301.75), 8);
+ connRef651->setDestEndpoint(dstPt651);
+ connRef651->setRoutingType((ConnType)2);
+
+ ConnRef *connRef652 = new ConnRef(router, 652);
+ ConnEnd srcPt652(Point(3478.07, 864.5), 2);
+ connRef652->setSourceEndpoint(srcPt652);
+ ConnEnd dstPt652(Point(3478.07, 914.5), 1);
+ connRef652->setDestEndpoint(dstPt652);
+ connRef652->setRoutingType((ConnType)2);
+
+ ConnRef *connRef653 = new ConnRef(router, 653);
+ ConnEnd srcPt653(Point(3536.07, 1872.95), 4);
+ connRef653->setSourceEndpoint(srcPt653);
+ ConnEnd dstPt653(Point(3478.07, 1872.95), 8);
+ connRef653->setDestEndpoint(dstPt653);
+ connRef653->setRoutingType((ConnType)2);
+
+ ConnRef *connRef654 = new ConnRef(router, 654);
+ ConnEnd srcPt654(Point(3536.07, 2612.3), 4);
+ connRef654->setSourceEndpoint(srcPt654);
+ ConnEnd dstPt654(Point(3478.07, 2612.3), 8);
+ connRef654->setDestEndpoint(dstPt654);
+ connRef654->setRoutingType((ConnType)2);
+
+ ConnRef *connRef655 = new ConnRef(router, 655);
+ ConnEnd srcPt655(Point(2787.54, 3467.3), 1);
+ connRef655->setSourceEndpoint(srcPt655);
+ ConnEnd dstPt655(Point(2787.54, 3417.3), 2);
+ connRef655->setDestEndpoint(dstPt655);
+ connRef655->setRoutingType((ConnType)2);
+
+ ConnRef *connRef656 = new ConnRef(router, 656);
+ ConnEnd srcPt656(Point(2787.54, 3569.3), 1);
+ connRef656->setSourceEndpoint(srcPt656);
+ ConnEnd dstPt656(Point(2787.54, 3519.3), 2);
+ connRef656->setDestEndpoint(dstPt656);
+ connRef656->setRoutingType((ConnType)2);
+
+ ConnRef *connRef657 = new ConnRef(router, 657);
+ ConnEnd srcPt657(Point(3654.07, 2612.3), 4);
+ connRef657->setSourceEndpoint(srcPt657);
+ ConnEnd dstPt657(Point(3596.07, 2612.3), 8);
+ connRef657->setDestEndpoint(dstPt657);
+ connRef657->setRoutingType((ConnType)2);
+
+ ConnRef *connRef658 = new ConnRef(router, 658);
+ ConnEnd srcPt658(Point(3654.07, 914.5), 4);
+ connRef658->setSourceEndpoint(srcPt658);
+ ConnEnd dstPt658(Point(3596.07, 914.5), 8);
+ connRef658->setDestEndpoint(dstPt658);
+ connRef658->setRoutingType((ConnType)2);
+
+ ConnRef *connRef659 = new ConnRef(router, 659);
+ ConnEnd srcPt659(Point(3384.74, 914.5), 4);
+ connRef659->setSourceEndpoint(srcPt659);
+ ConnEnd dstPt659(Point(3326.74, 914.5), 8);
+ connRef659->setDestEndpoint(dstPt659);
+ connRef659->setRoutingType((ConnType)2);
+
+ ConnRef *connRef660 = new ConnRef(router, 660);
+ ConnEnd srcPt660(Point(3216.44, 2349.05), 2);
+ connRef660->setSourceEndpoint(srcPt660);
+ ConnEnd dstPt660(Point(3216.44, 2399.05), 1);
+ connRef660->setDestEndpoint(dstPt660);
+ connRef660->setRoutingType((ConnType)2);
+
+ ConnRef *connRef661 = new ConnRef(router, 661);
+ ConnEnd srcPt661(Point(3216.44, 2247.05), 2);
+ connRef661->setSourceEndpoint(srcPt661);
+ ConnEnd dstPt661(Point(3216.44, 2297.05), 1);
+ connRef661->setDestEndpoint(dstPt661);
+ connRef661->setRoutingType((ConnType)2);
+
+ ConnRef *connRef662 = new ConnRef(router, 662);
+ ConnEnd srcPt662(Point(2787.54, 2247.05), 2);
+ connRef662->setSourceEndpoint(srcPt662);
+ ConnEnd dstPt662(Point(2787.54, 2297.05), 1);
+ connRef662->setDestEndpoint(dstPt662);
+ connRef662->setRoutingType((ConnType)2);
+
+ ConnRef *connRef663 = new ConnRef(router, 663);
+ ConnEnd srcPt663(Point(3216.44, 864.5), 2);
+ connRef663->setSourceEndpoint(srcPt663);
+ ConnEnd dstPt663(Point(3216.44, 914.5), 1);
+ connRef663->setDestEndpoint(dstPt663);
+ connRef663->setRoutingType((ConnType)2);
+
+ ConnRef *connRef664 = new ConnRef(router, 664);
+ ConnEnd srcPt664(Point(2787.54, 2135.05), 2);
+ connRef664->setSourceEndpoint(srcPt664);
+ ConnEnd dstPt664(Point(2787.54, 2185.05), 1);
+ connRef664->setDestEndpoint(dstPt664);
+ connRef664->setRoutingType((ConnType)2);
+
+ ConnRef *connRef665 = new ConnRef(router, 665);
+ ConnEnd srcPt665(Point(2399.71, 2135.05), 2);
+ connRef665->setSourceEndpoint(srcPt665);
+ ConnEnd dstPt665(Point(2399.71, 2185.05), 1);
+ connRef665->setDestEndpoint(dstPt665);
+ connRef665->setRoutingType((ConnType)2);
+
+ ConnRef *connRef666 = new ConnRef(router, 666);
+ ConnEnd srcPt666(Point(1926.79, 2135.05), 2);
+ connRef666->setSourceEndpoint(srcPt666);
+ ConnEnd dstPt666(Point(1926.79, 2185.05), 1);
+ connRef666->setDestEndpoint(dstPt666);
+ connRef666->setRoutingType((ConnType)2);
+
+ ConnRef *connRef667 = new ConnRef(router, 667);
+ ConnEnd srcPt667(Point(711.958, 2135.05), 2);
+ connRef667->setSourceEndpoint(srcPt667);
+ ConnEnd dstPt667(Point(711.958, 2185.05), 1);
+ connRef667->setDestEndpoint(dstPt667);
+ connRef667->setRoutingType((ConnType)2);
+
+ ConnRef *connRef668 = new ConnRef(router, 668);
+ ConnEnd srcPt668(Point(1621.6, 2023.95), 4);
+ connRef668->setSourceEndpoint(srcPt668);
+ ConnEnd dstPt668(Point(1563.6, 2023.95), 8);
+ connRef668->setDestEndpoint(dstPt668);
+ connRef668->setRoutingType((ConnType)2);
+
+ ConnRef *connRef669 = new ConnRef(router, 669);
+ ConnEnd srcPt669(Point(711.958, 1328.24), 2);
+ connRef669->setSourceEndpoint(srcPt669);
+ ConnEnd dstPt669(Point(711.958, 1378.24), 1);
+ connRef669->setDestEndpoint(dstPt669);
+ connRef669->setRoutingType((ConnType)2);
+
+ ConnRef *connRef670 = new ConnRef(router, 670);
+ ConnEnd srcPt670(Point(769.958, 1440.24), 4);
+ connRef670->setSourceEndpoint(srcPt670);
+ ConnEnd dstPt670(Point(711.958, 1440.24), 8);
+ connRef670->setDestEndpoint(dstPt670);
+ connRef670->setRoutingType((ConnType)2);
+
+ ConnRef *connRef671 = new ConnRef(router, 671);
+ ConnEnd srcPt671(Point(1327.86, 1440.24), 8);
+ connRef671->setSourceEndpoint(srcPt671);
+ ConnEnd dstPt671(Point(1385.86, 1440.24), 4);
+ connRef671->setDestEndpoint(dstPt671);
+ connRef671->setRoutingType((ConnType)2);
+
+ ConnRef *connRef672 = new ConnRef(router, 672);
+ ConnEnd srcPt672(Point(610.333, 2427.3), 2);
+ connRef672->setSourceEndpoint(srcPt672);
+ ConnEnd dstPt672(Point(610.333, 2477.3), 1);
+ connRef672->setDestEndpoint(dstPt672);
+ connRef672->setRoutingType((ConnType)2);
+
+ ConnRef *connRef673 = new ConnRef(router, 673);
+ ConnEnd srcPt673(Point(668.333, 2612.3), 4);
+ connRef673->setSourceEndpoint(srcPt673);
+ ConnEnd dstPt673(Point(610.333, 2612.3), 8);
+ connRef673->setDestEndpoint(dstPt673);
+ connRef673->setRoutingType((ConnType)2);
+
+ ConnRef *connRef674 = new ConnRef(router, 674);
+ ConnEnd srcPt674(Point(610.333, 3121.3), 1);
+ connRef674->setSourceEndpoint(srcPt674);
+ ConnEnd dstPt674(Point(610.333, 3071.3), 2);
+ connRef674->setDestEndpoint(dstPt674);
+ connRef674->setRoutingType((ConnType)2);
+
+ ConnRef *connRef675 = new ConnRef(router, 675);
+ ConnEnd srcPt675(Point(1139.96, 2612.3), 8);
+ connRef675->setSourceEndpoint(srcPt675);
+ ConnEnd dstPt675(Point(1197.96, 2612.3), 4);
+ connRef675->setDestEndpoint(dstPt675);
+ connRef675->setRoutingType((ConnType)2);
+
+ ConnRef *connRef676 = new ConnRef(router, 676);
+ ConnEnd srcPt676(Point(1257.96, 2612.3), 8);
+ connRef676->setSourceEndpoint(srcPt676);
+ ConnEnd dstPt676(Point(1315.96, 2612.3), 4);
+ connRef676->setDestEndpoint(dstPt676);
+ connRef676->setRoutingType((ConnType)2);
+
+ ConnRef *connRef677 = new ConnRef(router, 677);
+ ConnEnd srcPt677(Point(1704.79, 2757.3), 4);
+ connRef677->setSourceEndpoint(srcPt677);
+ ConnEnd dstPt677(Point(1646.79, 2757.3), 8);
+ connRef677->setDestEndpoint(dstPt677);
+ connRef677->setRoutingType((ConnType)2);
+
+ ConnRef *connRef678 = new ConnRef(router, 678);
+ ConnEnd srcPt678(Point(1621.6, 2688.3), 4);
+ connRef678->setSourceEndpoint(srcPt678);
+ ConnEnd dstPt678(Point(1563.6, 2688.3), 8);
+ connRef678->setDestEndpoint(dstPt678);
+ connRef678->setRoutingType((ConnType)2);
+
+ ConnRef *connRef679 = new ConnRef(router, 679);
+ ConnEnd srcPt679(Point(1480.46, 2757.3), 8);
+ connRef679->setSourceEndpoint(srcPt679);
+ ConnEnd dstPt679(Point(1538.46, 2757.3), 4);
+ connRef679->setDestEndpoint(dstPt679);
+ connRef679->setRoutingType((ConnType)2);
+
+ ConnRef *connRef680 = new ConnRef(router, 680);
+ ConnEnd srcPt680(Point(1704.79, 3140.3), 4);
+ connRef680->setSourceEndpoint(srcPt680);
+ ConnEnd dstPt680(Point(1646.79, 3140.3), 8);
+ connRef680->setDestEndpoint(dstPt680);
+ connRef680->setRoutingType((ConnType)2);
+
+ ConnRef *connRef681 = new ConnRef(router, 681);
+ ConnEnd srcPt681(Point(1480.46, 3140.3), 8);
+ connRef681->setSourceEndpoint(srcPt681);
+ ConnEnd dstPt681(Point(1538.46, 3140.3), 4);
+ connRef681->setDestEndpoint(dstPt681);
+ connRef681->setRoutingType((ConnType)2);
+
+ ConnRef *connRef682 = new ConnRef(router, 682);
+ ConnEnd srcPt682(Point(1621.6, 3071.3), 4);
+ connRef682->setSourceEndpoint(srcPt682);
+ ConnEnd dstPt682(Point(1563.6, 3071.3), 8);
+ connRef682->setDestEndpoint(dstPt682);
+ connRef682->setRoutingType((ConnType)2);
+
+ ConnRef *connRef683 = new ConnRef(router, 683);
+ ConnEnd srcPt683(Point(2229.79, 2699.3), 2);
+ connRef683->setSourceEndpoint(srcPt683);
+ ConnEnd dstPt683(Point(2229.79, 2749.3), 1);
+ connRef683->setDestEndpoint(dstPt683);
+ connRef683->setRoutingType((ConnType)2);
+
+ ConnRef *connRef684 = new ConnRef(router, 684);
+ ConnEnd srcPt684(Point(2392.71, 2612.3), 4);
+ connRef684->setSourceEndpoint(srcPt684);
+ ConnEnd dstPt684(Point(2334.71, 2612.3), 8);
+ connRef684->setDestEndpoint(dstPt684);
+ connRef684->setRoutingType((ConnType)2);
+
+ ConnRef *connRef685 = new ConnRef(router, 685);
+ ConnEnd srcPt685(Point(2477.71, 3005.3), 1);
+ connRef685->setSourceEndpoint(srcPt685);
+ ConnEnd dstPt685(Point(2477.71, 2955.3), 2);
+ connRef685->setDestEndpoint(dstPt685);
+ connRef685->setRoutingType((ConnType)2);
+
+ ConnRef *connRef686 = new ConnRef(router, 686);
+ ConnEnd srcPt686(Point(792.958, 2477.3), 8);
+ connRef686->setSourceEndpoint(srcPt686);
+ ConnEnd dstPt686(Point(850.958, 2477.3), 4);
+ connRef686->setDestEndpoint(dstPt686);
+ connRef686->setRoutingType((ConnType)2);
+
+ ConnRef *connRef687 = new ConnRef(router, 687);
+ ConnEnd srcPt687(Point(958.958, 2427.3), 2);
+ connRef687->setSourceEndpoint(srcPt687);
+ ConnEnd dstPt687(Point(958.958, 2477.3), 1);
+ connRef687->setDestEndpoint(dstPt687);
+ connRef687->setRoutingType((ConnType)2);
+
+ ConnRef *connRef688 = new ConnRef(router, 688);
+ ConnEnd srcPt688(Point(934.358, 2612.3), 4);
+ connRef688->setSourceEndpoint(srcPt688);
+ ConnEnd dstPt688(Point(876.358, 2612.3), 8);
+ connRef688->setDestEndpoint(dstPt688);
+ connRef688->setRoutingType((ConnType)2);
+
+ ConnRef *connRef689 = new ConnRef(router, 689);
+ ConnEnd srcPt689(Point(934.358, 2757.3), 4);
+ connRef689->setSourceEndpoint(srcPt689);
+ ConnEnd dstPt689(Point(876.358, 2757.3), 8);
+ connRef689->setDestEndpoint(dstPt689);
+ connRef689->setRoutingType((ConnType)2);
+
+ ConnRef *connRef690 = new ConnRef(router, 690);
+ ConnEnd srcPt690(Point(876.358, 3021.3), 2);
+ connRef690->setSourceEndpoint(srcPt690);
+ ConnEnd dstPt690(Point(876.358, 3071.3), 1);
+ connRef690->setDestEndpoint(dstPt690);
+ connRef690->setRoutingType((ConnType)2);
+
+ ConnRef *connRef691 = new ConnRef(router, 691);
+ ConnEnd srcPt691(Point(2171.79, 991.643), 2);
+ connRef691->setSourceEndpoint(srcPt691);
+ ConnEnd dstPt691(Point(2171.79, 1041.64), 1);
+ connRef691->setDestEndpoint(dstPt691);
+ connRef691->setRoutingType((ConnType)2);
+
+ ConnRef *connRef692 = new ConnRef(router, 692);
+ ConnEnd srcPt692(Point(2477.71, 991.643), 2);
+ connRef692->setSourceEndpoint(srcPt692);
+ ConnEnd dstPt692(Point(2477.71, 1041.64), 1);
+ connRef692->setDestEndpoint(dstPt692);
+ connRef692->setRoutingType((ConnType)2);
+
+ ConnRef *connRef693 = new ConnRef(router, 693);
+ ConnEnd srcPt693(Point(2241.79, 1193.64), 1);
+ connRef693->setSourceEndpoint(srcPt693);
+ ConnEnd dstPt693(Point(2241.79, 1143.64), 2);
+ connRef693->setDestEndpoint(dstPt693);
+ connRef693->setRoutingType((ConnType)2);
+
+ ConnRef *connRef694 = new ConnRef(router, 694);
+ ConnEnd srcPt694(Point(1769.79, 456.5), 2);
+ connRef694->setSourceEndpoint(srcPt694);
+ ConnEnd dstPt694(Point(1769.79, 506.5), 1);
+ connRef694->setDestEndpoint(dstPt694);
+ connRef694->setRoutingType((ConnType)2);
+
+ ConnRef *connRef695 = new ConnRef(router, 695);
+ ConnEnd srcPt695(Point(1769.79, 627.5), 1);
+ connRef695->setSourceEndpoint(srcPt695);
+ ConnEnd dstPt695(Point(1769.79, 577.5), 2);
+ connRef695->setDestEndpoint(dstPt695);
+ connRef695->setRoutingType((ConnType)2);
+
+ ConnRef *connRef696 = new ConnRef(router, 696);
+ ConnEnd srcPt696(Point(2099.79, 1276.24), 4);
+ connRef696->setSourceEndpoint(srcPt696);
+ ConnEnd dstPt696(Point(2041.79, 1276.24), 8);
+ connRef696->setDestEndpoint(dstPt696);
+ connRef696->setRoutingType((ConnType)2);
+
+ ConnRef *connRef697 = new ConnRef(router, 697);
+ ConnEnd srcPt697(Point(381, 1125.24), 4);
+ connRef697->setSourceEndpoint(srcPt697);
+ ConnEnd dstPt697(Point(323, 1125.24), 8);
+ connRef697->setDestEndpoint(dstPt697);
+ connRef697->setRoutingType((ConnType)2);
+
+ ConnRef *connRef698 = new ConnRef(router, 698);
+ ConnEnd srcPt698(Point(223, 1143.64), 8);
+ connRef698->setSourceEndpoint(srcPt698);
+ ConnEnd dstPt698(Point(281, 1143.64), 4);
+ connRef698->setDestEndpoint(dstPt698);
+ connRef698->setRoutingType((ConnType)2);
+
+ ConnRef *connRef699 = new ConnRef(router, 699);
+ ConnEnd srcPt699(Point(523.333, 1143.64), 4);
+ connRef699->setSourceEndpoint(srcPt699);
+ ConnEnd dstPt699(Point(465.333, 1143.64), 8);
+ connRef699->setDestEndpoint(dstPt699);
+ connRef699->setRoutingType((ConnType)2);
+
+ ConnRef *connRef700 = new ConnRef(router, 700);
+ ConnEnd srcPt700(Point(1782.79, 3351.3), 2);
+ connRef700->setSourceEndpoint(srcPt700);
+ ConnEnd dstPt700(Point(1782.79, 3401.3), 1);
+ connRef700->setDestEndpoint(dstPt700);
+ connRef700->setRoutingType((ConnType)2);
+
+ ConnRef *connRef701 = new ConnRef(router, 701);
+ ConnEnd srcPt701(Point(1782.79, 3147.3), 2);
+ connRef701->setSourceEndpoint(srcPt701);
+ ConnEnd dstPt701(Point(1782.79, 3197.3), 1);
+ connRef701->setDestEndpoint(dstPt701);
+ connRef701->setRoutingType((ConnType)2);
+
+ ConnRef *connRef702 = new ConnRef(router, 702);
+ ConnEnd srcPt702(Point(2775.54, 73.5), 2);
+ connRef702->setSourceEndpoint(srcPt702);
+ ConnEnd dstPt702(Point(2775.54, 123.5), 1);
+ connRef702->setDestEndpoint(dstPt702);
+ connRef702->setRoutingType((ConnType)2);
+
+ ConnRef *connRef703 = new ConnRef(router, 703);
+ ConnEnd srcPt703(Point(1953.79, 2895.3), 2);
+ connRef703->setSourceEndpoint(srcPt703);
+ ConnEnd dstPt703(Point(1953.79, 2945.3), 1);
+ connRef703->setDestEndpoint(dstPt703);
+ connRef703->setRoutingType((ConnType)2);
+
+ ConnRef *connRef704 = new ConnRef(router, 704);
+ ConnEnd srcPt704(Point(2171.79, 170.875), 2);
+ connRef704->setSourceEndpoint(srcPt704);
+ ConnEnd dstPt704(Point(2171.79, 220.875), 1);
+ connRef704->setDestEndpoint(dstPt704);
+ connRef704->setRoutingType((ConnType)2);
+
+ ConnRef *connRef705 = new ConnRef(router, 705);
+ ConnEnd srcPt705(Point(1926.79, 1822.95), 2);
+ connRef705->setSourceEndpoint(srcPt705);
+ ConnEnd dstPt705(Point(1926.79, 1872.95), 1);
+ connRef705->setDestEndpoint(dstPt705);
+ connRef705->setRoutingType((ConnType)2);
+
+ ConnRef *connRef706 = new ConnRef(router, 706);
+ ConnEnd srcPt706(Point(1464.46, 1822.95), 2);
+ connRef706->setSourceEndpoint(srcPt706);
+ ConnEnd dstPt706(Point(1464.46, 1872.95), 1);
+ connRef706->setDestEndpoint(dstPt706);
+ connRef706->setRoutingType((ConnType)2);
+
+ ConnRef *connRef707 = new ConnRef(router, 707);
+ ConnEnd srcPt707(Point(972.958, 1822.95), 2);
+ connRef707->setSourceEndpoint(srcPt707);
+ ConnEnd dstPt707(Point(972.958, 1872.95), 1);
+ connRef707->setDestEndpoint(dstPt707);
+ connRef707->setRoutingType((ConnType)2);
+
+ ConnRef *connRef708 = new ConnRef(router, 708);
+ ConnEnd srcPt708(Point(3031.24, 301.75), 8);
+ connRef708->setSourceEndpoint(srcPt708);
+ ConnEnd dstPt708(Point(3089.24, 301.75), 4);
+ connRef708->setDestEndpoint(dstPt708);
+ connRef708->setRoutingType((ConnType)2);
+
+ ConnRef *connRef709 = new ConnRef(router, 709);
+ ConnEnd srcPt709(Point(2099.79, 2749.3), 4);
+ connRef709->setSourceEndpoint(srcPt709);
+ ConnEnd dstPt709(Point(2041.79, 2749.3), 8);
+ connRef709->setDestEndpoint(dstPt709);
+ connRef709->setRoutingType((ConnType)2);
+
+ ConnRef *connRef710 = new ConnRef(router, 710);
+ ConnEnd srcPt710(Point(1919.79, 2749.3), 4);
+ connRef710->setSourceEndpoint(srcPt710);
+ ConnEnd dstPt710(Point(1861.79, 2749.3), 8);
+ connRef710->setDestEndpoint(dstPt710);
+ connRef710->setRoutingType((ConnType)2);
+
+ ConnRef *connRef711 = new ConnRef(router, 711);
+ ConnEnd srcPt711(Point(1131.18, 708.5), 4);
+ connRef711->setSourceEndpoint(srcPt711);
+ ConnEnd dstPt711(Point(1073.18, 708.5), 8);
+ connRef711->setDestEndpoint(dstPt711);
+ connRef711->setRoutingType((ConnType)2);
+
+ ConnRef *connRef712 = new ConnRef(router, 712);
+ ConnEnd srcPt712(Point(1229.46, 519.7), 2);
+ connRef712->setSourceEndpoint(srcPt712);
+ ConnEnd dstPt712(Point(1229.46, 569.7), 1);
+ connRef712->setDestEndpoint(dstPt712);
+ connRef712->setRoutingType((ConnType)2);
+
+ ConnRef *connRef713 = new ConnRef(router, 713);
+ ConnEnd srcPt713(Point(934.358, 569.7), 4);
+ connRef713->setSourceEndpoint(srcPt713);
+ ConnEnd dstPt713(Point(876.358, 569.7), 8);
+ connRef713->setDestEndpoint(dstPt713);
+ connRef713->setRoutingType((ConnType)2);
+
+ ConnRef *connRef714 = new ConnRef(router, 714);
+ ConnEnd srcPt714(Point(462.333, 512.5), 4);
+ connRef714->setSourceEndpoint(srcPt714);
+ ConnEnd dstPt714(Point(404.333, 512.5), 8);
+ connRef714->setDestEndpoint(dstPt714);
+ connRef714->setRoutingType((ConnType)2);
+
+ ConnRef *connRef715 = new ConnRef(router, 715);
+ ConnEnd srcPt715(Point(2477.71, 2814.3), 2);
+ connRef715->setSourceEndpoint(srcPt715);
+ ConnEnd dstPt715(Point(2477.71, 2864.3), 1);
+ connRef715->setDestEndpoint(dstPt715);
+ connRef715->setRoutingType((ConnType)2);
+
+ ConnRef *connRef716 = new ConnRef(router, 716);
+ ConnEnd srcPt716(Point(2910.99, 2562.3), 2);
+ connRef716->setSourceEndpoint(srcPt716);
+ ConnEnd dstPt716(Point(2910.99, 2612.3), 1);
+ connRef716->setDestEndpoint(dstPt716);
+ connRef716->setRoutingType((ConnType)2);
+
+ ConnRef *connRef717 = new ConnRef(router, 717);
+ ConnEnd srcPt717(Point(3300.24, 2612.3), 4);
+ connRef717->setSourceEndpoint(srcPt717);
+ ConnEnd dstPt717(Point(3242.24, 2612.3), 8);
+ connRef717->setDestEndpoint(dstPt717);
+ connRef717->setRoutingType((ConnType)2);
+
+ ConnRef *connRef718 = new ConnRef(router, 718);
+ ConnEnd srcPt718(Point(2884.99, 3021.3), 2);
+ connRef718->setSourceEndpoint(srcPt718);
+ ConnEnd dstPt718(Point(2884.99, 3071.3), 1);
+ connRef718->setDestEndpoint(dstPt718);
+ connRef718->setRoutingType((ConnType)2);
+
+ ConnRef *connRef719 = new ConnRef(router, 719);
+ ConnEnd srcPt719(Point(3384.74, 3071.3), 4);
+ connRef719->setSourceEndpoint(srcPt719);
+ ConnEnd dstPt719(Point(3326.74, 3071.3), 8);
+ connRef719->setDestEndpoint(dstPt719);
+ connRef719->setRoutingType((ConnType)2);
+
+ ConnRef *connRef720 = new ConnRef(router, 720);
+ ConnEnd srcPt720(Point(1782.79, 3249.3), 2);
+ connRef720->setSourceEndpoint(srcPt720);
+ ConnEnd dstPt720(Point(1782.79, 3299.3), 1);
+ connRef720->setDestEndpoint(dstPt720);
+ connRef720->setRoutingType((ConnType)2);
+
+ ConnRef *connRef721 = new ConnRef(router, 721);
+ ConnEnd srcPt721(Point(1563.6, 2399.05), 15);
+ connRef721->setSourceEndpoint(srcPt721);
+ ConnEnd dstPt721(Point(1197.96, 2597.3), 1);
+ connRef721->setDestEndpoint(dstPt721);
+ connRef721->setRoutingType((ConnType)2);
+
+ ConnRef *connRef722 = new ConnRef(router, 722);
+ ConnEnd srcPt722(Point(1563.6, 2399.05), 15);
+ connRef722->setSourceEndpoint(srcPt722);
+ ConnEnd dstPt722(Point(1315.96, 2597.3), 1);
+ connRef722->setDestEndpoint(dstPt722);
+ connRef722->setRoutingType((ConnType)2);
+
+ ConnRef *connRef723 = new ConnRef(router, 723);
+ ConnEnd srcPt723(Point(1563.6, 2399.05), 15);
+ connRef723->setSourceEndpoint(srcPt723);
+ ConnEnd dstPt723(Point(1563.6, 2673.3), 1);
+ connRef723->setDestEndpoint(dstPt723);
+ connRef723->setRoutingType((ConnType)2);
+
+ ConnRef *connRef724 = new ConnRef(router, 724);
+ ConnEnd srcPt724(Point(1563.6, 2399.05), 15);
+ connRef724->setSourceEndpoint(srcPt724);
+ ConnEnd dstPt724(Point(1538.46, 2742.3), 1);
+ connRef724->setDestEndpoint(dstPt724);
+ connRef724->setRoutingType((ConnType)2);
+
+ ConnRef *connRef725 = new ConnRef(router, 725);
+ ConnEnd srcPt725(Point(1523.87, 1631.77), 15);
+ connRef725->setSourceEndpoint(srcPt725);
+ ConnEnd dstPt725(Point(1782.79, 1569.64), 15);
+ connRef725->setDestEndpoint(dstPt725);
+ connRef725->setRoutingType((ConnType)2);
+ */
+
+ ConnRef *connRef726 = new ConnRef(router, 726);
+ ConnEnd srcPt726(Point(2111.79, 1884.95), 15);
+ connRef726->setSourceEndpoint(srcPt726);
+ ConnEnd dstPt726(Point(2241.79, 1872.95), 15);
+ connRef726->setDestEndpoint(dstPt726);
+ connRef726->setRoutingType((ConnType)2);
+
+ /*
+ ConnRef *connRef727 = new ConnRef(router, 727);
+ ConnEnd srcPt727(Point(2189.79, 1733.77), 15);
+ connRef727->setSourceEndpoint(srcPt727);
+ ConnEnd dstPt727(Point(2241.79, 1872.95), 15);
+ connRef727->setDestEndpoint(dstPt727);
+ connRef727->setRoutingType((ConnType)2);
+
+ ConnRef *connRef728 = new ConnRef(router, 728);
+ ConnEnd srcPt728(Point(1315.96, 312.5), 15);
+ connRef728->setSourceEndpoint(srcPt728);
+ ConnEnd dstPt728(Point(1426.46, 227), 2);
+ connRef728->setDestEndpoint(dstPt728);
+ connRef728->setRoutingType((ConnType)2);
+
+ ConnRef *connRef729 = new ConnRef(router, 729);
+ ConnEnd srcPt729(Point(2968.99, 1731.64), 15);
+ connRef729->setSourceEndpoint(srcPt729);
+ ConnEnd dstPt729(Point(3081.74, 1597.44), 2);
+ connRef729->setDestEndpoint(dstPt729);
+ connRef729->setRoutingType((ConnType)2);
+
+ ConnRef *connRef730 = new ConnRef(router, 730);
+ ConnEnd srcPt730(Point(3119.9, 1872.95), 15);
+ connRef730->setSourceEndpoint(srcPt730);
+ ConnEnd dstPt730(Point(3121.74, 1597.44), 2);
+ connRef730->setDestEndpoint(dstPt730);
+ connRef730->setRoutingType((ConnType)2);
+
+ ConnRef *connRef731 = new ConnRef(router, 731);
+ ConnEnd srcPt731(Point(2041.79, 312.5), 15);
+ connRef731->setSourceEndpoint(srcPt731);
+ ConnEnd dstPt731(Point(1907.3, 385), 4);
+ connRef731->setDestEndpoint(dstPt731);
+ connRef731->setRoutingType((ConnType)2);
+
+ ConnRef *connRef732 = new ConnRef(router, 732);
+ ConnEnd srcPt732(Point(1563.6, 978.5), 15);
+ connRef732->setSourceEndpoint(srcPt732);
+ ConnEnd dstPt732(Point(1671.79, 1204.74), 4);
+ connRef732->setDestEndpoint(dstPt732);
+ connRef732->setRoutingType((ConnType)2);
+
+ ConnRef *connRef733 = new ConnRef(router, 733);
+ ConnEnd srcPt733(Point(2041.79, 569.7), 15);
+ connRef733->setSourceEndpoint(srcPt733);
+ ConnEnd dstPt733(Point(1918.79, 1204.74), 8);
+ connRef733->setDestEndpoint(dstPt733);
+ connRef733->setRoutingType((ConnType)2);
+
+ ConnRef *connRef734 = new ConnRef(router, 734);
+ ConnEnd srcPt734(Point(1563.6, 3413.3), 15);
+ connRef734->setSourceEndpoint(srcPt734);
+ ConnEnd dstPt734(Point(1517.1, 2886.8), 8);
+ connRef734->setDestEndpoint(dstPt734);
+ connRef734->setRoutingType((ConnType)2);
+
+ ConnRef *connRef735 = new ConnRef(router, 735);
+ ConnEnd srcPt735(Point(390.333, 2399.05), 15);
+ connRef735->setSourceEndpoint(srcPt735);
+ ConnEnd dstPt735(Point(1375.6, 2804.8), 1);
+ connRef735->setDestEndpoint(dstPt735);
+ connRef735->setRoutingType((ConnType)2);
+
+ ConnRef *connRef736 = new ConnRef(router, 736);
+ ConnEnd srcPt736(Point(610.333, 833.833), 15);
+ connRef736->setSourceEndpoint(srcPt736);
+ ConnEnd dstPt736(Point(1233.46, 381), 2);
+ connRef736->setDestEndpoint(dstPt736);
+ connRef736->setRoutingType((ConnType)2);
+
+ ConnRef *connRef737 = new ConnRef(router, 737);
+ ConnEnd srcPt737(Point(610.333, 833.833), 15);
+ connRef737->setSourceEndpoint(srcPt737);
+ ConnEnd dstPt737(Point(1295.36, 908), 1);
+ connRef737->setDestEndpoint(dstPt737);
+ connRef737->setRoutingType((ConnType)2);
+
+ ConnRef *connRef738 = new ConnRef(router, 738);
+ ConnEnd srcPt738(Point(2547.71, 1569.64), 15);
+ connRef738->setSourceEndpoint(srcPt738);
+ ConnEnd dstPt738(Point(2712.49, 1519.94), 4);
+ connRef738->setDestEndpoint(dstPt738);
+ connRef738->setRoutingType((ConnType)2);
+
+ ConnRef *connRef739 = new ConnRef(router, 739);
+ ConnEnd srcPt739(Point(2547.71, 2945.3), 15);
+ connRef739->setSourceEndpoint(srcPt739);
+ ConnEnd dstPt739(Point(2607.04, 3118.8), 1);
+ connRef739->setDestEndpoint(dstPt739);
+ connRef739->setRoutingType((ConnType)2);
+
+ ConnRef *connRef740 = new ConnRef(router, 740);
+ ConnEnd srcPt740(Point(2547.71, 2945.3), 15);
+ connRef740->setSourceEndpoint(srcPt740);
+ ConnEnd dstPt740(Point(2630.04, 2873.8), 4);
+ connRef740->setDestEndpoint(dstPt740);
+ connRef740->setRoutingType((ConnType)2);
+
+ ConnRef *connRef741 = new ConnRef(router, 741);
+ ConnEnd srcPt741(Point(1563.6, 2399.05), 15);
+ connRef741->setSourceEndpoint(srcPt741);
+ ConnEnd dstPt741(Point(1818.33, 2300.88), 8);
+ connRef741->setDestEndpoint(dstPt741);
+ connRef741->setRoutingType((ConnType)2);
+ */
+
+ router->processTransaction();
+ router->outputDiagram("output/finalSegmentNudging1");
+
+ bool optimisedForConnectorType = true;
+ int crossings = router->existsCrossings(optimisedForConnectorType);
+
+ delete router;
+ return (crossings > 0) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging2.cpp b/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging2.cpp
new file mode 100644
index 0000000..712a0dd
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging2.cpp
@@ -0,0 +1,397 @@
+// KEGG -> SBGN example #072
+//
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+
+ /*
+ Polygon poly1(4);
+ poly1.ps[0] = Point(541.101, 45);
+ poly1.ps[1] = Point(541.101, 89);
+ poly1.ps[2] = Point(274.101, 89);
+ poly1.ps[3] = Point(274.101, 45);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(445.857, 111);
+ poly2.ps[1] = Point(445.857, 276);
+ poly2.ps[2] = Point(309.857, 276);
+ poly2.ps[3] = Point(309.857, 111);
+ new ShapeRef(router, poly2, 2);
+ */
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(328, 368);
+ poly3.ps[1] = Point(328, 400);
+ poly3.ps[2] = Point(308, 400);
+ poly3.ps[3] = Point(308, 368);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(328, 492);
+ poly4.ps[1] = Point(328, 524);
+ poly4.ps[2] = Point(308, 524);
+ poly4.ps[3] = Point(308, 492);
+ new ShapeRef(router, poly4, 4);
+
+ /*
+ Polygon poly5(4);
+ poly5.ps[0] = Point(328, 629);
+ poly5.ps[1] = Point(328, 661);
+ poly5.ps[2] = Point(308, 661);
+ poly5.ps[3] = Point(308, 629);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(511.857, 308);
+ poly6.ps[1] = Point(511.857, 328);
+ poly6.ps[2] = Point(479.857, 328);
+ poly6.ps[3] = Point(479.857, 308);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(518.357, 629);
+ poly7.ps[1] = Point(518.357, 661);
+ poly7.ps[2] = Point(498.357, 661);
+ poly7.ps[3] = Point(498.357, 629);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(827.857, 210);
+ poly8.ps[1] = Point(827.857, 270);
+ poly8.ps[2] = Point(545.857, 270);
+ poly8.ps[3] = Point(545.857, 210);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(805.357, 409);
+ poly9.ps[1] = Point(805.357, 469);
+ poly9.ps[2] = Point(572.357, 469);
+ poly9.ps[3] = Point(572.357, 409);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(157.5, 426);
+ poly10.ps[1] = Point(157.5, 458);
+ poly10.ps[2] = Point(137.5, 458);
+ poly10.ps[3] = Point(137.5, 426);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(276, 597.655);
+ poly11.ps[1] = Point(276, 657.655);
+ poly11.ps[2] = Point(45, 657.655);
+ poly11.ps[3] = Point(45, 597.655);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(349, 287);
+ poly12.ps[1] = Point(349, 349);
+ poly12.ps[2] = Point(287, 349);
+ poly12.ps[3] = Point(287, 287);
+ new ShapeRef(router, poly12, 12);
+ */
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(349, 415);
+ poly13.ps[1] = Point(349, 477);
+ poly13.ps[2] = Point(287, 477);
+ poly13.ps[3] = Point(287, 415);
+ new ShapeRef(router, poly13, 13);
+
+ /*
+ Polygon poly14(4);
+ poly14.ps[0] = Point(349, 676);
+ poly14.ps[1] = Point(349, 738);
+ poly14.ps[2] = Point(287, 738);
+ poly14.ps[3] = Point(287, 676);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(349, 552);
+ poly15.ps[1] = Point(349, 614);
+ poly15.ps[2] = Point(287, 614);
+ poly15.ps[3] = Point(287, 552);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(539.357, 676);
+ poly16.ps[1] = Point(539.357, 738);
+ poly16.ps[2] = Point(477.357, 738);
+ poly16.ps[3] = Point(477.357, 676);
+ new ShapeRef(router, poly16, 16);
+ */
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(640.857, 336);
+ poly17.ps[1] = Point(640.857, 398);
+ poly17.ps[2] = Point(578.857, 398);
+ poly17.ps[3] = Point(578.857, 336);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(404, 364);
+ poly18.ps[1] = Point(404, 404);
+ poly18.ps[2] = Point(328, 404);
+ poly18.ps[3] = Point(328, 364);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(404, 488);
+ poly19.ps[1] = Point(404, 528);
+ poly19.ps[2] = Point(328, 528);
+ poly19.ps[3] = Point(328, 488);
+ new ShapeRef(router, poly19, 19);
+
+ /*
+ Polygon poly20(4);
+ poly20.ps[0] = Point(404, 625);
+ poly20.ps[1] = Point(404, 665);
+ poly20.ps[2] = Point(328, 665);
+ poly20.ps[3] = Point(328, 625);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(523.857, 248);
+ poly21.ps[1] = Point(523.857, 308);
+ poly21.ps[2] = Point(467.857, 308);
+ poly21.ps[3] = Point(467.857, 248);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(594.357, 625);
+ poly22.ps[1] = Point(594.357, 665);
+ poly22.ps[2] = Point(518.357, 665);
+ poly22.ps[3] = Point(518.357, 625);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(137.5, 422);
+ poly23.ps[1] = Point(137.5, 462);
+ poly23.ps[2] = Point(61.5, 462);
+ poly23.ps[3] = Point(61.5, 422);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(398.357, 216.5);
+ poly24.ps[1] = Point(398.357, 276.5);
+ poly24.ps[2] = Point(358.357, 276.5);
+ poly24.ps[3] = Point(358.357, 216.5);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(606.357, 220.5);
+ poly25.ps[1] = Point(606.357, 260.5);
+ poly25.ps[2] = Point(546.357, 260.5);
+ poly25.ps[3] = Point(546.357, 220.5);
+ new ShapeRef(router, poly25, 25);
+ */
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(632.857, 419.5);
+ poly26.ps[1] = Point(632.857, 459.5);
+ poly26.ps[2] = Point(572.857, 459.5);
+ poly26.ps[3] = Point(572.857, 419.5);
+ new ShapeRef(router, poly26, 26);
+
+ /*
+ Polygon poly27(4);
+ poly27.ps[0] = Point(276.5, 608.155);
+ poly27.ps[1] = Point(276.5, 648.155);
+ poly27.ps[2] = Point(216.5, 648.155);
+ poly27.ps[3] = Point(216.5, 608.155);
+ new ShapeRef(router, poly27, 27);
+
+ ConnRef *connRef28 = new ConnRef(router, 28);
+ ConnEnd srcPt28(Point(318, 399), 2);
+ connRef28->setSourceEndpoint(srcPt28);
+ ConnEnd dstPt28(Point(318, 446), 15);
+ connRef28->setDestEndpoint(dstPt28);
+ connRef28->setRoutingType((ConnType)2);
+
+ ConnRef *connRef29 = new ConnRef(router, 29);
+ ConnEnd srcPt29(Point(318, 523), 2);
+ connRef29->setSourceEndpoint(srcPt29);
+ ConnEnd dstPt29(Point(318, 583), 15);
+ connRef29->setDestEndpoint(dstPt29);
+ connRef29->setRoutingType((ConnType)2);
+ */
+
+ ConnRef *connRef30 = new ConnRef(router, 30);
+ ConnEnd srcPt30(Point(318, 523), 2);
+ connRef30->setSourceEndpoint(srcPt30);
+ ConnEnd dstPt30(Point(609.857, 367), 15);
+ connRef30->setDestEndpoint(dstPt30);
+ connRef30->setRoutingType((ConnType)2);
+
+ /*
+ ConnRef *connRef31 = new ConnRef(router, 31);
+ ConnEnd srcPt31(Point(318, 660), 2);
+ connRef31->setSourceEndpoint(srcPt31);
+ ConnEnd dstPt31(Point(318, 707), 15);
+ connRef31->setDestEndpoint(dstPt31);
+ connRef31->setRoutingType((ConnType)2);
+
+ ConnRef *connRef32 = new ConnRef(router, 32);
+ ConnEnd srcPt32(Point(480.857, 318), 4);
+ connRef32->setSourceEndpoint(srcPt32);
+ ConnEnd dstPt32(Point(318, 318), 15);
+ connRef32->setDestEndpoint(dstPt32);
+ connRef32->setRoutingType((ConnType)2);
+
+ ConnRef *connRef33 = new ConnRef(router, 33);
+ ConnEnd srcPt33(Point(510.857, 318), 8);
+ connRef33->setSourceEndpoint(srcPt33);
+ ConnEnd dstPt33(Point(609.857, 367), 15);
+ connRef33->setDestEndpoint(dstPt33);
+ connRef33->setRoutingType((ConnType)2);
+
+ ConnRef *connRef34 = new ConnRef(router, 34);
+ ConnEnd srcPt34(Point(508.357, 630), 1);
+ connRef34->setSourceEndpoint(srcPt34);
+ ConnEnd dstPt34(Point(318, 583), 15);
+ connRef34->setDestEndpoint(dstPt34);
+ connRef34->setRoutingType((ConnType)2);
+
+ ConnRef *connRef35 = new ConnRef(router, 35);
+ ConnEnd srcPt35(Point(147.5, 427), 1);
+ connRef35->setSourceEndpoint(srcPt35);
+ ConnEnd dstPt35(Point(318, 318), 15);
+ connRef35->setDestEndpoint(dstPt35);
+ connRef35->setRoutingType((ConnType)2);
+
+ ConnRef *connRef36 = new ConnRef(router, 36);
+ ConnEnd srcPt36(Point(147.5, 457), 2);
+ connRef36->setSourceEndpoint(srcPt36);
+ ConnEnd dstPt36(Point(318, 583), 15);
+ connRef36->setDestEndpoint(dstPt36);
+ connRef36->setRoutingType((ConnType)2);
+
+ ConnRef *connRef37 = new ConnRef(router, 37);
+ ConnEnd srcPt37(Point(318, 446), 15);
+ connRef37->setSourceEndpoint(srcPt37);
+ ConnEnd dstPt37(Point(318, 493), 1);
+ connRef37->setDestEndpoint(dstPt37);
+ connRef37->setRoutingType((ConnType)2);
+
+ ConnRef *connRef38 = new ConnRef(router, 38);
+ ConnEnd srcPt38(Point(508.357, 660), 2);
+ connRef38->setSourceEndpoint(srcPt38);
+ ConnEnd dstPt38(Point(508.357, 707), 15);
+ connRef38->setDestEndpoint(dstPt38);
+ connRef38->setRoutingType((ConnType)2);
+
+ ConnRef *connRef39 = new ConnRef(router, 39);
+ ConnEnd srcPt39(Point(376, 384), 4);
+ connRef39->setSourceEndpoint(srcPt39);
+ ConnEnd dstPt39(Point(318, 384), 8);
+ connRef39->setDestEndpoint(dstPt39);
+ connRef39->setRoutingType((ConnType)2);
+
+ ConnRef *connRef40 = new ConnRef(router, 40);
+ ConnEnd srcPt40(Point(376, 508), 4);
+ connRef40->setSourceEndpoint(srcPt40);
+ ConnEnd dstPt40(Point(318, 508), 8);
+ connRef40->setDestEndpoint(dstPt40);
+ connRef40->setRoutingType((ConnType)2);
+
+ ConnRef *connRef41 = new ConnRef(router, 41);
+ ConnEnd srcPt41(Point(376, 645), 4);
+ connRef41->setSourceEndpoint(srcPt41);
+ ConnEnd dstPt41(Point(318, 645), 8);
+ connRef41->setDestEndpoint(dstPt41);
+ connRef41->setRoutingType((ConnType)2);
+
+ ConnRef *connRef42 = new ConnRef(router, 42);
+ ConnEnd srcPt42(Point(495.857, 268), 2);
+ connRef42->setSourceEndpoint(srcPt42);
+ ConnEnd dstPt42(Point(495.857, 318), 1);
+ connRef42->setDestEndpoint(dstPt42);
+ connRef42->setRoutingType((ConnType)2);
+
+ ConnRef *connRef43 = new ConnRef(router, 43);
+ ConnEnd srcPt43(Point(566.357, 645), 4);
+ connRef43->setSourceEndpoint(srcPt43);
+ ConnEnd dstPt43(Point(508.357, 645), 8);
+ connRef43->setDestEndpoint(dstPt43);
+ connRef43->setRoutingType((ConnType)2);
+
+ ConnRef *connRef44 = new ConnRef(router, 44);
+ ConnEnd srcPt44(Point(89.5, 442), 8);
+ connRef44->setSourceEndpoint(srcPt44);
+ ConnEnd dstPt44(Point(147.5, 442), 4);
+ connRef44->setDestEndpoint(dstPt44);
+ connRef44->setRoutingType((ConnType)2);
+
+ ConnRef *connRef45 = new ConnRef(router, 45);
+ ConnEnd srcPt45(Point(318, 318), 15);
+ connRef45->setSourceEndpoint(srcPt45);
+ ConnEnd dstPt45(Point(318, 369), 1);
+ connRef45->setDestEndpoint(dstPt45);
+ connRef45->setRoutingType((ConnType)2);
+ */
+
+ ConnRef *connRef46 = new ConnRef(router, 46);
+ ConnEnd srcPt46(Point(609.857, 367), 15);
+ connRef46->setSourceEndpoint(srcPt46);
+ ConnEnd dstPt46(Point(318, 369), 1);
+ connRef46->setDestEndpoint(dstPt46);
+ connRef46->setRoutingType((ConnType)2);
+
+ /*
+ ConnRef *connRef47 = new ConnRef(router, 47);
+ ConnEnd srcPt47(Point(318, 583), 15);
+ connRef47->setSourceEndpoint(srcPt47);
+ ConnEnd dstPt47(Point(318, 630), 1);
+ connRef47->setDestEndpoint(dstPt47);
+ connRef47->setRoutingType((ConnType)2);
+
+ ConnRef *connRef48 = new ConnRef(router, 48);
+ ConnEnd srcPt48(Point(318, 318), 15);
+ connRef48->setSourceEndpoint(srcPt48);
+ ConnEnd dstPt48(Point(378.357, 271.5), 2);
+ connRef48->setDestEndpoint(dstPt48);
+ connRef48->setRoutingType((ConnType)2);
+
+ ConnRef *connRef49 = new ConnRef(router, 49);
+ ConnEnd srcPt49(Point(318, 318), 15);
+ connRef49->setSourceEndpoint(srcPt49);
+ ConnEnd dstPt49(Point(551.357, 240.5), 4);
+ connRef49->setDestEndpoint(dstPt49);
+ connRef49->setRoutingType((ConnType)2);
+ */
+
+ ConnRef *connRef50 = new ConnRef(router, 50);
+ ConnEnd srcPt50(Point(609.857, 367), 15);
+ connRef50->setSourceEndpoint(srcPt50);
+ ConnEnd dstPt50(Point(577.857, 439.5), 4);
+ connRef50->setDestEndpoint(dstPt50);
+ connRef50->setRoutingType((ConnType)2);
+
+ /*
+ ConnRef *connRef51 = new ConnRef(router, 51);
+ ConnEnd srcPt51(Point(318, 583), 15);
+ connRef51->setSourceEndpoint(srcPt51);
+ ConnEnd dstPt51(Point(271.5, 628.155), 8);
+ connRef51->setDestEndpoint(dstPt51);
+ connRef51->setRoutingType((ConnType)2);
+ */
+
+ router->processTransaction();
+ router->outputDiagram("output/finalSegmentNudging2");
+ bool atEnds = true;
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap(atEnds);
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging3.cpp b/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging3.cpp
new file mode 100644
index 0000000..6cb0010
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/finalSegmentNudging3.cpp
@@ -0,0 +1,2658 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+#ifdef ALL
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1339.5, 943.25);
+ poly1.ps[1] = Point(1339.5, 975.25);
+ poly1.ps[2] = Point(1319.5, 975.25);
+ poly1.ps[3] = Point(1319.5, 943.25);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(661.5, 2238.92);
+ poly2.ps[1] = Point(661.5, 2258.92);
+ poly2.ps[2] = Point(629.5, 2258.92);
+ poly2.ps[3] = Point(629.5, 2238.92);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(282.5, 2053.92);
+ poly3.ps[1] = Point(282.5, 2085.92);
+ poly3.ps[2] = Point(262.5, 2085.92);
+ poly3.ps[3] = Point(262.5, 2053.92);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(661.5, 2280.92);
+ poly4.ps[1] = Point(661.5, 2300.92);
+ poly4.ps[2] = Point(629.5, 2300.92);
+ poly4.ps[3] = Point(629.5, 2280.92);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(282.5, 2238.92);
+ poly5.ps[1] = Point(282.5, 2300.92);
+ poly5.ps[2] = Point(220.5, 2300.92);
+ poly5.ps[3] = Point(220.5, 2238.92);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1771.5, 551.5);
+ poly6.ps[1] = Point(1771.5, 928.5);
+ poly6.ps[2] = Point(1549.5, 928.5);
+ poly6.ps[3] = Point(1549.5, 551.5);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1449.5, 45);
+ poly7.ps[1] = Point(1449.5, 219);
+ poly7.ps[2] = Point(1329.5, 219);
+ poly7.ps[3] = Point(1329.5, 45);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(977.5, 2191.92);
+ poly8.ps[1] = Point(977.5, 2223.92);
+ poly8.ps[2] = Point(957.5, 2223.92);
+ poly8.ps[3] = Point(957.5, 2191.92);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1297.5, 2163.92);
+ poly9.ps[1] = Point(1297.5, 2183.92);
+ poly9.ps[2] = Point(1265.5, 2183.92);
+ poly9.ps[3] = Point(1265.5, 2163.92);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(1297.5, 2238.92);
+ poly10.ps[1] = Point(1297.5, 2258.92);
+ poly10.ps[2] = Point(1265.5, 2258.92);
+ poly10.ps[3] = Point(1265.5, 2238.92);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(1173.5, 2031.92);
+ poly11.ps[1] = Point(1173.5, 2051.92);
+ poly11.ps[2] = Point(1141.5, 2051.92);
+ poly11.ps[3] = Point(1141.5, 2031.92);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1167.5, 1909.92);
+ poly12.ps[1] = Point(1167.5, 1941.92);
+ poly12.ps[2] = Point(1147.5, 1941.92);
+ poly12.ps[3] = Point(1147.5, 1909.92);
+ new ShapeRef(router, poly12, 12);
+#endif
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(851.5, 1998.92);
+ poly13.ps[1] = Point(851.5, 2018.92);
+ poly13.ps[2] = Point(819.5, 2018.92);
+ poly13.ps[3] = Point(819.5, 1998.92);
+ new ShapeRef(router, poly13, 13);
+
+#ifdef ALL
+ Polygon poly14(4);
+ poly14.ps[0] = Point(426.5, 1998.92);
+ poly14.ps[1] = Point(426.5, 2018.92);
+ poly14.ps[2] = Point(394.5, 2018.92);
+ poly14.ps[3] = Point(394.5, 1998.92);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1514.5, 1998.92);
+ poly15.ps[1] = Point(1514.5, 2018.92);
+ poly15.ps[2] = Point(1482.5, 2018.92);
+ poly15.ps[3] = Point(1482.5, 1998.92);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(1075.5, 1719.92);
+ poly16.ps[1] = Point(1075.5, 1763.92);
+ poly16.ps[2] = Point(987.5, 1763.92);
+ poly16.ps[3] = Point(987.5, 1719.92);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(1339.5, 1760.92);
+ poly17.ps[1] = Point(1339.5, 1792.92);
+ poly17.ps[2] = Point(1319.5, 1792.92);
+ poly17.ps[3] = Point(1319.5, 1760.92);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(252, 1782.92);
+ poly18.ps[1] = Point(252, 1946.92);
+ poly18.ps[2] = Point(45, 1946.92);
+ poly18.ps[3] = Point(45, 1782.92);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(1339.5, 1636.92);
+ poly19.ps[1] = Point(1339.5, 1668.92);
+ poly19.ps[2] = Point(1319.5, 1668.92);
+ poly19.ps[3] = Point(1319.5, 1636.92);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(1339.5, 1512.92);
+ poly20.ps[1] = Point(1339.5, 1544.92);
+ poly20.ps[2] = Point(1319.5, 1544.92);
+ poly20.ps[3] = Point(1319.5, 1512.92);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(1318.5, 1098.92);
+ poly21.ps[1] = Point(1318.5, 1130.92);
+ poly21.ps[2] = Point(1298.5, 1130.92);
+ poly21.ps[3] = Point(1298.5, 1098.92);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(867, 1443.92);
+ poly22.ps[1] = Point(867, 1503.92);
+ poly22.ps[2] = Point(554, 1503.92);
+ poly22.ps[3] = Point(554, 1443.92);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(1140.5, 1043.92);
+ poly23.ps[1] = Point(1140.5, 1063.92);
+ poly23.ps[2] = Point(1108.5, 1063.92);
+ poly23.ps[3] = Point(1108.5, 1043.92);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(1318.5, 761.25);
+ poly24.ps[1] = Point(1318.5, 793.25);
+ poly24.ps[2] = Point(1298.5, 793.25);
+ poly24.ps[3] = Point(1298.5, 761.25);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(1451.5, 761.25);
+ poly25.ps[1] = Point(1451.5, 793.25);
+ poly25.ps[2] = Point(1431.5, 793.25);
+ poly25.ps[3] = Point(1431.5, 761.25);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(1481.5, 461);
+ poly26.ps[1] = Point(1481.5, 481);
+ poly26.ps[2] = Point(1449.5, 481);
+ poly26.ps[3] = Point(1449.5, 461);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(1339.5, 573.75);
+ poly27.ps[1] = Point(1339.5, 605.75);
+ poly27.ps[2] = Point(1319.5, 605.75);
+ poly27.ps[3] = Point(1319.5, 573.75);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(1339.5, 372);
+ poly28.ps[1] = Point(1339.5, 404);
+ poly28.ps[2] = Point(1319.5, 404);
+ poly28.ps[3] = Point(1319.5, 372);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1074.5, 667.25);
+ poly29.ps[1] = Point(1074.5, 687.25);
+ poly29.ps[2] = Point(1042.5, 687.25);
+ poly29.ps[3] = Point(1042.5, 667.25);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(529.5, 571.25);
+ poly30.ps[1] = Point(529.5, 591.25);
+ poly30.ps[2] = Point(497.5, 591.25);
+ poly30.ps[3] = Point(497.5, 571.25);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(529.5, 646.25);
+ poly31.ps[1] = Point(529.5, 666.25);
+ poly31.ps[2] = Point(497.5, 666.25);
+ poly31.ps[3] = Point(497.5, 646.25);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(950.5, 579.75);
+ poly32.ps[1] = Point(950.5, 599.75);
+ poly32.ps[2] = Point(918.5, 599.75);
+ poly32.ps[3] = Point(918.5, 579.75);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(779.5, 573.75);
+ poly33.ps[1] = Point(779.5, 605.75);
+ poly33.ps[2] = Point(759.5, 605.75);
+ poly33.ps[3] = Point(759.5, 573.75);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(296.5, 573.75);
+ poly34.ps[1] = Point(296.5, 605.75);
+ poly34.ps[2] = Point(276.5, 605.75);
+ poly34.ps[3] = Point(276.5, 573.75);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(628.5, 323.5);
+ poly35.ps[1] = Point(628.5, 343.5);
+ poly35.ps[2] = Point(596.5, 343.5);
+ poly35.ps[3] = Point(596.5, 323.5);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(628.5, 398.5);
+ poly36.ps[1] = Point(628.5, 418.5);
+ poly36.ps[2] = Point(596.5, 418.5);
+ poly36.ps[3] = Point(596.5, 398.5);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(628.5, 590.5);
+ poly37.ps[1] = Point(628.5, 610.5);
+ poly37.ps[2] = Point(596.5, 610.5);
+ poly37.ps[3] = Point(596.5, 590.5);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(917.5, 345);
+ poly38.ps[1] = Point(917.5, 365);
+ poly38.ps[2] = Point(885.5, 365);
+ poly38.ps[3] = Point(885.5, 345);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(917.5, 229);
+ poly39.ps[1] = Point(917.5, 249);
+ poly39.ps[2] = Point(885.5, 249);
+ poly39.ps[3] = Point(885.5, 229);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(402, 96.5);
+ poly40.ps[1] = Point(402, 131.5);
+ poly40.ps[2] = Point(141, 131.5);
+ poly40.ps[3] = Point(141, 96.5);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(562.5, 2164.92);
+ poly41.ps[1] = Point(562.5, 2184.92);
+ poly41.ps[2] = Point(530.5, 2184.92);
+ poly41.ps[3] = Point(530.5, 2164.92);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(1339.5, 1334.92);
+ poly42.ps[1] = Point(1339.5, 1366.92);
+ poly42.ps[2] = Point(1319.5, 1366.92);
+ poly42.ps[3] = Point(1319.5, 1334.92);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(628.5, 473.5);
+ poly43.ps[1] = Point(628.5, 493.5);
+ poly43.ps[2] = Point(596.5, 493.5);
+ poly43.ps[3] = Point(596.5, 473.5);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(529.5, 688.25);
+ poly44.ps[1] = Point(529.5, 708.25);
+ poly44.ps[2] = Point(497.5, 708.25);
+ poly44.ps[3] = Point(497.5, 688.25);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(302.5, 800.25);
+ poly45.ps[1] = Point(302.5, 820.25);
+ poly45.ps[2] = Point(270.5, 820.25);
+ poly45.ps[3] = Point(270.5, 800.25);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(302.5, 916.25);
+ poly46.ps[1] = Point(302.5, 936.25);
+ poly46.ps[2] = Point(270.5, 936.25);
+ poly46.ps[3] = Point(270.5, 916.25);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(694.5, 800.25);
+ poly47.ps[1] = Point(694.5, 820.25);
+ poly47.ps[2] = Point(662.5, 820.25);
+ poly47.ps[3] = Point(662.5, 800.25);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(694.5, 916.25);
+ poly48.ps[1] = Point(694.5, 936.25);
+ poly48.ps[2] = Point(662.5, 936.25);
+ poly48.ps[3] = Point(662.5, 916.25);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1572.5, 440);
+ poly49.ps[1] = Point(1572.5, 502);
+ poly49.ps[2] = Point(1510.5, 502);
+ poly49.ps[3] = Point(1510.5, 440);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(1360.5, 241);
+ poly50.ps[1] = Point(1360.5, 303);
+ poly50.ps[2] = Point(1298.5, 303);
+ poly50.ps[3] = Point(1298.5, 241);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1360.5, 1559.92);
+ poly51.ps[1] = Point(1360.5, 1621.92);
+ poly51.ps[2] = Point(1298.5, 1621.92);
+ poly51.ps[3] = Point(1298.5, 1559.92);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(317.5, 473.5);
+ poly52.ps[1] = Point(317.5, 535.5);
+ poly52.ps[2] = Point(255.5, 535.5);
+ poly52.ps[3] = Point(255.5, 473.5);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(317.5, 646.25);
+ poly53.ps[1] = Point(317.5, 708.25);
+ poly53.ps[2] = Point(255.5, 708.25);
+ poly53.ps[3] = Point(255.5, 646.25);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(899.5, 1022.92);
+ poly54.ps[1] = Point(899.5, 1084.92);
+ poly54.ps[2] = Point(837.5, 1084.92);
+ poly54.ps[3] = Point(837.5, 1022.92);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(899.5, 646.25);
+ poly55.ps[1] = Point(899.5, 708.25);
+ poly55.ps[2] = Point(837.5, 708.25);
+ poly55.ps[3] = Point(837.5, 646.25);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(1360.5, 473.5);
+ poly56.ps[1] = Point(1360.5, 535.5);
+ poly56.ps[2] = Point(1298.5, 535.5);
+ poly56.ps[3] = Point(1298.5, 473.5);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(1360.5, 646.25);
+ poly57.ps[1] = Point(1360.5, 708.25);
+ poly57.ps[2] = Point(1298.5, 708.25);
+ poly57.ps[3] = Point(1298.5, 646.25);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(1360.5, 1683.92);
+ poly58.ps[1] = Point(1360.5, 1745.92);
+ poly58.ps[2] = Point(1298.5, 1745.92);
+ poly58.ps[3] = Point(1298.5, 1683.92);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(1360.5, 1435.92);
+ poly59.ps[1] = Point(1360.5, 1497.92);
+ poly59.ps[2] = Point(1298.5, 1497.92);
+ poly59.ps[3] = Point(1298.5, 1435.92);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(1360.5, 1195.92);
+ poly60.ps[1] = Point(1360.5, 1257.92);
+ poly60.ps[2] = Point(1298.5, 1257.92);
+ poly60.ps[3] = Point(1298.5, 1195.92);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(1605.5, 1977.92);
+ poly61.ps[1] = Point(1605.5, 2039.92);
+ poly61.ps[2] = Point(1543.5, 2039.92);
+ poly61.ps[3] = Point(1543.5, 1977.92);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(833.5, 2143.92);
+ poly62.ps[1] = Point(833.5, 2205.92);
+ poly62.ps[2] = Point(771.5, 2205.92);
+ poly62.ps[3] = Point(771.5, 2143.92);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(1496.5, 2238.92);
+ poly63.ps[1] = Point(1496.5, 2300.92);
+ poly63.ps[2] = Point(1434.5, 2300.92);
+ poly63.ps[3] = Point(1434.5, 2238.92);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(1360.5, 1977.92);
+ poly64.ps[1] = Point(1360.5, 2039.92);
+ poly64.ps[2] = Point(1298.5, 2039.92);
+ poly64.ps[3] = Point(1298.5, 1977.92);
+ new ShapeRef(router, poly64, 64);
+#endif
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(998.5, 1977.92);
+ poly65.ps[1] = Point(998.5, 2039.92);
+ poly65.ps[2] = Point(936.5, 2039.92);
+ poly65.ps[3] = Point(936.5, 1977.92);
+ new ShapeRef(router, poly65, 65);
+
+#ifdef ALL
+ Polygon poly66(4);
+ poly66.ps[0] = Point(282.5, 1977.92);
+ poly66.ps[1] = Point(282.5, 2039.92);
+ poly66.ps[2] = Point(220.5, 2039.92);
+ poly66.ps[3] = Point(220.5, 1977.92);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(998.5, 2238.92);
+ poly67.ps[1] = Point(998.5, 2300.92);
+ poly67.ps[2] = Point(936.5, 2300.92);
+ poly67.ps[3] = Point(936.5, 2238.92);
+ new ShapeRef(router, poly67, 67);
+#endif
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(610.5, 1977.92);
+ poly68.ps[1] = Point(610.5, 2039.92);
+ poly68.ps[2] = Point(548.5, 2039.92);
+ poly68.ps[3] = Point(548.5, 1977.92);
+ new ShapeRef(router, poly68, 68);
+
+#ifdef ALL
+ Polygon poly69(4);
+ poly69.ps[0] = Point(441.5, 2143.92);
+ poly69.ps[1] = Point(441.5, 2205.92);
+ poly69.ps[2] = Point(379.5, 2205.92);
+ poly69.ps[3] = Point(379.5, 2143.92);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(1360.5, 812.25);
+ poly70.ps[1] = Point(1360.5, 874.25);
+ poly70.ps[2] = Point(1298.5, 874.25);
+ poly70.ps[3] = Point(1298.5, 812.25);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(247.5, 779.25);
+ poly71.ps[1] = Point(247.5, 841.25);
+ poly71.ps[2] = Point(185.5, 841.25);
+ poly71.ps[3] = Point(185.5, 779.25);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(474.5, 779.25);
+ poly72.ps[1] = Point(474.5, 841.25);
+ poly72.ps[2] = Point(412.5, 841.25);
+ poly72.ps[3] = Point(412.5, 779.25);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(474.5, 895.25);
+ poly73.ps[1] = Point(474.5, 957.25);
+ poly73.ps[2] = Point(412.5, 957.25);
+ poly73.ps[3] = Point(412.5, 895.25);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(247.5, 895.25);
+ poly74.ps[1] = Point(247.5, 957.25);
+ poly74.ps[2] = Point(185.5, 957.25);
+ poly74.ps[3] = Point(185.5, 895.25);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(393.5, 1683.92);
+ poly75.ps[1] = Point(393.5, 1703.92);
+ poly75.ps[2] = Point(361.5, 1703.92);
+ poly75.ps[3] = Point(361.5, 1683.92);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(282.5, 1683.92);
+ poly76.ps[1] = Point(282.5, 1745.92);
+ poly76.ps[2] = Point(220.5, 1745.92);
+ poly76.ps[3] = Point(220.5, 1683.92);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1297.5, 2280.92);
+ poly77.ps[1] = Point(1297.5, 2300.92);
+ poly77.ps[2] = Point(1265.5, 2300.92);
+ poly77.ps[3] = Point(1265.5, 2280.92);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(393.5, 1725.92);
+ poly78.ps[1] = Point(393.5, 1745.92);
+ poly78.ps[2] = Point(361.5, 1745.92);
+ poly78.ps[3] = Point(361.5, 1725.92);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(1645, 2133.42);
+ poly79.ps[1] = Point(1645, 2298.42);
+ poly79.ps[2] = Point(1508, 2298.42);
+ poly79.ps[3] = Point(1508, 2133.42);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(1360.5, 1098.92);
+ poly80.ps[1] = Point(1360.5, 1130.92);
+ poly80.ps[2] = Point(1340.5, 1130.92);
+ poly80.ps[3] = Point(1340.5, 1098.92);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(1446.5, 1272.92);
+ poly81.ps[1] = Point(1446.5, 1304.92);
+ poly81.ps[2] = Point(1426.5, 1304.92);
+ poly81.ps[3] = Point(1426.5, 1272.92);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(1488.5, 1272.92);
+ poly82.ps[1] = Point(1488.5, 1304.92);
+ poly82.ps[2] = Point(1468.5, 1304.92);
+ poly82.ps[3] = Point(1468.5, 1272.92);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(694.5, 1849.92);
+ poly83.ps[1] = Point(694.5, 1869.92);
+ poly83.ps[2] = Point(662.5, 1869.92);
+ poly83.ps[3] = Point(662.5, 1849.92);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(1579.5, 1272.92);
+ poly84.ps[1] = Point(1579.5, 1304.92);
+ poly84.ps[2] = Point(1559.5, 1304.92);
+ poly84.ps[3] = Point(1559.5, 1272.92);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(1122.5, 1319.92);
+ poly85.ps[1] = Point(1122.5, 1381.92);
+ poly85.ps[2] = Point(1060.5, 1381.92);
+ poly85.ps[3] = Point(1060.5, 1319.92);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(1264.5, 1423.92);
+ poly86.ps[1] = Point(1264.5, 1443.92);
+ poly86.ps[2] = Point(1232.5, 1443.92);
+ poly86.ps[3] = Point(1232.5, 1423.92);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(1264.5, 1216.92);
+ poly87.ps[1] = Point(1264.5, 1236.92);
+ poly87.ps[2] = Point(1232.5, 1236.92);
+ poly87.ps[3] = Point(1232.5, 1216.92);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(1360.5, 1022.92);
+ poly88.ps[1] = Point(1360.5, 1084.92);
+ poly88.ps[2] = Point(1298.5, 1084.92);
+ poly88.ps[3] = Point(1298.5, 1022.92);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(240.5, 2053.92);
+ poly89.ps[1] = Point(240.5, 2085.92);
+ poly89.ps[2] = Point(220.5, 2085.92);
+ poly89.ps[3] = Point(220.5, 2053.92);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(1360.5, 761.25);
+ poly90.ps[1] = Point(1360.5, 793.25);
+ poly90.ps[2] = Point(1340.5, 793.25);
+ poly90.ps[3] = Point(1340.5, 761.25);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(628.5, 515.5);
+ poly91.ps[1] = Point(628.5, 535.5);
+ poly91.ps[2] = Point(596.5, 535.5);
+ poly91.ps[3] = Point(596.5, 515.5);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(529.5, 763.25);
+ poly92.ps[1] = Point(529.5, 783.25);
+ poly92.ps[2] = Point(497.5, 783.25);
+ poly92.ps[3] = Point(497.5, 763.25);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1297.5, 2355.92);
+ poly93.ps[1] = Point(1297.5, 2375.92);
+ poly93.ps[2] = Point(1265.5, 2375.92);
+ poly93.ps[3] = Point(1265.5, 2355.92);
+ new ShapeRef(router, poly93, 93);
+#endif
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(998.5, 1861.92);
+ poly94.ps[1] = Point(998.5, 1923.92);
+ poly94.ps[2] = Point(936.5, 1923.92);
+ poly94.ps[3] = Point(936.5, 1861.92);
+ new ShapeRef(router, poly94, 94);
+
+#ifdef ALL
+ Polygon poly95(4);
+ poly95.ps[0] = Point(1415.5, 939.25);
+ poly95.ps[1] = Point(1415.5, 979.25);
+ poly95.ps[2] = Point(1339.5, 979.25);
+ poly95.ps[3] = Point(1339.5, 939.25);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(673.5, 2178.92);
+ poly96.ps[1] = Point(673.5, 2238.92);
+ poly96.ps[2] = Point(617.5, 2238.92);
+ poly96.ps[3] = Point(617.5, 2178.92);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(358.5, 2049.92);
+ poly97.ps[1] = Point(358.5, 2089.92);
+ poly97.ps[2] = Point(282.5, 2089.92);
+ poly97.ps[3] = Point(282.5, 2049.92);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(673.5, 2300.92);
+ poly98.ps[1] = Point(673.5, 2360.92);
+ poly98.ps[2] = Point(617.5, 2360.92);
+ poly98.ps[3] = Point(617.5, 2300.92);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1053.5, 2187.92);
+ poly99.ps[1] = Point(1053.5, 2227.92);
+ poly99.ps[2] = Point(977.5, 2227.92);
+ poly99.ps[3] = Point(977.5, 2187.92);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1309.5, 2103.92);
+ poly100.ps[1] = Point(1309.5, 2163.92);
+ poly100.ps[2] = Point(1253.5, 2163.92);
+ poly100.ps[3] = Point(1253.5, 2103.92);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1309.5, 2178.92);
+ poly101.ps[1] = Point(1309.5, 2238.92);
+ poly101.ps[2] = Point(1253.5, 2238.92);
+ poly101.ps[3] = Point(1253.5, 2178.92);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1185.5, 2051.92);
+ poly102.ps[1] = Point(1185.5, 2111.92);
+ poly102.ps[2] = Point(1129.5, 2111.92);
+ poly102.ps[3] = Point(1129.5, 2051.92);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(1243.5, 1905.92);
+ poly103.ps[1] = Point(1243.5, 1945.92);
+ poly103.ps[2] = Point(1167.5, 1945.92);
+ poly103.ps[3] = Point(1167.5, 1905.92);
+ new ShapeRef(router, poly103, 103);
+#endif
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(863.5, 1938.92);
+ poly104.ps[1] = Point(863.5, 1998.92);
+ poly104.ps[2] = Point(807.5, 1998.92);
+ poly104.ps[3] = Point(807.5, 1938.92);
+ new ShapeRef(router, poly104, 104);
+
+#ifdef ALL
+ Polygon poly105(4);
+ poly105.ps[0] = Point(438.5, 1938.92);
+ poly105.ps[1] = Point(438.5, 1998.92);
+ poly105.ps[2] = Point(382.5, 1998.92);
+ poly105.ps[3] = Point(382.5, 1938.92);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(1526.5, 1938.92);
+ poly106.ps[1] = Point(1526.5, 1998.92);
+ poly106.ps[2] = Point(1470.5, 1998.92);
+ poly106.ps[3] = Point(1470.5, 1938.92);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(1415.5, 1756.92);
+ poly107.ps[1] = Point(1415.5, 1796.92);
+ poly107.ps[2] = Point(1339.5, 1796.92);
+ poly107.ps[3] = Point(1339.5, 1756.92);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(1415.5, 1632.92);
+ poly108.ps[1] = Point(1415.5, 1672.92);
+ poly108.ps[2] = Point(1339.5, 1672.92);
+ poly108.ps[3] = Point(1339.5, 1632.92);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1415.5, 1508.92);
+ poly109.ps[1] = Point(1415.5, 1548.92);
+ poly109.ps[2] = Point(1339.5, 1548.92);
+ poly109.ps[3] = Point(1339.5, 1508.92);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(1298.5, 1094.92);
+ poly110.ps[1] = Point(1298.5, 1134.92);
+ poly110.ps[2] = Point(1222.5, 1134.92);
+ poly110.ps[3] = Point(1222.5, 1094.92);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(1152.5, 983.917);
+ poly111.ps[1] = Point(1152.5, 1043.92);
+ poly111.ps[2] = Point(1096.5, 1043.92);
+ poly111.ps[3] = Point(1096.5, 983.917);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(1298.5, 757.25);
+ poly112.ps[1] = Point(1298.5, 797.25);
+ poly112.ps[2] = Point(1222.5, 797.25);
+ poly112.ps[3] = Point(1222.5, 757.25);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(1527.5, 757.25);
+ poly113.ps[1] = Point(1527.5, 797.25);
+ poly113.ps[2] = Point(1451.5, 797.25);
+ poly113.ps[3] = Point(1451.5, 757.25);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(1493.5, 401);
+ poly114.ps[1] = Point(1493.5, 461);
+ poly114.ps[2] = Point(1437.5, 461);
+ poly114.ps[3] = Point(1437.5, 401);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(1415.5, 569.75);
+ poly115.ps[1] = Point(1415.5, 609.75);
+ poly115.ps[2] = Point(1339.5, 609.75);
+ poly115.ps[3] = Point(1339.5, 569.75);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(1415.5, 368);
+ poly116.ps[1] = Point(1415.5, 408);
+ poly116.ps[2] = Point(1339.5, 408);
+ poly116.ps[3] = Point(1339.5, 368);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(1086.5, 607.25);
+ poly117.ps[1] = Point(1086.5, 667.25);
+ poly117.ps[2] = Point(1030.5, 667.25);
+ poly117.ps[3] = Point(1030.5, 607.25);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(541.5, 511.25);
+ poly118.ps[1] = Point(541.5, 571.25);
+ poly118.ps[2] = Point(485.5, 571.25);
+ poly118.ps[3] = Point(485.5, 511.25);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(541.5, 586.25);
+ poly119.ps[1] = Point(541.5, 646.25);
+ poly119.ps[2] = Point(485.5, 646.25);
+ poly119.ps[3] = Point(485.5, 586.25);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(962.5, 519.75);
+ poly120.ps[1] = Point(962.5, 579.75);
+ poly120.ps[2] = Point(906.5, 579.75);
+ poly120.ps[3] = Point(906.5, 519.75);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(759.5, 569.75);
+ poly121.ps[1] = Point(759.5, 609.75);
+ poly121.ps[2] = Point(683.5, 609.75);
+ poly121.ps[3] = Point(683.5, 569.75);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(372.5, 569.75);
+ poly122.ps[1] = Point(372.5, 609.75);
+ poly122.ps[2] = Point(296.5, 609.75);
+ poly122.ps[3] = Point(296.5, 569.75);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(640.5, 263.5);
+ poly123.ps[1] = Point(640.5, 323.5);
+ poly123.ps[2] = Point(584.5, 323.5);
+ poly123.ps[3] = Point(584.5, 263.5);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(640.5, 338.5);
+ poly124.ps[1] = Point(640.5, 398.5);
+ poly124.ps[2] = Point(584.5, 398.5);
+ poly124.ps[3] = Point(584.5, 338.5);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(640.5, 610.5);
+ poly125.ps[1] = Point(640.5, 670.5);
+ poly125.ps[2] = Point(584.5, 670.5);
+ poly125.ps[3] = Point(584.5, 610.5);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(929.5, 285);
+ poly126.ps[1] = Point(929.5, 345);
+ poly126.ps[2] = Point(873.5, 345);
+ poly126.ps[3] = Point(873.5, 285);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(929.5, 169);
+ poly127.ps[1] = Point(929.5, 229);
+ poly127.ps[2] = Point(873.5, 229);
+ poly127.ps[3] = Point(873.5, 169);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(574.5, 2104.92);
+ poly128.ps[1] = Point(574.5, 2164.92);
+ poly128.ps[2] = Point(518.5, 2164.92);
+ poly128.ps[3] = Point(518.5, 2104.92);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(1415.5, 1330.92);
+ poly129.ps[1] = Point(1415.5, 1370.92);
+ poly129.ps[2] = Point(1339.5, 1370.92);
+ poly129.ps[3] = Point(1339.5, 1330.92);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(640.5, 413.5);
+ poly130.ps[1] = Point(640.5, 473.5);
+ poly130.ps[2] = Point(584.5, 473.5);
+ poly130.ps[3] = Point(584.5, 413.5);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(541.5, 708.25);
+ poly131.ps[1] = Point(541.5, 768.25);
+ poly131.ps[2] = Point(485.5, 768.25);
+ poly131.ps[3] = Point(485.5, 708.25);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(314.5, 740.25);
+ poly132.ps[1] = Point(314.5, 800.25);
+ poly132.ps[2] = Point(258.5, 800.25);
+ poly132.ps[3] = Point(258.5, 740.25);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(314.5, 856.25);
+ poly133.ps[1] = Point(314.5, 916.25);
+ poly133.ps[2] = Point(258.5, 916.25);
+ poly133.ps[3] = Point(258.5, 856.25);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(706.5, 740.25);
+ poly134.ps[1] = Point(706.5, 800.25);
+ poly134.ps[2] = Point(650.5, 800.25);
+ poly134.ps[3] = Point(650.5, 740.25);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(706.5, 856.25);
+ poly135.ps[1] = Point(706.5, 916.25);
+ poly135.ps[2] = Point(650.5, 916.25);
+ poly135.ps[3] = Point(650.5, 856.25);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(405.5, 1623.92);
+ poly136.ps[1] = Point(405.5, 1683.92);
+ poly136.ps[2] = Point(349.5, 1683.92);
+ poly136.ps[3] = Point(349.5, 1623.92);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1309.5, 2300.92);
+ poly137.ps[1] = Point(1309.5, 2360.92);
+ poly137.ps[2] = Point(1253.5, 2360.92);
+ poly137.ps[3] = Point(1253.5, 2300.92);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(405.5, 1745.92);
+ poly138.ps[1] = Point(405.5, 1805.92);
+ poly138.ps[2] = Point(349.5, 1805.92);
+ poly138.ps[3] = Point(349.5, 1745.92);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1436.5, 1094.92);
+ poly139.ps[1] = Point(1436.5, 1134.92);
+ poly139.ps[2] = Point(1360.5, 1134.92);
+ poly139.ps[3] = Point(1360.5, 1094.92);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1426.5, 1268.92);
+ poly140.ps[1] = Point(1426.5, 1308.92);
+ poly140.ps[2] = Point(1350.5, 1308.92);
+ poly140.ps[3] = Point(1350.5, 1268.92);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1564.5, 1268.92);
+ poly141.ps[1] = Point(1564.5, 1308.92);
+ poly141.ps[2] = Point(1488.5, 1308.92);
+ poly141.ps[3] = Point(1488.5, 1268.92);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(706.5, 1789.92);
+ poly142.ps[1] = Point(706.5, 1849.92);
+ poly142.ps[2] = Point(650.5, 1849.92);
+ poly142.ps[3] = Point(650.5, 1789.92);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(1655.5, 1268.92);
+ poly143.ps[1] = Point(1655.5, 1308.92);
+ poly143.ps[2] = Point(1579.5, 1308.92);
+ poly143.ps[3] = Point(1579.5, 1268.92);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(1276.5, 1363.92);
+ poly144.ps[1] = Point(1276.5, 1423.92);
+ poly144.ps[2] = Point(1220.5, 1423.92);
+ poly144.ps[3] = Point(1220.5, 1363.92);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(1276.5, 1156.92);
+ poly145.ps[1] = Point(1276.5, 1216.92);
+ poly145.ps[2] = Point(1220.5, 1216.92);
+ poly145.ps[3] = Point(1220.5, 1156.92);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(220.5, 2049.92);
+ poly146.ps[1] = Point(220.5, 2089.92);
+ poly146.ps[2] = Point(144.5, 2089.92);
+ poly146.ps[3] = Point(144.5, 2049.92);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(1436.5, 757.25);
+ poly147.ps[1] = Point(1436.5, 797.25);
+ poly147.ps[2] = Point(1360.5, 797.25);
+ poly147.ps[3] = Point(1360.5, 757.25);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(640.5, 535.5);
+ poly148.ps[1] = Point(640.5, 595.5);
+ poly148.ps[2] = Point(584.5, 595.5);
+ poly148.ps[3] = Point(584.5, 535.5);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(541.5, 783.25);
+ poly149.ps[1] = Point(541.5, 843.25);
+ poly149.ps[2] = Point(485.5, 843.25);
+ poly149.ps[3] = Point(485.5, 783.25);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(1309.5, 2375.92);
+ poly150.ps[1] = Point(1309.5, 2435.92);
+ poly150.ps[2] = Point(1253.5, 2435.92);
+ poly150.ps[3] = Point(1253.5, 2375.92);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(1610, 700.5);
+ poly151.ps[1] = Point(1610, 740.5);
+ poly151.ps[2] = Point(1550, 740.5);
+ poly151.ps[3] = Point(1550, 700.5);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(1610, 740.5);
+ poly152.ps[1] = Point(1610, 780.5);
+ poly152.ps[2] = Point(1550, 780.5);
+ poly152.ps[3] = Point(1550, 740.5);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(1661, 869);
+ poly153.ps[1] = Point(1661, 929);
+ poly153.ps[2] = Point(1621, 929);
+ poly153.ps[3] = Point(1621, 869);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(1701, 869);
+ poly154.ps[1] = Point(1701, 929);
+ poly154.ps[2] = Point(1661, 929);
+ poly154.ps[3] = Point(1661, 869);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(1410, 159.5);
+ poly155.ps[1] = Point(1410, 219.5);
+ poly155.ps[2] = Point(1370, 219.5);
+ poly155.ps[3] = Point(1370, 159.5);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(252.5, 1825.42);
+ poly156.ps[1] = Point(252.5, 1865.42);
+ poly156.ps[2] = Point(192.5, 1865.42);
+ poly156.ps[3] = Point(192.5, 1825.42);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(252.5, 1865.42);
+ poly157.ps[1] = Point(252.5, 1905.42);
+ poly157.ps[2] = Point(192.5, 1905.42);
+ poly157.ps[3] = Point(192.5, 1865.42);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(867.5, 1454.42);
+ poly158.ps[1] = Point(867.5, 1494.42);
+ poly158.ps[2] = Point(807.5, 1494.42);
+ poly158.ps[3] = Point(807.5, 1454.42);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(1597, 2133.92);
+ poly159.ps[1] = Point(1597, 2193.92);
+ poly159.ps[2] = Point(1557, 2193.92);
+ poly159.ps[3] = Point(1557, 2133.92);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(675.5, 2248.92);
+ poly160.ps[1] = Point(675.5, 2290.92);
+ poly160.ps[2] = Point(607.5, 2290.92);
+ poly160.ps[3] = Point(607.5, 2248.92);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(272.5, 2039.92);
+ poly161.ps[1] = Point(272.5, 2099.92);
+ poly161.ps[2] = Point(230.5, 2099.92);
+ poly161.ps[3] = Point(230.5, 2039.92);
+ new ShapeRef(router, poly161, 161);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(642.5, 333.5);
+ poly162.ps[1] = Point(642.5, 600.5);
+ poly162.ps[2] = Point(574.5, 600.5);
+ poly162.ps[3] = Point(574.5, 333.5);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(543.5, 581.25);
+ poly163.ps[1] = Point(543.5, 773.25);
+ poly163.ps[2] = Point(475.5, 773.25);
+ poly163.ps[3] = Point(475.5, 581.25);
+ new ShapeRef(router, poly163, 163);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(1441.5, 747.25);
+ poly164.ps[1] = Point(1441.5, 807.25);
+ poly164.ps[2] = Point(1308.5, 807.25);
+ poly164.ps[3] = Point(1308.5, 747.25);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(407.5, 1693.92);
+ poly165.ps[1] = Point(407.5, 1735.92);
+ poly165.ps[2] = Point(339.5, 1735.92);
+ poly165.ps[3] = Point(339.5, 1693.92);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(1569.5, 1258.92);
+ poly166.ps[1] = Point(1569.5, 1318.92);
+ poly166.ps[2] = Point(1436.5, 1318.92);
+ poly166.ps[3] = Point(1436.5, 1258.92);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(1350.5, 1084.92);
+ poly167.ps[1] = Point(1350.5, 1144.92);
+ poly167.ps[2] = Point(1308.5, 1144.92);
+ poly167.ps[3] = Point(1308.5, 1084.92);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(1311.5, 2173.92);
+ poly168.ps[1] = Point(1311.5, 2365.92);
+ poly168.ps[2] = Point(1243.5, 2365.92);
+ poly168.ps[3] = Point(1243.5, 2173.92);
+ new ShapeRef(router, poly168, 168);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1329.5, 974.25), 2);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(868.5, 1053.92), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1329.5, 944.25), 1);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1329.5, 843.25), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1329.5, 974.25), 2);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1329.5, 1053.92), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(630.5, 2248.92), 4);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(251.5, 2269.92), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints172(1);
+ checkpoints172[0] = Point(607.5, 2269.92);
+ connRef172->setRoutingCheckpoints(checkpoints172);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(660.5, 2248.92), 8);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(967.5, 2269.92), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints173(1);
+ checkpoints173[0] = Point(683.5, 2269.92);
+ connRef173->setRoutingCheckpoints(checkpoints173);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(272.5, 2084.92), 2);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(251.5, 2269.92), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints174(1);
+ checkpoints174[0] = Point(251.5, 2099.92);
+ connRef174->setRoutingCheckpoints(checkpoints174);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(630.5, 2290.92), 4);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(251.5, 2269.92), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints175(1);
+ checkpoints175[0] = Point(607.5, 2269.92);
+ connRef175->setRoutingCheckpoints(checkpoints175);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(660.5, 2290.92), 8);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(967.5, 2269.92), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints176(1);
+ checkpoints176[0] = Point(683.5, 2269.92);
+ connRef176->setRoutingCheckpoints(checkpoints176);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(251.5, 2269.92), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(230.5, 2084.92), 2);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints177(1);
+ checkpoints177[0] = Point(251.5, 2099.92);
+ connRef177->setRoutingCheckpoints(checkpoints177);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(967.5, 2222.92), 2);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(967.5, 2269.92), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(1266.5, 2173.92), 4);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(967.5, 2269.92), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints179(1);
+ checkpoints179[0] = Point(1243.5, 2269.92);
+ connRef179->setRoutingCheckpoints(checkpoints179);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(1266.5, 2248.92), 4);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(967.5, 2269.92), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints180(1);
+ checkpoints180[0] = Point(1243.5, 2269.92);
+ connRef180->setRoutingCheckpoints(checkpoints180);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(1142.5, 2041.92), 4);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(967.5, 2008.92), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(1157.5, 1940.92), 2);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(967.5, 2008.92), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+#endif
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(820.5, 2008.92), 4);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(579.5, 2008.92), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(820.5, 2008.92), 4);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(967.5, 1892.92), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+#ifdef ALL
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(395.5, 2008.92), 4);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(251.5, 2008.92), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(425.5, 2008.92), 8);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(579.5, 2008.92), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(395.5, 2008.92), 4);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(410.5, 2174.92), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(1513.5, 2008.92), 8);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(1574.5, 2008.92), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(1483.5, 2008.92), 4);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(1329.5, 2008.92), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(1329.5, 1791.92), 2);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(1329.5, 2008.92), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(1329.5, 1637.92), 1);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(1329.5, 1590.92), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(1329.5, 1667.92), 2);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(1329.5, 1714.92), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(1329.5, 1543.92), 2);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(1329.5, 1590.92), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(1329.5, 1513.92), 1);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(1329.5, 1466.92), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(1308.5, 1129.92), 2);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(1329.5, 1226.92), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints195(1);
+ checkpoints195[0] = Point(1329.5, 1144.92);
+ connRef195->setRoutingCheckpoints(checkpoints195);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(1308.5, 1099.92), 1);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(1329.5, 1053.92), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints196(1);
+ checkpoints196[0] = Point(1329.5, 1084.92);
+ connRef196->setRoutingCheckpoints(checkpoints196);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(1109.5, 1053.92), 4);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(868.5, 1053.92), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(1139.5, 1053.92), 8);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(1329.5, 1053.92), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(1308.5, 792.25), 2);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(1329.5, 843.25), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints199(1);
+ checkpoints199[0] = Point(1329.5, 807.25);
+ connRef199->setRoutingCheckpoints(checkpoints199);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(1441.5, 762.25), 1);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(1329.5, 677.25), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints200(1);
+ checkpoints200[0] = Point(1329.5, 747.25);
+ connRef200->setRoutingCheckpoints(checkpoints200);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(1450.5, 471), 4);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(1329.5, 504.5), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(1329.5, 574.75), 1);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(1329.5, 504.5), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(1329.5, 604.75), 2);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(1329.5, 677.25), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(1329.5, 373), 1);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(1329.5, 272), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(1329.5, 403), 2);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(1329.5, 504.5), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(1043.5, 677.25), 4);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(868.5, 677.25), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(1073.5, 677.25), 8);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(1329.5, 677.25), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(528.5, 581.25), 8);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(868.5, 677.25), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints208(1);
+ checkpoints208[0] = Point(551.5, 677.25);
+ connRef208->setRoutingCheckpoints(checkpoints208);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(528.5, 656.25), 8);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(868.5, 677.25), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints209(1);
+ checkpoints209[0] = Point(551.5, 677.25);
+ connRef209->setRoutingCheckpoints(checkpoints209);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(919.5, 589.75), 4);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(868.5, 677.25), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(949.5, 589.75), 8);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(1329.5, 504.5), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(769.5, 604.75), 2);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(868.5, 677.25), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(769.5, 574.75), 1);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(1329.5, 504.5), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(286.5, 574.75), 1);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(286.5, 504.5), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(286.5, 604.75), 2);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(286.5, 677.25), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(627.5, 333.5), 8);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(1329.5, 504.5), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints216(1);
+ checkpoints216[0] = Point(650.5, 504.5);
+ connRef216->setRoutingCheckpoints(checkpoints216);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(627.5, 408.5), 8);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(1329.5, 504.5), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints217(1);
+ checkpoints217[0] = Point(650.5, 504.5);
+ connRef217->setRoutingCheckpoints(checkpoints217);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(597.5, 600.5), 4);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(286.5, 504.5), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints218(1);
+ checkpoints218[0] = Point(574.5, 504.5);
+ connRef218->setRoutingCheckpoints(checkpoints218);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(886.5, 355), 4);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(286.5, 504.5), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(886.5, 239), 4);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(286.5, 504.5), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(561.5, 2174.92), 8);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(802.5, 2174.92), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1329.5, 1365.92), 2);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1329.5, 1466.92), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1329.5, 1335.92), 1);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1329.5, 1226.92), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(627.5, 483.5), 8);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(1329.5, 504.5), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints224(1);
+ checkpoints224[0] = Point(650.5, 504.5);
+ connRef224->setRoutingCheckpoints(checkpoints224);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(528.5, 698.25), 8);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(868.5, 677.25), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints225(1);
+ checkpoints225[0] = Point(551.5, 677.25);
+ connRef225->setRoutingCheckpoints(checkpoints225);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(301.5, 810.25), 8);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(443.5, 810.25), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(301.5, 926.25), 8);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(443.5, 926.25), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(693.5, 810.25), 8);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(868.5, 677.25), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(693.5, 926.25), 8);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(868.5, 677.25), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(1541.5, 471), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(1480.5, 471), 8);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(286.5, 504.5), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(597.5, 483.5), 4);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints231(1);
+ checkpoints231[0] = Point(574.5, 504.5);
+ connRef231->setRoutingCheckpoints(checkpoints231);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(286.5, 504.5), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(597.5, 525.5), 4);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints232(1);
+ checkpoints232[0] = Point(574.5, 504.5);
+ connRef232->setRoutingCheckpoints(checkpoints232);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(286.5, 677.25), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(498.5, 698.25), 4);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints233(1);
+ checkpoints233[0] = Point(475.5, 677.25);
+ connRef233->setRoutingCheckpoints(checkpoints233);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(498.5, 773.25), 4);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(286.5, 677.25), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints234(1);
+ checkpoints234[0] = Point(475.5, 677.25);
+ connRef234->setRoutingCheckpoints(checkpoints234);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(528.5, 773.25), 8);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(868.5, 677.25), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints235(1);
+ checkpoints235[0] = Point(551.5, 677.25);
+ connRef235->setRoutingCheckpoints(checkpoints235);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(1329.5, 677.25), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(1350.5, 762.25), 1);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints236(1);
+ checkpoints236[0] = Point(1329.5, 747.25);
+ connRef236->setRoutingCheckpoints(checkpoints236);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(392.5, 1735.92), 8);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(1329.5, 1714.92), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints237(1);
+ checkpoints237[0] = Point(415.5, 1714.92);
+ connRef237->setRoutingCheckpoints(checkpoints237);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(1436.5, 1303.92), 2);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(1329.5, 1466.92), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints238(1);
+ checkpoints238[0] = Point(1457.5, 1318.92);
+ connRef238->setRoutingCheckpoints(checkpoints238);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(1478.5, 1303.92), 2);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(1329.5, 1466.92), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints239(1);
+ checkpoints239[0] = Point(1457.5, 1318.92);
+ connRef239->setRoutingCheckpoints(checkpoints239);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(1569.5, 1303.92), 2);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(1329.5, 1466.92), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints240(1);
+ checkpoints240[0] = Point(1457.5, 1318.92);
+ connRef240->setRoutingCheckpoints(checkpoints240);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(1350.5, 1129.92), 2);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(1329.5, 1226.92), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints241(1);
+ checkpoints241[0] = Point(1329.5, 1144.92);
+ connRef241->setRoutingCheckpoints(checkpoints241);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(1263.5, 1226.92), 8);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(1329.5, 1226.92), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(1296.5, 2173.92), 8);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(1465.5, 2269.92), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints243(1);
+ checkpoints243[0] = Point(1319.5, 2269.92);
+ connRef243->setRoutingCheckpoints(checkpoints243);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(1296.5, 2248.92), 8);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(1465.5, 2269.92), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints244(1);
+ checkpoints244[0] = Point(1319.5, 2269.92);
+ connRef244->setRoutingCheckpoints(checkpoints244);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(1296.5, 2290.92), 8);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(1465.5, 2269.92), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints245(1);
+ checkpoints245[0] = Point(1319.5, 2269.92);
+ connRef245->setRoutingCheckpoints(checkpoints245);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(1296.5, 2365.92), 8);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(1465.5, 2269.92), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints246(1);
+ checkpoints246[0] = Point(1319.5, 2269.92);
+ connRef246->setRoutingCheckpoints(checkpoints246);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(693.5, 1859.92), 8);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(1329.5, 2008.92), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(967.5, 2008.92), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(967.5, 2192.92), 1);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(663.5, 1859.92), 4);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(251.5, 2008.92), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(1266.5, 2290.92), 4);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(967.5, 2269.92), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints250(1);
+ checkpoints250[0] = Point(1243.5, 2269.92);
+ connRef250->setRoutingCheckpoints(checkpoints250);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(1266.5, 2365.92), 4);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(967.5, 2269.92), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints251(1);
+ checkpoints251[0] = Point(1243.5, 2269.92);
+ connRef251->setRoutingCheckpoints(checkpoints251);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(531.5, 2174.92), 4);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(410.5, 2174.92), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(1329.5, 843.25), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(1441.5, 792.25), 2);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints253(1);
+ checkpoints253[0] = Point(1329.5, 807.25);
+ connRef253->setRoutingCheckpoints(checkpoints253);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(216.5, 810.25), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(271.5, 810.25), 4);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(443.5, 810.25), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(663.5, 810.25), 4);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(443.5, 926.25), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(663.5, 926.25), 4);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(216.5, 926.25), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(271.5, 926.25), 4);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(392.5, 1693.92), 8);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1329.5, 1714.92), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints258(1);
+ checkpoints258[0] = Point(415.5, 1714.92);
+ connRef258->setRoutingCheckpoints(checkpoints258);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(251.5, 1714.92), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(362.5, 1693.92), 4);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints259(1);
+ checkpoints259[0] = Point(339.5, 1714.92);
+ connRef259->setRoutingCheckpoints(checkpoints259);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(251.5, 1714.92), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(362.5, 1735.92), 4);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints260(1);
+ checkpoints260[0] = Point(339.5, 1714.92);
+ connRef260->setRoutingCheckpoints(checkpoints260);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1350.5, 1099.92), 1);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1329.5, 1053.92), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints261(1);
+ checkpoints261[0] = Point(1329.5, 1084.92);
+ connRef261->setRoutingCheckpoints(checkpoints261);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1233.5, 1433.92), 4);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1091.5, 1350.92), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(1263.5, 1433.92), 8);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(1329.5, 1466.92), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(1233.5, 1226.92), 4);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(1091.5, 1350.92), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(1329.5, 1053.92), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(1436.5, 1273.92), 1);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints265(1);
+ checkpoints265[0] = Point(1457.5, 1258.92);
+ connRef265->setRoutingCheckpoints(checkpoints265);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(1329.5, 1053.92), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(1478.5, 1273.92), 1);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints266(1);
+ checkpoints266[0] = Point(1457.5, 1258.92);
+ connRef266->setRoutingCheckpoints(checkpoints266);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(1329.5, 1053.92), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(1569.5, 1273.92), 1);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints267(1);
+ checkpoints267[0] = Point(1457.5, 1258.92);
+ connRef267->setRoutingCheckpoints(checkpoints267);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(230.5, 2054.92), 1);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(251.5, 2008.92), 15);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints268(1);
+ checkpoints268[0] = Point(251.5, 2039.92);
+ connRef268->setRoutingCheckpoints(checkpoints268);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(1350.5, 792.25), 2);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(1329.5, 843.25), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints269(1);
+ checkpoints269[0] = Point(1329.5, 807.25);
+ connRef269->setRoutingCheckpoints(checkpoints269);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(627.5, 525.5), 8);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(1329.5, 504.5), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints270(1);
+ checkpoints270[0] = Point(650.5, 504.5);
+ connRef270->setRoutingCheckpoints(checkpoints270);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(967.5, 1892.92), 15);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(1172.5, 2041.92), 8);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(967.5, 1892.92), 15);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(1157.5, 1910.92), 1);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(1387.5, 959.25), 4);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(1329.5, 959.25), 8);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(645.5, 2198.92), 2);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(645.5, 2248.92), 1);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(330.5, 2069.92), 4);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(272.5, 2069.92), 8);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(645.5, 2340.92), 1);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(645.5, 2290.92), 2);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(1025.5, 2207.92), 4);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(967.5, 2207.92), 8);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(1281.5, 2123.92), 2);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(1281.5, 2173.92), 1);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(1281.5, 2198.92), 2);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(1281.5, 2248.92), 1);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(1157.5, 2091.92), 1);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(1157.5, 2041.92), 2);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(1215.5, 1925.92), 4);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(1157.5, 1925.92), 8);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(835.5, 1958.92), 2);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(835.5, 2008.92), 1);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(410.5, 1958.92), 2);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(410.5, 2008.92), 1);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(1498.5, 1958.92), 2);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(1498.5, 2008.92), 1);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(1387.5, 1776.92), 4);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(1329.5, 1776.92), 8);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(1387.5, 1652.92), 4);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(1329.5, 1652.92), 8);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(1387.5, 1528.92), 4);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(1329.5, 1528.92), 8);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(1250.5, 1114.92), 8);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(1308.5, 1114.92), 4);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(1124.5, 1003.92), 2);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(1124.5, 1053.92), 1);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(1250.5, 777.25), 8);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(1308.5, 777.25), 4);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(1499.5, 777.25), 4);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(1441.5, 777.25), 8);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(1465.5, 421), 2);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(1465.5, 471), 1);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(1387.5, 589.75), 4);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(1329.5, 589.75), 8);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(1387.5, 388), 4);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(1329.5, 388), 8);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(1058.5, 627.25), 2);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(1058.5, 677.25), 1);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(513.5, 531.25), 2);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(513.5, 581.25), 1);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(513.5, 606.25), 2);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(513.5, 656.25), 1);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(934.5, 539.75), 2);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(934.5, 589.75), 1);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(711.5, 589.75), 8);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(769.5, 589.75), 4);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(344.5, 589.75), 4);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(286.5, 589.75), 8);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(612.5, 283.5), 2);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(612.5, 333.5), 1);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(612.5, 358.5), 2);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(612.5, 408.5), 1);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(612.5, 650.5), 1);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(612.5, 600.5), 2);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(901.5, 305), 2);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(901.5, 355), 1);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(901.5, 189), 2);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(901.5, 239), 1);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(546.5, 2124.92), 2);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(546.5, 2174.92), 1);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(1387.5, 1350.92), 4);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(1329.5, 1350.92), 8);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(612.5, 433.5), 2);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(612.5, 483.5), 1);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(513.5, 748.25), 1);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(513.5, 698.25), 2);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(286.5, 760.25), 2);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(286.5, 810.25), 1);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(286.5, 876.25), 2);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(286.5, 926.25), 1);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(678.5, 760.25), 2);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(678.5, 810.25), 1);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(678.5, 876.25), 2);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(678.5, 926.25), 1);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(377.5, 1643.92), 2);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(377.5, 1693.92), 1);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(1281.5, 2340.92), 1);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(1281.5, 2290.92), 2);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(377.5, 1785.92), 1);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(377.5, 1735.92), 2);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(1408.5, 1114.92), 4);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(1350.5, 1114.92), 8);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(1378.5, 1288.92), 8);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(1436.5, 1288.92), 4);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(1536.5, 1288.92), 4);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(1478.5, 1288.92), 8);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(678.5, 1809.92), 2);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(678.5, 1859.92), 1);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(1627.5, 1288.92), 4);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(1569.5, 1288.92), 8);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(1248.5, 1383.92), 2);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(1248.5, 1433.92), 1);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(1248.5, 1176.92), 2);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(1248.5, 1226.92), 1);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(172.5, 2069.92), 8);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(230.5, 2069.92), 4);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(1408.5, 777.25), 4);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(1350.5, 777.25), 8);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(612.5, 575.5), 1);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(612.5, 525.5), 2);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(513.5, 823.25), 1);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(513.5, 773.25), 2);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(1281.5, 2415.92), 1);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(1281.5, 2365.92), 2);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(251.5, 2008.92), 15);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(272.5, 2054.92), 1);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints329(1);
+ checkpoints329[0] = Point(251.5, 2039.92);
+ connRef329->setRoutingCheckpoints(checkpoints329);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(1329.5, 2008.92), 15);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(1172.5, 2041.92), 8);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+
+ ConnRef *connRef331 = new ConnRef(router, 331);
+ ConnEnd srcPt331(Point(1329.5, 2008.92), 15);
+ connRef331->setSourceEndpoint(srcPt331);
+ ConnEnd dstPt331(Point(1157.5, 1910.92), 1);
+ connRef331->setDestEndpoint(dstPt331);
+ connRef331->setRoutingType((ConnType)2);
+
+ ConnRef *connRef332 = new ConnRef(router, 332);
+ ConnEnd srcPt332(Point(802.5, 2174.92), 15);
+ connRef332->setSourceEndpoint(srcPt332);
+ ConnEnd dstPt332(Point(850.5, 2008.92), 8);
+ connRef332->setDestEndpoint(dstPt332);
+ connRef332->setRoutingType((ConnType)2);
+
+ ConnRef *connRef333 = new ConnRef(router, 333);
+ ConnEnd srcPt333(Point(967.5, 2008.92), 15);
+ connRef333->setSourceEndpoint(srcPt333);
+ ConnEnd dstPt333(Point(850.5, 2008.92), 8);
+ connRef333->setDestEndpoint(dstPt333);
+ connRef333->setRoutingType((ConnType)2);
+
+ ConnRef *connRef334 = new ConnRef(router, 334);
+ ConnEnd srcPt334(Point(1329.5, 1714.92), 15);
+ connRef334->setSourceEndpoint(srcPt334);
+ ConnEnd dstPt334(Point(1329.5, 1761.92), 1);
+ connRef334->setDestEndpoint(dstPt334);
+ connRef334->setRoutingType((ConnType)2);
+
+ ConnRef *connRef335 = new ConnRef(router, 335);
+ ConnEnd srcPt335(Point(1329.5, 677.25), 15);
+ connRef335->setSourceEndpoint(srcPt335);
+ ConnEnd dstPt335(Point(1308.5, 762.25), 1);
+ connRef335->setDestEndpoint(dstPt335);
+ connRef335->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints335(1);
+ checkpoints335[0] = Point(1329.5, 747.25);
+ connRef335->setRoutingCheckpoints(checkpoints335);
+
+ ConnRef *connRef336 = new ConnRef(router, 336);
+ ConnEnd srcPt336(Point(286.5, 677.25), 15);
+ connRef336->setSourceEndpoint(srcPt336);
+ ConnEnd dstPt336(Point(498.5, 581.25), 4);
+ connRef336->setDestEndpoint(dstPt336);
+ connRef336->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints336(1);
+ checkpoints336[0] = Point(475.5, 677.25);
+ connRef336->setRoutingCheckpoints(checkpoints336);
+
+ ConnRef *connRef337 = new ConnRef(router, 337);
+ ConnEnd srcPt337(Point(286.5, 677.25), 15);
+ connRef337->setSourceEndpoint(srcPt337);
+ ConnEnd dstPt337(Point(498.5, 656.25), 4);
+ connRef337->setDestEndpoint(dstPt337);
+ connRef337->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints337(1);
+ checkpoints337[0] = Point(475.5, 677.25);
+ connRef337->setRoutingCheckpoints(checkpoints337);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(286.5, 504.5), 15);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(597.5, 333.5), 4);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints338(1);
+ checkpoints338[0] = Point(574.5, 504.5);
+ connRef338->setRoutingCheckpoints(checkpoints338);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(286.5, 504.5), 15);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(597.5, 408.5), 4);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints339(1);
+ checkpoints339[0] = Point(574.5, 504.5);
+ connRef339->setRoutingCheckpoints(checkpoints339);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(1329.5, 504.5), 15);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(627.5, 600.5), 8);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints340(1);
+ checkpoints340[0] = Point(650.5, 504.5);
+ connRef340->setRoutingCheckpoints(checkpoints340);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1329.5, 272), 15);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(916.5, 355), 8);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1329.5, 272), 15);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(916.5, 239), 8);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+
+ ConnRef *connRef343 = new ConnRef(router, 343);
+ ConnEnd srcPt343(Point(1329.5, 504.5), 15);
+ connRef343->setSourceEndpoint(srcPt343);
+ ConnEnd dstPt343(Point(1555, 720.5), 4);
+ connRef343->setDestEndpoint(dstPt343);
+ connRef343->setRoutingType((ConnType)2);
+
+ ConnRef *connRef344 = new ConnRef(router, 344);
+ ConnEnd srcPt344(Point(1329.5, 1053.92), 15);
+ connRef344->setSourceEndpoint(srcPt344);
+ ConnEnd dstPt344(Point(1555, 760.5), 4);
+ connRef344->setDestEndpoint(dstPt344);
+ connRef344->setRoutingType((ConnType)2);
+
+ ConnRef *connRef345 = new ConnRef(router, 345);
+ ConnEnd srcPt345(Point(1329.5, 1590.92), 15);
+ connRef345->setSourceEndpoint(srcPt345);
+ ConnEnd dstPt345(Point(1641, 924), 2);
+ connRef345->setDestEndpoint(dstPt345);
+ connRef345->setRoutingType((ConnType)2);
+
+ ConnRef *connRef346 = new ConnRef(router, 346);
+ ConnEnd srcPt346(Point(1329.5, 2008.92), 15);
+ connRef346->setSourceEndpoint(srcPt346);
+ ConnEnd dstPt346(Point(1681, 924), 2);
+ connRef346->setDestEndpoint(dstPt346);
+ connRef346->setRoutingType((ConnType)2);
+
+ ConnRef *connRef347 = new ConnRef(router, 347);
+ ConnEnd srcPt347(Point(1329.5, 272), 15);
+ connRef347->setSourceEndpoint(srcPt347);
+ ConnEnd dstPt347(Point(1390, 214.5), 2);
+ connRef347->setDestEndpoint(dstPt347);
+ connRef347->setRoutingType((ConnType)2);
+
+ ConnRef *connRef348 = new ConnRef(router, 348);
+ ConnEnd srcPt348(Point(251.5, 1714.92), 15);
+ connRef348->setSourceEndpoint(srcPt348);
+ ConnEnd dstPt348(Point(247.5, 1845.42), 8);
+ connRef348->setDestEndpoint(dstPt348);
+ connRef348->setRoutingType((ConnType)2);
+
+ ConnRef *connRef349 = new ConnRef(router, 349);
+ ConnEnd srcPt349(Point(251.5, 2008.92), 15);
+ connRef349->setSourceEndpoint(srcPt349);
+ ConnEnd dstPt349(Point(247.5, 1885.42), 8);
+ connRef349->setDestEndpoint(dstPt349);
+ connRef349->setRoutingType((ConnType)2);
+
+ ConnRef *connRef350 = new ConnRef(router, 350);
+ ConnEnd srcPt350(Point(1329.5, 1466.92), 15);
+ connRef350->setSourceEndpoint(srcPt350);
+ ConnEnd dstPt350(Point(862.5, 1474.42), 8);
+ connRef350->setDestEndpoint(dstPt350);
+ connRef350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef351 = new ConnRef(router, 351);
+ ConnEnd srcPt351(Point(1574.5, 2008.92), 15);
+ connRef351->setSourceEndpoint(srcPt351);
+ ConnEnd dstPt351(Point(1577, 2138.92), 1);
+ connRef351->setDestEndpoint(dstPt351);
+ connRef351->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/finalSegmentNudging3");
+
+ bool optimisedForConnectorType = false;
+ int crossings = router->existsCrossings(optimisedForConnectorType);
+
+ delete router;
+ return (crossings > 0) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/forwardFlowingConnectors01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/forwardFlowingConnectors01.cpp
new file mode 100644
index 0000000..b2fa17f
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/forwardFlowingConnectors01.cpp
@@ -0,0 +1,380 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 10);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 1000);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 1);
+ router->setRoutingParameter((RoutingParameter)7, 10);
+ router->setRoutingParameter(reverseDirectionPenalty, 500);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ router->setRoutingOption((RoutingOption)4, true);
+ router->setRoutingOption((RoutingOption)5, true);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ PolyLine newRoute;
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(0, 0);
+ polygon.ps[1] = Point(0, 0);
+ polygon.ps[2] = Point(0, 0);
+ polygon.ps[3] = Point(0, 0);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef2
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(0, 0);
+ polygon.ps[1] = Point(0, 0);
+ polygon.ps[2] = Point(0, 0);
+ polygon.ps[3] = Point(0, 0);
+ new ShapeRef(router, polygon, 2);
+
+ // shapeRef3
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(0, 0);
+ polygon.ps[1] = Point(0, 0);
+ polygon.ps[2] = Point(0, 0);
+ polygon.ps[3] = Point(0, 0);
+ new ShapeRef(router, polygon, 3);
+
+ // shapeRef4
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(0, 0);
+ polygon.ps[1] = Point(0, 0);
+ polygon.ps[2] = Point(0, 0);
+ polygon.ps[3] = Point(0, 0);
+ new ShapeRef(router, polygon, 4);
+
+ // shapeRef5
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(501, 345);
+ polygon.ps[1] = Point(501, 404);
+ polygon.ps[2] = Point(421, 404);
+ polygon.ps[3] = Point(421, 345);
+ ShapeRef *shapeRef5 = new ShapeRef(router, polygon, 5);
+ new ShapeConnectionPin(shapeRef5, 5, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef5, 6, 0, 0.79096, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef5, 7, 0, 0.514124, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef6
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(94, 251.5);
+ polygon.ps[1] = Point(94, 315.5);
+ polygon.ps[2] = Point(12, 315.5);
+ polygon.ps[3] = Point(12, 251.5);
+ ShapeRef *shapeRef6 = new ShapeRef(router, polygon, 6);
+ new ShapeConnectionPin(shapeRef6, 8, 1, 0.640625, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef6, 9, 0, 0.640625, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef7
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(634.366, 262);
+ polygon.ps[1] = Point(634.366, 305);
+ polygon.ps[2] = Point(416.366, 305);
+ polygon.ps[3] = Point(416.366, 262);
+ ShapeRef *shapeRef7 = new ShapeRef(router, polygon, 7);
+ new ShapeConnectionPin(shapeRef7, 10, 1, 0.709302, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef7, 11, 0, 0.709302, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(324, 147.167);
+ polygon.ps[1] = Point(324, 206.167);
+ polygon.ps[2] = Point(236, 206.167);
+ polygon.ps[3] = Point(236, 147.167);
+ ShapeRef *shapeRef8 = new ShapeRef(router, polygon, 8);
+ new ShapeConnectionPin(shapeRef8, 12, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef8, 13, 0, 0.79096, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef8, 14, 0, 0.514124, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef9
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(816, 353.167);
+ polygon.ps[1] = Point(816, 412.167);
+ polygon.ps[2] = Point(735, 412.167);
+ polygon.ps[3] = Point(735, 353.167);
+ ShapeRef *shapeRef9 = new ShapeRef(router, polygon, 9);
+ new ShapeConnectionPin(shapeRef9, 15, 1, 0.514124, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef9, 16, 1, 0.79096, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef9, 17, 0, 0.79096, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef9, 18, 0, 0.514124, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef10
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(981, 263.833);
+ polygon.ps[1] = Point(981, 321.833);
+ polygon.ps[2] = Point(828, 321.833);
+ polygon.ps[3] = Point(828, 263.833);
+ ShapeRef *shapeRef10 = new ShapeRef(router, polygon, 10);
+ new ShapeConnectionPin(shapeRef10, 19, 0, 0.655172, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef11
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1011.49, 361.833);
+ polygon.ps[1] = Point(1011.49, 419.833);
+ polygon.ps[2] = Point(834.489, 419.833);
+ polygon.ps[3] = Point(834.489, 361.833);
+ ShapeRef *shapeRef11 = new ShapeRef(router, polygon, 11);
+ new ShapeConnectionPin(shapeRef11, 20, 0, 0.655172, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef12
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(511, 155.333);
+ polygon.ps[1] = Point(511, 214.333);
+ polygon.ps[2] = Point(422, 214.333);
+ polygon.ps[3] = Point(422, 155.333);
+ ShapeRef *shapeRef12 = new ShapeRef(router, polygon, 12);
+ new ShapeConnectionPin(shapeRef12, 21, 1, 0.514124, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef12, 22, 1, 0.79096, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef12, 23, 0, 0.79096, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef12, 24, 0, 0.514124, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef13
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(690, 66);
+ polygon.ps[1] = Point(690, 124);
+ polygon.ps[2] = Point(523, 124);
+ polygon.ps[3] = Point(523, 66);
+ ShapeRef *shapeRef13 = new ShapeRef(router, polygon, 13);
+ new ShapeConnectionPin(shapeRef13, 25, 0, 0.655172, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef14
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(720.212, 164);
+ polygon.ps[1] = Point(720.212, 222);
+ polygon.ps[2] = Point(529.212, 222);
+ polygon.ps[3] = Point(529.212, 164);
+ ShapeRef *shapeRef14 = new ShapeRef(router, polygon, 14);
+ new ShapeConnectionPin(shapeRef14, 26, 0, 0.655172, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef15
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(217, 336.833);
+ polygon.ps[1] = Point(217, 395.833);
+ polygon.ps[2] = Point(98, 395.833);
+ polygon.ps[3] = Point(98, 336.833);
+ ShapeRef *shapeRef15 = new ShapeRef(router, polygon, 15);
+ new ShapeConnectionPin(shapeRef15, 27, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef15, 28, 0, 0.652542, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef16
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(413, 147.167);
+ polygon.ps[1] = Point(413, 206.167);
+ polygon.ps[2] = Point(336, 206.167);
+ polygon.ps[3] = Point(336, 147.167);
+ ShapeRef *shapeRef16 = new ShapeRef(router, polygon, 16);
+ new ShapeConnectionPin(shapeRef16, 29, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef16, 30, 0, 0.652542, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef17
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(306, 336.833);
+ polygon.ps[1] = Point(306, 395.833);
+ polygon.ps[2] = Point(229, 395.833);
+ polygon.ps[3] = Point(229, 336.833);
+ ShapeRef *shapeRef17 = new ShapeRef(router, polygon, 17);
+ new ShapeConnectionPin(shapeRef17, 31, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef17, 32, 0, 0.652542, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef18
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(175, 139);
+ polygon.ps[1] = Point(175, 198);
+ polygon.ps[2] = Point(98, 198);
+ polygon.ps[3] = Point(98, 139);
+ ShapeRef *shapeRef18 = new ShapeRef(router, polygon, 18);
+ new ShapeConnectionPin(shapeRef18, 33, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef18, 34, 0, 0.652542, true, 0, (ConnDirFlags) 4);
+
+ // shapeRef19
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(409, 399.333);
+ polygon.ps[1] = Point(409, 458.333);
+ polygon.ps[2] = Point(298, 458.333);
+ polygon.ps[3] = Point(298, 399.333);
+ ShapeRef *shapeRef19 = new ShapeRef(router, polygon, 19);
+ new ShapeConnectionPin(shapeRef19, 35, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+
+ // shapeRef20
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(224, 40);
+ polygon.ps[1] = Point(224, 99);
+ polygon.ps[2] = Point(106, 99);
+ polygon.ps[3] = Point(106, 40);
+ ShapeRef *shapeRef20 = new ShapeRef(router, polygon, 20);
+ new ShapeConnectionPin(shapeRef20, 36, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+
+ // shapeRef21
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(604, 345);
+ polygon.ps[1] = Point(604, 404);
+ polygon.ps[2] = Point(513, 404);
+ polygon.ps[3] = Point(513, 345);
+ ShapeRef *shapeRef21 = new ShapeRef(router, polygon, 21);
+ new ShapeConnectionPin(shapeRef21, 37, 1, 0.652542, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef21, 38, 0, 0.652542, true, 0, (ConnDirFlags) 4);
+
+ // connRef1
+ connRef = new ConnRef(router, 1);
+ srcPt = ConnEnd(shapeRef5, 5);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef21, 38);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2
+ connRef = new ConnRef(router, 2);
+ srcPt = ConnEnd(shapeRef6, 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef18, 34);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3
+ connRef = new ConnRef(router, 3);
+ srcPt = ConnEnd(shapeRef6, 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef15, 28);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef4
+ connRef = new ConnRef(router, 4);
+ srcPt = ConnEnd(shapeRef6, 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef12, 23);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef5
+ connRef = new ConnRef(router, 5);
+ srcPt = ConnEnd(shapeRef6, 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef7, 11);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef6
+ connRef = new ConnRef(router, 6);
+ srcPt = ConnEnd(shapeRef7, 10);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef9, 17);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ ConnRef *connector6 = connRef;
+
+ // connRef7
+ connRef = new ConnRef(router, 7);
+ srcPt = ConnEnd(shapeRef8, 12);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef16, 30);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef8
+ connRef = new ConnRef(router, 8);
+ srcPt = ConnEnd(shapeRef9, 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef10, 19);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef9
+ connRef = new ConnRef(router, 9);
+ srcPt = ConnEnd(shapeRef9, 16);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef11, 20);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef10
+ connRef = new ConnRef(router, 10);
+ srcPt = ConnEnd(shapeRef12, 21);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef13, 25);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef11
+ connRef = new ConnRef(router, 11);
+ srcPt = ConnEnd(shapeRef12, 22);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef14, 26);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef12
+ connRef = new ConnRef(router, 12);
+ srcPt = ConnEnd(shapeRef15, 27);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef17, 32);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef13
+ connRef = new ConnRef(router, 13);
+ srcPt = ConnEnd(shapeRef16, 29);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef12, 24);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef14
+ connRef = new ConnRef(router, 14);
+ srcPt = ConnEnd(shapeRef17, 31);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef5, 7);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef15
+ connRef = new ConnRef(router, 15);
+ srcPt = ConnEnd(shapeRef18, 33);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef8, 14);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef16
+ connRef = new ConnRef(router, 16);
+ srcPt = ConnEnd(shapeRef19, 35);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef5, 7);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef17
+ connRef = new ConnRef(router, 17);
+ srcPt = ConnEnd(shapeRef20, 36);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef8, 14);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef18
+ connRef = new ConnRef(router, 18);
+ srcPt = ConnEnd(shapeRef21, 37);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef9, 18);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ // Test that connector 6 has three segments and doesnt loop right
+ // around the shapes on the right due to the crossing penalty.
+ bool suceeds = (connector6->displayRoute().size() == 4);
+
+ //router->outputDiagram("output/forwardFlowingConnectors01");
+ delete router;
+ return (suceeds ? 0 : 1);
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/freeFloatingDirection01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/freeFloatingDirection01.cpp
new file mode 100644
index 0000000..56e1773
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/freeFloatingDirection01.cpp
@@ -0,0 +1,3321 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(348, 1286.05);
+ poly2.ps[1] = Point(348, 1304.05);
+ poly2.ps[2] = Point(330, 1304.05);
+ poly2.ps[3] = Point(330, 1286.05);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(495, 1032.05);
+ poly153.ps[1] = Point(495, 1070.05);
+ poly153.ps[2] = Point(440, 1070.05);
+ poly153.ps[3] = Point(440, 1032.05);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(613, 959.545);
+ poly154.ps[1] = Point(613, 997.545);
+ poly154.ps[2] = Point(559, 997.545);
+ poly154.ps[3] = Point(559, 959.545);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(596, 1134.05);
+ poly155.ps[1] = Point(596, 1172.05);
+ poly155.ps[2] = Point(542, 1172.05);
+ poly155.ps[3] = Point(542, 1134.05);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(762, 377);
+ poly156.ps[1] = Point(762, 415);
+ poly156.ps[2] = Point(708, 415);
+ poly156.ps[3] = Point(708, 377);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(888, 377);
+ poly157.ps[1] = Point(888, 415);
+ poly157.ps[2] = Point(834, 415);
+ poly157.ps[3] = Point(834, 377);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(545, 515.545);
+ poly158.ps[1] = Point(545, 553.545);
+ poly158.ps[2] = Point(491, 553.545);
+ poly158.ps[3] = Point(491, 515.545);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(819.5, 753.545);
+ poly159.ps[1] = Point(819.5, 791.545);
+ poly159.ps[2] = Point(765.5, 791.545);
+ poly159.ps[3] = Point(765.5, 753.545);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(824, 959.545);
+ poly160.ps[1] = Point(824, 997.545);
+ poly160.ps[2] = Point(770, 997.545);
+ poly160.ps[3] = Point(770, 959.545);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(868, 1104.55);
+ poly161.ps[1] = Point(868, 1142.55);
+ poly161.ps[2] = Point(814, 1142.55);
+ poly161.ps[3] = Point(814, 1104.55);
+ new ShapeRef(router, poly161, 161);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(819.5, 617.545);
+ poly162.ps[1] = Point(819.5, 655.545);
+ poly162.ps[2] = Point(765.5, 655.545);
+ poly162.ps[3] = Point(765.5, 617.545);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(826, 1156.55);
+ poly163.ps[1] = Point(826, 1194.55);
+ poly163.ps[2] = Point(772, 1194.55);
+ poly163.ps[3] = Point(772, 1156.55);
+ new ShapeRef(router, poly163, 163);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(897, 1391.71);
+ poly164.ps[1] = Point(897, 1429.71);
+ poly164.ps[2] = Point(843, 1429.71);
+ poly164.ps[3] = Point(843, 1391.71);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(781, 1524.71);
+ poly165.ps[1] = Point(781, 1562.71);
+ poly165.ps[2] = Point(727, 1562.71);
+ poly165.ps[3] = Point(727, 1524.71);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(853, 1657.71);
+ poly166.ps[1] = Point(853, 1695.71);
+ poly166.ps[2] = Point(799, 1695.71);
+ poly166.ps[3] = Point(799, 1657.71);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(1014, 241);
+ poly167.ps[1] = Point(1014, 279);
+ poly167.ps[2] = Point(960, 279);
+ poly167.ps[3] = Point(960, 241);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(1014, 325);
+ poly168.ps[1] = Point(1014, 363);
+ poly168.ps[2] = Point(960, 363);
+ poly168.ps[3] = Point(960, 325);
+ new ShapeRef(router, poly168, 168);
+
+ Polygon poly169(4);
+ poly169.ps[0] = Point(1014, 660.045);
+ poly169.ps[1] = Point(1014, 698.045);
+ poly169.ps[2] = Point(960, 698.045);
+ poly169.ps[3] = Point(960, 660.045);
+ new ShapeRef(router, poly169, 169);
+
+ Polygon poly170(4);
+ poly170.ps[0] = Point(1014, 913.545);
+ poly170.ps[1] = Point(1014, 951.545);
+ poly170.ps[2] = Point(960, 951.545);
+ poly170.ps[3] = Point(960, 913.545);
+ new ShapeRef(router, poly170, 170);
+
+ Polygon poly171(4);
+ poly171.ps[0] = Point(1012, 46);
+ poly171.ps[1] = Point(1012, 84);
+ poly171.ps[2] = Point(958, 84);
+ poly171.ps[3] = Point(958, 46);
+ new ShapeRef(router, poly171, 171);
+
+ Polygon poly172(4);
+ poly172.ps[0] = Point(1017, 377);
+ poly172.ps[1] = Point(1017, 415);
+ poly172.ps[2] = Point(963, 415);
+ poly172.ps[3] = Point(963, 377);
+ new ShapeRef(router, poly172, 172);
+
+ Polygon poly173(4);
+ poly173.ps[0] = Point(1199, 377);
+ poly173.ps[1] = Point(1199, 415);
+ poly173.ps[2] = Point(1145, 415);
+ poly173.ps[3] = Point(1145, 377);
+ new ShapeRef(router, poly173, 173);
+
+ Polygon poly174(4);
+ poly174.ps[0] = Point(1179, 691.379);
+ poly174.ps[1] = Point(1179, 729.379);
+ poly174.ps[2] = Point(1125, 729.379);
+ poly174.ps[3] = Point(1125, 691.379);
+ new ShapeRef(router, poly174, 174);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(119, 565.545);
+ poly130.ps[1] = Point(119, 603.545);
+ poly130.ps[2] = Point(81, 603.545);
+ poly130.ps[3] = Point(81, 565.545);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(239, 565.545);
+ poly131.ps[1] = Point(239, 603.545);
+ poly131.ps[2] = Point(201, 603.545);
+ poly131.ps[3] = Point(201, 565.545);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(1517.53, 1758.71);
+ poly132.ps[1] = Point(1517.53, 1796.71);
+ poly132.ps[2] = Point(1479.53, 1796.71);
+ poly132.ps[3] = Point(1479.53, 1758.71);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(1627.2, 1758.71);
+ poly133.ps[1] = Point(1627.2, 1796.71);
+ poly133.ps[2] = Point(1589.2, 1796.71);
+ poly133.ps[3] = Point(1589.2, 1758.71);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(1364, 1758.71);
+ poly134.ps[1] = Point(1364, 1796.71);
+ poly134.ps[2] = Point(1326, 1796.71);
+ poly134.ps[3] = Point(1326, 1758.71);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(1238, 1758.71);
+ poly135.ps[1] = Point(1238, 1796.71);
+ poly135.ps[2] = Point(1200, 1796.71);
+ poly135.ps[3] = Point(1200, 1758.71);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(1153, 1758.71);
+ poly136.ps[1] = Point(1153, 1796.71);
+ poly136.ps[2] = Point(1115, 1796.71);
+ poly136.ps[3] = Point(1115, 1758.71);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1563.49, 1033.05);
+ poly137.ps[1] = Point(1563.49, 1071.05);
+ poly137.ps[2] = Point(1525.49, 1071.05);
+ poly137.ps[3] = Point(1525.49, 1033.05);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1563.49, 1635.71);
+ poly138.ps[1] = Point(1563.49, 1673.71);
+ poly138.ps[2] = Point(1525.49, 1673.71);
+ poly138.ps[3] = Point(1525.49, 1635.71);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(648, 565.545);
+ poly139.ps[1] = Point(648, 603.545);
+ poly139.ps[2] = Point(610, 603.545);
+ poly139.ps[3] = Point(610, 565.545);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(665, 1208.55);
+ poly140.ps[1] = Point(665, 1246.55);
+ poly140.ps[2] = Point(627, 1246.55);
+ poly140.ps[3] = Point(627, 1208.55);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(777, 1328.05);
+ poly141.ps[1] = Point(777, 1386.05);
+ poly141.ps[2] = Point(466, 1386.05);
+ poly141.ps[3] = Point(466, 1328.05);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(892, 305);
+ poly142.ps[1] = Point(892, 363);
+ poly142.ps[2] = Point(581, 363);
+ poly142.ps[3] = Point(581, 305);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(366, 1226.05);
+ poly143.ps[1] = Point(366, 1264.05);
+ poly143.ps[2] = Point(312, 1264.05);
+ poly143.ps[3] = Point(312, 1226.05);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(366, 1134.05);
+ poly144.ps[1] = Point(366, 1172.05);
+ poly144.ps[2] = Point(312, 1172.05);
+ poly144.ps[3] = Point(312, 1134.05);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(100, 1130.05);
+ poly145.ps[1] = Point(100, 1168.05);
+ poly145.ps[2] = Point(46, 1168.05);
+ poly145.ps[3] = Point(46, 1130.05);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(1497.2, 669.545);
+ poly146.ps[1] = Point(1497.2, 707.545);
+ poly146.ps[2] = Point(1443.2, 707.545);
+ poly146.ps[3] = Point(1443.2, 669.545);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(545, 377);
+ poly147.ps[1] = Point(545, 415);
+ poly147.ps[2] = Point(491, 415);
+ poly147.ps[3] = Point(491, 377);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(361.2, 617.545);
+ poly148.ps[1] = Point(361.2, 655.545);
+ poly148.ps[2] = Point(307.2, 655.545);
+ poly148.ps[3] = Point(307.2, 617.545);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(218, 1080.05);
+ poly149.ps[1] = Point(218, 1118.05);
+ poly149.ps[2] = Point(164, 1118.05);
+ poly149.ps[3] = Point(164, 1080.05);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(423.2, 751.545);
+ poly150.ps[1] = Point(423.2, 789.545);
+ poly150.ps[2] = Point(369.2, 789.545);
+ poly150.ps[3] = Point(369.2, 751.545);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(423.2, 803.545);
+ poly151.ps[1] = Point(423.2, 841.545);
+ poly151.ps[2] = Point(369.2, 841.545);
+ poly151.ps[3] = Point(369.2, 803.545);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(423.2, 855.545);
+ poly152.ps[1] = Point(423.2, 893.545);
+ poly152.ps[2] = Point(369.2, 893.545);
+ poly152.ps[3] = Point(369.2, 855.545);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(348, 1194.05);
+ poly3.ps[1] = Point(348, 1212.05);
+ poly3.ps[2] = Point(330, 1212.05);
+ poly3.ps[3] = Point(330, 1194.05);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly198(4);
+ poly198.ps[0] = Point(1291, 1134.05);
+ poly198.ps[1] = Point(1291, 1172.05);
+ poly198.ps[2] = Point(1237, 1172.05);
+ poly198.ps[3] = Point(1237, 1134.05);
+ new ShapeRef(router, poly198, 198);
+
+ Polygon poly199(4);
+ poly199.ps[0] = Point(1700.2, 1287.71);
+ poly199.ps[1] = Point(1700.2, 1325.71);
+ poly199.ps[2] = Point(1646.2, 1325.71);
+ poly199.ps[3] = Point(1646.2, 1287.71);
+ new ShapeRef(router, poly199, 199);
+
+ Polygon poly200(4);
+ poly200.ps[0] = Point(586.5, 855.545);
+ poly200.ps[1] = Point(586.5, 893.545);
+ poly200.ps[2] = Point(532.5, 893.545);
+ poly200.ps[3] = Point(532.5, 855.545);
+ new ShapeRef(router, poly200, 200);
+
+ Polygon poly201(4);
+ poly201.ps[0] = Point(787, 855.545);
+ poly201.ps[1] = Point(787, 893.545);
+ poly201.ps[2] = Point(733, 893.545);
+ poly201.ps[3] = Point(733, 855.545);
+ new ShapeRef(router, poly201, 201);
+
+ Polygon poly202(4);
+ poly202.ps[0] = Point(496, 907.545);
+ poly202.ps[1] = Point(496, 945.545);
+ poly202.ps[2] = Point(442, 945.545);
+ poly202.ps[3] = Point(442, 907.545);
+ new ShapeRef(router, poly202, 202);
+
+ Polygon poly203(4);
+ poly203.ps[0] = Point(1223, 1088.21);
+ poly203.ps[1] = Point(1223, 1126.21);
+ poly203.ps[2] = Point(1169, 1126.21);
+ poly203.ps[3] = Point(1169, 1088.21);
+ new ShapeRef(router, poly203, 203);
+
+ Polygon poly204(4);
+ poly204.ps[0] = Point(1841.2, 1593.71);
+ poly204.ps[1] = Point(1841.2, 1631.71);
+ poly204.ps[2] = Point(1787.2, 1631.71);
+ poly204.ps[3] = Point(1787.2, 1593.71);
+ new ShapeRef(router, poly204, 204);
+
+ Polygon poly205(4);
+ poly205.ps[0] = Point(658, 1260.55);
+ poly205.ps[1] = Point(658, 1298.55);
+ poly205.ps[2] = Point(604, 1298.55);
+ poly205.ps[3] = Point(604, 1260.55);
+ new ShapeRef(router, poly205, 205);
+
+ Polygon poly206(4);
+ poly206.ps[0] = Point(545, 980.045);
+ poly206.ps[1] = Point(545, 1018.05);
+ poly206.ps[2] = Point(491, 1018.05);
+ poly206.ps[3] = Point(491, 980.045);
+ new ShapeRef(router, poly206, 206);
+
+ Polygon poly207(4);
+ poly207.ps[0] = Point(357, 565.545);
+ poly207.ps[1] = Point(357, 603.545);
+ poly207.ps[2] = Point(303, 603.545);
+ poly207.ps[3] = Point(303, 565.545);
+ new ShapeRef(router, poly207, 207);
+
+ Polygon poly208(4);
+ poly208.ps[0] = Point(187, 515.545);
+ poly208.ps[1] = Point(187, 553.545);
+ poly208.ps[2] = Point(133, 553.545);
+ poly208.ps[3] = Point(133, 515.545);
+ new ShapeRef(router, poly208, 208);
+
+ Polygon poly209(4);
+ poly209.ps[0] = Point(1025.8, 976.045);
+ poly209.ps[1] = Point(1025.8, 1014.05);
+ poly209.ps[2] = Point(971.8, 1014.05);
+ poly209.ps[3] = Point(971.8, 976.045);
+ new ShapeRef(router, poly209, 209);
+
+ Polygon poly210(4);
+ poly210.ps[0] = Point(1654.2, 1339.71);
+ poly210.ps[1] = Point(1654.2, 1377.71);
+ poly210.ps[2] = Point(1600.2, 1377.71);
+ poly210.ps[3] = Point(1600.2, 1339.71);
+ new ShapeRef(router, poly210, 210);
+
+ Polygon poly211(4);
+ poly211.ps[0] = Point(1466.53, 1339.71);
+ poly211.ps[1] = Point(1466.53, 1377.71);
+ poly211.ps[2] = Point(1412.53, 1377.71);
+ poly211.ps[3] = Point(1412.53, 1339.71);
+ new ShapeRef(router, poly211, 211);
+
+ Polygon poly212(4);
+ poly212.ps[0] = Point(1633.49, 1593.71);
+ poly212.ps[1] = Point(1633.49, 1631.71);
+ poly212.ps[2] = Point(1579.49, 1631.71);
+ poly212.ps[3] = Point(1579.49, 1593.71);
+ new ShapeRef(router, poly212, 212);
+
+ Polygon poly213(4);
+ poly213.ps[0] = Point(1429.2, 840.545);
+ poly213.ps[1] = Point(1429.2, 878.545);
+ poly213.ps[2] = Point(1375.2, 878.545);
+ poly213.ps[3] = Point(1375.2, 840.545);
+ new ShapeRef(router, poly213, 213);
+
+ Polygon poly214(4);
+ poly214.ps[0] = Point(1633.49, 975.545);
+ poly214.ps[1] = Point(1633.49, 1013.55);
+ poly214.ps[2] = Point(1579.49, 1013.55);
+ poly214.ps[3] = Point(1579.49, 975.545);
+ new ShapeRef(router, poly214, 214);
+
+ Polygon poly215(4);
+ poly215.ps[0] = Point(1505.53, 925.545);
+ poly215.ps[1] = Point(1505.53, 963.545);
+ poly215.ps[2] = Point(1451.53, 963.545);
+ poly215.ps[3] = Point(1451.53, 925.545);
+ new ShapeRef(router, poly215, 215);
+
+ Polygon poly216(4);
+ poly216.ps[0] = Point(1099.8, 1595.71);
+ poly216.ps[1] = Point(1099.8, 1633.71);
+ poly216.ps[2] = Point(1041.8, 1633.71);
+ poly216.ps[3] = Point(1041.8, 1595.71);
+ new ShapeRef(router, poly216, 216);
+
+ Polygon poly217(4);
+ poly217.ps[0] = Point(1207, 325);
+ poly217.ps[1] = Point(1207, 363);
+ poly217.ps[2] = Point(1149, 363);
+ poly217.ps[3] = Point(1149, 325);
+ new ShapeRef(router, poly217, 217);
+
+ Polygon poly218(4);
+ poly218.ps[0] = Point(1259, 305);
+ poly218.ps[1] = Point(1259, 363);
+ poly218.ps[2] = Point(1221, 363);
+ poly218.ps[3] = Point(1221, 305);
+ new ShapeRef(router, poly218, 218);
+
+ Polygon poly219(4);
+ poly219.ps[0] = Point(342, 463.545);
+ poly219.ps[1] = Point(342, 501.545);
+ poly219.ps[2] = Point(284, 501.545);
+ poly219.ps[3] = Point(284, 463.545);
+ new ShapeRef(router, poly219, 219);
+
+ Polygon poly220(4);
+ poly220.ps[0] = Point(1066.83, 731.462);
+ poly220.ps[1] = Point(1066.83, 789.462);
+ poly220.ps[2] = Point(1028.83, 789.462);
+ poly220.ps[3] = Point(1028.83, 731.462);
+ new ShapeRef(router, poly220, 220);
+
+ Polygon poly221(4);
+ poly221.ps[0] = Point(777, 1328.05);
+ poly221.ps[1] = Point(777, 1366.05);
+ poly221.ps[2] = Point(719, 1366.05);
+ poly221.ps[3] = Point(719, 1328.05);
+ new ShapeRef(router, poly221, 221);
+
+ Polygon poly222(4);
+ poly222.ps[0] = Point(892, 325);
+ poly222.ps[1] = Point(892, 363);
+ poly222.ps[2] = Point(834, 363);
+ poly222.ps[3] = Point(834, 325);
+ new ShapeRef(router, poly222, 222);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(1620.2, 1297.71);
+ poly63.ps[1] = Point(1620.2, 1315.71);
+ poly63.ps[2] = Point(1602.2, 1315.71);
+ poly63.ps[3] = Point(1602.2, 1297.71);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(630.5, 865.545);
+ poly64.ps[1] = Point(630.5, 883.545);
+ poly64.ps[2] = Point(612.5, 883.545);
+ poly64.ps[3] = Point(612.5, 865.545);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(707, 865.545);
+ poly65.ps[1] = Point(707, 883.545);
+ poly65.ps[2] = Point(689, 883.545);
+ poly65.ps[3] = Point(689, 865.545);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(416, 917.545);
+ poly66.ps[1] = Point(416, 935.545);
+ poly66.ps[2] = Point(398, 935.545);
+ poly66.ps[3] = Point(398, 917.545);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(1143, 1098.21);
+ poly67.ps[1] = Point(1143, 1116.21);
+ poly67.ps[2] = Point(1125, 1116.21);
+ poly67.ps[3] = Point(1125, 1098.21);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(1761.2, 1603.71);
+ poly68.ps[1] = Point(1761.2, 1621.71);
+ poly68.ps[2] = Point(1743.2, 1621.71);
+ poly68.ps[3] = Point(1743.2, 1603.71);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(578, 1270.55);
+ poly69.ps[1] = Point(578, 1288.55);
+ poly69.ps[2] = Point(560, 1288.55);
+ poly69.ps[3] = Point(560, 1270.55);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(527, 1040.05);
+ poly70.ps[1] = Point(527, 1058.05);
+ poly70.ps[2] = Point(509, 1058.05);
+ poly70.ps[3] = Point(509, 1040.05);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(277, 575.545);
+ poly71.ps[1] = Point(277, 593.545);
+ poly71.ps[2] = Point(259, 593.545);
+ poly71.ps[3] = Point(259, 575.545);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(169, 575.545);
+ poly72.ps[1] = Point(169, 593.545);
+ poly72.ps[2] = Point(151, 593.545);
+ poly72.ps[3] = Point(151, 575.545);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(1007.8, 1036.05);
+ poly73.ps[1] = Point(1007.8, 1054.05);
+ poly73.ps[2] = Point(989.8, 1054.05);
+ poly73.ps[3] = Point(989.8, 1036.05);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(1574.2, 1349.71);
+ poly74.ps[1] = Point(1574.2, 1367.71);
+ poly74.ps[2] = Point(1556.2, 1367.71);
+ poly74.ps[3] = Point(1556.2, 1349.71);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(1510.53, 1349.71);
+ poly75.ps[1] = Point(1510.53, 1367.71);
+ poly75.ps[2] = Point(1492.53, 1367.71);
+ poly75.ps[3] = Point(1492.53, 1349.71);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(1553.49, 1603.71);
+ poly76.ps[1] = Point(1553.49, 1621.71);
+ poly76.ps[2] = Point(1535.49, 1621.71);
+ poly76.ps[3] = Point(1535.49, 1603.71);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1349.2, 850.545);
+ poly77.ps[1] = Point(1349.2, 868.545);
+ poly77.ps[2] = Point(1331.2, 868.545);
+ poly77.ps[3] = Point(1331.2, 850.545);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(1553.49, 985.545);
+ poly78.ps[1] = Point(1553.49, 1003.55);
+ poly78.ps[2] = Point(1535.49, 1003.55);
+ poly78.ps[3] = Point(1535.49, 985.545);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(1487.53, 985.545);
+ poly79.ps[1] = Point(1487.53, 1003.55);
+ poly79.ps[2] = Point(1469.53, 1003.55);
+ poly79.ps[3] = Point(1469.53, 985.545);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(119, 667.545);
+ poly80.ps[1] = Point(119, 705.545);
+ poly80.ps[2] = Point(81, 705.545);
+ poly80.ps[3] = Point(81, 667.545);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(179, 803.545);
+ poly81.ps[1] = Point(179, 841.545);
+ poly81.ps[2] = Point(141, 841.545);
+ poly81.ps[3] = Point(141, 803.545);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(394, 427);
+ poly82.ps[1] = Point(394, 465);
+ poly82.ps[2] = Point(356, 465);
+ poly82.ps[3] = Point(356, 427);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(658.5, 427);
+ poly83.ps[1] = Point(658.5, 465);
+ poly83.ps[2] = Point(620.5, 465);
+ poly83.ps[3] = Point(620.5, 427);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(820, 427);
+ poly84.ps[1] = Point(820, 465);
+ poly84.ps[2] = Point(782, 465);
+ poly84.ps[3] = Point(782, 427);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(801.5, 677.545);
+ poly22.ps[1] = Point(801.5, 695.545);
+ poly22.ps[2] = Point(783.5, 695.545);
+ poly22.ps[3] = Point(783.5, 677.545);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(870, 1166.55);
+ poly23.ps[1] = Point(870, 1184.55);
+ poly23.ps[2] = Point(852, 1184.55);
+ poly23.ps[3] = Point(852, 1166.55);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(879, 1451.71);
+ poly24.ps[1] = Point(879, 1469.71);
+ poly24.ps[2] = Point(861, 1469.71);
+ poly24.ps[3] = Point(861, 1451.71);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(763, 1584.71);
+ poly25.ps[1] = Point(763, 1602.71);
+ poly25.ps[2] = Point(745, 1602.71);
+ poly25.ps[3] = Point(745, 1584.71);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(835, 1617.71);
+ poly26.ps[1] = Point(835, 1635.71);
+ poly26.ps[2] = Point(817, 1635.71);
+ poly26.ps[3] = Point(817, 1617.71);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(934, 251);
+ poly27.ps[1] = Point(934, 269);
+ poly27.ps[2] = Point(916, 269);
+ poly27.ps[3] = Point(916, 251);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(934, 335);
+ poly28.ps[1] = Point(934, 353);
+ poly28.ps[2] = Point(916, 353);
+ poly28.ps[3] = Point(916, 335);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(934, 670.045);
+ poly29.ps[1] = Point(934, 688.045);
+ poly29.ps[2] = Point(916, 688.045);
+ poly29.ps[3] = Point(916, 670.045);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(934, 923.545);
+ poly30.ps[1] = Point(934, 941.545);
+ poly30.ps[2] = Point(916, 941.545);
+ poly30.ps[3] = Point(916, 923.545);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(994, 106);
+ poly31.ps[1] = Point(994, 124);
+ poly31.ps[2] = Point(976, 124);
+ poly31.ps[3] = Point(976, 106);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(999, 437);
+ poly32.ps[1] = Point(999, 455);
+ poly32.ps[2] = Point(981, 455);
+ poly32.ps[3] = Point(981, 437);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(1181, 437);
+ poly33.ps[1] = Point(1181, 455);
+ poly33.ps[2] = Point(1163, 455);
+ poly33.ps[3] = Point(1163, 437);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1161, 751.379);
+ poly34.ps[1] = Point(1161, 769.379);
+ poly34.ps[2] = Point(1143, 769.379);
+ poly34.ps[3] = Point(1143, 751.379);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1107, 813.545);
+ poly35.ps[1] = Point(1107, 831.545);
+ poly35.ps[2] = Point(1089, 831.545);
+ poly35.ps[3] = Point(1089, 813.545);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(979, 1098.21);
+ poly36.ps[1] = Point(979, 1116.21);
+ poly36.ps[2] = Point(961, 1116.21);
+ poly36.ps[3] = Point(961, 1098.21);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(947.8, 1620.71);
+ poly37.ps[1] = Point(947.8, 1638.71);
+ poly37.ps[2] = Point(929.8, 1638.71);
+ poly37.ps[3] = Point(929.8, 1620.71);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(1299.8, 1595.71);
+ poly38.ps[1] = Point(1299.8, 1653.71);
+ poly38.ps[2] = Point(1041.8, 1653.71);
+ poly38.ps[3] = Point(1041.8, 1595.71);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(767, 1676.71);
+ poly39.ps[1] = Point(767, 1694.71);
+ poly39.ps[2] = Point(749, 1694.71);
+ poly39.ps[3] = Point(749, 1676.71);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(767, 1768.71);
+ poly40.ps[1] = Point(767, 1786.71);
+ poly40.ps[2] = Point(749, 1786.71);
+ poly40.ps[3] = Point(749, 1768.71);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(944, 96);
+ poly85.ps[1] = Point(944, 134);
+ poly85.ps[2] = Point(906, 134);
+ poly85.ps[3] = Point(906, 96);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(1120, 96);
+ poly86.ps[1] = Point(1120, 134);
+ poly86.ps[2] = Point(1082, 134);
+ poly86.ps[3] = Point(1082, 96);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(1120, 283);
+ poly87.ps[1] = Point(1120, 321);
+ poly87.ps[2] = Point(1082, 321);
+ poly87.ps[3] = Point(1082, 283);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(944, 283);
+ poly88.ps[1] = Point(944, 321);
+ poly88.ps[2] = Point(906, 321);
+ poly88.ps[3] = Point(906, 283);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(353.2, 709.545);
+ poly89.ps[1] = Point(353.2, 747.545);
+ poly89.ps[2] = Point(315.2, 747.545);
+ poly89.ps[3] = Point(315.2, 709.545);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(665, 667.545);
+ poly90.ps[1] = Point(665, 705.545);
+ poly90.ps[2] = Point(627, 705.545);
+ poly90.ps[3] = Point(627, 667.545);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(665, 803.545);
+ poly91.ps[1] = Point(665, 841.545);
+ poly91.ps[2] = Point(627, 841.545);
+ poly91.ps[3] = Point(627, 803.545);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(944, 427);
+ poly92.ps[1] = Point(944, 465);
+ poly92.ps[2] = Point(906, 465);
+ poly92.ps[3] = Point(906, 427);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1131, 427);
+ poly93.ps[1] = Point(1131, 465);
+ poly93.ps[2] = Point(1093, 465);
+ poly93.ps[3] = Point(1093, 427);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(1254, 427);
+ poly94.ps[1] = Point(1254, 465);
+ poly94.ps[2] = Point(1216, 465);
+ poly94.ps[3] = Point(1216, 427);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(944, 803.545);
+ poly95.ps[1] = Point(944, 841.545);
+ poly95.ps[2] = Point(906, 841.545);
+ poly95.ps[3] = Point(906, 803.545);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(270, 1082.05);
+ poly96.ps[1] = Point(270, 1120.05);
+ poly96.ps[2] = Point(232, 1120.05);
+ poly96.ps[3] = Point(232, 1082.05);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(426, 1009.55);
+ poly97.ps[1] = Point(426, 1047.55);
+ poly97.ps[2] = Point(388, 1047.55);
+ poly97.ps[3] = Point(388, 1009.55);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(262, 1276.05);
+ poly98.ps[1] = Point(262, 1314.05);
+ poly98.ps[2] = Point(224, 1314.05);
+ poly98.ps[3] = Point(224, 1276.05);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(957.8, 1832.71);
+ poly99.ps[1] = Point(957.8, 1870.71);
+ poly99.ps[2] = Point(919.8, 1870.71);
+ poly99.ps[3] = Point(919.8, 1832.71);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(957.8, 1666.71);
+ poly100.ps[1] = Point(957.8, 1704.71);
+ poly100.ps[2] = Point(919.8, 1704.71);
+ poly100.ps[3] = Point(919.8, 1666.71);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(568, 1767.85);
+ poly101.ps[1] = Point(568, 1805.85);
+ poly101.ps[2] = Point(530, 1805.85);
+ poly101.ps[3] = Point(530, 1767.85);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(717, 1596.71);
+ poly102.ps[1] = Point(717, 1634.71);
+ poly102.ps[2] = Point(679, 1634.71);
+ poly102.ps[3] = Point(679, 1596.71);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(829, 1441.71);
+ poly103.ps[1] = Point(829, 1479.71);
+ poly103.ps[2] = Point(791, 1479.71);
+ poly103.ps[3] = Point(791, 1441.71);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(949, 1208.55);
+ poly104.ps[1] = Point(949, 1246.55);
+ poly104.ps[2] = Point(911, 1246.55);
+ poly104.ps[3] = Point(911, 1208.55);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(804, 1208.55);
+ poly105.ps[1] = Point(804, 1246.55);
+ poly105.ps[2] = Point(766, 1246.55);
+ poly105.ps[3] = Point(766, 1208.55);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(717, 1009.55);
+ poly106.ps[1] = Point(717, 1047.55);
+ poly106.ps[2] = Point(679, 1047.55);
+ poly106.ps[3] = Point(679, 1009.55);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(1111, 1088.21);
+ poly107.ps[1] = Point(1111, 1126.21);
+ poly107.ps[2] = Point(1073, 1126.21);
+ poly107.ps[3] = Point(1073, 1088.21);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(144, 1140.05);
+ poly4.ps[1] = Point(144, 1158.05);
+ poly4.ps[2] = Point(126, 1158.05);
+ poly4.ps[3] = Point(126, 1140.05);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1563.49, 741.379);
+ poly1.ps[1] = Point(1563.49, 779.379);
+ poly1.ps[2] = Point(1525.49, 779.379);
+ poly1.ps[3] = Point(1525.49, 741.379);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(527, 437);
+ poly7.ps[1] = Point(527, 455);
+ poly7.ps[2] = Point(509, 455);
+ poly7.ps[3] = Point(509, 437);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(343.2, 677.545);
+ poly8.ps[1] = Point(343.2, 695.545);
+ poly8.ps[2] = Point(325.2, 695.545);
+ poly8.ps[3] = Point(325.2, 677.545);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(200, 1140.05);
+ poly9.ps[1] = Point(200, 1158.05);
+ poly9.ps[2] = Point(182, 1158.05);
+ poly9.ps[3] = Point(182, 1140.05);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(343.2, 761.545);
+ poly10.ps[1] = Point(343.2, 779.545);
+ poly10.ps[2] = Point(325.2, 779.545);
+ poly10.ps[3] = Point(325.2, 761.545);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(343.2, 813.545);
+ poly11.ps[1] = Point(343.2, 831.545);
+ poly11.ps[2] = Point(325.2, 831.545);
+ poly11.ps[3] = Point(325.2, 813.545);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(343.2, 865.545);
+ poly12.ps[1] = Point(343.2, 883.545);
+ poly12.ps[2] = Point(325.2, 883.545);
+ poly12.ps[3] = Point(325.2, 865.545);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(476.5, 1092.05);
+ poly13.ps[1] = Point(476.5, 1110.05);
+ poly13.ps[2] = Point(458.5, 1110.05);
+ poly13.ps[3] = Point(458.5, 1092.05);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(595, 1019.55);
+ poly14.ps[1] = Point(595, 1037.55);
+ poly14.ps[2] = Point(577, 1037.55);
+ poly14.ps[3] = Point(577, 1019.55);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(578, 1194.05);
+ poly15.ps[1] = Point(578, 1212.05);
+ poly15.ps[2] = Point(560, 1212.05);
+ poly15.ps[3] = Point(560, 1194.05);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(744, 437);
+ poly16.ps[1] = Point(744, 455);
+ poly16.ps[2] = Point(726, 455);
+ poly16.ps[3] = Point(726, 437);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(870, 437);
+ poly17.ps[1] = Point(870, 455);
+ poly17.ps[2] = Point(852, 455);
+ poly17.ps[3] = Point(852, 437);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(527, 575.545);
+ poly18.ps[1] = Point(527, 593.545);
+ poly18.ps[2] = Point(509, 593.545);
+ poly18.ps[3] = Point(509, 575.545);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(801.5, 813.545);
+ poly19.ps[1] = Point(801.5, 831.545);
+ poly19.ps[2] = Point(783.5, 831.545);
+ poly19.ps[3] = Point(783.5, 813.545);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(806, 1019.55);
+ poly20.ps[1] = Point(806, 1037.55);
+ poly20.ps[2] = Point(788, 1037.55);
+ poly20.ps[3] = Point(788, 1019.55);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(788, 1114.55);
+ poly21.ps[1] = Point(788, 1132.55);
+ poly21.ps[2] = Point(770, 1132.55);
+ poly21.ps[3] = Point(770, 1114.55);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1479.2, 729.545);
+ poly5.ps[1] = Point(1479.2, 747.545);
+ poly5.ps[2] = Point(1461.2, 747.545);
+ poly5.ps[3] = Point(1461.2, 729.545);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(687.327, 258);
+ poly6.ps[1] = Point(687.327, 291);
+ poly6.ps[2] = Point(393.327, 291);
+ poly6.ps[3] = Point(393.327, 258);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly175(4);
+ poly175.ps[0] = Point(1187, 803.545);
+ poly175.ps[1] = Point(1187, 841.545);
+ poly175.ps[2] = Point(1133, 841.545);
+ poly175.ps[3] = Point(1133, 803.545);
+ new ShapeRef(router, poly175, 175);
+
+ Polygon poly176(4);
+ poly176.ps[0] = Point(1059, 1088.21);
+ poly176.ps[1] = Point(1059, 1126.21);
+ poly176.ps[2] = Point(1005, 1126.21);
+ poly176.ps[3] = Point(1005, 1088.21);
+ new ShapeRef(router, poly176, 176);
+
+ Polygon poly177(4);
+ poly177.ps[0] = Point(1027.8, 1610.71);
+ poly177.ps[1] = Point(1027.8, 1648.71);
+ poly177.ps[2] = Point(973.8, 1648.71);
+ poly177.ps[3] = Point(973.8, 1610.71);
+ new ShapeRef(router, poly177, 177);
+
+ Polygon poly178(4);
+ poly178.ps[0] = Point(785, 1616.71);
+ poly178.ps[1] = Point(785, 1654.71);
+ poly178.ps[2] = Point(731, 1654.71);
+ poly178.ps[3] = Point(731, 1616.71);
+ new ShapeRef(router, poly178, 178);
+
+ Polygon poly179(4);
+ poly179.ps[0] = Point(785, 1708.71);
+ poly179.ps[1] = Point(785, 1746.71);
+ poly179.ps[2] = Point(731, 1746.71);
+ poly179.ps[3] = Point(731, 1708.71);
+ new ShapeRef(router, poly179, 179);
+
+ Polygon poly180(4);
+ poly180.ps[0] = Point(785, 1840.71);
+ poly180.ps[1] = Point(785, 1878.71);
+ poly180.ps[2] = Point(731, 1878.71);
+ poly180.ps[3] = Point(731, 1840.71);
+ new ShapeRef(router, poly180, 180);
+
+ Polygon poly181(4);
+ poly181.ps[0] = Point(1027.8, 1790.71);
+ poly181.ps[1] = Point(1027.8, 1828.71);
+ poly181.ps[2] = Point(973.8, 1828.71);
+ poly181.ps[3] = Point(973.8, 1790.71);
+ new ShapeRef(router, poly181, 181);
+
+ Polygon poly182(4);
+ poly182.ps[0] = Point(1193, 1543.71);
+ poly182.ps[1] = Point(1193, 1581.71);
+ poly182.ps[2] = Point(1139, 1581.71);
+ poly182.ps[3] = Point(1139, 1543.71);
+ new ShapeRef(router, poly182, 182);
+
+ Polygon poly183(4);
+ poly183.ps[0] = Point(1255, 1491.71);
+ poly183.ps[1] = Point(1255, 1529.71);
+ poly183.ps[2] = Point(1201, 1529.71);
+ poly183.ps[3] = Point(1201, 1491.71);
+ new ShapeRef(router, poly183, 183);
+
+ Polygon poly184(4);
+ poly184.ps[0] = Point(1429.2, 663.045);
+ poly184.ps[1] = Point(1429.2, 701.045);
+ poly184.ps[2] = Point(1375.2, 701.045);
+ poly184.ps[3] = Point(1375.2, 663.045);
+ new ShapeRef(router, poly184, 184);
+
+ Polygon poly185(4);
+ poly185.ps[0] = Point(1444.33, 1082.05);
+ poly185.ps[1] = Point(1444.33, 1120.05);
+ poly185.ps[2] = Point(1390.33, 1120.05);
+ poly185.ps[3] = Point(1390.33, 1082.05);
+ new ShapeRef(router, poly185, 185);
+
+ Polygon poly186(4);
+ poly186.ps[0] = Point(1557.2, 383.545);
+ poly186.ps[1] = Point(1557.2, 421.545);
+ poly186.ps[2] = Point(1503.2, 421.545);
+ poly186.ps[3] = Point(1503.2, 383.545);
+ new ShapeRef(router, poly186, 186);
+
+ Polygon poly187(4);
+ poly187.ps[0] = Point(1557.2, 475.545);
+ poly187.ps[1] = Point(1557.2, 513.545);
+ poly187.ps[2] = Point(1503.2, 513.545);
+ poly187.ps[3] = Point(1503.2, 475.545);
+ new ShapeRef(router, poly187, 187);
+
+ Polygon poly188(4);
+ poly188.ps[0] = Point(1497.2, 801.545);
+ poly188.ps[1] = Point(1497.2, 839.545);
+ poly188.ps[2] = Point(1443.2, 839.545);
+ poly188.ps[3] = Point(1443.2, 801.545);
+ new ShapeRef(router, poly188, 188);
+
+ Polygon poly189(4);
+ poly189.ps[0] = Point(1557.2, 567.545);
+ poly189.ps[1] = Point(1557.2, 605.545);
+ poly189.ps[2] = Point(1503.2, 605.545);
+ poly189.ps[3] = Point(1503.2, 567.545);
+ new ShapeRef(router, poly189, 189);
+
+ Polygon poly190(4);
+ poly190.ps[0] = Point(1633.49, 840.545);
+ poly190.ps[1] = Point(1633.49, 878.545);
+ poly190.ps[2] = Point(1579.49, 878.545);
+ poly190.ps[3] = Point(1579.49, 840.545);
+ new ShapeRef(router, poly190, 190);
+
+ Polygon poly191(4);
+ poly191.ps[0] = Point(1745.49, 840.545);
+ poly191.ps[1] = Point(1745.49, 878.545);
+ poly191.ps[2] = Point(1691.49, 878.545);
+ poly191.ps[3] = Point(1691.49, 840.545);
+ new ShapeRef(router, poly191, 191);
+
+ Polygon poly192(4);
+ poly192.ps[0] = Point(1497.2, 1134.05);
+ poly192.ps[1] = Point(1497.2, 1172.05);
+ poly192.ps[2] = Point(1443.2, 1172.05);
+ poly192.ps[3] = Point(1443.2, 1134.05);
+ new ShapeRef(router, poly192, 192);
+
+ Polygon poly193(4);
+ poly193.ps[0] = Point(1497.2, 1230.21);
+ poly193.ps[1] = Point(1497.2, 1268.21);
+ poly193.ps[2] = Point(1443.2, 1268.21);
+ poly193.ps[3] = Point(1443.2, 1230.21);
+ new ShapeRef(router, poly193, 193);
+
+ Polygon poly194(4);
+ poly194.ps[0] = Point(1497.2, 1391.71);
+ poly194.ps[1] = Point(1497.2, 1429.71);
+ poly194.ps[2] = Point(1443.2, 1429.71);
+ poly194.ps[3] = Point(1443.2, 1391.71);
+ new ShapeRef(router, poly194, 194);
+
+ Polygon poly195(4);
+ poly195.ps[0] = Point(1812.2, 1287.71);
+ poly195.ps[1] = Point(1812.2, 1325.71);
+ poly195.ps[2] = Point(1758.2, 1325.71);
+ poly195.ps[3] = Point(1758.2, 1287.71);
+ new ShapeRef(router, poly195, 195);
+
+ Polygon poly196(4);
+ poly196.ps[0] = Point(1215, 148);
+ poly196.ps[1] = Point(1215, 186);
+ poly196.ps[2] = Point(1161, 186);
+ poly196.ps[3] = Point(1161, 148);
+ new ShapeRef(router, poly196, 196);
+
+ Polygon poly197(4);
+ poly197.ps[0] = Point(981.8, 148);
+ poly197.ps[1] = Point(981.8, 186);
+ poly197.ps[2] = Point(927.8, 186);
+ poly197.ps[3] = Point(927.8, 148);
+ new ShapeRef(router, poly197, 197);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(767, 1800.71);
+ poly41.ps[1] = Point(767, 1818.71);
+ poly41.ps[2] = Point(749, 1818.71);
+ poly41.ps[3] = Point(749, 1800.71);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(947.8, 1800.71);
+ poly42.ps[1] = Point(947.8, 1818.71);
+ poly42.ps[2] = Point(929.8, 1818.71);
+ poly42.ps[3] = Point(929.8, 1800.71);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1237, 1553.71);
+ poly43.ps[1] = Point(1237, 1571.71);
+ poly43.ps[2] = Point(1219, 1571.71);
+ poly43.ps[3] = Point(1219, 1553.71);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(1237, 1451.71);
+ poly44.ps[1] = Point(1237, 1469.71);
+ poly44.ps[2] = Point(1219, 1469.71);
+ poly44.ps[3] = Point(1219, 1451.71);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(1349.2, 673.045);
+ poly45.ps[1] = Point(1349.2, 691.045);
+ poly45.ps[2] = Point(1331.2, 691.045);
+ poly45.ps[3] = Point(1331.2, 673.045);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(1364.33, 1092.05);
+ poly46.ps[1] = Point(1364.33, 1110.05);
+ poly46.ps[2] = Point(1346.33, 1110.05);
+ poly46.ps[3] = Point(1346.33, 1092.05);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(1539.2, 443.545);
+ poly47.ps[1] = Point(1539.2, 461.545);
+ poly47.ps[2] = Point(1521.2, 461.545);
+ poly47.ps[3] = Point(1521.2, 443.545);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(1539.2, 535.545);
+ poly48.ps[1] = Point(1539.2, 553.545);
+ poly48.ps[2] = Point(1521.2, 553.545);
+ poly48.ps[3] = Point(1521.2, 535.545);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1479.2, 761.545);
+ poly49.ps[1] = Point(1479.2, 779.545);
+ poly49.ps[2] = Point(1461.2, 779.545);
+ poly49.ps[3] = Point(1461.2, 761.545);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(1539.2, 627.545);
+ poly50.ps[1] = Point(1539.2, 645.545);
+ poly50.ps[2] = Point(1521.2, 645.545);
+ poly50.ps[3] = Point(1521.2, 627.545);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1553.49, 850.545);
+ poly51.ps[1] = Point(1553.49, 868.545);
+ poly51.ps[2] = Point(1535.49, 868.545);
+ poly51.ps[3] = Point(1535.49, 850.545);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(1665.49, 850.545);
+ poly52.ps[1] = Point(1665.49, 868.545);
+ poly52.ps[2] = Point(1647.49, 868.545);
+ poly52.ps[3] = Point(1647.49, 850.545);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(1479.2, 1194.05);
+ poly53.ps[1] = Point(1479.2, 1212.05);
+ poly53.ps[2] = Point(1461.2, 1212.05);
+ poly53.ps[3] = Point(1461.2, 1194.05);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(1479.2, 1290.21);
+ poly54.ps[1] = Point(1479.2, 1308.21);
+ poly54.ps[2] = Point(1461.2, 1308.21);
+ poly54.ps[3] = Point(1461.2, 1290.21);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(1479.2, 1451.71);
+ poly55.ps[1] = Point(1479.2, 1469.71);
+ poly55.ps[2] = Point(1461.2, 1469.71);
+ poly55.ps[3] = Point(1461.2, 1451.71);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(1732.2, 1297.71);
+ poly56.ps[1] = Point(1732.2, 1315.71);
+ poly56.ps[2] = Point(1714.2, 1315.71);
+ poly56.ps[3] = Point(1714.2, 1297.71);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(1441, 200);
+ poly57.ps[1] = Point(1441, 363);
+ poly57.ps[2] = Point(1149, 363);
+ poly57.ps[3] = Point(1149, 200);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(342, 443.545);
+ poly58.ps[1] = Point(342, 501.545);
+ poly58.ps[2] = Point(49, 501.545);
+ poly58.ps[3] = Point(49, 443.545);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(1111, 617.545);
+ poly59.ps[1] = Point(1111, 789.545);
+ poly59.ps[2] = Point(1028, 789.545);
+ poly59.ps[3] = Point(1028, 617.545);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(1135, 158);
+ poly60.ps[1] = Point(1135, 176);
+ poly60.ps[2] = Point(1117, 176);
+ poly60.ps[3] = Point(1117, 158);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(1025.8, 158);
+ poly61.ps[1] = Point(1025.8, 176);
+ poly61.ps[2] = Point(1007.8, 176);
+ poly61.ps[3] = Point(1007.8, 158);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(1273, 1194.05);
+ poly62.ps[1] = Point(1273, 1212.05);
+ poly62.ps[2] = Point(1255, 1212.05);
+ poly62.ps[3] = Point(1255, 1194.05);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(1678.49, 1184.05);
+ poly108.ps[1] = Point(1678.49, 1222.05);
+ poly108.ps[2] = Point(1640.49, 1222.05);
+ poly108.ps[3] = Point(1640.49, 1184.05);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1559.2, 1280.21);
+ poly109.ps[1] = Point(1559.2, 1318.21);
+ poly109.ps[2] = Point(1521.2, 1318.21);
+ poly109.ps[3] = Point(1521.2, 1280.21);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(1374.33, 1124.05);
+ poly110.ps[1] = Point(1374.33, 1162.05);
+ poly110.ps[2] = Point(1336.33, 1162.05);
+ poly110.ps[3] = Point(1336.33, 1124.05);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(1374.33, 1026.05);
+ poly111.ps[1] = Point(1374.33, 1064.05);
+ poly111.ps[2] = Point(1336.33, 1064.05);
+ poly111.ps[3] = Point(1336.33, 1026.05);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(1489.2, 617.545);
+ poly112.ps[1] = Point(1489.2, 655.545);
+ poly112.ps[2] = Point(1451.2, 655.545);
+ poly112.ps[3] = Point(1451.2, 617.545);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(1359.2, 741.379);
+ poly113.ps[1] = Point(1359.2, 779.379);
+ poly113.ps[2] = Point(1321.2, 779.379);
+ poly113.ps[3] = Point(1321.2, 741.379);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(1359.2, 525.545);
+ poly114.ps[1] = Point(1359.2, 563.545);
+ poly114.ps[2] = Point(1321.2, 563.545);
+ poly114.ps[3] = Point(1321.2, 525.545);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(1609.2, 617.545);
+ poly115.ps[1] = Point(1609.2, 655.545);
+ poly115.ps[2] = Point(1571.2, 655.545);
+ poly115.ps[3] = Point(1571.2, 617.545);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(1678.49, 525.545);
+ poly116.ps[1] = Point(1678.49, 563.545);
+ poly116.ps[2] = Point(1640.49, 563.545);
+ poly116.ps[3] = Point(1640.49, 525.545);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(1563.49, 907.545);
+ poly117.ps[1] = Point(1563.49, 945.545);
+ poly117.ps[2] = Point(1525.49, 945.545);
+ poly117.ps[3] = Point(1525.49, 907.545);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(409, 565.545);
+ poly118.ps[1] = Point(409, 603.545);
+ poly118.ps[2] = Point(371, 603.545);
+ poly118.ps[3] = Point(371, 565.545);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(1359.2, 904.545);
+ poly119.ps[1] = Point(1359.2, 942.545);
+ poly119.ps[2] = Point(1321.2, 942.545);
+ poly119.ps[3] = Point(1321.2, 904.545);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(648, 1082.05);
+ poly120.ps[1] = Point(648, 1120.05);
+ poly120.ps[2] = Point(610, 1120.05);
+ poly120.ps[3] = Point(610, 1082.05);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(1196, 1297.71);
+ poly121.ps[1] = Point(1196, 1335.71);
+ poly121.ps[2] = Point(1158, 1335.71);
+ poly121.ps[3] = Point(1158, 1297.71);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(1343, 1184.05);
+ poly122.ps[1] = Point(1343, 1222.05);
+ poly122.ps[2] = Point(1305, 1222.05);
+ poly122.ps[3] = Point(1305, 1184.05);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(1559.2, 1441.71);
+ poly123.ps[1] = Point(1559.2, 1479.71);
+ poly123.ps[2] = Point(1521.2, 1479.71);
+ poly123.ps[3] = Point(1521.2, 1441.71);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(1771.2, 1758.71);
+ poly124.ps[1] = Point(1771.2, 1796.71);
+ poly124.ps[2] = Point(1733.2, 1796.71);
+ poly124.ps[3] = Point(1733.2, 1758.71);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(957.8, 965.545);
+ poly125.ps[1] = Point(957.8, 1003.55);
+ poly125.ps[2] = Point(919.8, 1003.55);
+ poly125.ps[3] = Point(919.8, 965.545);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(1131, 1026.05);
+ poly126.ps[1] = Point(1131, 1064.05);
+ poly126.ps[2] = Point(1093, 1064.05);
+ poly126.ps[3] = Point(1093, 1026.05);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(665, 939.925);
+ poly127.ps[1] = Point(665, 977.925);
+ poly127.ps[2] = Point(627, 977.925);
+ poly127.ps[3] = Point(627, 939.925);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(418, 1184.05);
+ poly128.ps[1] = Point(418, 1222.05);
+ poly128.ps[2] = Point(380, 1222.05);
+ poly128.ps[3] = Point(380, 1184.05);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(418, 1276.05);
+ poly129.ps[1] = Point(418, 1314.05);
+ poly129.ps[2] = Point(380, 1314.05);
+ poly129.ps[3] = Point(380, 1276.05);
+ new ShapeRef(router, poly129, 129);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1544.49, 849.545), 1);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1544.49, 760.379), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(329, 1295.05), 4);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(243, 1295.05), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(329, 1203.05), 4);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(243, 1295.05), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(135, 1159.05), 2);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(938.8, 1851.71), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(1480.2, 738.545), 8);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(1544.49, 760.379), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(508, 446), 4);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(375, 446), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(324.2, 686.545), 4);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(100, 686.545), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(324.2, 686.545), 4);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(160, 822.545), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(324.2, 686.545), 4);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(646, 686.545), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(201, 1149.05), 8);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(938.8, 1851.71), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(334.2, 780.545), 2);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(160, 822.545), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(334.2, 780.545), 2);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(646, 822.545), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(334.2, 780.545), 2);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(251, 1101.05), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(334.2, 832.545), 2);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(160, 822.545), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(334.2, 832.545), 2);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(646, 822.545), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(334.2, 832.545), 2);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(251, 1101.05), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(334.2, 884.545), 2);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(160, 822.545), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(334.2, 884.545), 2);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(646, 822.545), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(334.2, 884.545), 2);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(251, 1101.05), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(457.5, 1101.05), 4);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(251, 1101.05), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(576, 1028.55), 4);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(407, 1028.55), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(579, 1203.05), 8);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(399, 1203.05), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(579, 1203.05), 8);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(646, 1227.55), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(725, 446), 4);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(639.5, 446), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(851, 446), 4);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(801, 446), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(528, 584.545), 8);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(646, 686.545), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(528, 584.545), 8);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(629, 584.545), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(782.5, 822.545), 4);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(646, 822.545), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(787, 1028.55), 4);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(698, 1028.55), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(779, 1133.55), 2);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(646, 1227.55), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(782.5, 686.545), 4);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(646, 686.545), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(861, 1185.55), 2);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(930, 1227.55), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(860, 1460.71), 4);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(810, 1460.71), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(880, 1460.71), 8);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(930, 1227.55), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(744, 1593.71), 4);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(549, 1786.85), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(744, 1593.71), 4);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(698, 1615.71), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(816, 1626.71), 4);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(698, 1615.71), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(925, 250), 1);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(925, 115), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(925, 334), 1);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(925, 302), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(925, 354), 2);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(925, 446), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(925, 669.045), 1);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(925, 446), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(925, 922.545), 1);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(925, 822.545), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(995, 115), 8);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(1101, 115), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(1000, 446), 8);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(1112, 446), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(1182, 446), 8);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(1235, 446), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(1162, 760.379), 8);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(1340.2, 760.379), 15);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(1098, 832.545), 2);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(1177, 1316.71), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(970, 1097.21), 1);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(1092, 1107.21), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(938.8, 1639.71), 2);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(938.8, 1685.71), 15);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(938.8, 1619.71), 1);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(930, 1227.55), 15);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(768, 1685.71), 8);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(938.8, 1685.71), 15);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(748, 1685.71), 4);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(549, 1786.85), 15);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(768, 1777.71), 8);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(938.8, 1685.71), 15);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(768, 1809.71), 8);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(938.8, 1685.71), 15);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(938.8, 1819.71), 2);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(938.8, 1851.71), 15);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(1228, 1572.71), 2);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(1177, 1316.71), 15);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(1228, 1552.71), 1);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(1324, 1203.05), 15);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(1228, 1572.71), 2);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(1540.2, 1460.71), 15);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(1238, 1460.71), 8);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(1324, 1203.05), 15);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(1340.2, 672.045), 1);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(1340.2, 544.545), 15);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(1355.33, 1111.05), 2);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(1355.33, 1143.05), 15);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(1540.2, 452.545), 8);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(1659.49, 544.545), 15);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(1540.2, 544.545), 8);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(1590.2, 636.545), 15);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(1540.2, 544.545), 8);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(1659.49, 544.545), 15);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(1480.2, 770.545), 8);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(1544.49, 760.379), 15);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(1520.2, 636.545), 4);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(1470.2, 636.545), 15);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(1540.2, 636.545), 8);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(1590.2, 636.545), 15);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(1544.49, 869.545), 2);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(1544.49, 926.545), 15);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(1656.49, 849.545), 1);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(1659.49, 1203.05), 15);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(1656.49, 849.545), 1);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(1590.2, 636.545), 15);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(1656.49, 849.545), 1);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(1659.49, 544.545), 15);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(1480.2, 1203.05), 8);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(1659.49, 1203.05), 15);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(1480.2, 1203.05), 8);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(1355.33, 1143.05), 15);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(1480.2, 1203.05), 8);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(1544.49, 1052.05), 15);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(1480.2, 1299.21), 8);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(1540.2, 1299.21), 15);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(1480.2, 1460.71), 8);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(1540.2, 1460.71), 15);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(1723.2, 1316.71), 2);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(1540.2, 1460.71), 15);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(1126, 177), 2);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(1101, 302), 15);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(1016.8, 177), 2);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(1101, 302), 15);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(1254, 1203.05), 4);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(930, 1227.55), 15);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(1254, 1203.05), 4);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(1177, 1316.71), 15);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(1611.2, 1316.71), 2);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(1659.49, 1203.05), 15);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(1611.2, 1316.71), 2);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(1540.2, 1460.71), 15);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(621.5, 884.545), 2);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(646, 958.925), 15);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(698, 884.545), 2);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(646, 958.925), 15);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(407, 936.545), 2);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(646, 822.545), 15);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(407, 936.545), 2);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(407, 1028.55), 15);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(1134, 1117.21), 2);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(1177, 1316.71), 15);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(1752.2, 1602.71), 1);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(930, 1227.55), 15);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(1752.2, 1602.71), 1);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(1659.49, 544.545), 15);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(569, 1269.55), 1);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(399, 1203.05), 15);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(569, 1269.55), 1);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(646, 1227.55), 15);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(508, 1049.05), 4);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(251, 1101.05), 15);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(268, 594.545), 2);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(407, 1028.55), 15);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(268, 594.545), 2);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(390, 584.545), 15);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(268, 574.545), 1);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(220, 584.545), 15);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(150, 584.545), 4);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(100, 584.545), 15);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(988.8, 1045.05), 4);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(930, 1227.55), 15);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(988.8, 1045.05), 4);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(938.8, 984.545), 15);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(1565.2, 1368.71), 2);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(1540.2, 1460.71), 15);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(1501.53, 1368.71), 2);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(1540.2, 1460.71), 15);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(1544.49, 1602.71), 1);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(1540.2, 1460.71), 15);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(1340.2, 849.545), 1);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(1340.2, 760.379), 15);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(1544.49, 984.545), 1);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(1544.49, 926.545), 15);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(1468.53, 994.545), 4);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(1340.2, 923.545), 15);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(135, 1139.05), 1);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(160, 822.545), 15);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(181, 1149.05), 4);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(160, 822.545), 15);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(925, 115), 15);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(975, 115), 4);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+
+ ConnRef *connRef331 = new ConnRef(router, 331);
+ ConnEnd srcPt331(Point(1101, 115), 15);
+ connRef331->setSourceEndpoint(srcPt331);
+ ConnEnd dstPt331(Point(1126, 157), 1);
+ connRef331->setDestEndpoint(dstPt331);
+ connRef331->setRoutingType((ConnType)2);
+
+ ConnRef *connRef332 = new ConnRef(router, 332);
+ ConnEnd srcPt332(Point(1101, 115), 15);
+ connRef332->setSourceEndpoint(srcPt332);
+ ConnEnd dstPt332(Point(1016.8, 157), 1);
+ connRef332->setDestEndpoint(dstPt332);
+ connRef332->setRoutingType((ConnType)2);
+
+ ConnRef *connRef333 = new ConnRef(router, 333);
+ ConnEnd srcPt333(Point(925, 446), 15);
+ connRef333->setSourceEndpoint(srcPt333);
+ ConnEnd dstPt333(Point(980, 446), 4);
+ connRef333->setDestEndpoint(dstPt333);
+ connRef333->setRoutingType((ConnType)2);
+
+ ConnRef *connRef411 = new ConnRef(router, 411);
+ ConnEnd srcPt411(Point(1470.2, 1249.21), 15);
+ connRef411->setSourceEndpoint(srcPt411);
+ ConnEnd dstPt411(Point(1470.2, 1299.21), 15);
+ connRef411->setDestEndpoint(dstPt411);
+ connRef411->setRoutingType((ConnType)2);
+
+ ConnRef *connRef412 = new ConnRef(router, 412);
+ ConnEnd srcPt412(Point(1470.2, 1410.71), 15);
+ connRef412->setSourceEndpoint(srcPt412);
+ ConnEnd dstPt412(Point(1470.2, 1460.71), 15);
+ connRef412->setDestEndpoint(dstPt412);
+ connRef412->setRoutingType((ConnType)2);
+
+ ConnRef *connRef413 = new ConnRef(router, 413);
+ ConnEnd srcPt413(Point(1785.2, 1306.71), 15);
+ connRef413->setSourceEndpoint(srcPt413);
+ ConnEnd dstPt413(Point(1723.2, 1306.71), 15);
+ connRef413->setDestEndpoint(dstPt413);
+ connRef413->setRoutingType((ConnType)2);
+
+ ConnRef *connRef414 = new ConnRef(router, 414);
+ ConnEnd srcPt414(Point(1188, 167), 15);
+ connRef414->setSourceEndpoint(srcPt414);
+ ConnEnd dstPt414(Point(1126, 167), 15);
+ connRef414->setDestEndpoint(dstPt414);
+ connRef414->setRoutingType((ConnType)2);
+
+ ConnRef *connRef415 = new ConnRef(router, 415);
+ ConnEnd srcPt415(Point(954.8, 167), 15);
+ connRef415->setSourceEndpoint(srcPt415);
+ ConnEnd dstPt415(Point(1016.8, 167), 15);
+ connRef415->setDestEndpoint(dstPt415);
+ connRef415->setRoutingType((ConnType)2);
+
+ ConnRef *connRef416 = new ConnRef(router, 416);
+ ConnEnd srcPt416(Point(1264, 1153.05), 15);
+ connRef416->setSourceEndpoint(srcPt416);
+ ConnEnd dstPt416(Point(1264, 1203.05), 15);
+ connRef416->setDestEndpoint(dstPt416);
+ connRef416->setRoutingType((ConnType)2);
+
+ ConnRef *connRef417 = new ConnRef(router, 417);
+ ConnEnd srcPt417(Point(1673.2, 1306.71), 15);
+ connRef417->setSourceEndpoint(srcPt417);
+ ConnEnd dstPt417(Point(1611.2, 1306.71), 15);
+ connRef417->setDestEndpoint(dstPt417);
+ connRef417->setRoutingType((ConnType)2);
+
+ ConnRef *connRef418 = new ConnRef(router, 418);
+ ConnEnd srcPt418(Point(559.5, 874.545), 15);
+ connRef418->setSourceEndpoint(srcPt418);
+ ConnEnd dstPt418(Point(621.5, 874.545), 15);
+ connRef418->setDestEndpoint(dstPt418);
+ connRef418->setRoutingType((ConnType)2);
+
+ ConnRef *connRef419 = new ConnRef(router, 419);
+ ConnEnd srcPt419(Point(760, 874.545), 15);
+ connRef419->setSourceEndpoint(srcPt419);
+ ConnEnd dstPt419(Point(698, 874.545), 15);
+ connRef419->setDestEndpoint(dstPt419);
+ connRef419->setRoutingType((ConnType)2);
+
+ ConnRef *connRef420 = new ConnRef(router, 420);
+ ConnEnd srcPt420(Point(469, 926.545), 15);
+ connRef420->setSourceEndpoint(srcPt420);
+ ConnEnd dstPt420(Point(407, 926.545), 15);
+ connRef420->setDestEndpoint(dstPt420);
+ connRef420->setRoutingType((ConnType)2);
+
+ ConnRef *connRef421 = new ConnRef(router, 421);
+ ConnEnd srcPt421(Point(1196, 1107.21), 15);
+ connRef421->setSourceEndpoint(srcPt421);
+ ConnEnd dstPt421(Point(1134, 1107.21), 15);
+ connRef421->setDestEndpoint(dstPt421);
+ connRef421->setRoutingType((ConnType)2);
+
+ ConnRef *connRef422 = new ConnRef(router, 422);
+ ConnEnd srcPt422(Point(1814.2, 1612.71), 15);
+ connRef422->setSourceEndpoint(srcPt422);
+ ConnEnd dstPt422(Point(1752.2, 1612.71), 15);
+ connRef422->setDestEndpoint(dstPt422);
+ connRef422->setRoutingType((ConnType)2);
+
+ ConnRef *connRef423 = new ConnRef(router, 423);
+ ConnEnd srcPt423(Point(631, 1279.55), 15);
+ connRef423->setSourceEndpoint(srcPt423);
+ ConnEnd dstPt423(Point(569, 1279.55), 15);
+ connRef423->setDestEndpoint(dstPt423);
+ connRef423->setRoutingType((ConnType)2);
+
+ ConnRef *connRef424 = new ConnRef(router, 424);
+ ConnEnd srcPt424(Point(518, 999.045), 15);
+ connRef424->setSourceEndpoint(srcPt424);
+ ConnEnd dstPt424(Point(518, 1049.05), 15);
+ connRef424->setDestEndpoint(dstPt424);
+ connRef424->setRoutingType((ConnType)2);
+
+ ConnRef *connRef425 = new ConnRef(router, 425);
+ ConnEnd srcPt425(Point(330, 584.545), 15);
+ connRef425->setSourceEndpoint(srcPt425);
+ ConnEnd dstPt425(Point(268, 584.545), 15);
+ connRef425->setDestEndpoint(dstPt425);
+ connRef425->setRoutingType((ConnType)2);
+
+ ConnRef *connRef426 = new ConnRef(router, 426);
+ ConnEnd srcPt426(Point(160, 534.545), 15);
+ connRef426->setSourceEndpoint(srcPt426);
+ ConnEnd dstPt426(Point(160, 584.545), 15);
+ connRef426->setDestEndpoint(dstPt426);
+ connRef426->setRoutingType((ConnType)2);
+
+ ConnRef *connRef427 = new ConnRef(router, 427);
+ ConnEnd srcPt427(Point(998.8, 995.045), 15);
+ connRef427->setSourceEndpoint(srcPt427);
+ ConnEnd dstPt427(Point(998.8, 1045.05), 15);
+ connRef427->setDestEndpoint(dstPt427);
+ connRef427->setRoutingType((ConnType)2);
+
+ ConnRef *connRef428 = new ConnRef(router, 428);
+ ConnEnd srcPt428(Point(1627.2, 1358.71), 15);
+ connRef428->setSourceEndpoint(srcPt428);
+ ConnEnd dstPt428(Point(1565.2, 1358.71), 15);
+ connRef428->setDestEndpoint(dstPt428);
+ connRef428->setRoutingType((ConnType)2);
+
+ ConnRef *connRef429 = new ConnRef(router, 429);
+ ConnEnd srcPt429(Point(1439.53, 1358.71), 15);
+ connRef429->setSourceEndpoint(srcPt429);
+ ConnEnd dstPt429(Point(1501.53, 1358.71), 15);
+ connRef429->setDestEndpoint(dstPt429);
+ connRef429->setRoutingType((ConnType)2);
+
+ ConnRef *connRef430 = new ConnRef(router, 430);
+ ConnEnd srcPt430(Point(1606.49, 1612.71), 15);
+ connRef430->setSourceEndpoint(srcPt430);
+ ConnEnd dstPt430(Point(1544.49, 1612.71), 15);
+ connRef430->setDestEndpoint(dstPt430);
+ connRef430->setRoutingType((ConnType)2);
+
+ ConnRef *connRef431 = new ConnRef(router, 431);
+ ConnEnd srcPt431(Point(1402.2, 859.545), 15);
+ connRef431->setSourceEndpoint(srcPt431);
+ ConnEnd dstPt431(Point(1340.2, 859.545), 15);
+ connRef431->setDestEndpoint(dstPt431);
+ connRef431->setRoutingType((ConnType)2);
+
+ ConnRef *connRef432 = new ConnRef(router, 432);
+ ConnEnd srcPt432(Point(1606.49, 994.545), 15);
+ connRef432->setSourceEndpoint(srcPt432);
+ ConnEnd dstPt432(Point(1544.49, 994.545), 15);
+ connRef432->setDestEndpoint(dstPt432);
+ connRef432->setRoutingType((ConnType)2);
+
+ ConnRef *connRef433 = new ConnRef(router, 433);
+ ConnEnd srcPt433(Point(1478.53, 944.545), 15);
+ connRef433->setSourceEndpoint(srcPt433);
+ ConnEnd dstPt433(Point(1478.53, 994.545), 15);
+ connRef433->setDestEndpoint(dstPt433);
+ connRef433->setRoutingType((ConnType)2);
+
+ ConnRef *connRef434 = new ConnRef(router, 434);
+ ConnEnd srcPt434(Point(399, 1295.05), 15);
+ connRef434->setSourceEndpoint(srcPt434);
+ ConnEnd dstPt434(Point(349, 1295.05), 8);
+ connRef434->setDestEndpoint(dstPt434);
+ connRef434->setRoutingType((ConnType)2);
+
+ ConnRef *connRef435 = new ConnRef(router, 435);
+ ConnEnd srcPt435(Point(399, 1203.05), 15);
+ connRef435->setSourceEndpoint(srcPt435);
+ ConnEnd dstPt435(Point(349, 1203.05), 8);
+ connRef435->setDestEndpoint(dstPt435);
+ connRef435->setRoutingType((ConnType)2);
+
+ ConnRef *connRef436 = new ConnRef(router, 436);
+ ConnEnd srcPt436(Point(1340.2, 760.379), 15);
+ connRef436->setSourceEndpoint(srcPt436);
+ ConnEnd dstPt436(Point(1460.2, 738.545), 4);
+ connRef436->setDestEndpoint(dstPt436);
+ connRef436->setRoutingType((ConnType)2);
+
+ ConnRef *connRef437 = new ConnRef(router, 437);
+ ConnEnd srcPt437(Point(639.5, 446), 15);
+ connRef437->setSourceEndpoint(srcPt437);
+ ConnEnd dstPt437(Point(528, 446), 8);
+ connRef437->setDestEndpoint(dstPt437);
+ connRef437->setRoutingType((ConnType)2);
+
+ ConnRef *connRef438 = new ConnRef(router, 438);
+ ConnEnd srcPt438(Point(698, 1028.55), 15);
+ connRef438->setSourceEndpoint(srcPt438);
+ ConnEnd dstPt438(Point(596, 1028.55), 8);
+ connRef438->setDestEndpoint(dstPt438);
+ connRef438->setRoutingType((ConnType)2);
+
+ ConnRef *connRef439 = new ConnRef(router, 439);
+ ConnEnd srcPt439(Point(801, 446), 15);
+ connRef439->setSourceEndpoint(srcPt439);
+ ConnEnd dstPt439(Point(745, 446), 8);
+ connRef439->setDestEndpoint(dstPt439);
+ connRef439->setRoutingType((ConnType)2);
+
+ ConnRef *connRef440 = new ConnRef(router, 440);
+ ConnEnd srcPt440(Point(925, 446), 15);
+ connRef440->setSourceEndpoint(srcPt440);
+ ConnEnd dstPt440(Point(871, 446), 8);
+ connRef440->setDestEndpoint(dstPt440);
+ connRef440->setRoutingType((ConnType)2);
+
+ ConnRef *connRef441 = new ConnRef(router, 441);
+ ConnEnd srcPt441(Point(390, 584.545), 15);
+ connRef441->setSourceEndpoint(srcPt441);
+ ConnEnd dstPt441(Point(508, 584.545), 4);
+ connRef441->setDestEndpoint(dstPt441);
+ connRef441->setRoutingType((ConnType)2);
+
+ ConnRef *connRef442 = new ConnRef(router, 442);
+ ConnEnd srcPt442(Point(925, 822.545), 15);
+ connRef442->setSourceEndpoint(srcPt442);
+ ConnEnd dstPt442(Point(802.5, 822.545), 8);
+ connRef442->setDestEndpoint(dstPt442);
+ connRef442->setRoutingType((ConnType)2);
+
+ ConnRef *connRef443 = new ConnRef(router, 443);
+ ConnEnd srcPt443(Point(925, 822.545), 15);
+ connRef443->setSourceEndpoint(srcPt443);
+ ConnEnd dstPt443(Point(807, 1028.55), 8);
+ connRef443->setDestEndpoint(dstPt443);
+ connRef443->setRoutingType((ConnType)2);
+
+ ConnRef *connRef444 = new ConnRef(router, 444);
+ ConnEnd srcPt444(Point(925, 822.545), 15);
+ connRef444->setSourceEndpoint(srcPt444);
+ ConnEnd dstPt444(Point(779, 1113.55), 1);
+ connRef444->setDestEndpoint(dstPt444);
+ connRef444->setRoutingType((ConnType)2);
+
+ ConnRef *connRef445 = new ConnRef(router, 445);
+ ConnEnd srcPt445(Point(925, 822.545), 15);
+ connRef445->setSourceEndpoint(srcPt445);
+ ConnEnd dstPt445(Point(802.5, 686.545), 8);
+ connRef445->setDestEndpoint(dstPt445);
+ connRef445->setRoutingType((ConnType)2);
+
+ ConnRef *connRef446 = new ConnRef(router, 446);
+ ConnEnd srcPt446(Point(925, 822.545), 15);
+ connRef446->setSourceEndpoint(srcPt446);
+ ConnEnd dstPt446(Point(861, 1165.55), 1);
+ connRef446->setDestEndpoint(dstPt446);
+ connRef446->setRoutingType((ConnType)2);
+
+ ConnRef *connRef447 = new ConnRef(router, 447);
+ ConnEnd srcPt447(Point(930, 1227.55), 15);
+ connRef447->setSourceEndpoint(srcPt447);
+ ConnEnd dstPt447(Point(764, 1593.71), 8);
+ connRef447->setDestEndpoint(dstPt447);
+ connRef447->setRoutingType((ConnType)2);
+
+ ConnRef *connRef448 = new ConnRef(router, 448);
+ ConnEnd srcPt448(Point(930, 1227.55), 15);
+ connRef448->setSourceEndpoint(srcPt448);
+ ConnEnd dstPt448(Point(836, 1626.71), 8);
+ connRef448->setDestEndpoint(dstPt448);
+ connRef448->setRoutingType((ConnType)2);
+
+ ConnRef *connRef449 = new ConnRef(router, 449);
+ ConnEnd srcPt449(Point(925, 302), 15);
+ connRef449->setSourceEndpoint(srcPt449);
+ ConnEnd dstPt449(Point(925, 270), 2);
+ connRef449->setDestEndpoint(dstPt449);
+ connRef449->setRoutingType((ConnType)2);
+
+ ConnRef *connRef450 = new ConnRef(router, 450);
+ ConnEnd srcPt450(Point(925, 822.545), 15);
+ connRef450->setSourceEndpoint(srcPt450);
+ ConnEnd dstPt450(Point(925, 689.045), 2);
+ connRef450->setDestEndpoint(dstPt450);
+ connRef450->setRoutingType((ConnType)2);
+
+ ConnRef *connRef451 = new ConnRef(router, 451);
+ ConnEnd srcPt451(Point(930, 1227.55), 15);
+ connRef451->setSourceEndpoint(srcPt451);
+ ConnEnd dstPt451(Point(925, 942.545), 2);
+ connRef451->setDestEndpoint(dstPt451);
+ connRef451->setRoutingType((ConnType)2);
+
+ ConnRef *connRef452 = new ConnRef(router, 452);
+ ConnEnd srcPt452(Point(1112, 446), 15);
+ connRef452->setSourceEndpoint(srcPt452);
+ ConnEnd dstPt452(Point(1162, 446), 4);
+ connRef452->setDestEndpoint(dstPt452);
+ connRef452->setRoutingType((ConnType)2);
+
+ ConnRef *connRef453 = new ConnRef(router, 453);
+ ConnEnd srcPt453(Point(925, 822.545), 15);
+ connRef453->setSourceEndpoint(srcPt453);
+ ConnEnd dstPt453(Point(1142, 760.379), 4);
+ connRef453->setDestEndpoint(dstPt453);
+ connRef453->setRoutingType((ConnType)2);
+
+ ConnRef *connRef454 = new ConnRef(router, 454);
+ ConnEnd srcPt454(Point(930, 1227.55), 15);
+ connRef454->setSourceEndpoint(srcPt454);
+ ConnEnd dstPt454(Point(970, 1117.21), 2);
+ connRef454->setDestEndpoint(dstPt454);
+ connRef454->setRoutingType((ConnType)2);
+
+ ConnRef *connRef455 = new ConnRef(router, 455);
+ ConnEnd srcPt455(Point(1177, 1316.71), 15);
+ connRef455->setSourceEndpoint(srcPt455);
+ ConnEnd dstPt455(Point(1218, 1460.71), 4);
+ connRef455->setDestEndpoint(dstPt455);
+ connRef455->setRoutingType((ConnType)2);
+
+ ConnRef *connRef456 = new ConnRef(router, 456);
+ ConnEnd srcPt456(Point(1340.2, 760.379), 15);
+ connRef456->setSourceEndpoint(srcPt456);
+ ConnEnd dstPt456(Point(1340.2, 692.045), 2);
+ connRef456->setDestEndpoint(dstPt456);
+ connRef456->setRoutingType((ConnType)2);
+
+ ConnRef *connRef457 = new ConnRef(router, 457);
+ ConnEnd srcPt457(Point(1340.2, 760.379), 15);
+ connRef457->setSourceEndpoint(srcPt457);
+ ConnEnd dstPt457(Point(1460.2, 770.545), 4);
+ connRef457->setDestEndpoint(dstPt457);
+ connRef457->setRoutingType((ConnType)2);
+
+ ConnRef *connRef458 = new ConnRef(router, 458);
+ ConnEnd srcPt458(Point(1324, 1203.05), 15);
+ connRef458->setSourceEndpoint(srcPt458);
+ ConnEnd dstPt458(Point(1460.2, 1203.05), 4);
+ connRef458->setDestEndpoint(dstPt458);
+ connRef458->setRoutingType((ConnType)2);
+
+ ConnRef *connRef459 = new ConnRef(router, 459);
+ ConnEnd srcPt459(Point(1324, 1203.05), 15);
+ connRef459->setSourceEndpoint(srcPt459);
+ ConnEnd dstPt459(Point(1460.2, 1299.21), 4);
+ connRef459->setDestEndpoint(dstPt459);
+ connRef459->setRoutingType((ConnType)2);
+
+ ConnRef *connRef460 = new ConnRef(router, 460);
+ ConnEnd srcPt460(Point(646, 822.545), 15);
+ connRef460->setSourceEndpoint(srcPt460);
+ ConnEnd dstPt460(Point(621.5, 864.545), 1);
+ connRef460->setDestEndpoint(dstPt460);
+ connRef460->setRoutingType((ConnType)2);
+
+ ConnRef *connRef461 = new ConnRef(router, 461);
+ ConnEnd srcPt461(Point(646, 822.545), 15);
+ connRef461->setSourceEndpoint(srcPt461);
+ ConnEnd dstPt461(Point(698, 864.545), 1);
+ connRef461->setDestEndpoint(dstPt461);
+ connRef461->setRoutingType((ConnType)2);
+
+ ConnRef *connRef462 = new ConnRef(router, 462);
+ ConnEnd srcPt462(Point(1340.2, 923.545), 15);
+ connRef462->setSourceEndpoint(srcPt462);
+ ConnEnd dstPt462(Point(1340.2, 869.545), 2);
+ connRef462->setDestEndpoint(dstPt462);
+ connRef462->setRoutingType((ConnType)2);
+
+ ConnRef *connRef463 = new ConnRef(router, 463);
+ ConnEnd srcPt463(Point(1544.49, 1052.05), 15);
+ connRef463->setSourceEndpoint(srcPt463);
+ ConnEnd dstPt463(Point(1544.49, 1004.55), 2);
+ connRef463->setDestEndpoint(dstPt463);
+ connRef463->setRoutingType((ConnType)2);
+
+ ConnRef *connRef464 = new ConnRef(router, 464);
+ ConnEnd srcPt464(Point(549, 1786.85), 15);
+ connRef464->setSourceEndpoint(srcPt464);
+ ConnEnd dstPt464(Point(748, 1777.71), 4);
+ connRef464->setDestEndpoint(dstPt464);
+ connRef464->setRoutingType((ConnType)2);
+
+ ConnRef *connRef465 = new ConnRef(router, 465);
+ ConnEnd srcPt465(Point(549, 1786.85), 15);
+ connRef465->setSourceEndpoint(srcPt465);
+ ConnEnd dstPt465(Point(748, 1809.71), 4);
+ connRef465->setDestEndpoint(dstPt465);
+ connRef465->setRoutingType((ConnType)2);
+
+ ConnRef *connRef466 = new ConnRef(router, 466);
+ ConnEnd srcPt466(Point(930, 1227.55), 15);
+ connRef466->setSourceEndpoint(srcPt466);
+ ConnEnd dstPt466(Point(1045.8, 1614.71), 4);
+ connRef466->setDestEndpoint(dstPt466);
+ connRef466->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467 = new ConnRef(router, 467);
+ ConnEnd srcPt467(Point(1101, 302), 15);
+ connRef467->setSourceEndpoint(srcPt467);
+ ConnEnd dstPt467(Point(1153, 344), 4);
+ connRef467->setDestEndpoint(dstPt467);
+ connRef467->setRoutingType((ConnType)2);
+
+ ConnRef *connRef468 = new ConnRef(router, 468);
+ ConnEnd srcPt468(Point(1235, 446), 15);
+ connRef468->setSourceEndpoint(srcPt468);
+ ConnEnd dstPt468(Point(1240, 359), 2);
+ connRef468->setDestEndpoint(dstPt468);
+ connRef468->setRoutingType((ConnType)2);
+
+ ConnRef *connRef469 = new ConnRef(router, 469);
+ ConnEnd srcPt469(Point(375, 446), 15);
+ connRef469->setSourceEndpoint(srcPt469);
+ ConnEnd dstPt469(Point(338, 482.545), 8);
+ connRef469->setDestEndpoint(dstPt469);
+ connRef469->setRoutingType((ConnType)2);
+
+ ConnRef *connRef470 = new ConnRef(router, 470);
+ ConnEnd srcPt470(Point(1112, 446), 15);
+ connRef470->setSourceEndpoint(srcPt470);
+ ConnEnd dstPt470(Point(1047.83, 735.462), 1);
+ connRef470->setDestEndpoint(dstPt470);
+ connRef470->setRoutingType((ConnType)2);
+
+ ConnRef *connRef471 = new ConnRef(router, 471);
+ ConnEnd srcPt471(Point(810, 1460.71), 15);
+ connRef471->setSourceEndpoint(srcPt471);
+ ConnEnd dstPt471(Point(773, 1347.05), 8);
+ connRef471->setDestEndpoint(dstPt471);
+ connRef471->setRoutingType((ConnType)2);
+
+ ConnRef *connRef472 = new ConnRef(router, 472);
+ ConnEnd srcPt472(Point(925, 302), 15);
+ connRef472->setSourceEndpoint(srcPt472);
+ ConnEnd dstPt472(Point(888, 344), 8);
+ connRef472->setDestEndpoint(dstPt472);
+ connRef472->setRoutingType((ConnType)2);
+
+ ConnRef *connRef334 = new ConnRef(router, 334);
+ ConnEnd srcPt334(Point(925, 822.545), 15);
+ connRef334->setSourceEndpoint(srcPt334);
+ ConnEnd dstPt334(Point(1098, 812.545), 1);
+ connRef334->setDestEndpoint(dstPt334);
+ connRef334->setRoutingType((ConnType)2);
+
+ ConnRef *connRef335 = new ConnRef(router, 335);
+ ConnEnd srcPt335(Point(938.8, 1799.71), 1);
+ connRef335->setSourceEndpoint(srcPt335);
+ ConnEnd dstPt335(Point(938.8, 1685.71), 15);
+ connRef335->setDestEndpoint(dstPt335);
+ connRef335->setRoutingType((ConnType)2);
+
+ ConnRef *connRef336 = new ConnRef(router, 336);
+ ConnEnd srcPt336(Point(698, 1028.55), 15);
+ connRef336->setSourceEndpoint(srcPt336);
+ ConnEnd dstPt336(Point(528, 1049.05), 8);
+ connRef336->setDestEndpoint(dstPt336);
+ connRef336->setRoutingType((ConnType)2);
+
+ ConnRef *connRef337 = new ConnRef(router, 337);
+ ConnEnd srcPt337(Point(1092, 1107.21), 15);
+ connRef337->setSourceEndpoint(srcPt337);
+ ConnEnd dstPt337(Point(1134, 1097.21), 1);
+ connRef337->setDestEndpoint(dstPt337);
+ connRef337->setRoutingType((ConnType)2);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(1659.49, 1203.05), 15);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(1723.2, 1296.71), 1);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(1540.2, 1299.21), 15);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(1565.2, 1348.71), 1);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(1540.2, 1299.21), 15);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(1501.53, 1348.71), 1);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1355.33, 1045.05), 15);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(1355.33, 1091.05), 1);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1340.2, 544.545), 15);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(1520.2, 452.545), 4);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+
+ ConnRef *connRef343 = new ConnRef(router, 343);
+ ConnEnd srcPt343(Point(1340.2, 544.545), 15);
+ connRef343->setSourceEndpoint(srcPt343);
+ ConnEnd dstPt343(Point(1520.2, 544.545), 4);
+ connRef343->setDestEndpoint(dstPt343);
+ connRef343->setRoutingType((ConnType)2);
+
+ ConnRef *connRef344 = new ConnRef(router, 344);
+ ConnEnd srcPt344(Point(1659.49, 544.545), 15);
+ connRef344->setSourceEndpoint(srcPt344);
+ ConnEnd dstPt344(Point(1611.2, 1296.71), 1);
+ connRef344->setDestEndpoint(dstPt344);
+ connRef344->setRoutingType((ConnType)2);
+
+ ConnRef *connRef345 = new ConnRef(router, 345);
+ ConnEnd srcPt345(Point(390, 584.545), 15);
+ connRef345->setSourceEndpoint(srcPt345);
+ ConnEnd dstPt345(Point(334.2, 760.545), 1);
+ connRef345->setDestEndpoint(dstPt345);
+ connRef345->setRoutingType((ConnType)2);
+
+ ConnRef *connRef346 = new ConnRef(router, 346);
+ ConnEnd srcPt346(Point(390, 584.545), 15);
+ connRef346->setSourceEndpoint(srcPt346);
+ ConnEnd dstPt346(Point(334.2, 812.545), 1);
+ connRef346->setDestEndpoint(dstPt346);
+ connRef346->setRoutingType((ConnType)2);
+
+ ConnRef *connRef347 = new ConnRef(router, 347);
+ ConnEnd srcPt347(Point(390, 584.545), 15);
+ connRef347->setSourceEndpoint(srcPt347);
+ ConnEnd dstPt347(Point(334.2, 864.545), 1);
+ connRef347->setDestEndpoint(dstPt347);
+ connRef347->setRoutingType((ConnType)2);
+
+ ConnRef *connRef348 = new ConnRef(router, 348);
+ ConnEnd srcPt348(Point(629, 1101.05), 15);
+ connRef348->setSourceEndpoint(srcPt348);
+ ConnEnd dstPt348(Point(477.5, 1101.05), 8);
+ connRef348->setDestEndpoint(dstPt348);
+ connRef348->setRoutingType((ConnType)2);
+
+ ConnRef *connRef349 = new ConnRef(router, 349);
+ ConnEnd srcPt349(Point(1324, 1203.05), 15);
+ connRef349->setSourceEndpoint(srcPt349);
+ ConnEnd dstPt349(Point(1460.2, 1460.71), 4);
+ connRef349->setDestEndpoint(dstPt349);
+ connRef349->setRoutingType((ConnType)2);
+
+ ConnRef *connRef350 = new ConnRef(router, 350);
+ ConnEnd srcPt350(Point(1324, 1203.05), 15);
+ connRef350->setSourceEndpoint(srcPt350);
+ ConnEnd dstPt350(Point(1274, 1203.05), 8);
+ connRef350->setDestEndpoint(dstPt350);
+ connRef350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef351 = new ConnRef(router, 351);
+ ConnEnd srcPt351(Point(1752.2, 1622.71), 2);
+ connRef351->setSourceEndpoint(srcPt351);
+ ConnEnd dstPt351(Point(1752.2, 1777.71), 15);
+ connRef351->setDestEndpoint(dstPt351);
+ connRef351->setRoutingType((ConnType)2);
+
+ ConnRef *connRef352 = new ConnRef(router, 352);
+ ConnEnd srcPt352(Point(1008.8, 1045.05), 8);
+ connRef352->setSourceEndpoint(srcPt352);
+ ConnEnd dstPt352(Point(1112, 1045.05), 15);
+ connRef352->setDestEndpoint(dstPt352);
+ connRef352->setRoutingType((ConnType)2);
+
+ ConnRef *connRef353 = new ConnRef(router, 353);
+ ConnEnd srcPt353(Point(399, 1295.05), 15);
+ connRef353->setSourceEndpoint(srcPt353);
+ ConnEnd dstPt353(Point(559, 1203.05), 4);
+ connRef353->setDestEndpoint(dstPt353);
+ connRef353->setRoutingType((ConnType)2);
+
+ ConnRef *connRef354 = new ConnRef(router, 354);
+ ConnEnd srcPt354(Point(399, 1295.05), 15);
+ connRef354->setSourceEndpoint(srcPt354);
+ ConnEnd dstPt354(Point(569, 1289.55), 2);
+ connRef354->setDestEndpoint(dstPt354);
+ connRef354->setRoutingType((ConnType)2);
+
+ ConnRef *connRef355 = new ConnRef(router, 355);
+ ConnEnd srcPt355(Point(407, 916.545), 1);
+ connRef355->setSourceEndpoint(srcPt355);
+ ConnEnd dstPt355(Point(220, 584.545), 15);
+ connRef355->setDestEndpoint(dstPt355);
+ connRef355->setRoutingType((ConnType)2);
+
+ ConnRef *connRef356 = new ConnRef(router, 356);
+ ConnEnd srcPt356(Point(220, 584.545), 15);
+ connRef356->setSourceEndpoint(srcPt356);
+ ConnEnd dstPt356(Point(170, 584.545), 8);
+ connRef356->setDestEndpoint(dstPt356);
+ connRef356->setRoutingType((ConnType)2);
+
+ ConnRef *connRef357 = new ConnRef(router, 357);
+ ConnEnd srcPt357(Point(1544.49, 1052.05), 15);
+ connRef357->setSourceEndpoint(srcPt357);
+ ConnEnd dstPt357(Point(1656.49, 869.545), 2);
+ connRef357->setDestEndpoint(dstPt357);
+ connRef357->setRoutingType((ConnType)2);
+
+ ConnRef *connRef358 = new ConnRef(router, 358);
+ ConnEnd srcPt358(Point(1488.53, 994.545), 8);
+ connRef358->setSourceEndpoint(srcPt358);
+ ConnEnd dstPt358(Point(1544.49, 1052.05), 15);
+ connRef358->setDestEndpoint(dstPt358);
+ connRef358->setRoutingType((ConnType)2);
+
+ ConnRef *connRef359 = new ConnRef(router, 359);
+ ConnEnd srcPt359(Point(1544.49, 1654.71), 15);
+ connRef359->setSourceEndpoint(srcPt359);
+ ConnEnd dstPt359(Point(1544.49, 1622.71), 2);
+ connRef359->setDestEndpoint(dstPt359);
+ connRef359->setRoutingType((ConnType)2);
+
+ ConnRef *connRef360 = new ConnRef(router, 360);
+ ConnEnd srcPt360(Point(344.2, 686.545), 8);
+ connRef360->setSourceEndpoint(srcPt360);
+ ConnEnd dstPt360(Point(629, 584.545), 15);
+ connRef360->setDestEndpoint(dstPt360);
+ connRef360->setRoutingType((ConnType)2);
+
+ ConnRef *connRef361 = new ConnRef(router, 361);
+ ConnEnd srcPt361(Point(339, 1245.05), 15);
+ connRef361->setSourceEndpoint(srcPt361);
+ ConnEnd dstPt361(Point(339, 1295.05), 15);
+ connRef361->setDestEndpoint(dstPt361);
+ connRef361->setRoutingType((ConnType)2);
+
+ ConnRef *connRef362 = new ConnRef(router, 362);
+ ConnEnd srcPt362(Point(339, 1153.05), 15);
+ connRef362->setSourceEndpoint(srcPt362);
+ ConnEnd dstPt362(Point(339, 1203.05), 15);
+ connRef362->setDestEndpoint(dstPt362);
+ connRef362->setRoutingType((ConnType)2);
+
+ ConnRef *connRef363 = new ConnRef(router, 363);
+ ConnEnd srcPt363(Point(73, 1149.05), 15);
+ connRef363->setSourceEndpoint(srcPt363);
+ ConnEnd dstPt363(Point(135, 1149.05), 15);
+ connRef363->setDestEndpoint(dstPt363);
+ connRef363->setRoutingType((ConnType)2);
+
+ ConnRef *connRef364 = new ConnRef(router, 364);
+ ConnEnd srcPt364(Point(1470.2, 688.545), 15);
+ connRef364->setSourceEndpoint(srcPt364);
+ ConnEnd dstPt364(Point(1470.2, 738.545), 15);
+ connRef364->setDestEndpoint(dstPt364);
+ connRef364->setRoutingType((ConnType)2);
+
+ ConnRef *connRef365 = new ConnRef(router, 365);
+ ConnEnd srcPt365(Point(518, 396), 15);
+ connRef365->setSourceEndpoint(srcPt365);
+ ConnEnd dstPt365(Point(518, 446), 15);
+ connRef365->setDestEndpoint(dstPt365);
+ connRef365->setRoutingType((ConnType)2);
+
+ ConnRef *connRef366 = new ConnRef(router, 366);
+ ConnEnd srcPt366(Point(334.2, 636.545), 15);
+ connRef366->setSourceEndpoint(srcPt366);
+ ConnEnd dstPt366(Point(334.2, 686.545), 15);
+ connRef366->setDestEndpoint(dstPt366);
+ connRef366->setRoutingType((ConnType)2);
+
+ ConnRef *connRef367 = new ConnRef(router, 367);
+ ConnEnd srcPt367(Point(191, 1099.05), 15);
+ connRef367->setSourceEndpoint(srcPt367);
+ ConnEnd dstPt367(Point(191, 1149.05), 15);
+ connRef367->setDestEndpoint(dstPt367);
+ connRef367->setRoutingType((ConnType)2);
+
+ ConnRef *connRef368 = new ConnRef(router, 368);
+ ConnEnd srcPt368(Point(396.2, 770.545), 15);
+ connRef368->setSourceEndpoint(srcPt368);
+ ConnEnd dstPt368(Point(334.2, 770.545), 15);
+ connRef368->setDestEndpoint(dstPt368);
+ connRef368->setRoutingType((ConnType)2);
+
+ ConnRef *connRef369 = new ConnRef(router, 369);
+ ConnEnd srcPt369(Point(396.2, 822.545), 15);
+ connRef369->setSourceEndpoint(srcPt369);
+ ConnEnd dstPt369(Point(334.2, 822.545), 15);
+ connRef369->setDestEndpoint(dstPt369);
+ connRef369->setRoutingType((ConnType)2);
+
+ ConnRef *connRef370 = new ConnRef(router, 370);
+ ConnEnd srcPt370(Point(396.2, 874.545), 15);
+ connRef370->setSourceEndpoint(srcPt370);
+ ConnEnd dstPt370(Point(334.2, 874.545), 15);
+ connRef370->setDestEndpoint(dstPt370);
+ connRef370->setRoutingType((ConnType)2);
+
+ ConnRef *connRef371 = new ConnRef(router, 371);
+ ConnEnd srcPt371(Point(467.5, 1051.05), 15);
+ connRef371->setSourceEndpoint(srcPt371);
+ ConnEnd dstPt371(Point(467.5, 1101.05), 15);
+ connRef371->setDestEndpoint(dstPt371);
+ connRef371->setRoutingType((ConnType)2);
+
+ ConnRef *connRef372 = new ConnRef(router, 372);
+ ConnEnd srcPt372(Point(586, 978.545), 15);
+ connRef372->setSourceEndpoint(srcPt372);
+ ConnEnd dstPt372(Point(586, 1028.55), 15);
+ connRef372->setDestEndpoint(dstPt372);
+ connRef372->setRoutingType((ConnType)2);
+
+ ConnRef *connRef373 = new ConnRef(router, 373);
+ ConnEnd srcPt373(Point(569, 1153.05), 15);
+ connRef373->setSourceEndpoint(srcPt373);
+ ConnEnd dstPt373(Point(569, 1203.05), 15);
+ connRef373->setDestEndpoint(dstPt373);
+ connRef373->setRoutingType((ConnType)2);
+
+ ConnRef *connRef374 = new ConnRef(router, 374);
+ ConnEnd srcPt374(Point(735, 396), 15);
+ connRef374->setSourceEndpoint(srcPt374);
+ ConnEnd dstPt374(Point(735, 446), 15);
+ connRef374->setDestEndpoint(dstPt374);
+ connRef374->setRoutingType((ConnType)2);
+
+ ConnRef *connRef375 = new ConnRef(router, 375);
+ ConnEnd srcPt375(Point(861, 396), 15);
+ connRef375->setSourceEndpoint(srcPt375);
+ ConnEnd dstPt375(Point(861, 446), 15);
+ connRef375->setDestEndpoint(dstPt375);
+ connRef375->setRoutingType((ConnType)2);
+
+ ConnRef *connRef376 = new ConnRef(router, 376);
+ ConnEnd srcPt376(Point(518, 534.545), 15);
+ connRef376->setSourceEndpoint(srcPt376);
+ ConnEnd dstPt376(Point(518, 584.545), 15);
+ connRef376->setDestEndpoint(dstPt376);
+ connRef376->setRoutingType((ConnType)2);
+
+ ConnRef *connRef377 = new ConnRef(router, 377);
+ ConnEnd srcPt377(Point(792.5, 772.545), 15);
+ connRef377->setSourceEndpoint(srcPt377);
+ ConnEnd dstPt377(Point(792.5, 822.545), 15);
+ connRef377->setDestEndpoint(dstPt377);
+ connRef377->setRoutingType((ConnType)2);
+
+ ConnRef *connRef378 = new ConnRef(router, 378);
+ ConnEnd srcPt378(Point(797, 978.545), 15);
+ connRef378->setSourceEndpoint(srcPt378);
+ ConnEnd dstPt378(Point(797, 1028.55), 15);
+ connRef378->setDestEndpoint(dstPt378);
+ connRef378->setRoutingType((ConnType)2);
+
+ ConnRef *connRef379 = new ConnRef(router, 379);
+ ConnEnd srcPt379(Point(841, 1123.55), 15);
+ connRef379->setSourceEndpoint(srcPt379);
+ ConnEnd dstPt379(Point(779, 1123.55), 15);
+ connRef379->setDestEndpoint(dstPt379);
+ connRef379->setRoutingType((ConnType)2);
+
+ ConnRef *connRef380 = new ConnRef(router, 380);
+ ConnEnd srcPt380(Point(792.5, 636.545), 15);
+ connRef380->setSourceEndpoint(srcPt380);
+ ConnEnd dstPt380(Point(792.5, 686.545), 15);
+ connRef380->setDestEndpoint(dstPt380);
+ connRef380->setRoutingType((ConnType)2);
+
+ ConnRef *connRef381 = new ConnRef(router, 381);
+ ConnEnd srcPt381(Point(799, 1175.55), 15);
+ connRef381->setSourceEndpoint(srcPt381);
+ ConnEnd dstPt381(Point(861, 1175.55), 15);
+ connRef381->setDestEndpoint(dstPt381);
+ connRef381->setRoutingType((ConnType)2);
+
+ ConnRef *connRef382 = new ConnRef(router, 382);
+ ConnEnd srcPt382(Point(870, 1410.71), 15);
+ connRef382->setSourceEndpoint(srcPt382);
+ ConnEnd dstPt382(Point(870, 1460.71), 15);
+ connRef382->setDestEndpoint(dstPt382);
+ connRef382->setRoutingType((ConnType)2);
+
+ ConnRef *connRef383 = new ConnRef(router, 383);
+ ConnEnd srcPt383(Point(754, 1543.71), 15);
+ connRef383->setSourceEndpoint(srcPt383);
+ ConnEnd dstPt383(Point(754, 1593.71), 15);
+ connRef383->setDestEndpoint(dstPt383);
+ connRef383->setRoutingType((ConnType)2);
+
+ ConnRef *connRef384 = new ConnRef(router, 384);
+ ConnEnd srcPt384(Point(826, 1676.71), 15);
+ connRef384->setSourceEndpoint(srcPt384);
+ ConnEnd dstPt384(Point(826, 1626.71), 15);
+ connRef384->setDestEndpoint(dstPt384);
+ connRef384->setRoutingType((ConnType)2);
+
+ ConnRef *connRef385 = new ConnRef(router, 385);
+ ConnEnd srcPt385(Point(987, 260), 15);
+ connRef385->setSourceEndpoint(srcPt385);
+ ConnEnd dstPt385(Point(925, 260), 15);
+ connRef385->setDestEndpoint(dstPt385);
+ connRef385->setRoutingType((ConnType)2);
+
+ ConnRef *connRef386 = new ConnRef(router, 386);
+ ConnEnd srcPt386(Point(987, 344), 15);
+ connRef386->setSourceEndpoint(srcPt386);
+ ConnEnd dstPt386(Point(925, 344), 15);
+ connRef386->setDestEndpoint(dstPt386);
+ connRef386->setRoutingType((ConnType)2);
+
+ ConnRef *connRef387 = new ConnRef(router, 387);
+ ConnEnd srcPt387(Point(987, 679.045), 15);
+ connRef387->setSourceEndpoint(srcPt387);
+ ConnEnd dstPt387(Point(925, 679.045), 15);
+ connRef387->setDestEndpoint(dstPt387);
+ connRef387->setRoutingType((ConnType)2);
+
+ ConnRef *connRef388 = new ConnRef(router, 388);
+ ConnEnd srcPt388(Point(987, 932.545), 15);
+ connRef388->setSourceEndpoint(srcPt388);
+ ConnEnd dstPt388(Point(925, 932.545), 15);
+ connRef388->setDestEndpoint(dstPt388);
+ connRef388->setRoutingType((ConnType)2);
+
+ ConnRef *connRef389 = new ConnRef(router, 389);
+ ConnEnd srcPt389(Point(985, 65), 15);
+ connRef389->setSourceEndpoint(srcPt389);
+ ConnEnd dstPt389(Point(985, 115), 15);
+ connRef389->setDestEndpoint(dstPt389);
+ connRef389->setRoutingType((ConnType)2);
+
+ ConnRef *connRef390 = new ConnRef(router, 390);
+ ConnEnd srcPt390(Point(990, 396), 15);
+ connRef390->setSourceEndpoint(srcPt390);
+ ConnEnd dstPt390(Point(990, 446), 15);
+ connRef390->setDestEndpoint(dstPt390);
+ connRef390->setRoutingType((ConnType)2);
+
+ ConnRef *connRef391 = new ConnRef(router, 391);
+ ConnEnd srcPt391(Point(1172, 396), 15);
+ connRef391->setSourceEndpoint(srcPt391);
+ ConnEnd dstPt391(Point(1172, 446), 15);
+ connRef391->setDestEndpoint(dstPt391);
+ connRef391->setRoutingType((ConnType)2);
+
+ ConnRef *connRef392 = new ConnRef(router, 392);
+ ConnEnd srcPt392(Point(1152, 710.379), 15);
+ connRef392->setSourceEndpoint(srcPt392);
+ ConnEnd dstPt392(Point(1152, 760.379), 15);
+ connRef392->setDestEndpoint(dstPt392);
+ connRef392->setRoutingType((ConnType)2);
+
+ ConnRef *connRef393 = new ConnRef(router, 393);
+ ConnEnd srcPt393(Point(1160, 822.545), 15);
+ connRef393->setSourceEndpoint(srcPt393);
+ ConnEnd dstPt393(Point(1098, 822.545), 15);
+ connRef393->setDestEndpoint(dstPt393);
+ connRef393->setRoutingType((ConnType)2);
+
+ ConnRef *connRef394 = new ConnRef(router, 394);
+ ConnEnd srcPt394(Point(1032, 1107.21), 15);
+ connRef394->setSourceEndpoint(srcPt394);
+ ConnEnd dstPt394(Point(970, 1107.21), 15);
+ connRef394->setDestEndpoint(dstPt394);
+ connRef394->setRoutingType((ConnType)2);
+
+ ConnRef *connRef395 = new ConnRef(router, 395);
+ ConnEnd srcPt395(Point(1000.8, 1629.71), 15);
+ connRef395->setSourceEndpoint(srcPt395);
+ ConnEnd dstPt395(Point(938.8, 1629.71), 15);
+ connRef395->setDestEndpoint(dstPt395);
+ connRef395->setRoutingType((ConnType)2);
+
+ ConnRef *connRef396 = new ConnRef(router, 396);
+ ConnEnd srcPt396(Point(758, 1635.71), 15);
+ connRef396->setSourceEndpoint(srcPt396);
+ ConnEnd dstPt396(Point(758, 1685.71), 15);
+ connRef396->setDestEndpoint(dstPt396);
+ connRef396->setRoutingType((ConnType)2);
+
+ ConnRef *connRef397 = new ConnRef(router, 397);
+ ConnEnd srcPt397(Point(758, 1727.71), 15);
+ connRef397->setSourceEndpoint(srcPt397);
+ ConnEnd dstPt397(Point(758, 1777.71), 15);
+ connRef397->setDestEndpoint(dstPt397);
+ connRef397->setRoutingType((ConnType)2);
+
+ ConnRef *connRef398 = new ConnRef(router, 398);
+ ConnEnd srcPt398(Point(758, 1859.71), 15);
+ connRef398->setSourceEndpoint(srcPt398);
+ ConnEnd dstPt398(Point(758, 1809.71), 15);
+ connRef398->setDestEndpoint(dstPt398);
+ connRef398->setRoutingType((ConnType)2);
+
+ ConnRef *connRef399 = new ConnRef(router, 399);
+ ConnEnd srcPt399(Point(1000.8, 1809.71), 15);
+ connRef399->setSourceEndpoint(srcPt399);
+ ConnEnd dstPt399(Point(938.8, 1809.71), 15);
+ connRef399->setDestEndpoint(dstPt399);
+ connRef399->setRoutingType((ConnType)2);
+
+ ConnRef *connRef400 = new ConnRef(router, 400);
+ ConnEnd srcPt400(Point(1166, 1562.71), 15);
+ connRef400->setSourceEndpoint(srcPt400);
+ ConnEnd dstPt400(Point(1228, 1562.71), 15);
+ connRef400->setDestEndpoint(dstPt400);
+ connRef400->setRoutingType((ConnType)2);
+
+ ConnRef *connRef401 = new ConnRef(router, 401);
+ ConnEnd srcPt401(Point(1228, 1510.71), 15);
+ connRef401->setSourceEndpoint(srcPt401);
+ ConnEnd dstPt401(Point(1228, 1460.71), 15);
+ connRef401->setDestEndpoint(dstPt401);
+ connRef401->setRoutingType((ConnType)2);
+
+ ConnRef *connRef402 = new ConnRef(router, 402);
+ ConnEnd srcPt402(Point(1402.2, 682.045), 15);
+ connRef402->setSourceEndpoint(srcPt402);
+ ConnEnd dstPt402(Point(1340.2, 682.045), 15);
+ connRef402->setDestEndpoint(dstPt402);
+ connRef402->setRoutingType((ConnType)2);
+
+ ConnRef *connRef403 = new ConnRef(router, 403);
+ ConnEnd srcPt403(Point(1417.33, 1101.05), 15);
+ connRef403->setSourceEndpoint(srcPt403);
+ ConnEnd dstPt403(Point(1355.33, 1101.05), 15);
+ connRef403->setDestEndpoint(dstPt403);
+ connRef403->setRoutingType((ConnType)2);
+
+ ConnRef *connRef404 = new ConnRef(router, 404);
+ ConnEnd srcPt404(Point(1530.2, 402.545), 15);
+ connRef404->setSourceEndpoint(srcPt404);
+ ConnEnd dstPt404(Point(1530.2, 452.545), 15);
+ connRef404->setDestEndpoint(dstPt404);
+ connRef404->setRoutingType((ConnType)2);
+
+ ConnRef *connRef405 = new ConnRef(router, 405);
+ ConnEnd srcPt405(Point(1530.2, 494.545), 15);
+ connRef405->setSourceEndpoint(srcPt405);
+ ConnEnd dstPt405(Point(1530.2, 544.545), 15);
+ connRef405->setDestEndpoint(dstPt405);
+ connRef405->setRoutingType((ConnType)2);
+
+ ConnRef *connRef406 = new ConnRef(router, 406);
+ ConnEnd srcPt406(Point(1470.2, 820.545), 15);
+ connRef406->setSourceEndpoint(srcPt406);
+ ConnEnd dstPt406(Point(1470.2, 770.545), 15);
+ connRef406->setDestEndpoint(dstPt406);
+ connRef406->setRoutingType((ConnType)2);
+
+ ConnRef *connRef407 = new ConnRef(router, 407);
+ ConnEnd srcPt407(Point(1530.2, 586.545), 15);
+ connRef407->setSourceEndpoint(srcPt407);
+ ConnEnd dstPt407(Point(1530.2, 636.545), 15);
+ connRef407->setDestEndpoint(dstPt407);
+ connRef407->setRoutingType((ConnType)2);
+
+ ConnRef *connRef408 = new ConnRef(router, 408);
+ ConnEnd srcPt408(Point(1606.49, 859.545), 15);
+ connRef408->setSourceEndpoint(srcPt408);
+ ConnEnd dstPt408(Point(1544.49, 859.545), 15);
+ connRef408->setDestEndpoint(dstPt408);
+ connRef408->setRoutingType((ConnType)2);
+
+ ConnRef *connRef409 = new ConnRef(router, 409);
+ ConnEnd srcPt409(Point(1718.49, 859.545), 15);
+ connRef409->setSourceEndpoint(srcPt409);
+ ConnEnd dstPt409(Point(1656.49, 859.545), 15);
+ connRef409->setDestEndpoint(dstPt409);
+ connRef409->setRoutingType((ConnType)2);
+
+ ConnRef *connRef410 = new ConnRef(router, 410);
+ ConnEnd srcPt410(Point(1470.2, 1153.05), 15);
+ connRef410->setSourceEndpoint(srcPt410);
+ ConnEnd dstPt410(Point(1470.2, 1203.05), 15);
+ connRef410->setDestEndpoint(dstPt410);
+ connRef410->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/freeFloatingDirection01");
+ assert(connRef239->displayRoute().size() == 4);
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/hola01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/hola01.cpp
new file mode 100644
index 0000000..d3487bd
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/hola01.cpp
@@ -0,0 +1,1006 @@
+// Regression test exercises a problem with nudging that would result in the
+// following assertion if a sub-problem was unsatisfiable because the right
+// channel edge but not the left had moved.
+// Assertion failed: (unsatisfiedRanges.size() > 0)
+// Reported by Steve Kieffer and Tobias Czauderna.
+//
+// Problem happens if EDGE128 is defined.
+
+#include "libavoid/libavoid.h"
+
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 30);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 120);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 0);
+ router->setRoutingParameter((RoutingParameter)6, 7.5);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingParameter((RoutingParameter)8, 0);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ router->setRoutingOption((RoutingOption)4, true);
+ router->setRoutingOption((RoutingOption)5, false);
+ router->setRoutingOption((RoutingOption)6, false);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ ConnEnd heConnPt;
+ PolyLine newRoute;
+ ShapeConnectionPin *connPin = nullptr;
+
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(274.03, 356.334);
+ polygon.ps[1] = Point(304.03, 356.334);
+ polygon.ps[2] = Point(304.03, 386.334);
+ polygon.ps[3] = Point(274.03, 386.334);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(214.034, 356.334);
+ polygon.ps[1] = Point(244.034, 356.334);
+ polygon.ps[2] = Point(244.034, 386.334);
+ polygon.ps[3] = Point(214.034, 386.334);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef2
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(214.034, 439.168);
+ polygon.ps[1] = Point(244.034, 439.168);
+ polygon.ps[2] = Point(244.034, 469.168);
+ polygon.ps[3] = Point(214.034, 469.168);
+ new ShapeRef(router, polygon, 2);
+
+ // shapeRef3
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354.024, 416.334);
+ polygon.ps[1] = Point(384.024, 416.334);
+ polygon.ps[2] = Point(384.024, 446.334);
+ polygon.ps[3] = Point(354.024, 446.334);
+ new ShapeRef(router, polygon, 3);
+
+ // shapeRef4
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(274.03, 276.334);
+ polygon.ps[1] = Point(304.03, 276.334);
+ polygon.ps[2] = Point(304.03, 306.334);
+ polygon.ps[3] = Point(274.03, 306.334);
+ new ShapeRef(router, polygon, 4);
+
+ // shapeRef5
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(534.011, 276.334);
+ polygon.ps[1] = Point(564.011, 276.334);
+ polygon.ps[2] = Point(564.011, 306.334);
+ polygon.ps[3] = Point(534.011, 306.334);
+ new ShapeRef(router, polygon, 5);
+
+ // shapeRef6
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(414.023, 416.334);
+ polygon.ps[1] = Point(444.023, 416.334);
+ polygon.ps[2] = Point(444.023, 446.334);
+ polygon.ps[3] = Point(414.023, 446.334);
+ new ShapeRef(router, polygon, 6);
+
+ // shapeRef7
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(594.052, 276.334);
+ polygon.ps[1] = Point(624.052, 276.334);
+ polygon.ps[2] = Point(624.052, 306.334);
+ polygon.ps[3] = Point(594.052, 306.334);
+ new ShapeRef(router, polygon, 7);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(254.052, 386.334);
+ polygon.ps[1] = Point(284.052, 386.334);
+ polygon.ps[2] = Point(284.052, 416.334);
+ polygon.ps[3] = Point(254.052, 416.334);
+ new ShapeRef(router, polygon, 8);
+
+ // shapeRef9
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(474.011, 416.334);
+ polygon.ps[1] = Point(504.011, 416.334);
+ polygon.ps[2] = Point(504.011, 446.334);
+ polygon.ps[3] = Point(474.011, 446.334);
+ new ShapeRef(router, polygon, 9);
+
+ // shapeRef10
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(274.03, 76.3341);
+ polygon.ps[1] = Point(304.03, 76.3341);
+ polygon.ps[2] = Point(304.03, 106.334);
+ polygon.ps[3] = Point(274.03, 106.334);
+ new ShapeRef(router, polygon, 10);
+
+ // shapeRef11
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354.034, 536.334);
+ polygon.ps[1] = Point(384.034, 536.334);
+ polygon.ps[2] = Point(384.034, 566.334);
+ polygon.ps[3] = Point(354.034, 566.334);
+ new ShapeRef(router, polygon, 11);
+
+ // shapeRef12
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(414.023, 476.334);
+ polygon.ps[1] = Point(444.023, 476.334);
+ polygon.ps[2] = Point(444.023, 506.334);
+ polygon.ps[3] = Point(414.023, 506.334);
+ new ShapeRef(router, polygon, 12);
+
+ // shapeRef13
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354.034, 596.334);
+ polygon.ps[1] = Point(384.034, 596.334);
+ polygon.ps[2] = Point(384.034, 626.334);
+ polygon.ps[3] = Point(354.034, 626.334);
+ new ShapeRef(router, polygon, 13);
+
+ // shapeRef14
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(274.03, 446.334);
+ polygon.ps[1] = Point(304.03, 446.334);
+ polygon.ps[2] = Point(304.03, 476.334);
+ polygon.ps[3] = Point(274.03, 476.334);
+ new ShapeRef(router, polygon, 14);
+
+ // shapeRef15
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(131.696, 276.334);
+ polygon.ps[1] = Point(161.696, 276.334);
+ polygon.ps[2] = Point(161.696, 306.334);
+ polygon.ps[3] = Point(131.696, 306.334);
+ new ShapeRef(router, polygon, 15);
+
+ // shapeRef16
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(564.023, 416.334);
+ polygon.ps[1] = Point(594.023, 416.334);
+ polygon.ps[2] = Point(594.023, 446.334);
+ polygon.ps[3] = Point(564.023, 446.334);
+ new ShapeRef(router, polygon, 16);
+
+ // shapeRef17
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8.56882, 276.334);
+ polygon.ps[1] = Point(38.5688, 276.334);
+ polygon.ps[2] = Point(38.5688, 306.334);
+ polygon.ps[3] = Point(8.56882, 306.334);
+ new ShapeRef(router, polygon, 17);
+
+ // shapeRef18
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(474.011, 216.334);
+ polygon.ps[1] = Point(504.011, 216.334);
+ polygon.ps[2] = Point(504.011, 246.334);
+ polygon.ps[3] = Point(474.011, 246.334);
+ new ShapeRef(router, polygon, 18);
+
+ // shapeRef19
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(474.011, 156.334);
+ polygon.ps[1] = Point(504.011, 156.334);
+ polygon.ps[2] = Point(504.011, 186.334);
+ polygon.ps[3] = Point(474.011, 186.334);
+ new ShapeRef(router, polygon, 19);
+
+ // shapeRef20
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(534.011, 216.334);
+ polygon.ps[1] = Point(564.011, 216.334);
+ polygon.ps[2] = Point(564.011, 246.334);
+ polygon.ps[3] = Point(534.011, 246.334);
+ new ShapeRef(router, polygon, 20);
+
+ // shapeRef21
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(474.011, 96.3341);
+ polygon.ps[1] = Point(504.011, 96.3341);
+ polygon.ps[2] = Point(504.011, 126.334);
+ polygon.ps[3] = Point(474.011, 126.334);
+ new ShapeRef(router, polygon, 21);
+
+ // shapeRef22
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(334.035, 356.334);
+ polygon.ps[1] = Point(364.035, 356.334);
+ polygon.ps[2] = Point(364.035, 386.334);
+ polygon.ps[3] = Point(334.035, 386.334);
+ new ShapeRef(router, polygon, 22);
+
+ // shapeRef23
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(414.023, 536.334);
+ polygon.ps[1] = Point(444.023, 536.334);
+ polygon.ps[2] = Point(444.023, 566.334);
+ polygon.ps[3] = Point(414.023, 566.334);
+ new ShapeRef(router, polygon, 23);
+
+ // shapeRef25
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(564.052, 180.582);
+ polygon.ps[1] = Point(594.052, 180.582);
+ polygon.ps[2] = Point(594.052, 210.582);
+ polygon.ps[3] = Point(564.052, 210.582);
+ new ShapeRef(router, polygon, 25);
+
+ // shapeRef26
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(154.041, 476.334);
+ polygon.ps[1] = Point(184.041, 476.334);
+ polygon.ps[2] = Point(184.041, 506.334);
+ polygon.ps[3] = Point(154.041, 506.334);
+ new ShapeRef(router, polygon, 26);
+
+ // shapeRef27
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(474.011, 300.457);
+ polygon.ps[1] = Point(504.011, 300.457);
+ polygon.ps[2] = Point(504.011, 330.457);
+ polygon.ps[3] = Point(474.011, 330.457);
+ new ShapeRef(router, polygon, 27);
+
+ // shapeRef28
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(134.045, 306.334);
+ polygon.ps[1] = Point(164.045, 306.334);
+ polygon.ps[2] = Point(164.045, 336.334);
+ polygon.ps[3] = Point(134.045, 336.334);
+ new ShapeRef(router, polygon, 28);
+
+ // shapeRef29
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(254.039, 216.334);
+ polygon.ps[1] = Point(284.039, 216.334);
+ polygon.ps[2] = Point(284.039, 246.334);
+ polygon.ps[3] = Point(254.039, 246.334);
+ new ShapeRef(router, polygon, 29);
+
+ // shapeRef30
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(134.045, 386.334);
+ polygon.ps[1] = Point(164.045, 386.334);
+ polygon.ps[2] = Point(164.045, 416.334);
+ polygon.ps[3] = Point(134.045, 416.334);
+ new ShapeRef(router, polygon, 30);
+
+ // shapeRef31
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(74.0462, 386.334);
+ polygon.ps[1] = Point(104.046, 386.334);
+ polygon.ps[2] = Point(104.046, 416.334);
+ polygon.ps[3] = Point(74.0462, 416.334);
+ new ShapeRef(router, polygon, 31);
+
+ // shapeRef32
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(594.052, 596.334);
+ polygon.ps[1] = Point(624.052, 596.334);
+ polygon.ps[2] = Point(624.052, 626.334);
+ polygon.ps[3] = Point(594.052, 626.334);
+ new ShapeRef(router, polygon, 32);
+
+ // shapeRef34
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(154.041, 356.334);
+ polygon.ps[1] = Point(184.041, 356.334);
+ polygon.ps[2] = Point(184.041, 386.334);
+ polygon.ps[3] = Point(154.041, 386.334);
+ new ShapeRef(router, polygon, 34);
+
+ // shapeRef35
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(474.011, 36.3341);
+ polygon.ps[1] = Point(504.011, 36.3341);
+ polygon.ps[2] = Point(504.011, 66.3341);
+ polygon.ps[3] = Point(474.011, 66.3341);
+ new ShapeRef(router, polygon, 35);
+
+ // shapeRef38
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(534.011, 386.334);
+ polygon.ps[1] = Point(564.011, 386.334);
+ polygon.ps[2] = Point(564.011, 416.334);
+ polygon.ps[3] = Point(534.011, 416.334);
+ new ShapeRef(router, polygon, 38);
+
+ // shapeRef39
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(564.023, 343.278);
+ polygon.ps[1] = Point(594.023, 343.278);
+ polygon.ps[2] = Point(594.023, 373.278);
+ polygon.ps[3] = Point(564.023, 373.278);
+ new ShapeRef(router, polygon, 39);
+
+ // shapeRef40
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(74.0462, 156.334);
+ polygon.ps[1] = Point(104.046, 156.334);
+ polygon.ps[2] = Point(104.046, 186.334);
+ polygon.ps[3] = Point(74.0462, 186.334);
+ new ShapeRef(router, polygon, 40);
+
+ // shapeRef41
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(214.034, 76.3341);
+ polygon.ps[1] = Point(244.034, 76.3341);
+ polygon.ps[2] = Point(244.034, 106.334);
+ polygon.ps[3] = Point(214.034, 106.334);
+ new ShapeRef(router, polygon, 41);
+
+ // shapeRef42
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(334.035, 136.334);
+ polygon.ps[1] = Point(364.035, 136.334);
+ polygon.ps[2] = Point(364.035, 166.334);
+ polygon.ps[3] = Point(334.035, 166.334);
+ new ShapeRef(router, polygon, 42);
+
+ // shapeRef45
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354.024, 300.457);
+ polygon.ps[1] = Point(384.024, 300.457);
+ polygon.ps[2] = Point(384.024, 330.457);
+ polygon.ps[3] = Point(354.024, 330.457);
+ new ShapeRef(router, polygon, 45);
+
+ // shapeRef46
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(154.041, 416.334);
+ polygon.ps[1] = Point(184.041, 416.334);
+ polygon.ps[2] = Point(184.041, 446.334);
+ polygon.ps[3] = Point(154.041, 446.334);
+ new ShapeRef(router, polygon, 46);
+
+ // shapeRef47
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(214.034, 136.334);
+ polygon.ps[1] = Point(244.034, 136.334);
+ polygon.ps[2] = Point(244.034, 166.334);
+ polygon.ps[3] = Point(214.034, 166.334);
+ new ShapeRef(router, polygon, 47);
+
+ // shapeRef48
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(214.034, 296.334);
+ polygon.ps[1] = Point(244.034, 296.334);
+ polygon.ps[2] = Point(244.034, 326.334);
+ polygon.ps[3] = Point(214.034, 326.334);
+ new ShapeRef(router, polygon, 48);
+
+ // shapeRef50
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(74.0462, 296.334);
+ polygon.ps[1] = Point(104.046, 296.334);
+ polygon.ps[2] = Point(104.046, 326.334);
+ polygon.ps[3] = Point(74.0462, 326.334);
+ new ShapeRef(router, polygon, 50);
+
+ // shapeRef51
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354.024, 36.3341);
+ polygon.ps[1] = Point(384.024, 36.3341);
+ polygon.ps[2] = Point(384.024, 66.3341);
+ polygon.ps[3] = Point(354.024, 66.3341);
+ new ShapeRef(router, polygon, 51);
+
+ // shapeRef53
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354.024, 180.582);
+ polygon.ps[1] = Point(384.024, 180.582);
+ polygon.ps[2] = Point(384.024, 210.582);
+ polygon.ps[3] = Point(354.024, 210.582);
+ new ShapeRef(router, polygon, 53);
+
+ // shapeRef54
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(534.011, 596.334);
+ polygon.ps[1] = Point(564.011, 596.334);
+ polygon.ps[2] = Point(564.011, 626.334);
+ polygon.ps[3] = Point(534.011, 626.334);
+ new ShapeRef(router, polygon, 54);
+
+ // shapeRef55
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8.56882, 156.334);
+ polygon.ps[1] = Point(38.5688, 156.334);
+ polygon.ps[2] = Point(38.5688, 186.334);
+ polygon.ps[3] = Point(8.56882, 186.334);
+ new ShapeRef(router, polygon, 55);
+
+ // shapeRef57
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(281.314, 476.334);
+ polygon.ps[1] = Point(311.314, 476.334);
+ polygon.ps[2] = Point(311.314, 506.334);
+ polygon.ps[3] = Point(281.314, 506.334);
+ new ShapeRef(router, polygon, 57);
+
+ // shapeRef58
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(254.039, 312.99);
+ polygon.ps[1] = Point(284.039, 312.99);
+ polygon.ps[2] = Point(284.039, 342.99);
+ polygon.ps[3] = Point(254.039, 342.99);
+ new ShapeRef(router, polygon, 58);
+
+ // connRef59
+ connRef = new ConnRef(router, 59);
+ srcPt = ConnEnd(Point(229.034, 371.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef60
+ connRef = new ConnRef(router, 60);
+ srcPt = ConnEnd(Point(169.041, 491.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(169.041, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef61
+ connRef = new ConnRef(router, 61);
+ srcPt = ConnEnd(Point(369.024, 315.457), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369.024, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef62
+ connRef = new ConnRef(router, 62);
+ srcPt = ConnEnd(Point(23.5688, 291.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(23.5688, 171.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef63
+ connRef = new ConnRef(router, 63);
+ srcPt = ConnEnd(Point(429.023, 551.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(429.023, 491.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef64
+ connRef = new ConnRef(router, 64);
+ srcPt = ConnEnd(Point(549.011, 611.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369.034, 611.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef65
+ connRef = new ConnRef(router, 65);
+ srcPt = ConnEnd(Point(369.024, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 454.168), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef66
+ connRef = new ConnRef(router, 66);
+ srcPt = ConnEnd(Point(429.023, 551.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(579.023, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef67
+ connRef = new ConnRef(router, 67);
+ srcPt = ConnEnd(Point(489.011, 231.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(269.039, 231.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef68
+ connRef = new ConnRef(router, 68);
+ srcPt = ConnEnd(Point(369.034, 551.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(429.023, 551.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef69
+ connRef = new ConnRef(router, 69);
+ srcPt = ConnEnd(Point(169.041, 371.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(149.045, 401.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef70
+ connRef = new ConnRef(router, 70);
+ srcPt = ConnEnd(Point(169.041, 491.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef71
+ connRef = new ConnRef(router, 71);
+ srcPt = ConnEnd(Point(149.045, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(149.045, 321.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef72
+ connRef = new ConnRef(router, 72);
+ srcPt = ConnEnd(Point(489.011, 231.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef73
+ connRef = new ConnRef(router, 73);
+ srcPt = ConnEnd(Point(229.034, 91.3341), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 91.3341), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef74
+ connRef = new ConnRef(router, 74);
+ srcPt = ConnEnd(Point(369.024, 315.457), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369.024, 195.582), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef75
+ connRef = new ConnRef(router, 75);
+ srcPt = ConnEnd(Point(489.011, 171.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 231.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef76
+ connRef = new ConnRef(router, 76);
+ srcPt = ConnEnd(Point(146.696, 291.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef77
+ connRef = new ConnRef(router, 77);
+ srcPt = ConnEnd(Point(23.5688, 291.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(146.696, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef78
+ connRef = new ConnRef(router, 78);
+ srcPt = ConnEnd(Point(609.052, 611.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 461.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef79
+ connRef = new ConnRef(router, 79);
+ srcPt = ConnEnd(Point(489.011, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(429.023, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef80
+ connRef = new ConnRef(router, 80);
+ srcPt = ConnEnd(Point(489.011, 315.457), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 231.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef81
+ connRef = new ConnRef(router, 81);
+ srcPt = ConnEnd(Point(229.034, 371.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(169.041, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef82
+ connRef = new ConnRef(router, 82);
+ srcPt = ConnEnd(Point(489.011, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 315.457), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef83
+ connRef = new ConnRef(router, 83);
+ srcPt = ConnEnd(Point(89.0462, 171.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 171.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef84
+ connRef = new ConnRef(router, 84);
+ srcPt = ConnEnd(Point(229.034, 151.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 91.3341), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef85
+ connRef = new ConnRef(router, 85);
+ srcPt = ConnEnd(Point(289.03, 91.3341), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef86
+ connRef = new ConnRef(router, 86);
+ srcPt = ConnEnd(Point(89.0462, 311.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(89.0462, 171.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef87
+ connRef = new ConnRef(router, 87);
+ srcPt = ConnEnd(Point(149.045, 321.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 171.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef88
+ connRef = new ConnRef(router, 88);
+ srcPt = ConnEnd(Point(489.011, 315.457), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(609.052, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef89
+ connRef = new ConnRef(router, 89);
+ srcPt = ConnEnd(Point(369.024, 195.582), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369.024, 51.3341), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef90
+ connRef = new ConnRef(router, 90);
+ srcPt = ConnEnd(Point(289.03, 461.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef91
+ connRef = new ConnRef(router, 91);
+ srcPt = ConnEnd(Point(296.314, 491.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(429.023, 491.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef92
+ connRef = new ConnRef(router, 92);
+ srcPt = ConnEnd(Point(369.034, 611.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369.034, 551.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef93
+ connRef = new ConnRef(router, 93);
+ srcPt = ConnEnd(Point(609.052, 291.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef94
+ connRef = new ConnRef(router, 94);
+ srcPt = ConnEnd(Point(579.023, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(579.023, 358.278), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef95
+ connRef = new ConnRef(router, 95);
+ srcPt = ConnEnd(Point(549.011, 231.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef96
+ connRef = new ConnRef(router, 96);
+ srcPt = ConnEnd(Point(579.052, 195.582), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef97
+ connRef = new ConnRef(router, 97);
+ srcPt = ConnEnd(Point(489.011, 231.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 231.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef98
+ connRef = new ConnRef(router, 98);
+ srcPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef99
+ connRef = new ConnRef(router, 99);
+ srcPt = ConnEnd(Point(149.045, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(269.052, 401.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef100
+ connRef = new ConnRef(router, 100);
+ srcPt = ConnEnd(Point(579.023, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef101
+ connRef = new ConnRef(router, 101);
+ srcPt = ConnEnd(Point(229.034, 454.168), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef102
+ connRef = new ConnRef(router, 102);
+ srcPt = ConnEnd(Point(489.011, 111.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 171.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef103
+ connRef = new ConnRef(router, 103);
+ srcPt = ConnEnd(Point(369.024, 315.457), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 315.457), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef104
+ connRef = new ConnRef(router, 104);
+ srcPt = ConnEnd(Point(349.035, 371.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 111.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef105
+ connRef = new ConnRef(router, 105);
+ srcPt = ConnEnd(Point(429.023, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef106
+ connRef = new ConnRef(router, 106);
+ srcPt = ConnEnd(Point(269.039, 231.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(349.035, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef107
+ connRef = new ConnRef(router, 107);
+ srcPt = ConnEnd(Point(289.03, 371.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(349.035, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef108
+ connRef = new ConnRef(router, 108);
+ srcPt = ConnEnd(Point(579.023, 358.278), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef109
+ connRef = new ConnRef(router, 109);
+ srcPt = ConnEnd(Point(429.023, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369.024, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef110
+ connRef = new ConnRef(router, 110);
+ srcPt = ConnEnd(Point(369.024, 51.3341), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.011, 51.3341), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef111
+ connRef = new ConnRef(router, 111);
+ srcPt = ConnEnd(Point(296.314, 491.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(169.041, 491.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef112
+ connRef = new ConnRef(router, 112);
+ srcPt = ConnEnd(Point(349.035, 151.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(349.035, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef113
+ connRef = new ConnRef(router, 113);
+ srcPt = ConnEnd(Point(229.034, 311.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef114
+ connRef = new ConnRef(router, 114);
+ srcPt = ConnEnd(Point(269.039, 327.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(169.041, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef115
+ connRef = new ConnRef(router, 115);
+ srcPt = ConnEnd(Point(369.034, 551.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef116
+ connRef = new ConnRef(router, 116);
+ srcPt = ConnEnd(Point(429.023, 491.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(429.023, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef117
+ connRef = new ConnRef(router, 117);
+ srcPt = ConnEnd(Point(89.0462, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(149.045, 401.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef118
+ connRef = new ConnRef(router, 118);
+ srcPt = ConnEnd(Point(349.035, 151.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 151.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef119
+ connRef = new ConnRef(router, 119);
+ srcPt = ConnEnd(Point(549.011, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 611.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef120
+ connRef = new ConnRef(router, 120);
+ srcPt = ConnEnd(Point(369.024, 195.582), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(579.052, 195.582), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef121
+ connRef = new ConnRef(router, 121);
+ srcPt = ConnEnd(Point(269.039, 327.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(269.039, 231.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef122
+ connRef = new ConnRef(router, 122);
+ srcPt = ConnEnd(Point(169.041, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(169.041, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef123
+ connRef = new ConnRef(router, 123);
+ srcPt = ConnEnd(Point(369.024, 431.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(169.041, 431.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef124
+ connRef = new ConnRef(router, 124);
+ srcPt = ConnEnd(Point(229.034, 151.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(229.034, 311.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef125
+ connRef = new ConnRef(router, 125);
+ srcPt = ConnEnd(Point(549.011, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(269.052, 401.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef126
+ connRef = new ConnRef(router, 126);
+ srcPt = ConnEnd(Point(549.011, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(549.011, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef127
+ connRef = new ConnRef(router, 127);
+ srcPt = ConnEnd(Point(269.052, 401.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 291.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+#define EDGE128
+#ifdef EDGE128
+ // connRef128
+ connRef = new ConnRef(router, 128);
+ srcPt = ConnEnd(Point(289.03, 291.334), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(289.03, 371.334), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/hola01");
+ delete router;
+ return 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/hyperedge01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/hyperedge01.cpp
new file mode 100644
index 0000000..2997088
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/hyperedge01.cpp
@@ -0,0 +1,285 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ //router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ //router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ JunctionRef *shapeRef171026375 = new JunctionRef(router, Point(51075, 51225), 171026375);
+
+ Polygon poly878674(4);
+ poly878674.ps[0] = Point(51454, 51200);
+ poly878674.ps[1] = Point(51454, 51285);
+ poly878674.ps[2] = Point(51396, 51285);
+ poly878674.ps[3] = Point(51396, 51200);
+ new ShapeRef(router, poly878674, 878674);
+
+ Polygon poly286906544(4);
+ poly286906544.ps[0] = Point(50704, 51250);
+ poly286906544.ps[1] = Point(50704, 51335);
+ poly286906544.ps[2] = Point(50646, 51335);
+ poly286906544.ps[3] = Point(50646, 51250);
+ new ShapeRef(router, poly286906544, 286906544);
+
+ Polygon poly170813081(4);
+ poly170813081.ps[0] = Point(51104, 51090);
+ poly170813081.ps[1] = Point(51104, 51175);
+ poly170813081.ps[2] = Point(51046, 51175);
+ poly170813081.ps[3] = Point(51046, 51090);
+ new ShapeRef(router, poly170813081, 170813081);
+
+ Polygon poly342721632(4);
+ poly342721632.ps[0] = Point(51910, 50946);
+ poly342721632.ps[1] = Point(51910, 51004);
+ poly342721632.ps[2] = Point(51825, 51004);
+ poly342721632.ps[3] = Point(51825, 50946);
+ new ShapeRef(router, poly342721632, 342721632);
+
+ JunctionRef *shapeRef102578723 = new JunctionRef(router, Point(51275, 50725), 102578723);
+
+ JunctionRef *shapeRef17922268 = new JunctionRef(router, Point(50850, 50975), 17922268);
+
+ Polygon poly11057158(4);
+ poly11057158.ps[0] = Point(51679, 51200);
+ poly11057158.ps[1] = Point(51679, 51285);
+ poly11057158.ps[2] = Point(51621, 51285);
+ poly11057158.ps[3] = Point(51621, 51200);
+ new ShapeRef(router, poly11057158, 11057158);
+
+ Polygon poly322446045(4);
+ poly322446045.ps[0] = Point(50779, 51240);
+ poly322446045.ps[1] = Point(50779, 51335);
+ poly322446045.ps[2] = Point(50721, 51335);
+ poly322446045.ps[3] = Point(50721, 51240);
+ new ShapeRef(router, poly322446045, 322446045);
+
+ Polygon poly767565928(4);
+ poly767565928.ps[0] = Point(51004, 50741);
+ poly767565928.ps[1] = Point(51004, 50826);
+ poly767565928.ps[2] = Point(50946, 50826);
+ poly767565928.ps[3] = Point(50946, 50741);
+ new ShapeRef(router, poly767565928, 767565928);
+
+ Polygon poly280939374(4);
+ poly280939374.ps[0] = Point(51085, 50971);
+ poly280939374.ps[1] = Point(51085, 51029);
+ poly280939374.ps[2] = Point(51000, 51029);
+ poly280939374.ps[3] = Point(51000, 50971);
+ new ShapeRef(router, poly280939374, 280939374);
+
+ Polygon poly630623707(4);
+ poly630623707.ps[0] = Point(51279, 50925);
+ poly630623707.ps[1] = Point(51279, 51010);
+ poly630623707.ps[2] = Point(51221, 51010);
+ poly630623707.ps[3] = Point(51221, 50925);
+ new ShapeRef(router, poly630623707, 630623707);
+
+ Polygon poly28160455(4);
+ poly28160455.ps[0] = Point(50879, 51250);
+ poly28160455.ps[1] = Point(50879, 51335);
+ poly28160455.ps[2] = Point(50821, 51335);
+ poly28160455.ps[3] = Point(50821, 51250);
+ new ShapeRef(router, poly28160455, 28160455);
+
+ Polygon poly525890448(4);
+ poly525890448.ps[0] = Point(51174, 50721);
+ poly525890448.ps[1] = Point(51174, 50779);
+ poly525890448.ps[2] = Point(51089, 50779);
+ poly525890448.ps[3] = Point(51089, 50721);
+ new ShapeRef(router, poly525890448, 525890448);
+
+ Polygon poly157182552(4);
+ poly157182552.ps[0] = Point(51529, 51190);
+ poly157182552.ps[1] = Point(51529, 51285);
+ poly157182552.ps[2] = Point(51471, 51285);
+ poly157182552.ps[3] = Point(51471, 51190);
+ new ShapeRef(router, poly157182552, 157182552);
+
+ Polygon poly799637520(4);
+ poly799637520.ps[0] = Point(50625, 50896);
+ poly799637520.ps[1] = Point(50625, 50954);
+ poly799637520.ps[2] = Point(50540, 50954);
+ poly799637520.ps[3] = Point(50540, 50896);
+ new ShapeRef(router, poly799637520, 799637520);
+
+ Polygon poly60349320(4);
+ poly60349320.ps[0] = Point(50904, 51025);
+ poly60349320.ps[1] = Point(50904, 51110);
+ poly60349320.ps[2] = Point(50846, 51110);
+ poly60349320.ps[3] = Point(50846, 51025);
+ new ShapeRef(router, poly60349320, 60349320);
+
+ Polygon poly119851894(4);
+ poly119851894.ps[0] = Point(51179, 51225);
+ poly119851894.ps[1] = Point(51179, 51310);
+ poly119851894.ps[2] = Point(51121, 51310);
+ poly119851894.ps[3] = Point(51121, 51225);
+ new ShapeRef(router, poly119851894, 119851894);
+
+ Polygon poly233164275(4);
+ poly233164275.ps[0] = Point(51604, 51200);
+ poly233164275.ps[1] = Point(51604, 51285);
+ poly233164275.ps[2] = Point(51546, 51285);
+ poly233164275.ps[3] = Point(51546, 51200);
+ new ShapeRef(router, poly233164275, 233164275);
+
+ Polygon poly807558175(4);
+ poly807558175.ps[0] = Point(51604, 51000);
+ poly807558175.ps[1] = Point(51604, 51085);
+ poly807558175.ps[2] = Point(51546, 51085);
+ poly807558175.ps[3] = Point(51546, 51000);
+ new ShapeRef(router, poly807558175, 807558175);
+
+ JunctionRef *shapeRef265539540 = new JunctionRef(router, Point(51625, 50950), 265539540);
+
+ Polygon poly108859552(4);
+ poly108859552.ps[0] = Point(51560, 50721);
+ poly108859552.ps[1] = Point(51560, 50779);
+ poly108859552.ps[2] = Point(51475, 50779);
+ poly108859552.ps[3] = Point(51475, 50721);
+ new ShapeRef(router, poly108859552, 108859552);
+
+ Polygon poly404900496(4);
+ poly404900496.ps[0] = Point(51525, 50946);
+ poly404900496.ps[1] = Point(51525, 51004);
+ poly404900496.ps[2] = Point(51440, 51004);
+ poly404900496.ps[3] = Point(51440, 50946);
+ new ShapeRef(router, poly404900496, 404900496);
+
+ Polygon poly620445000(4);
+ poly620445000.ps[0] = Point(51029, 51225);
+ poly620445000.ps[1] = Point(51029, 51310);
+ poly620445000.ps[2] = Point(50971, 51310);
+ poly620445000.ps[3] = Point(50971, 51225);
+ new ShapeRef(router, poly620445000, 620445000);
+
+ ConnRef *connRef450684531 = new ConnRef(router, 450684531);
+ ConnEnd srcPt450684531(Point(51165, 50750), 8);
+ connRef450684531->setSourceEndpoint(srcPt450684531);
+ ConnEnd dstPt450684531(shapeRef102578723);
+ connRef450684531->setDestEndpoint(dstPt450684531);
+ connRef450684531->setRoutingType((ConnType)2);
+
+ ConnRef *connRef135371350 = new ConnRef(router, 135371350);
+ ConnEnd srcPt135371350(shapeRef102578723);
+ connRef135371350->setSourceEndpoint(srcPt135371350);
+ ConnEnd dstPt135371350(Point(51250, 50935), 1);
+ connRef135371350->setDestEndpoint(dstPt135371350);
+ connRef135371350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef143333770 = new ConnRef(router, 143333770);
+ ConnEnd srcPt143333770(Point(51485, 50750), 4);
+ connRef143333770->setSourceEndpoint(srcPt143333770);
+ ConnEnd dstPt143333770(shapeRef102578723);
+ connRef143333770->setDestEndpoint(dstPt143333770);
+ connRef143333770->setRoutingType((ConnType)2);
+
+ ConnRef *connRef102966575 = new ConnRef(router, 102966575);
+ ConnEnd srcPt102966575(Point(50615, 50925), 8);
+ connRef102966575->setSourceEndpoint(srcPt102966575);
+ ConnEnd dstPt102966575(shapeRef17922268);
+ connRef102966575->setDestEndpoint(dstPt102966575);
+ connRef102966575->setRoutingType((ConnType)2);
+
+ ConnRef *connRef68998920 = new ConnRef(router, 68998920);
+ ConnEnd srcPt68998920(shapeRef17922268);
+ connRef68998920->setSourceEndpoint(srcPt68998920);
+ ConnEnd dstPt68998920(Point(50975, 50815), 2);
+ connRef68998920->setDestEndpoint(dstPt68998920);
+ connRef68998920->setRoutingType((ConnType)2);
+
+ ConnRef *connRef1625709 = new ConnRef(router, 1625709);
+ ConnEnd srcPt1625709(shapeRef17922268);
+ connRef1625709->setSourceEndpoint(srcPt1625709);
+ ConnEnd dstPt1625709(Point(50875, 51035), 1);
+ connRef1625709->setDestEndpoint(dstPt1625709);
+ connRef1625709->setRoutingType((ConnType)2);
+
+ ConnRef *connRef34178450 = new ConnRef(router, 34178450);
+ ConnEnd srcPt34178450(shapeRef17922268);
+ connRef34178450->setSourceEndpoint(srcPt34178450);
+ ConnEnd dstPt34178450(Point(51010, 51000), 4);
+ connRef34178450->setDestEndpoint(dstPt34178450);
+ connRef34178450->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314512308 = new ConnRef(router, 314512308);
+ ConnEnd srcPt314512308(Point(51000, 51235), 1);
+ connRef314512308->setSourceEndpoint(srcPt314512308);
+ ConnEnd dstPt314512308(shapeRef171026375);
+ connRef314512308->setDestEndpoint(dstPt314512308);
+ connRef314512308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182776308 = new ConnRef(router, 182776308);
+ ConnEnd srcPt182776308(shapeRef171026375);
+ connRef182776308->setSourceEndpoint(srcPt182776308);
+ ConnEnd dstPt182776308(Point(51075, 51165), 2);
+ connRef182776308->setDestEndpoint(dstPt182776308);
+ connRef182776308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef96504835 = new ConnRef(router, 96504835);
+ ConnEnd srcPt96504835(Point(51150, 51235), 1);
+ connRef96504835->setSourceEndpoint(srcPt96504835);
+ ConnEnd dstPt96504835(shapeRef171026375);
+ connRef96504835->setDestEndpoint(dstPt96504835);
+ connRef96504835->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467016913 = new ConnRef(router, 467016913);
+ ConnEnd srcPt467016913(shapeRef265539540);
+ connRef467016913->setSourceEndpoint(srcPt467016913);
+ ConnEnd dstPt467016913(Point(51575, 51010), 1);
+ connRef467016913->setDestEndpoint(dstPt467016913);
+ connRef467016913->setRoutingType((ConnType)2);
+
+ ConnRef *connRef45740440 = new ConnRef(router, 45740440);
+ ConnEnd srcPt45740440(Point(51835, 50975), 4);
+ connRef45740440->setSourceEndpoint(srcPt45740440);
+ ConnEnd dstPt45740440(shapeRef265539540);
+ connRef45740440->setDestEndpoint(dstPt45740440);
+ connRef45740440->setRoutingType((ConnType)2);
+
+ ConnRef *connRef985644192 = new ConnRef(router, 985644192);
+ ConnEnd srcPt985644192(Point(51515, 50975), 8);
+ connRef985644192->setSourceEndpoint(srcPt985644192);
+ ConnEnd dstPt985644192(shapeRef265539540);
+ connRef985644192->setDestEndpoint(dstPt985644192);
+ connRef985644192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef1 = new ConnRef(router, 1);
+ ConnEnd srcPt1(shapeRef102578723);
+ connRef1->setSourceEndpoint(srcPt1);
+ ConnEnd dstPt1(shapeRef171026375);
+ connRef1->setDestEndpoint(dstPt1);
+ connRef1->setRoutingType((ConnType)2);
+
+ ConnRef *connRef2 = new ConnRef(router, 2);
+ ConnEnd srcPt2(shapeRef102578723);
+ connRef2->setSourceEndpoint(srcPt2);
+ ConnEnd dstPt2(shapeRef17922268);
+ connRef2->setDestEndpoint(dstPt2);
+ connRef2->setRoutingType((ConnType)2);
+
+ ConnRef *connRef3 = new ConnRef(router, 3);
+ ConnEnd srcPt3(shapeRef102578723);
+ connRef3->setSourceEndpoint(srcPt3);
+ ConnEnd dstPt3(shapeRef265539540);
+ connRef3->setDestEndpoint(dstPt3);
+ connRef3->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/hyperedge01-1");
+
+ HyperedgeRerouter *hyperedgeRerouter = router->hyperedgeRerouter();
+ hyperedgeRerouter->registerHyperedgeForRerouting(shapeRef102578723);
+
+ router->processTransaction();
+ router->outputDiagram("output/hyperedge01-2");
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/hyperedge02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/hyperedge02.cpp
new file mode 100644
index 0000000..46d4b76
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/hyperedge02.cpp
@@ -0,0 +1,99 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ ConnEndList hyperedgeTerminals;
+ Router *router = new Router(OrthogonalRouting);
+ /*
+ router->setRoutingPenalty((PenaltyType)0, 78.7234);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 0);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setOrthogonalNudgeDistance(4);
+ */
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(461.05, 1.66648);
+ poly1.ps[1] = Point(461.05, 65.6665);
+ poly1.ps[2] = Point(376.05, 65.6665);
+ poly1.ps[3] = Point(376.05, 1.66648);
+ ShapeRef *shapeRef1 = new ShapeRef(router, poly1, 1);
+ new ShapeConnectionPin(shapeRef1, 102, 0.5, 1, true, 10, (ConnDirFlags) 2);
+ hyperedgeTerminals.push_back(ConnEnd(shapeRef1, 102));
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(404, 166);
+ poly2.ps[1] = Point(404, 227);
+ poly2.ps[2] = Point(320, 227);
+ poly2.ps[3] = Point(320, 166);
+ ShapeRef *shapeRef2 = new ShapeRef(router, poly2, 2);
+ new ShapeConnectionPin(shapeRef2, 102, 0, 0.5, true, 10, (ConnDirFlags) 4);
+ hyperedgeTerminals.push_back(ConnEnd(shapeRef2, 102));
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(240.001, 185);
+ poly3.ps[1] = Point(240.001, 227);
+ poly3.ps[2] = Point(178.001, 227);
+ poly3.ps[3] = Point(178.001, 185);
+ ShapeRef *shapeRef3 = new ShapeRef(router, poly3, 3);
+ new ShapeConnectionPin(shapeRef3, 102, 1, 0.5, true, 10, (ConnDirFlags) 8);
+ hyperedgeTerminals.push_back(ConnEnd(shapeRef3, 102));
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(274.526, 132);
+ poly4.ps[1] = Point(274.526, 174);
+ poly4.ps[2] = Point(90.526, 174);
+ poly4.ps[3] = Point(90.526, 132);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(152.526, 1.66648);
+ poly5.ps[1] = Point(152.526, 40);
+ poly5.ps[2] = Point(90.526, 40);
+ poly5.ps[3] = Point(90.526, 1.66648);
+ ShapeRef *shapeRef5 = new ShapeRef(router, poly5, 5);
+ new ShapeConnectionPin(shapeRef5, 102, 0.5, 1, true, 10, (ConnDirFlags) 2);
+ hyperedgeTerminals.push_back(ConnEnd(shapeRef5, 102));
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(366.925, 1.66648);
+ poly6.ps[1] = Point(366.925, 92.6665);
+ poly6.ps[2] = Point(304.925, 92.6665);
+ poly6.ps[3] = Point(304.925, 1.66648);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(345, 115);
+ poly8.ps[1] = Point(345, 140);
+ poly8.ps[2] = Point(320, 140);
+ poly8.ps[3] = Point(320, 115);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(223.675, 1.66648);
+ poly7.ps[1] = Point(223.675, 50.3333);
+ poly7.ps[2] = Point(161.675, 50.3333);
+ poly7.ps[3] = Point(161.675, 1.66648);
+ ShapeRef *shapeRef7 = new ShapeRef(router, poly7, 7);
+ new ShapeConnectionPin(shapeRef7, 102, 0.5, 1, true, 10, (ConnDirFlags) 2);
+ hyperedgeTerminals.push_back(ConnEnd(shapeRef7, 102));
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(295.3, 1.66648);
+ poly10.ps[1] = Point(295.3, 40);
+ poly10.ps[2] = Point(233.3, 40);
+ poly10.ps[3] = Point(233.3, 1.66648);
+ ShapeRef *shapeRef10 = new ShapeRef(router, poly10, 10);
+ new ShapeConnectionPin(shapeRef10, 102, 0.5, 1, true, 10, (ConnDirFlags) 2);
+ hyperedgeTerminals.push_back(ConnEnd(shapeRef10, 102));
+
+ HyperedgeRerouter *hyperedgeRerouter = router->hyperedgeRerouter();
+ hyperedgeRerouter->registerHyperedgeForRerouting(hyperedgeTerminals);
+
+ router->processTransaction();
+ router->outputDiagram("output/hyperedge02");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/hyperedgeLoop1.cpp b/src/3rdparty/adaptagrams/libavoid/tests/hyperedgeLoop1.cpp
new file mode 100644
index 0000000..2ef5073
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/hyperedgeLoop1.cpp
@@ -0,0 +1,87 @@
+// THis is a regression test for an infinite loop in the hyperedge improvement.
+
+#include "libavoid/libavoid.h"
+#include <sstream>
+using namespace Avoid;
+
+void test()
+{
+ Avoid::ConnEnd end1;
+ Avoid::ConnEnd end2;
+ Avoid::Polygon poly;
+ Avoid::Router * router1 = new Avoid::Router(Avoid::OrthogonalRouting);
+ router1->setTransactionUse(true);
+ router1->setRoutingPenalty(Avoid::segmentPenalty);
+ router1->setRoutingPenalty(Avoid::crossingPenalty);
+ router1->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router1->setRoutingParameter(idealNudgingDistance, 25);
+
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50760, 50620));
+ poly.setPoint(1, Avoid::Point(50760, 50680));
+ poly.setPoint(2, Avoid::Point(50590, 50680));
+ poly.setPoint(3, Avoid::Point(50590, 50620));
+ Avoid::ShapeRef * shape147006780 = new Avoid::ShapeRef(router1, poly, 147006780);
+ Avoid::ShapeConnectionPin * pin147006780_1 = new Avoid::ShapeConnectionPin(shape147006780, 2, 0.941176, 0.5, true, 10, 8);
+ pin147006780_1->setExclusive(true);
+
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50585, 50765));
+ poly.setPoint(1, Avoid::Point(50585, 50935));
+ poly.setPoint(2, Avoid::Point(50365, 50935));
+ poly.setPoint(3, Avoid::Point(50365, 50765));
+ Avoid::ShapeRef * shape69758810 = new Avoid::ShapeRef(router1, poly, 69758810);
+ Avoid::ShapeConnectionPin * pin69758810_1 = new Avoid::ShapeConnectionPin(shape69758810, 2, 0.954545, 0.5, true, 10, 8);
+ pin69758810_1->setExclusive(true);
+
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(51060, 51020));
+ poly.setPoint(1, Avoid::Point(51060, 51080));
+ poly.setPoint(2, Avoid::Point(50890, 51080));
+ poly.setPoint(3, Avoid::Point(50890, 51020));
+ Avoid::ShapeRef * shape149922619 = new Avoid::ShapeRef(router1, poly, 149922619);
+ Avoid::ShapeConnectionPin * pin149922619_1 = new Avoid::ShapeConnectionPin(shape149922619, 2, 0.941176, 0.5, true, 10, 8);
+ pin149922619_1->setExclusive(true);
+
+ Avoid::JunctionRef * junction228834480 = new Avoid::JunctionRef(router1, Avoid::Point(51050, 51050), 228834480);
+ end1 = Avoid::ConnEnd(shape69758810, 2);
+ end2 = Avoid::ConnEnd(junction228834480);
+ Avoid::ConnRef * conn159270000 = new Avoid::ConnRef(router1, end1, end2);
+ conn159270000->makePathInvalid();
+ end1 = Avoid::ConnEnd(junction228834480);
+ end2 = Avoid::ConnEnd(shape149922619, 2);
+ Avoid::ConnRef * conn199495942 = new Avoid::ConnRef(router1, end1, end2);
+ router1->processTransaction();
+
+ router1->outputDiagram("output/hyperedgeLoop1-1");
+ end1 = Avoid::ConnEnd(shape147006780, 2);
+ end2 = Avoid::ConnEnd(junction228834480);
+ Avoid::ConnRef * conn8326760 = new Avoid::ConnRef(router1, end1, end2);
+ conn8326760->makePathInvalid();
+ router1->processTransaction(); // infinite
+
+ router1->outputDiagram("output/hyperedgeLoop1-2");
+ router1->deleteShape(shape147006780);
+ shape147006780 = nullptr;
+ router1->deleteShape(shape69758810);
+ shape69758810 = nullptr;
+ router1->deleteShape(shape149922619);
+ shape149922619 = nullptr;
+ router1->deleteJunction(junction228834480);
+ junction228834480 = nullptr;
+ router1->deleteConnector(conn159270000);
+ conn159270000 = nullptr;
+ router1->deleteConnector(conn199495942);
+ conn199495942 = nullptr;
+ router1->deleteConnector(conn8326760);
+ conn8326760 = nullptr;
+ router1->processTransaction();
+
+ delete router1;
+}
+
+extern "C" int main(void)
+{
+ test();
+ return 0;
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/hyperedgeRerouting01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/hyperedgeRerouting01.cpp
new file mode 100644
index 0000000..2aa81f2
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/hyperedgeRerouting01.cpp
@@ -0,0 +1,150 @@
+// Based on 33004heap_corruption.cpp
+//
+#include "libavoid/libavoid.h"
+#include <sstream>
+
+void outputDiagram(Avoid::Router * router)
+{
+ static int counter = 0;
+ std::ostringstream os;
+ os << (++counter);
+ //router->outputDiagram(os.str());
+}
+
+int test()
+{
+ // The contents of this function can be replaced by the automatically generated test code from the debug svg file
+ Avoid::ConnEnd end1_0;
+ Avoid::ConnEnd end2_0;
+ Avoid::Polygon poly0;
+ Avoid::Router * router0 = new Avoid::Router(Avoid::OrthogonalRouting);
+ Avoid::HyperedgeNewAndDeletedObjectLists newanddeletedobjects_0;
+ Avoid::ConnRefList::const_iterator connit_0;
+ Avoid::JunctionRefList::const_iterator junctionit_0;
+ router0->setTransactionUse(true);
+ router0->setRoutingPenalty(Avoid::segmentPenalty);
+ router0->setRoutingPenalty(Avoid::crossingPenalty);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::idealNudgingDistance, 25);
+ router0->setRoutingOption(Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(27350, 26040));
+ poly0.setPoint(1, Avoid::Point(27350, 26450));
+ poly0.setPoint(2, Avoid::Point(26925, 26450));
+ poly0.setPoint(3, Avoid::Point(26925, 26040));
+ Avoid::ShapeRef * shape0_478041183 = new Avoid::ShapeRef(router0, poly0, 478041183);
+ Avoid::ShapeConnectionPin * pin0_478041183_0 = new Avoid::ShapeConnectionPin(shape0_478041183, 1, 0, 85, false, 10, 4);
+ pin0_478041183_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_1 = new Avoid::ShapeConnectionPin(shape0_478041183, 2, 100, -1, false, 10, 2);
+ pin0_478041183_1->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_2 = new Avoid::ShapeConnectionPin(shape0_478041183, 3, -1, 85, false, 10, 8);
+ pin0_478041183_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_3 = new Avoid::ShapeConnectionPin(shape0_478041183, 4, 250, -1, false, 10, 2);
+ pin0_478041183_3->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_4 = new Avoid::ShapeConnectionPin(shape0_478041183, 5, 0, 235, false, 10, 4);
+ pin0_478041183_4->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_5 = new Avoid::ShapeConnectionPin(shape0_478041183, 6, 0, 160, false, 10, 4);
+ pin0_478041183_5->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_6 = new Avoid::ShapeConnectionPin(shape0_478041183, 7, 175, -1, false, 10, 2);
+ pin0_478041183_6->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_7 = new Avoid::ShapeConnectionPin(shape0_478041183, 8, -1, 160, false, 10, 8);
+ pin0_478041183_7->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_8 = new Avoid::ShapeConnectionPin(shape0_478041183, 9, 325, -1, false, 10, 2);
+ pin0_478041183_8->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_478041183_9 = new Avoid::ShapeConnectionPin(shape0_478041183, 10, 0, 310, false, 10, 4);
+ pin0_478041183_9->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(27030, 26900));
+ poly0.setPoint(1, Avoid::Point(27030, 27050));
+ poly0.setPoint(2, Avoid::Point(26970, 27050));
+ poly0.setPoint(3, Avoid::Point(26970, 26900));
+ Avoid::ShapeRef * shape0_646972128 = new Avoid::ShapeRef(router0, poly0, 646972128);
+ Avoid::ShapeConnectionPin * pin0_646972128_0 = new Avoid::ShapeConnectionPin(shape0_646972128, 1, 25, -1, false, 10, 2);
+ pin0_646972128_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_646972128_1 = new Avoid::ShapeConnectionPin(shape0_646972128, 2, 25, 0, false, 10, 1);
+ pin0_646972128_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(26480, 26350));
+ poly0.setPoint(1, Avoid::Point(26480, 26500));
+ poly0.setPoint(2, Avoid::Point(26420, 26500));
+ poly0.setPoint(3, Avoid::Point(26420, 26350));
+ Avoid::ShapeRef * shape0_53041512 = new Avoid::ShapeRef(router0, poly0, 53041512);
+ Avoid::ShapeConnectionPin * pin0_53041512_0 = new Avoid::ShapeConnectionPin(shape0_53041512, 1, 30, 0, false, 10, 1);
+ pin0_53041512_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_53041512_1 = new Avoid::ShapeConnectionPin(shape0_53041512, 2, 30, -1, false, 10, 2);
+ pin0_53041512_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(26860, 26900));
+ poly0.setPoint(1, Avoid::Point(26860, 27050));
+ poly0.setPoint(2, Avoid::Point(26790, 27050));
+ poly0.setPoint(3, Avoid::Point(26790, 26900));
+ Avoid::ShapeRef * shape0_241539284 = new Avoid::ShapeRef(router0, poly0, 241539284);
+ Avoid::ShapeConnectionPin * pin0_241539284_0 = new Avoid::ShapeConnectionPin(shape0_241539284, 1, 35, -1, false, 10, 2);
+ pin0_241539284_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_241539284_1 = new Avoid::ShapeConnectionPin(shape0_241539284, 2, 35, 0, false, 10, 1);
+ pin0_241539284_1->setExclusive(true);
+ Avoid::JunctionRef * junction0_16268769 = new Avoid::JunctionRef(router0, Avoid::Point(27000, 27075), 16268769);
+ junction0_16268769->setPositionFixed(true);
+ Avoid::JunctionRef * junction0_142222080 = new Avoid::JunctionRef(router0, Avoid::Point(27200, 26450), 142222080);
+ junction0_142222080->setPositionFixed(true);
+ Avoid::JunctionRef * junction0_471289251 = new Avoid::JunctionRef(router0, Avoid::Point(26350, 26325), 471289251);
+ junction0_471289251->setPositionFixed(true);
+
+
+ end1_0 = Avoid::ConnEnd(shape0_646972128, 1);
+ end2_0 = Avoid::ConnEnd(junction0_16268769);
+ Avoid::ConnRef * conn0_64950216 = new Avoid::ConnRef(router0, end1_0, end2_0, 64950216);
+ end1_0 = Avoid::ConnEnd(junction0_16268769);
+ end2_0 = Avoid::ConnEnd(shape0_478041183, 7);
+ Avoid::ConnRef * conn0_278089510 = new Avoid::ConnRef(router0, end1_0, end2_0, 278089510);
+ end1_0 = Avoid::ConnEnd(shape0_241539284, 1);
+ end2_0 = Avoid::ConnEnd(junction0_16268769);
+ Avoid::ConnRef * conn0_41268690 = new Avoid::ConnRef(router0, end1_0, end2_0, 41268690);
+
+ end1_0 = Avoid::ConnEnd(shape0_478041183, 9);
+ end2_0 = Avoid::ConnEnd(junction0_142222080);
+ Avoid::ConnRef * conn0_60256130 = new Avoid::ConnRef(router0, end1_0, end2_0, 60256130);
+ end1_0 = Avoid::ConnEnd(shape0_478041183, 3);
+ end2_0 = Avoid::ConnEnd(junction0_142222080);
+ Avoid::ConnRef * conn0_73835204 = new Avoid::ConnRef(router0, end1_0, end2_0, 73835204);
+ end1_0 = Avoid::ConnEnd(shape0_478041183, 4);
+ end2_0 = Avoid::ConnEnd(junction0_142222080);
+ Avoid::ConnRef * conn0_93872527 = new Avoid::ConnRef(router0, end1_0, end2_0, 93872527);
+
+ end1_0 = Avoid::ConnEnd(shape0_53041512, 1);
+ end2_0 = Avoid::ConnEnd(junction0_471289251);
+ Avoid::ConnRef * conn0_448284384 = new Avoid::ConnRef(router0, end1_0, end2_0, 448284384);
+ end1_0 = Avoid::ConnEnd(shape0_478041183, 1);
+ end2_0 = Avoid::ConnEnd(junction0_471289251);
+ Avoid::ConnRef * conn0_392836745 = new Avoid::ConnRef(router0, end1_0, end2_0, 392836745);
+ end1_0 = Avoid::ConnEnd(shape0_241539284, 2);
+ end2_0 = Avoid::ConnEnd(junction0_471289251);
+ Avoid::ConnRef * conn0_836242673 = new Avoid::ConnRef(router0, end1_0, end2_0, 836242673);
+
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ outputDiagram(router0);
+
+ junction0_16268769->setPositionFixed(false);
+ junction0_142222080->setPositionFixed(false);
+ junction0_471289251->setPositionFixed(false);
+
+ router0->hyperedgeRerouter()->registerHyperedgeForRerouting(junction0_16268769);
+ router0->hyperedgeRerouter()->registerHyperedgeForRerouting(junction0_142222080);
+ router0->hyperedgeRerouter()->registerHyperedgeForRerouting(junction0_471289251);
+
+ router0->processTransaction();
+ outputDiagram(router0);
+
+ int result = router0->existsInvalidOrthogonalPaths();
+ delete router0;
+ return result;
+}
+
+extern "C" int main(int argc, char* argv[])
+{
+ return test();
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge01.cpp
new file mode 100644
index 0000000..092689c
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge01.cpp
@@ -0,0 +1,109 @@
+#include "libavoid/libavoid.h"
+#include <sstream>
+using namespace Avoid;
+
+int test()
+{
+ // The contents of this function can be replaced by the automatically generated test code from the debug svg file
+ Avoid::ConnEnd end1;
+ Avoid::ConnEnd end2;
+ Avoid::Polygon poly;
+ Avoid::Router * router = new Avoid::Router(Avoid::OrthogonalRouting);
+ router->setTransactionUse(true);
+ router->setRoutingPenalty(Avoid::segmentPenalty);
+ router->setRoutingPenalty(Avoid::crossingPenalty);
+ router->setRoutingPenalty(Avoid::fixedSharedPathPenalty);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+ router->setRoutingOption(Avoid::improveHyperedgeRoutesMovingJunctions, true);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(51160, 50670));
+ poly.setPoint(1, Avoid::Point(51160, 50730));
+ poly.setPoint(2, Avoid::Point(50950, 50730));
+ poly.setPoint(3, Avoid::Point(50950, 50670));
+ Avoid::ShapeRef * shape341041314 = new Avoid::ShapeRef(router, poly, 341041314);
+ Avoid::ShapeConnectionPin * pin341041314_0 = new Avoid::ShapeConnectionPin(shape341041314, 1, 0.952381, 0.5, true, 10, 8);
+ pin341041314_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin341041314_1 = new Avoid::ShapeConnectionPin(shape341041314, 2, 0, 0.5, true, 10, 4);
+ pin341041314_1->setExclusive(true);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(51160, 50395));
+ poly.setPoint(1, Avoid::Point(51160, 50455));
+ poly.setPoint(2, Avoid::Point(50950, 50455));
+ poly.setPoint(3, Avoid::Point(50950, 50395));
+ Avoid::ShapeRef * shape47540376 = new Avoid::ShapeRef(router, poly, 47540376);
+ Avoid::ShapeConnectionPin * pin47540376_0 = new Avoid::ShapeConnectionPin(shape47540376, 1, 0.952381, 0.5, true, 10, 8);
+ pin47540376_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin47540376_1 = new Avoid::ShapeConnectionPin(shape47540376, 2, 0, 0.5, true, 10, 4);
+ pin47540376_1->setExclusive(true);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50850, 50770));
+ poly.setPoint(1, Avoid::Point(50850, 50830));
+ poly.setPoint(2, Avoid::Point(50665, 50830));
+ poly.setPoint(3, Avoid::Point(50665, 50770));
+ Avoid::ShapeRef * shape81920772 = new Avoid::ShapeRef(router, poly, 81920772);
+ Avoid::ShapeConnectionPin * pin81920772_0 = new Avoid::ShapeConnectionPin(shape81920772, 1, 0.047619, 0.5, true, 10, 4);
+ pin81920772_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin81920772_1 = new Avoid::ShapeConnectionPin(shape81920772, 2, 1, 0.5, true, 10, 8);
+ pin81920772_1->setExclusive(true);
+ Avoid::JunctionRef * junction878282342 = new Avoid::JunctionRef(router, Avoid::Point(50875, 50700), 878282342);
+ junction878282342->setPositionFixed(false);
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(50850, 50470));
+ poly.setPoint(1, Avoid::Point(50850, 50530));
+ poly.setPoint(2, Avoid::Point(50665, 50530));
+ poly.setPoint(3, Avoid::Point(50665, 50470));
+ Avoid::ShapeRef * shape206564314 = new Avoid::ShapeRef(router, poly, 206564314);
+ Avoid::ShapeConnectionPin * pin206564314_0 = new Avoid::ShapeConnectionPin(shape206564314, 1, 0.047619, 0.5, true, 10, 4);
+ pin206564314_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin206564314_1 = new Avoid::ShapeConnectionPin(shape206564314, 2, 1, 0.5, true, 10, 8);
+ pin206564314_1->setExclusive(true);
+ Avoid::JunctionRef * junction213455341 = new Avoid::JunctionRef(router, Avoid::Point(50875, 50500), 213455341);
+ junction213455341->setPositionFixed(false);
+ end1 = Avoid::ConnEnd(junction878282342);
+ end2 = Avoid::ConnEnd(shape341041314, 2);
+ Avoid::ConnRef * conn290033688 = new Avoid::ConnRef(router, end1, end2);
+ conn290033688->makePathInvalid();
+ end1 = Avoid::ConnEnd(shape81920772, 2);
+ end2 = Avoid::ConnEnd(junction878282342);
+ Avoid::ConnRef * conn281807178 = new Avoid::ConnRef(router, end1, end2);
+ conn281807178->makePathInvalid();
+ end1 = Avoid::ConnEnd(shape47540376, 2);
+ end2 = Avoid::ConnEnd(junction213455341);
+ Avoid::ConnRef * conn762966660 = new Avoid::ConnRef(router, end1, end2);
+ conn762966660->makePathInvalid();
+ end1 = Avoid::ConnEnd(junction213455341);
+ end2 = Avoid::ConnEnd(junction878282342);
+ Avoid::ConnRef * conn46508714 = new Avoid::ConnRef(router, end1, end2);
+ conn46508714->makePathInvalid();
+ end1 = Avoid::ConnEnd(shape206564314, 2);
+ end2 = Avoid::ConnEnd(junction213455341);
+ Avoid::ConnRef * conn385831514 = new Avoid::ConnRef(router, end1, end2);
+ conn385831514->makePathInvalid();
+ router->processTransaction();
+
+ router->outputDiagram("output/improveHyperedge01-1");
+ poly = Avoid::Polygon(4);
+ poly.setPoint(0, Avoid::Point(51160, 50645));
+ poly.setPoint(1, Avoid::Point(51160, 50705));
+ poly.setPoint(2, Avoid::Point(50950, 50705));
+ poly.setPoint(3, Avoid::Point(50950, 50645));
+ router->moveShape(shape341041314, poly);
+ conn290033688->makePathInvalid();
+ conn281807178->makePathInvalid();
+ conn46508714->makePathInvalid();
+ conn762966660->makePathInvalid();
+ router->processTransaction();
+
+ router->outputDiagram("output/improveHyperedge01-2");
+ Avoid::Point junctionPos = junction878282342->recommendedPosition();
+
+ delete router;
+
+ // Regression test to check that a junction is correctly moved.
+ return (junctionPos.y == 50675) ? 0 : 1;
+}
+
+int main(void)
+{
+ return test();
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge02.cpp
new file mode 100644
index 0000000..9eb1d2b
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge02.cpp
@@ -0,0 +1,90 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 9000);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, true);
+ router->setRoutingOption(improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly39761567(4);
+ poly39761567.ps[0] = Point(50754, 50975);
+ poly39761567.ps[1] = Point(50754, 51060);
+ poly39761567.ps[2] = Point(50696, 51060);
+ poly39761567.ps[3] = Point(50696, 50975);
+ ShapeRef *shapeRef39761567 = new ShapeRef(router, poly39761567, 39761567);
+ new ShapeConnectionPin(shapeRef39761567, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly115776716(4);
+ poly115776716.ps[0] = Point(51504, 50975);
+ poly115776716.ps[1] = Point(51504, 51060);
+ poly115776716.ps[2] = Point(51446, 51060);
+ poly115776716.ps[3] = Point(51446, 50975);
+ ShapeRef *shapeRef115776716 = new ShapeRef(router, poly115776716, 115776716);
+ new ShapeConnectionPin(shapeRef115776716, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly238475293(4);
+ poly238475293.ps[0] = Point(50554, 50975);
+ poly238475293.ps[1] = Point(50554, 51060);
+ poly238475293.ps[2] = Point(50496, 51060);
+ poly238475293.ps[3] = Point(50496, 50975);
+ ShapeRef *shapeRef238475293 = new ShapeRef(router, poly238475293, 238475293);
+ new ShapeConnectionPin(shapeRef238475293, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly430971008(4);
+ poly430971008.ps[0] = Point(51004, 50465);
+ poly430971008.ps[1] = Point(51004, 50550);
+ poly430971008.ps[2] = Point(50946, 50550);
+ poly430971008.ps[3] = Point(50946, 50465);
+ ShapeRef *shapeRef430971008 = new ShapeRef(router, poly430971008, 430971008);
+ new ShapeConnectionPin(shapeRef430971008, 1, 0.5, 1, true, 10, (ConnDirFlags) 2);
+
+ JunctionRef *junctionRef513246008 = new JunctionRef(router, Point(50925, 50725), 513246008);
+ /*
+ // This may be useful if junction pins are modified.
+ new ShapeConnectionPin(junctionRef513246008, 2147483646, (ConnDirFlags) 15);
+ */
+
+ ConnRef *connRef513246009 = new ConnRef(router, 513246009);
+ ConnEnd srcPt513246009(shapeRef39761567, 1);
+ connRef513246009->setSourceEndpoint(srcPt513246009);
+ ConnEnd dstPt513246009(junctionRef513246008);
+ connRef513246009->setDestEndpoint(dstPt513246009);
+ connRef513246009->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246010 = new ConnRef(router, 513246010);
+ ConnEnd srcPt513246010(junctionRef513246008);
+ connRef513246010->setSourceEndpoint(srcPt513246010);
+ ConnEnd dstPt513246010(shapeRef430971008, 1);
+ connRef513246010->setDestEndpoint(dstPt513246010);
+ connRef513246010->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246011 = new ConnRef(router, 513246011);
+ ConnEnd srcPt513246011(junctionRef513246008);
+ connRef513246011->setSourceEndpoint(srcPt513246011);
+ ConnEnd dstPt513246011(shapeRef238475293, 1);
+ connRef513246011->setDestEndpoint(dstPt513246011);
+ connRef513246011->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246012 = new ConnRef(router, 513246012);
+ ConnEnd srcPt513246012(shapeRef115776716, 1);
+ connRef513246012->setSourceEndpoint(srcPt513246012);
+ ConnEnd dstPt513246012(junctionRef513246008);
+ connRef513246012->setDestEndpoint(dstPt513246012);
+ connRef513246012->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/improveHyperedge02");
+
+ bool overlaps = router->existsOrthogonalSegmentOverlap(true);
+ delete router;
+ return (overlaps) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge03.cpp b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge03.cpp
new file mode 100644
index 0000000..5dd6d2c
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge03.cpp
@@ -0,0 +1,90 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 9000);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, true);
+ router->setRoutingOption(improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly39761567(4);
+ poly39761567.ps[0] = Point(50754, 50975);
+ poly39761567.ps[1] = Point(50754, 51060);
+ poly39761567.ps[2] = Point(50696, 51060);
+ poly39761567.ps[3] = Point(50696, 50975);
+ ShapeRef *shapeRef39761567 = new ShapeRef(router, poly39761567, 39761567);
+ new ShapeConnectionPin(shapeRef39761567, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly115776716(4);
+ poly115776716.ps[0] = Point(51504, 50975);
+ poly115776716.ps[1] = Point(51504, 51060);
+ poly115776716.ps[2] = Point(51446, 51060);
+ poly115776716.ps[3] = Point(51446, 50975);
+ ShapeRef *shapeRef115776716 = new ShapeRef(router, poly115776716, 115776716);
+ new ShapeConnectionPin(shapeRef115776716, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly238475293(4);
+ poly238475293.ps[0] = Point(50554, 50975);
+ poly238475293.ps[1] = Point(50554, 51060);
+ poly238475293.ps[2] = Point(50496, 51060);
+ poly238475293.ps[3] = Point(50496, 50975);
+ ShapeRef *shapeRef238475293 = new ShapeRef(router, poly238475293, 238475293);
+ new ShapeConnectionPin(shapeRef238475293, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly430971008(4);
+ poly430971008.ps[0] = Point(51004, 50975);
+ poly430971008.ps[1] = Point(51004, 51060);
+ poly430971008.ps[2] = Point(50946, 51060);
+ poly430971008.ps[3] = Point(50946, 50975);
+ ShapeRef *shapeRef430971008 = new ShapeRef(router, poly430971008, 430971008);
+ new ShapeConnectionPin(shapeRef430971008, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ JunctionRef *junctionRef513246008 = new JunctionRef(router, Point(50925, 50725), 513246008);
+ /*
+ // This may be useful if junction pins are modified.
+ new ShapeConnectionPin(junctionRef513246008, 2147483646, (ConnDirFlags) 15);
+ */
+
+ ConnRef *connRef513246009 = new ConnRef(router, 513246009);
+ ConnEnd srcPt513246009(shapeRef39761567, 1);
+ connRef513246009->setSourceEndpoint(srcPt513246009);
+ ConnEnd dstPt513246009(junctionRef513246008);
+ connRef513246009->setDestEndpoint(dstPt513246009);
+ connRef513246009->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246010 = new ConnRef(router, 513246010);
+ ConnEnd srcPt513246010(junctionRef513246008);
+ connRef513246010->setSourceEndpoint(srcPt513246010);
+ ConnEnd dstPt513246010(shapeRef430971008, 1);
+ connRef513246010->setDestEndpoint(dstPt513246010);
+ connRef513246010->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246011 = new ConnRef(router, 513246011);
+ ConnEnd srcPt513246011(junctionRef513246008);
+ connRef513246011->setSourceEndpoint(srcPt513246011);
+ ConnEnd dstPt513246011(shapeRef238475293, 1);
+ connRef513246011->setDestEndpoint(dstPt513246011);
+ connRef513246011->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246012 = new ConnRef(router, 513246012);
+ ConnEnd srcPt513246012(shapeRef115776716, 1);
+ connRef513246012->setSourceEndpoint(srcPt513246012);
+ ConnEnd dstPt513246012(junctionRef513246008);
+ connRef513246012->setDestEndpoint(dstPt513246012);
+ connRef513246012->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/improveHyperedge03");
+
+ bool overlaps = router->existsOrthogonalSegmentOverlap(true);
+ delete router;
+ return (overlaps) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge04.cpp b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge04.cpp
new file mode 100644
index 0000000..9ed66da
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge04.cpp
@@ -0,0 +1,113 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 9000);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, true);
+ router->setRoutingOption(improveHyperedgeRoutesMovingJunctions, false);
+ router->setRoutingOption(improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(50354, 50975);
+ poly2.ps[1] = Point(50354, 51060);
+ poly2.ps[2] = Point(50296, 51060);
+ poly2.ps[3] = Point(50296, 50975);
+ ShapeRef *shapeRef2 = new ShapeRef(router, poly2, 2);
+ new ShapeConnectionPin(shapeRef2, 1, 0.5, 1, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly39761567(4);
+ poly39761567.ps[0] = Point(50754, 50975);
+ poly39761567.ps[1] = Point(50754, 51060);
+ poly39761567.ps[2] = Point(50696, 51060);
+ poly39761567.ps[3] = Point(50696, 50975);
+ ShapeRef *shapeRef39761567 = new ShapeRef(router, poly39761567, 39761567);
+ new ShapeConnectionPin(shapeRef39761567, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly115776716(4);
+ poly115776716.ps[0] = Point(51504, 50975);
+ poly115776716.ps[1] = Point(51504, 51060);
+ poly115776716.ps[2] = Point(51446, 51060);
+ poly115776716.ps[3] = Point(51446, 50975);
+ ShapeRef *shapeRef115776716 = new ShapeRef(router, poly115776716, 115776716);
+ new ShapeConnectionPin(shapeRef115776716, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly238475293(4);
+ poly238475293.ps[0] = Point(50554, 50975);
+ poly238475293.ps[1] = Point(50554, 51060);
+ poly238475293.ps[2] = Point(50496, 51060);
+ poly238475293.ps[3] = Point(50496, 50975);
+ ShapeRef *shapeRef238475293 = new ShapeRef(router, poly238475293, 238475293);
+ new ShapeConnectionPin(shapeRef238475293, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly430971008(4);
+ poly430971008.ps[0] = Point(51004, 50975);
+ poly430971008.ps[1] = Point(51004, 51060);
+ poly430971008.ps[2] = Point(50946, 51060);
+ poly430971008.ps[3] = Point(50946, 50975);
+ ShapeRef *shapeRef430971008 = new ShapeRef(router, poly430971008, 430971008);
+ new ShapeConnectionPin(shapeRef430971008, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ JunctionRef *junctionRef513246008 = new JunctionRef(router, Point(50925, 50700), 513246008);
+ /*
+ // This may be useful if junction pins are modified.
+ new ShapeConnectionPin(junctionRef513246008, 2147483646, (ConnDirFlags) 15);
+ */
+ JunctionRef *junctionRef4 = new JunctionRef(router, Point(50725, 50725), 4);
+
+ ConnRef *connRef3 = new ConnRef(router, 3);
+ ConnEnd srcPt3(shapeRef2, 1);
+ connRef3->setSourceEndpoint(srcPt3);
+ ConnEnd dstPt3(junctionRef513246008);
+ connRef3->setDestEndpoint(dstPt3);
+ connRef3->setRoutingType((ConnType)2);
+
+ ConnRef *connRef5 = new ConnRef(router, 5);
+ ConnEnd srcPt5(junctionRef4);
+ connRef5->setSourceEndpoint(srcPt5);
+ ConnEnd dstPt5(junctionRef513246008);
+ connRef5->setDestEndpoint(dstPt5);
+ connRef5->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246009 = new ConnRef(router, 513246009);
+ ConnEnd srcPt513246009(shapeRef39761567, 1);
+ connRef513246009->setSourceEndpoint(srcPt513246009);
+ ConnEnd dstPt513246009(junctionRef4);
+ connRef513246009->setDestEndpoint(dstPt513246009);
+ connRef513246009->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246010 = new ConnRef(router, 513246010);
+ ConnEnd srcPt513246010(junctionRef513246008);
+ connRef513246010->setSourceEndpoint(srcPt513246010);
+ ConnEnd dstPt513246010(shapeRef430971008, 1);
+ connRef513246010->setDestEndpoint(dstPt513246010);
+ connRef513246010->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246011 = new ConnRef(router, 513246011);
+ ConnEnd srcPt513246011(junctionRef4);
+ connRef513246011->setSourceEndpoint(srcPt513246011);
+ ConnEnd dstPt513246011(shapeRef238475293, 1);
+ connRef513246011->setDestEndpoint(dstPt513246011);
+ connRef513246011->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246012 = new ConnRef(router, 513246012);
+ ConnEnd srcPt513246012(shapeRef115776716, 1);
+ connRef513246012->setSourceEndpoint(srcPt513246012);
+ ConnEnd dstPt513246012(junctionRef513246008);
+ connRef513246012->setDestEndpoint(dstPt513246012);
+ connRef513246012->setRoutingType((ConnType)2);
+ router->processTransaction();
+ router->outputDiagram("output/improveHyperedge04");
+
+ bool overlaps = router->existsOrthogonalSegmentOverlap(true);
+ delete router;
+ return (overlaps) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge05.cpp b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge05.cpp
new file mode 100644
index 0000000..ff6ba17
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge05.cpp
@@ -0,0 +1,154 @@
+#include "libavoid/libavoid.h"
+#include <sstream>
+using namespace Avoid;
+
+void outputDiagram(Avoid::Router * router)
+{
+ static int counter = 0;
+ std::ostringstream os;
+ os << "output/improveHyperedge05-" << (++counter);
+ router->outputDiagram(os.str());
+}
+
+void test()
+{
+ // The contents of this function can be replaced by the automatically generated test code from the debug svg file
+ Avoid::ConnEnd end1_0;
+ Avoid::ConnEnd end2_0;
+ Avoid::Polygon poly0;
+ std::vector<Avoid::Checkpoint> checkpoints_0;
+ Avoid::Router * router0 = new Avoid::Router(Avoid::OrthogonalRouting);
+ Avoid::HyperedgeNewAndDeletedObjectLists newanddeletedobjects_0;
+ Avoid::ConnRefList::const_iterator connit_0;
+ Avoid::JunctionRefList::const_iterator junctionit_0;
+ router0->setTransactionUse(true);
+ router0->setRoutingPenalty(Avoid::segmentPenalty);
+ router0->setRoutingPenalty(Avoid::crossingPenalty);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::idealNudgingDistance, 25);
+ router0->setRoutingOption(Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ outputDiagram(router0);
+
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51885, 50715));
+ poly0.setPoint(1, Avoid::Point(51885, 50935));
+ poly0.setPoint(2, Avoid::Point(51700, 50935));
+ poly0.setPoint(3, Avoid::Point(51700, 50715));
+ Avoid::ShapeRef * shape0_68611488 = new Avoid::ShapeRef(router0, poly0, 68611488);
+ Avoid::ShapeConnectionPin * pin0_68611488_0 = new Avoid::ShapeConnectionPin(shape0_68611488, 1, 0.810810810811, 0.0454545454545, true, 10, 1);
+ pin0_68611488_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_68611488_1 = new Avoid::ShapeConnectionPin(shape0_68611488, 2, 0, 0.5, true, 10, 4);
+ pin0_68611488_1->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_68611488_2 = new Avoid::ShapeConnectionPin(shape0_68611488, 3, 0.810810810811, 0.954545454545, true, 10, 2);
+ pin0_68611488_2->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51600, 50795));
+ poly0.setPoint(1, Avoid::Point(51600, 50855));
+ poly0.setPoint(2, Avoid::Point(51440, 50855));
+ poly0.setPoint(3, Avoid::Point(51440, 50795));
+ Avoid::ShapeRef * shape0_84988680 = new Avoid::ShapeRef(router0, poly0, 84988680);
+ Avoid::ShapeConnectionPin * pin0_84988680_0 = new Avoid::ShapeConnectionPin(shape0_84988680, 1, 0.0625, 0.5, true, 10, 4);
+ pin0_84988680_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_84988680_1 = new Avoid::ShapeConnectionPin(shape0_84988680, 2, 1, 0.5, true, 10, 8);
+ pin0_84988680_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51705, 50640));
+ poly0.setPoint(1, Avoid::Point(51705, 50800));
+ poly0.setPoint(2, Avoid::Point(51645, 50800));
+ poly0.setPoint(3, Avoid::Point(51645, 50640));
+ Avoid::ShapeRef * shape0_170757006 = new Avoid::ShapeRef(router0, poly0, 170757006);
+ Avoid::ShapeConnectionPin * pin0_170757006_0 = new Avoid::ShapeConnectionPin(shape0_170757006, 1, 0.5, 1, true, 10, 2);
+ pin0_170757006_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_170757006_1 = new Avoid::ShapeConnectionPin(shape0_170757006, 2, 0.5, 0.0625, true, 10, 1);
+ pin0_170757006_1->setExclusive(true);
+ Avoid::JunctionRef * junction0_185122667 = new Avoid::JunctionRef(router0, Avoid::Point(51675, 50825), 185122667);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51705, 50925));
+ poly0.setPoint(1, Avoid::Point(51705, 51085));
+ poly0.setPoint(2, Avoid::Point(51645, 51085));
+ poly0.setPoint(3, Avoid::Point(51645, 50925));
+ Avoid::ShapeRef * shape0_300278382 = new Avoid::ShapeRef(router0, poly0, 300278382);
+ Avoid::ShapeConnectionPin * pin0_300278382_0 = new Avoid::ShapeConnectionPin(shape0_300278382, 1, 0.5, 0.9375, true, 10, 2);
+ pin0_300278382_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_300278382_1 = new Avoid::ShapeConnectionPin(shape0_300278382, 2, 0.5, 0, true, 10, 1);
+ pin0_300278382_1->setExclusive(true);
+ end1_0 = Avoid::ConnEnd(shape0_84988680, 2);
+ end2_0 = Avoid::ConnEnd(junction0_185122667);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 70922320);
+ end1_0 = Avoid::ConnEnd(junction0_185122667);
+ end2_0 = Avoid::ConnEnd(shape0_68611488, 2);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 141698060);
+ end1_0 = Avoid::ConnEnd(shape0_170757006, 1);
+ end2_0 = Avoid::ConnEnd(junction0_185122667);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 27983869);
+ end1_0 = Avoid::ConnEnd(shape0_300278382, 2);
+ end2_0 = Avoid::ConnEnd(junction0_185122667);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 197910572);
+ router0->processTransaction();
+ //printf("%d\n", junction0_185122667->attachedConnectors().size());
+ COLA_ASSERT(junction0_185122667->attachedConnectors().size() == 4);
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ outputDiagram(router0);
+ printf("\n\n\n");
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(51305, 50690));
+ poly0.setPoint(1, Avoid::Point(51305, 50850));
+ poly0.setPoint(2, Avoid::Point(51245, 50850));
+ poly0.setPoint(3, Avoid::Point(51245, 50690));
+ router0->moveShape(shape0_170757006, poly0);
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ junctionit_0 = newanddeletedobjects_0.newJunctionList.begin();
+ Avoid::JunctionRef * junction0_436653030 = *junctionit_0;
+ junction0_436653030->position();
+ //printf("%d %d\n", junction0_185122667->attachedConnectors().size(),
+ // junction0_436653030->attachedConnectors().size());
+ COLA_ASSERT(junction0_185122667->attachedConnectors().size() == 3);
+ COLA_ASSERT(junction0_436653030->attachedConnectors().size() == 3);
+
+ junction0_436653030->attachedConnectors();
+ junction0_436653030->setPositionFixed(true);
+ junctionit_0++;
+ COLA_ASSERT(junctionit_0 == newanddeletedobjects_0.newJunctionList.end());
+ connit_0 = newanddeletedobjects_0.newConnectorList.begin();
+ Avoid::ConnRef * conn0_400977693 = *connit_0;
+ conn0_400977693->endpointConnEnds();
+ connit_0++;
+ COLA_ASSERT(connit_0 == newanddeletedobjects_0.newConnectorList.end());
+ outputDiagram(router0);
+
+ conn0_400977693->makePathInvalid();
+ router0->processTransaction();
+
+ outputDiagram(router0);
+ return;
+/*
+ // INCORRECT
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ junctionit_0 = newanddeletedobjects_0.newJunctionList.begin();
+ Avoid::JunctionRef * junction0_112970070 = *junctionit_0;
+ junction0_112970070->position();
+ junction0_112970070->attachedConnectors();
+ junction0_112970070->setPositionFixed(true);
+ junctionit_0++;
+ COLA_ASSERT(junctionit_0 == newanddeletedobjects_0.newJunctionList.end());
+ connit_0 = newanddeletedobjects_0.newConnectorList.begin();
+ Avoid::ConnRef * conn0_152820633 = *connit_0;
+ conn0_152820633->endpointConnEnds();
+ connit_0++;
+ COLA_ASSERT(connit_0 == newanddeletedobjects_0.newConnectorList.end());
+ outputDiagram(router0);
+ */
+}
+
+extern "C" int main(void)
+{
+ test();
+ return 0;
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge06.cpp b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge06.cpp
new file mode 100644
index 0000000..3322b98
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/improveHyperedge06.cpp
@@ -0,0 +1,92 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 9000);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, true);
+ router->setRoutingOption(improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly39761567(4);
+ poly39761567.ps[0] = Point(50754, 50975);
+ poly39761567.ps[1] = Point(50754, 51060);
+ poly39761567.ps[2] = Point(50696, 51060);
+ poly39761567.ps[3] = Point(50696, 50975);
+ ShapeRef *shapeRef39761567 = new ShapeRef(router, poly39761567, 39761567);
+ new ShapeConnectionPin(shapeRef39761567, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly115776716(4);
+ poly115776716.ps[0] = Point(51504, 50975);
+ poly115776716.ps[1] = Point(51504, 51060);
+ poly115776716.ps[2] = Point(51446, 51060);
+ poly115776716.ps[3] = Point(51446, 50975);
+ ShapeRef *shapeRef115776716 = new ShapeRef(router, poly115776716, 115776716);
+ new ShapeConnectionPin(shapeRef115776716, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly238475293(4);
+ poly238475293.ps[0] = Point(50554, 50975);
+ poly238475293.ps[1] = Point(50554, 51060);
+ poly238475293.ps[2] = Point(50496, 51060);
+ poly238475293.ps[3] = Point(50496, 50975);
+ ShapeRef *shapeRef238475293 = new ShapeRef(router, poly238475293, 238475293);
+ new ShapeConnectionPin(shapeRef238475293, 1, 0.5, 0, true, 10, (ConnDirFlags) 1);
+
+ Polygon poly430971008(4);
+ poly430971008.ps[0] = Point(51004, 50465);
+ poly430971008.ps[1] = Point(51004, 50550);
+ poly430971008.ps[2] = Point(50946, 50550);
+ poly430971008.ps[3] = Point(50946, 50465);
+ ShapeRef *shapeRef430971008 = new ShapeRef(router, poly430971008, 430971008);
+ new ShapeConnectionPin(shapeRef430971008, 1, 0.5, 1, true, 10, (ConnDirFlags) 2);
+
+ JunctionRef *junctionRef513246008 = new JunctionRef(router, Point(50925, 50725), 513246008);
+ junctionRef513246008->setPositionFixed(true);
+
+ /*
+ // This may be useful if junction pins are modified.
+ new ShapeConnectionPin(junctionRef513246008, 2147483646, (ConnDirFlags) 15);
+ */
+
+ ConnRef *connRef513246009 = new ConnRef(router, 513246009);
+ ConnEnd srcPt513246009(shapeRef39761567, 1);
+ connRef513246009->setSourceEndpoint(srcPt513246009);
+ ConnEnd dstPt513246009(junctionRef513246008);
+ connRef513246009->setDestEndpoint(dstPt513246009);
+ connRef513246009->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246010 = new ConnRef(router, 513246010);
+ ConnEnd srcPt513246010(junctionRef513246008);
+ connRef513246010->setSourceEndpoint(srcPt513246010);
+ ConnEnd dstPt513246010(shapeRef430971008, 1);
+ connRef513246010->setDestEndpoint(dstPt513246010);
+ connRef513246010->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246011 = new ConnRef(router, 513246011);
+ ConnEnd srcPt513246011(junctionRef513246008);
+ connRef513246011->setSourceEndpoint(srcPt513246011);
+ ConnEnd dstPt513246011(shapeRef238475293, 1);
+ connRef513246011->setDestEndpoint(dstPt513246011);
+ connRef513246011->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513246012 = new ConnRef(router, 513246012);
+ ConnEnd srcPt513246012(shapeRef115776716, 1);
+ connRef513246012->setSourceEndpoint(srcPt513246012);
+ ConnEnd dstPt513246012(junctionRef513246008);
+ connRef513246012->setDestEndpoint(dstPt513246012);
+ connRef513246012->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/improveHyperedge06");
+
+ bool overlaps = router->existsOrthogonalSegmentOverlap(true);
+ delete router;
+ return (overlaps) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/infinity.cpp b/src/3rdparty/adaptagrams/libavoid/tests/infinity.cpp
new file mode 100644
index 0000000..1fbf683
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/infinity.cpp
@@ -0,0 +1,26 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty(segmentPenalty, 50);
+ router->setRoutingParameter(idealNudgingDistance, 10);
+ Rectangle rect47(Point(51145, 50195), Point(51145+360, 50195+685));
+ new ShapeRef(router, rect47);
+ Rectangle rect46(Point(51920, 49770), Point(51920+360, 49770+310));
+ new ShapeRef(router, rect46);
+ Rectangle rect45(Point(51151, 49770), Point(51151+360, 49770+310));
+ new ShapeRef(router, rect45);
+ ConnEnd srcPt53(Point(51150,49850), 4);
+ ConnEnd dstPt53(Point(51500,50350), 8);
+ new ConnRef(router, srcPt53, dstPt53);
+ ConnEnd srcPt52(Point(52275,49850), 8);
+ ConnEnd dstPt52(Point(51150,49925), 4);
+ new ConnRef(router, srcPt52, dstPt52);
+ ConnEnd srcPt6(Point(51150,50500), 4);
+ ConnEnd dstPt6(Point(51925,50000), 4);
+ new ConnRef(router, srcPt6, dstPt6, 6);
+ router->processTransaction();
+ router->outputDiagram("output/infinity");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inline.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inline.cpp
new file mode 100644
index 0000000..ee10ce9
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inline.cpp
@@ -0,0 +1,73 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2007 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+using Avoid::ConnDirUp;
+using Avoid::ConnDirDown;
+using Avoid::ConnDirLeft;
+using Avoid::ConnDirRight;
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting);
+
+ // Create the ShapeRef:
+ Avoid::Rectangle shapePoly(Avoid::Point(0, 0), Avoid::Point(100, 100));
+ new Avoid::ShapeRef(router, shapePoly);
+
+ Avoid::ConnEnd srcPt(Avoid::Point(200, 200));
+
+ Avoid::ConnEnd dstPt(Avoid::Point(95, 25),
+ ConnDirUp | ConnDirRight | ConnDirDown);
+ new Avoid::ConnRef(router, srcPt, dstPt);
+
+ dstPt = Avoid::ConnEnd(Avoid::Point(95, 75),
+ ConnDirUp | ConnDirRight | ConnDirDown);
+ new Avoid::ConnRef(router, srcPt, dstPt);
+
+ // Up goes towards negative coordinates.
+ dstPt = Avoid::ConnEnd(Avoid::Point(25, 5),
+ ConnDirLeft | ConnDirRight | ConnDirUp);
+ new Avoid::ConnRef(router, srcPt, dstPt);
+
+ dstPt = Avoid::ConnEnd(Avoid::Point(75, 5),
+ ConnDirLeft | ConnDirRight | ConnDirUp);
+ new Avoid::ConnRef(router, srcPt, dstPt);
+
+ dstPt = Avoid::ConnEnd(Avoid::Point(25, 95),
+ ConnDirLeft | ConnDirRight | ConnDirDown);
+ new Avoid::ConnRef(router, srcPt, dstPt);
+
+ dstPt = Avoid::ConnEnd(Avoid::Point(75, 95),
+ ConnDirLeft | ConnDirRight | ConnDirDown);
+ new Avoid::ConnRef(router, srcPt, dstPt);
+
+ router->processTransaction();
+ router->outputDiagram("output/inline");
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap09.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap09.cpp
new file mode 100644
index 0000000..1ab9c6d
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap09.cpp
@@ -0,0 +1,401 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 10);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 100);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 1000);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 20);
+ router->setRoutingParameter((RoutingParameter)7, 40);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ Polygon poly1(4);
+ poly1.ps[0] = Point(3.43711e+006, 6.73107e+006);
+ poly1.ps[1] = Point(3.43711e+006, 6.73108e+006);
+ poly1.ps[2] = Point(3.4371e+006, 6.73108e+006);
+ poly1.ps[3] = Point(3.4371e+006, 6.73107e+006);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(3.43536e+006, 6.73107e+006);
+ poly2.ps[1] = Point(3.43536e+006, 6.73108e+006);
+ poly2.ps[2] = Point(3.43535e+006, 6.73108e+006);
+ poly2.ps[3] = Point(3.43535e+006, 6.73107e+006);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(3.43786e+006, 6.73107e+006);
+ poly3.ps[1] = Point(3.43786e+006, 6.73108e+006);
+ poly3.ps[2] = Point(3.43785e+006, 6.73108e+006);
+ poly3.ps[3] = Point(3.43785e+006, 6.73107e+006);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(3.43736e+006, 6.73107e+006);
+ poly4.ps[1] = Point(3.43736e+006, 6.73108e+006);
+ poly4.ps[2] = Point(3.43735e+006, 6.73108e+006);
+ poly4.ps[3] = Point(3.43735e+006, 6.73107e+006);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(3.4349e+006, 6.73107e+006);
+ poly5.ps[1] = Point(3.4349e+006, 6.73108e+006);
+ poly5.ps[2] = Point(3.43489e+006, 6.73108e+006);
+ poly5.ps[3] = Point(3.43489e+006, 6.73107e+006);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(3.43573e+006, 6.73052e+006);
+ poly6.ps[1] = Point(3.43573e+006, 6.73053e+006);
+ poly6.ps[2] = Point(3.43572e+006, 6.73053e+006);
+ poly6.ps[3] = Point(3.43572e+006, 6.73052e+006);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(3.43636e+006, 6.73107e+006);
+ poly7.ps[1] = Point(3.43636e+006, 6.73108e+006);
+ poly7.ps[2] = Point(3.43635e+006, 6.73108e+006);
+ poly7.ps[3] = Point(3.43635e+006, 6.73107e+006);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(3.43769e+006, 6.73107e+006);
+ poly8.ps[1] = Point(3.43769e+006, 6.73108e+006);
+ poly8.ps[2] = Point(3.43768e+006, 6.73108e+006);
+ poly8.ps[3] = Point(3.43768e+006, 6.73107e+006);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(3.43761e+006, 6.73107e+006);
+ poly9.ps[1] = Point(3.43761e+006, 6.73108e+006);
+ poly9.ps[2] = Point(3.4376e+006, 6.73108e+006);
+ poly9.ps[3] = Point(3.4376e+006, 6.73107e+006);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(3.43661e+006, 6.73107e+006);
+ poly10.ps[1] = Point(3.43661e+006, 6.73108e+006);
+ poly10.ps[2] = Point(3.4366e+006, 6.73108e+006);
+ poly10.ps[3] = Point(3.4366e+006, 6.73107e+006);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(3.4369e+006, 6.73107e+006);
+ poly11.ps[1] = Point(3.4369e+006, 6.73108e+006);
+ poly11.ps[2] = Point(3.43689e+006, 6.73108e+006);
+ poly11.ps[3] = Point(3.43689e+006, 6.73107e+006);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(3.43619e+006, 6.73107e+006);
+ poly12.ps[1] = Point(3.43619e+006, 6.73108e+006);
+ poly12.ps[2] = Point(3.43618e+006, 6.73108e+006);
+ poly12.ps[3] = Point(3.43618e+006, 6.73107e+006);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(3.43611e+006, 6.73107e+006);
+ poly13.ps[1] = Point(3.43611e+006, 6.73108e+006);
+ poly13.ps[2] = Point(3.4361e+006, 6.73108e+006);
+ poly13.ps[3] = Point(3.4361e+006, 6.73107e+006);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(3.43461e+006, 6.73107e+006);
+ poly14.ps[1] = Point(3.43461e+006, 6.73108e+006);
+ poly14.ps[2] = Point(3.4346e+006, 6.73108e+006);
+ poly14.ps[3] = Point(3.4346e+006, 6.73107e+006);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(3.43476e+006, 6.73128e+006);
+ poly15.ps[1] = Point(3.43476e+006, 6.73148e+006);
+ poly15.ps[2] = Point(3.43456e+006, 6.73148e+006);
+ poly15.ps[3] = Point(3.43456e+006, 6.73128e+006);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(3.43476e+006, 6.73013e+006);
+ poly16.ps[1] = Point(3.43476e+006, 6.73033e+006);
+ poly16.ps[2] = Point(3.43456e+006, 6.73033e+006);
+ poly16.ps[3] = Point(3.43456e+006, 6.73013e+006);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(3.43501e+006, 6.73013e+006);
+ poly17.ps[1] = Point(3.43501e+006, 6.73033e+006);
+ poly17.ps[2] = Point(3.43481e+006, 6.73033e+006);
+ poly17.ps[3] = Point(3.43481e+006, 6.73013e+006);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(3.43526e+006, 6.73013e+006);
+ poly18.ps[1] = Point(3.43526e+006, 6.73033e+006);
+ poly18.ps[2] = Point(3.43506e+006, 6.73033e+006);
+ poly18.ps[3] = Point(3.43506e+006, 6.73013e+006);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(3.43551e+006, 6.73013e+006);
+ poly19.ps[1] = Point(3.43551e+006, 6.73033e+006);
+ poly19.ps[2] = Point(3.43531e+006, 6.73033e+006);
+ poly19.ps[3] = Point(3.43531e+006, 6.73013e+006);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(3.43501e+006, 6.73128e+006);
+ poly20.ps[1] = Point(3.43501e+006, 6.73148e+006);
+ poly20.ps[2] = Point(3.43481e+006, 6.73148e+006);
+ poly20.ps[3] = Point(3.43481e+006, 6.73128e+006);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(3.43526e+006, 6.73128e+006);
+ poly21.ps[1] = Point(3.43526e+006, 6.73148e+006);
+ poly21.ps[2] = Point(3.43506e+006, 6.73148e+006);
+ poly21.ps[3] = Point(3.43506e+006, 6.73128e+006);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(3.43551e+006, 6.73128e+006);
+ poly22.ps[1] = Point(3.43551e+006, 6.73148e+006);
+ poly22.ps[2] = Point(3.43531e+006, 6.73148e+006);
+ poly22.ps[3] = Point(3.43531e+006, 6.73128e+006);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(3.43576e+006, 6.73128e+006);
+ poly23.ps[1] = Point(3.43576e+006, 6.73148e+006);
+ poly23.ps[2] = Point(3.43556e+006, 6.73148e+006);
+ poly23.ps[3] = Point(3.43556e+006, 6.73128e+006);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(3.43601e+006, 6.73128e+006);
+ poly24.ps[1] = Point(3.43601e+006, 6.73148e+006);
+ poly24.ps[2] = Point(3.43581e+006, 6.73148e+006);
+ poly24.ps[3] = Point(3.43581e+006, 6.73128e+006);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(3.43626e+006, 6.73128e+006);
+ poly25.ps[1] = Point(3.43626e+006, 6.73148e+006);
+ poly25.ps[2] = Point(3.43606e+006, 6.73148e+006);
+ poly25.ps[3] = Point(3.43606e+006, 6.73128e+006);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(3.43651e+006, 6.73128e+006);
+ poly26.ps[1] = Point(3.43651e+006, 6.73148e+006);
+ poly26.ps[2] = Point(3.43631e+006, 6.73148e+006);
+ poly26.ps[3] = Point(3.43631e+006, 6.73128e+006);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(3.43676e+006, 6.73128e+006);
+ poly27.ps[1] = Point(3.43676e+006, 6.73148e+006);
+ poly27.ps[2] = Point(3.43656e+006, 6.73148e+006);
+ poly27.ps[3] = Point(3.43656e+006, 6.73128e+006);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(3.43701e+006, 6.73128e+006);
+ poly28.ps[1] = Point(3.43701e+006, 6.73148e+006);
+ poly28.ps[2] = Point(3.43681e+006, 6.73148e+006);
+ poly28.ps[3] = Point(3.43681e+006, 6.73128e+006);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(3.43726e+006, 6.73128e+006);
+ poly29.ps[1] = Point(3.43726e+006, 6.73148e+006);
+ poly29.ps[2] = Point(3.43706e+006, 6.73148e+006);
+ poly29.ps[3] = Point(3.43706e+006, 6.73128e+006);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(3.43751e+006, 6.73128e+006);
+ poly30.ps[1] = Point(3.43751e+006, 6.73148e+006);
+ poly30.ps[2] = Point(3.43731e+006, 6.73148e+006);
+ poly30.ps[3] = Point(3.43731e+006, 6.73128e+006);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(3.43776e+006, 6.73128e+006);
+ poly31.ps[1] = Point(3.43776e+006, 6.73148e+006);
+ poly31.ps[2] = Point(3.43756e+006, 6.73148e+006);
+ poly31.ps[3] = Point(3.43756e+006, 6.73128e+006);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(3.43576e+006, 6.73013e+006);
+ poly32.ps[1] = Point(3.43576e+006, 6.73033e+006);
+ poly32.ps[2] = Point(3.43556e+006, 6.73033e+006);
+ poly32.ps[3] = Point(3.43556e+006, 6.73013e+006);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(3.43801e+006, 6.73128e+006);
+ poly33.ps[1] = Point(3.43801e+006, 6.73148e+006);
+ poly33.ps[2] = Point(3.43781e+006, 6.73148e+006);
+ poly33.ps[3] = Point(3.43781e+006, 6.73128e+006);
+ new ShapeRef(router, poly33, 33);
+
+ ConnRef *connRef34 = new ConnRef(router, 34);
+ ConnEnd srcPt34(Point(3.4351e+006, 6.73033e+006), 2);
+ connRef34->setSourceEndpoint(srcPt34);
+ ConnEnd dstPt34(Point(3.4356e+006, 6.73128e+006), 1);
+ connRef34->setDestEndpoint(dstPt34);
+ connRef34->setRoutingType((ConnType)2);
+
+ ConnRef *connRef35 = new ConnRef(router, 35);
+ ConnEnd srcPt35(Point(3.43485e+006, 6.73033e+006), 2);
+ connRef35->setSourceEndpoint(srcPt35);
+ ConnEnd dstPt35(Point(3.4351e+006, 6.73128e+006), 1);
+ connRef35->setDestEndpoint(dstPt35);
+ connRef35->setRoutingType((ConnType)2);
+
+ ConnRef *connRef36 = new ConnRef(router, 36);
+ ConnEnd srcPt36(Point(3.4346e+006, 6.73033e+006), 2);
+ connRef36->setSourceEndpoint(srcPt36);
+ ConnEnd dstPt36(Point(3.43485e+006, 6.73128e+006), 1);
+ connRef36->setDestEndpoint(dstPt36);
+ connRef36->setRoutingType((ConnType)2);
+
+ ConnRef *connRef37 = new ConnRef(router, 37);
+ ConnEnd srcPt37(Point(3.4356e+006, 6.73033e+006), 2);
+ connRef37->setSourceEndpoint(srcPt37);
+ ConnEnd dstPt37(Point(3.43685e+006, 6.73128e+006), 1);
+ connRef37->setDestEndpoint(dstPt37);
+ connRef37->setRoutingType((ConnType)2);
+
+ ConnRef *connRef38 = new ConnRef(router, 38);
+ ConnEnd srcPt38(Point(3.43564e+006, 6.73033e+006), 2);
+ connRef38->setSourceEndpoint(srcPt38);
+ ConnEnd dstPt38(Point(3.43764e+006, 6.73128e+006), 1);
+ connRef38->setDestEndpoint(dstPt38);
+ connRef38->setRoutingType((ConnType)2);
+
+ ConnRef *connRef39 = new ConnRef(router, 39);
+ ConnEnd srcPt39(Point(3.43568e+006, 6.73033e+006), 2);
+ connRef39->setSourceEndpoint(srcPt39);
+ ConnEnd dstPt39(Point(3.43614e+006, 6.73128e+006), 1);
+ connRef39->setDestEndpoint(dstPt39);
+ connRef39->setRoutingType((ConnType)2);
+
+ ConnRef *connRef40 = new ConnRef(router, 40);
+ ConnEnd srcPt40(Point(3.43572e+006, 6.73033e+006), 2);
+ connRef40->setSourceEndpoint(srcPt40);
+ ConnEnd dstPt40(Point(3.43572e+006, 6.73052e+006), 1);
+ connRef40->setDestEndpoint(dstPt40);
+ connRef40->setRoutingType((ConnType)2);
+
+ ConnRef *connRef41 = new ConnRef(router, 41);
+ ConnEnd srcPt41(Point(3.43535e+006, 6.73033e+006), 2);
+ connRef41->setSourceEndpoint(srcPt41);
+ ConnEnd dstPt41(Point(3.43585e+006, 6.73128e+006), 1);
+ connRef41->setDestEndpoint(dstPt41);
+ connRef41->setRoutingType((ConnType)2);
+
+ ConnRef *connRef42 = new ConnRef(router, 42);
+ ConnEnd srcPt42(Point(3.43535e+006, 6.73128e+006), 1);
+ connRef42->setSourceEndpoint(srcPt42);
+ ConnEnd dstPt42(Point(3.43535e+006, 6.73108e+006), 2);
+ connRef42->setDestEndpoint(dstPt42);
+ connRef42->setRoutingType((ConnType)2);
+
+ ConnRef *connRef43 = new ConnRef(router, 43);
+ ConnEnd srcPt43(Point(3.4366e+006, 6.73128e+006), 1);
+ connRef43->setSourceEndpoint(srcPt43);
+ ConnEnd dstPt43(Point(3.4366e+006, 6.73108e+006), 2);
+ connRef43->setDestEndpoint(dstPt43);
+ connRef43->setRoutingType((ConnType)2);
+
+ ConnRef *connRef44 = new ConnRef(router, 44);
+ ConnEnd srcPt44(Point(3.43489e+006, 6.73128e+006), 1);
+ connRef44->setSourceEndpoint(srcPt44);
+ ConnEnd dstPt44(Point(3.43489e+006, 6.73108e+006), 2);
+ connRef44->setDestEndpoint(dstPt44);
+ connRef44->setRoutingType((ConnType)2);
+
+ ConnRef *connRef45 = new ConnRef(router, 45);
+ ConnEnd srcPt45(Point(3.43689e+006, 6.73128e+006), 1);
+ connRef45->setSourceEndpoint(srcPt45);
+ ConnEnd dstPt45(Point(3.43689e+006, 6.73108e+006), 2);
+ connRef45->setDestEndpoint(dstPt45);
+ connRef45->setRoutingType((ConnType)2);
+
+ ConnRef *connRef46 = new ConnRef(router, 46);
+ ConnEnd srcPt46(Point(3.4361e+006, 6.73128e+006), 1);
+ connRef46->setSourceEndpoint(srcPt46);
+ ConnEnd dstPt46(Point(3.4361e+006, 6.73108e+006), 2);
+ connRef46->setDestEndpoint(dstPt46);
+ connRef46->setRoutingType((ConnType)2);
+
+ ConnRef *connRef47 = new ConnRef(router, 47);
+ ConnEnd srcPt47(Point(3.43618e+006, 6.73128e+006), 1);
+ connRef47->setSourceEndpoint(srcPt47);
+ ConnEnd dstPt47(Point(3.43618e+006, 6.73108e+006), 2);
+ connRef47->setDestEndpoint(dstPt47);
+ connRef47->setRoutingType((ConnType)2);
+
+ ConnRef *connRef48 = new ConnRef(router, 48);
+ ConnEnd srcPt48(Point(3.4371e+006, 6.73128e+006), 1);
+ connRef48->setSourceEndpoint(srcPt48);
+ ConnEnd dstPt48(Point(3.4371e+006, 6.73108e+006), 2);
+ connRef48->setDestEndpoint(dstPt48);
+ connRef48->setRoutingType((ConnType)2);
+
+ ConnRef *connRef49 = new ConnRef(router, 49);
+ ConnEnd srcPt49(Point(3.43735e+006, 6.73128e+006), 1);
+ connRef49->setSourceEndpoint(srcPt49);
+ ConnEnd dstPt49(Point(3.43735e+006, 6.73108e+006), 2);
+ connRef49->setDestEndpoint(dstPt49);
+ connRef49->setRoutingType((ConnType)2);
+
+ ConnRef *connRef50 = new ConnRef(router, 50);
+ ConnEnd srcPt50(Point(3.4376e+006, 6.73128e+006), 1);
+ connRef50->setSourceEndpoint(srcPt50);
+ ConnEnd dstPt50(Point(3.4376e+006, 6.73108e+006), 2);
+ connRef50->setDestEndpoint(dstPt50);
+ connRef50->setRoutingType((ConnType)2);
+
+ ConnRef *connRef51 = new ConnRef(router, 51);
+ ConnEnd srcPt51(Point(3.43768e+006, 6.73128e+006), 1);
+ connRef51->setSourceEndpoint(srcPt51);
+ ConnEnd dstPt51(Point(3.43768e+006, 6.73108e+006), 2);
+ connRef51->setDestEndpoint(dstPt51);
+ connRef51->setRoutingType((ConnType)2);
+
+ ConnRef *connRef52 = new ConnRef(router, 52);
+ ConnEnd srcPt52(Point(3.4346e+006, 6.73128e+006), 1);
+ connRef52->setSourceEndpoint(srcPt52);
+ ConnEnd dstPt52(Point(3.4346e+006, 6.73108e+006), 2);
+ connRef52->setDestEndpoint(dstPt52);
+ connRef52->setRoutingType((ConnType)2);
+
+ ConnRef *connRef53 = new ConnRef(router, 53);
+ ConnEnd srcPt53(Point(3.43635e+006, 6.73128e+006), 1);
+ connRef53->setSourceEndpoint(srcPt53);
+ ConnEnd dstPt53(Point(3.43635e+006, 6.73108e+006), 2);
+ connRef53->setDestEndpoint(dstPt53);
+ connRef53->setRoutingType((ConnType)2);
+
+ ConnRef *connRef54 = new ConnRef(router, 54);
+ ConnEnd srcPt54(Point(3.43785e+006, 6.73128e+006), 1);
+ connRef54->setSourceEndpoint(srcPt54);
+ ConnEnd dstPt54(Point(3.43785e+006, 6.73108e+006), 2);
+ connRef54->setDestEndpoint(dstPt54);
+ connRef54->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineOverlap09");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap10.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap10.cpp
new file mode 100644
index 0000000..648eed5
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap10.cpp
@@ -0,0 +1,93 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 200);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 20000);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 25);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, true);
+ router->setRoutingOption((RoutingOption)3, false);
+ router->setRoutingOption((RoutingOption)4, true);
+ router->setRoutingOption((RoutingOption)5, true);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ PolyLine newRoute;
+ // shapeRef320077872
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(51000, 50740);
+ polygon.ps[1] = Point(51000, 51135);
+ polygon.ps[2] = Point(50650, 51135);
+ polygon.ps[3] = Point(50650, 50740);
+ ShapeRef *shapeRef320077872 = new ShapeRef(router, polygon, 320077872);
+ new ShapeConnectionPin(shapeRef320077872, 1, 0, 0.21519, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef320077872, 2, 1, 0.21519, true, 10, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef320077872, 3, 0.0714286, 0.405063, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef320077872, 4, 1, 0.405063, true, 10, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef320077872, 5, 0.0714286, 0.594937, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef320077872, 6, 1, 0.594937, true, 10, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef320077872, 7, 0, 0.78481, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef320077872, 8, 1, 0.78481, true, 10, (ConnDirFlags) 8);
+
+ // shapeRef346216920
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(51650, 50740);
+ polygon.ps[1] = Point(51650, 51135);
+ polygon.ps[2] = Point(51300, 51135);
+ polygon.ps[3] = Point(51300, 50740);
+ ShapeRef *shapeRef346216920 = new ShapeRef(router, polygon, 346216920);
+ new ShapeConnectionPin(shapeRef346216920, 1, 0, 0.21519, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef346216920, 2, 1, 0.21519, true, 10, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef346216920, 3, 0, 0.405063, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef346216920, 4, 0.928571, 0.405063, true, 10, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef346216920, 5, 0, 0.594937, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef346216920, 6, 0.928571, 0.594937, true, 10, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef346216920, 7, 0, 0.78481, true, 10, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef346216920, 8, 1, 0.78481, true, 10, (ConnDirFlags) 8);
+
+ // connRef13958908
+ connRef = new ConnRef(router, 13958908);
+ srcPt = ConnEnd(shapeRef346216920, 3);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef320077872, 6);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef81482716
+ connRef = new ConnRef(router, 81482716);
+ srcPt = ConnEnd(shapeRef320077872, 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef346216920, 7);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef180721992
+ connRef = new ConnRef(router, 180721992);
+ srcPt = ConnEnd(shapeRef320077872, 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef346216920, 5);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef273666240
+ connRef = new ConnRef(router, 273666240);
+ srcPt = ConnEnd(shapeRef320077872, 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef346216920, 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap10");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap11.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap11.cpp
new file mode 100644
index 0000000..46cdd87
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineOverlap11.cpp
@@ -0,0 +1,187 @@
+// From endpointOverlap.cpp
+#include "libavoid/libavoid.h"
+#include <sstream>
+
+extern "C" int main(void)
+{
+ // The contents of this function can be replaced by the automatically generated test code from the debug svg file
+ Avoid::ConnEnd end1_0;
+ Avoid::ConnEnd end2_0;
+ Avoid::Polygon poly0;
+ Avoid::Router * router0 = new Avoid::Router(Avoid::OrthogonalRouting);
+ Avoid::HyperedgeNewAndDeletedObjectLists newanddeletedobjects_0;
+ Avoid::ConnRefList::const_iterator connit_0;
+ Avoid::JunctionRefList::const_iterator junctionit_0;
+ router0->setTransactionUse(true);
+ router0->setRoutingPenalty(Avoid::segmentPenalty);
+ router0->setRoutingParameter(Avoid::portDirectionPenalty, 100);
+ router0->setRoutingParameter(Avoid::idealNudgingDistance, 25);
+ router0->setRoutingOption(Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::crossingPenalty);
+ router0->setRoutingOption(Avoid::performUnifyingNudgingPreprocessingStep, true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(50410, 50115));
+ poly0.setPoint(1, Avoid::Point(50410, 51860));
+ poly0.setPoint(2, Avoid::Point(50050, 51860));
+ poly0.setPoint(3, Avoid::Point(50050, 50115));
+ Avoid::ShapeRef * shape0_288069558 = new Avoid::ShapeRef(router0, poly0, 288069558);
+ Avoid::ShapeConnectionPin * pin0_288069558_0 = new Avoid::ShapeConnectionPin(shape0_288069558, 1, 0, 85, false, 10, 4);
+ pin0_288069558_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_1 = new Avoid::ShapeConnectionPin(shape0_288069558, 2, 0, 160, false, 10, 4);
+ pin0_288069558_1->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_2 = new Avoid::ShapeConnectionPin(shape0_288069558, 3, 0, 235, false, 10, 4);
+ pin0_288069558_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_3 = new Avoid::ShapeConnectionPin(shape0_288069558, 4, 0, 310, false, 10, 4);
+ pin0_288069558_3->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_4 = new Avoid::ShapeConnectionPin(shape0_288069558, 5, 0, 385, false, 10, 4);
+ pin0_288069558_4->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_5 = new Avoid::ShapeConnectionPin(shape0_288069558, 6, 0, 460, false, 10, 4);
+ pin0_288069558_5->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_6 = new Avoid::ShapeConnectionPin(shape0_288069558, 7, 0, 535, false, 10, 4);
+ pin0_288069558_6->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_7 = new Avoid::ShapeConnectionPin(shape0_288069558, 8, 0, 610, false, 10, 4);
+ pin0_288069558_7->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_8 = new Avoid::ShapeConnectionPin(shape0_288069558, 9, 0, 685, false, 10, 4);
+ pin0_288069558_8->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_9 = new Avoid::ShapeConnectionPin(shape0_288069558, 10, 0, 760, false, 10, 4);
+ pin0_288069558_9->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_10 = new Avoid::ShapeConnectionPin(shape0_288069558, 11, 0, 835, false, 10, 4);
+ pin0_288069558_10->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_11 = new Avoid::ShapeConnectionPin(shape0_288069558, 12, 0, 910, false, 10, 4);
+ pin0_288069558_11->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_12 = new Avoid::ShapeConnectionPin(shape0_288069558, 13, 0, 985, false, 10, 4);
+ pin0_288069558_12->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_13 = new Avoid::ShapeConnectionPin(shape0_288069558, 14, 0, 1060, false, 10, 4);
+ pin0_288069558_13->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_14 = new Avoid::ShapeConnectionPin(shape0_288069558, 15, 0, 1135, false, 10, 4);
+ pin0_288069558_14->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_15 = new Avoid::ShapeConnectionPin(shape0_288069558, 16, 0, 1210, false, 10, 4);
+ pin0_288069558_15->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_16 = new Avoid::ShapeConnectionPin(shape0_288069558, 17, 0, 1285, false, 10, 4);
+ pin0_288069558_16->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_17 = new Avoid::ShapeConnectionPin(shape0_288069558, 18, 0, 1360, false, 10, 4);
+ pin0_288069558_17->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_18 = new Avoid::ShapeConnectionPin(shape0_288069558, 19, 0, 1435, false, 10, 4);
+ pin0_288069558_18->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_19 = new Avoid::ShapeConnectionPin(shape0_288069558, 20, 0, 1510, false, 10, 4);
+ pin0_288069558_19->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_20 = new Avoid::ShapeConnectionPin(shape0_288069558, 21, 0, 1585, false, 10, 4);
+ pin0_288069558_20->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_21 = new Avoid::ShapeConnectionPin(shape0_288069558, 22, 0, 1660, false, 10, 4);
+ pin0_288069558_21->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_22 = new Avoid::ShapeConnectionPin(shape0_288069558, 23, 350, 85, false, 10, 8);
+ pin0_288069558_22->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_23 = new Avoid::ShapeConnectionPin(shape0_288069558, 24, 350, 160, false, 10, 8);
+ pin0_288069558_23->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_24 = new Avoid::ShapeConnectionPin(shape0_288069558, 25, 350, 235, false, 10, 8);
+ pin0_288069558_24->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_25 = new Avoid::ShapeConnectionPin(shape0_288069558, 26, 350, 310, false, 10, 8);
+ pin0_288069558_25->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_26 = new Avoid::ShapeConnectionPin(shape0_288069558, 27, 350, 385, false, 10, 8);
+ pin0_288069558_26->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_27 = new Avoid::ShapeConnectionPin(shape0_288069558, 28, 350, 460, false, 10, 8);
+ pin0_288069558_27->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_28 = new Avoid::ShapeConnectionPin(shape0_288069558, 29, 350, 535, false, 10, 8);
+ pin0_288069558_28->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_29 = new Avoid::ShapeConnectionPin(shape0_288069558, 30, 350, 610, false, 10, 8);
+ pin0_288069558_29->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_30 = new Avoid::ShapeConnectionPin(shape0_288069558, 31, 350, 685, false, 10, 8);
+ pin0_288069558_30->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_31 = new Avoid::ShapeConnectionPin(shape0_288069558, 32, 350, 760, false, 10, 8);
+ pin0_288069558_31->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_32 = new Avoid::ShapeConnectionPin(shape0_288069558, 33, 350, 835, false, 10, 8);
+ pin0_288069558_32->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_33 = new Avoid::ShapeConnectionPin(shape0_288069558, 34, 350, 910, false, 10, 8);
+ pin0_288069558_33->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_34 = new Avoid::ShapeConnectionPin(shape0_288069558, 35, 350, 985, false, 10, 8);
+ pin0_288069558_34->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_35 = new Avoid::ShapeConnectionPin(shape0_288069558, 36, 350, 1060, false, 10, 8);
+ pin0_288069558_35->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_36 = new Avoid::ShapeConnectionPin(shape0_288069558, 37, 350, 1135, false, 10, 8);
+ pin0_288069558_36->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_37 = new Avoid::ShapeConnectionPin(shape0_288069558, 38, 350, 1210, false, 10, 8);
+ pin0_288069558_37->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_38 = new Avoid::ShapeConnectionPin(shape0_288069558, 39, 350, 1285, false, 10, 8);
+ pin0_288069558_38->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_39 = new Avoid::ShapeConnectionPin(shape0_288069558, 40, 350, 1360, false, 10, 8);
+ pin0_288069558_39->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_40 = new Avoid::ShapeConnectionPin(shape0_288069558, 41, 350, 1435, false, 10, 8);
+ pin0_288069558_40->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_41 = new Avoid::ShapeConnectionPin(shape0_288069558, 42, 350, 1510, false, 10, 8);
+ pin0_288069558_41->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_288069558_42 = new Avoid::ShapeConnectionPin(shape0_288069558, 43, 350, 1585, false, 10, 8);
+ pin0_288069558_42->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49500, 50920));
+ poly0.setPoint(1, Avoid::Point(49500, 50980));
+ poly0.setPoint(2, Avoid::Point(49340, 50980));
+ poly0.setPoint(3, Avoid::Point(49340, 50920));
+ Avoid::ShapeRef * shape0_59726400 = new Avoid::ShapeRef(router0, poly0, 59726400);
+ Avoid::ShapeConnectionPin * pin0_59726400_0 = new Avoid::ShapeConnectionPin(shape0_59726400, 1, 10, 30, false, 10, 4);
+ pin0_59726400_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_59726400_1 = new Avoid::ShapeConnectionPin(shape0_59726400, 2, -1, 30, false, 10, 8);
+ pin0_59726400_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49500, 50845));
+ poly0.setPoint(1, Avoid::Point(49500, 50905));
+ poly0.setPoint(2, Avoid::Point(49340, 50905));
+ poly0.setPoint(3, Avoid::Point(49340, 50845));
+ Avoid::ShapeRef * shape0_574489840 = new Avoid::ShapeRef(router0, poly0, 574489840);
+ Avoid::ShapeConnectionPin * pin0_574489840_0 = new Avoid::ShapeConnectionPin(shape0_574489840, 1, 10, 30, false, 10, 4);
+ pin0_574489840_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_574489840_1 = new Avoid::ShapeConnectionPin(shape0_574489840, 2, -1, 30, false, 10, 8);
+ pin0_574489840_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49500, 50695));
+ poly0.setPoint(1, Avoid::Point(49500, 50755));
+ poly0.setPoint(2, Avoid::Point(49340, 50755));
+ poly0.setPoint(3, Avoid::Point(49340, 50695));
+ Avoid::ShapeRef * shape0_482418284 = new Avoid::ShapeRef(router0, poly0, 482418284);
+ Avoid::ShapeConnectionPin * pin0_482418284_0 = new Avoid::ShapeConnectionPin(shape0_482418284, 1, 10, 30, false, 10, 4);
+ pin0_482418284_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_482418284_1 = new Avoid::ShapeConnectionPin(shape0_482418284, 2, -1, 30, false, 10, 8);
+ pin0_482418284_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49500, 50770));
+ poly0.setPoint(1, Avoid::Point(49500, 50830));
+ poly0.setPoint(2, Avoid::Point(49340, 50830));
+ poly0.setPoint(3, Avoid::Point(49340, 50770));
+ Avoid::ShapeRef * shape0_100128936 = new Avoid::ShapeRef(router0, poly0, 100128936);
+ Avoid::ShapeConnectionPin * pin0_100128936_0 = new Avoid::ShapeConnectionPin(shape0_100128936, 1, 10, 30, false, 10, 4);
+ pin0_100128936_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_100128936_1 = new Avoid::ShapeConnectionPin(shape0_100128936, 2, -1, 30, false, 10, 8);
+ pin0_100128936_1->setExclusive(true);
+ end1_0 = Avoid::ConnEnd(shape0_100128936, 2);
+ end2_0 = Avoid::ConnEnd(shape0_288069558, 12);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 105958336);
+ end1_0 = Avoid::ConnEnd(shape0_574489840, 2);
+ end2_0 = Avoid::ConnEnd(shape0_288069558, 13);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 377294085);
+ end1_0 = Avoid::ConnEnd(shape0_59726400, 2);
+ end2_0 = Avoid::ConnEnd(shape0_288069558, 14);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 870686312);
+ router0->processTransaction();
+
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49518, 50707));
+ poly0.setPoint(1, Avoid::Point(49518, 50743));
+ poly0.setPoint(2, Avoid::Point(49482, 50743));
+ poly0.setPoint(3, Avoid::Point(49482, 50707));
+ Avoid::ShapeRef * shape0_91346832 = new Avoid::ShapeRef(router0, poly0, 91346832);
+ Avoid::ShapeConnectionPin * pin0_91346832_0 = new Avoid::ShapeConnectionPin(shape0_91346832, 2147483646, 18, 18, false, 0, 15);
+ pin0_91346832_0->setExclusive(false);
+ end1_0 = Avoid::ConnEnd(shape0_91346832, Avoid::CONNECTIONPIN_CENTRE);
+ end2_0 = Avoid::ConnEnd(shape0_288069558, 11);
+ new Avoid::ConnRef(router0, end1_0, end2_0, 214417907);
+ router0->processTransaction();
+
+ router0->outputDiagram("output/inlineOverlap11");
+
+ bool optimisedForConnectorType = false;
+ int crossings = router0->existsCrossings(optimisedForConnectorType);
+ delete router0;
+ return (crossings > 0) ? 1 : 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineShapes.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineShapes.cpp
new file mode 100644
index 0000000..510c91c
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineShapes.cpp
@@ -0,0 +1,97 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(52, 188);
+ poly1.ps[1] = Point(52, 292);
+ poly1.ps[2] = Point(-52, 292);
+ poly1.ps[3] = Point(-52, 188);
+ ShapeRef *shapeRef1 = new ShapeRef(router, poly1, 1);
+ new ShapeConnectionPin(shapeRef1, 544, 0.5, 0.5, true, 10, (ConnDirFlags) 0);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(52, -52);
+ poly2.ps[1] = Point(52, 52);
+ poly2.ps[2] = Point(-52, 52);
+ poly2.ps[3] = Point(-52, -52);
+ ShapeRef *shapeRef2 = new ShapeRef(router, poly2, 2);
+ new ShapeConnectionPin(shapeRef2, 544, 0.5, 0.5, true, 10, (ConnDirFlags) 0);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(52, 428);
+ poly3.ps[1] = Point(52, 532);
+ poly3.ps[2] = Point(-52, 532);
+ poly3.ps[3] = Point(-52, 428);
+ ShapeRef *shapeRef3 = new ShapeRef(router, poly3, 3);
+ new ShapeConnectionPin(shapeRef3, 544, 0.5, 0.5, true, 10, (ConnDirFlags) 0);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(52, 68);
+ poly4.ps[1] = Point(52, 172);
+ poly4.ps[2] = Point(-52, 172);
+ poly4.ps[3] = Point(-52, 68);
+ ShapeRef *shapeRef4 = new ShapeRef(router, poly4, 4);
+ new ShapeConnectionPin(shapeRef4, 544, 0.5, 0.5, true, 10, (ConnDirFlags) 0);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(52, 308);
+ poly5.ps[1] = Point(52, 412);
+ poly5.ps[2] = Point(-52, 412);
+ poly5.ps[3] = Point(-52, 308);
+ ShapeRef *shapeRef5 = new ShapeRef(router, poly5, 5);
+ new ShapeConnectionPin(shapeRef5, 544, 0.5, 0.5, true, 10, (ConnDirFlags) 0);
+
+ ConnRef *connRef6 = new ConnRef(router, 6);
+ ConnEnd srcPt6(shapeRef2, 544);
+ connRef6->setSourceEndpoint(srcPt6);
+ ConnEnd dstPt6(shapeRef5, 544);
+ connRef6->setDestEndpoint(dstPt6);
+ connRef6->setRoutingType((ConnType)2);
+
+ ConnRef *connRef7 = new ConnRef(router, 7);
+ ConnEnd srcPt7(shapeRef5, 544);
+ connRef7->setSourceEndpoint(srcPt7);
+ ConnEnd dstPt7(shapeRef4, 544);
+ connRef7->setDestEndpoint(dstPt7);
+ connRef7->setRoutingType((ConnType)2);
+
+ ConnRef *connRef8 = new ConnRef(router, 8);
+ ConnEnd srcPt8(shapeRef1, 544);
+ connRef8->setSourceEndpoint(srcPt8);
+ ConnEnd dstPt8(shapeRef5, 544);
+ connRef8->setDestEndpoint(dstPt8);
+ connRef8->setRoutingType((ConnType)2);
+
+ ConnRef *connRef9 = new ConnRef(router, 9);
+ ConnEnd srcPt9(shapeRef2, 544);
+ connRef9->setSourceEndpoint(srcPt9);
+ ConnEnd dstPt9(shapeRef3, 544);
+ connRef9->setDestEndpoint(dstPt9);
+ connRef9->setRoutingType((ConnType)2);
+
+ ConnRef *connRef10 = new ConnRef(router, 10);
+ ConnEnd srcPt10(shapeRef3, 544);
+ connRef10->setSourceEndpoint(srcPt10);
+ ConnEnd dstPt10(shapeRef4, 544);
+ connRef10->setDestEndpoint(dstPt10);
+ connRef10->setRoutingType((ConnType)2);
+
+ ConnRef *connRef11 = new ConnRef(router, 11);
+ ConnEnd srcPt11(shapeRef1, 544);
+ connRef11->setSourceEndpoint(srcPt11);
+ ConnEnd dstPt11(shapeRef3, 544);
+ connRef11->setDestEndpoint(dstPt11);
+ connRef11->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineShapes");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap01.cpp
new file mode 100644
index 0000000..ff4a309
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap01.cpp
@@ -0,0 +1,25 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty(segmentPenalty);
+ router->setRoutingPenalty(fixedSharedPathPenalty);
+ router->setRoutingParameter(idealNudgingDistance, 20);
+ Rectangle rect335855988(Point(51140, 50190), Point(51510, 50885));
+ new ShapeRef(router, rect335855988, 335855988);
+ Rectangle rect548374163(Point(51915, 50415), Point(52285, 50885));
+ new ShapeRef(router, rect548374163, 548374163);
+ Rectangle rect942733064(Point(51771, 50790), Point(51829, 50885));
+ new ShapeRef(router, rect942733064, 942733064);
+ ConnEnd srcPt100850179(Point(51925, 50800), 4);
+ ConnEnd dstPt100850179(Point(51500, 50650), 8);
+ new ConnRef(router, srcPt100850179, dstPt100850179, 100850179);
+ ConnEnd srcPt240732432(Point(51925, 50650), 4);
+ ConnEnd dstPt240732432(Point(51800, 50800), 1);
+ new ConnRef(router, srcPt240732432, dstPt240732432, 240732432);
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap01");
+ bool overlap = router->existsOrthogonalTouchingPaths();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap02.cpp
new file mode 100644
index 0000000..4e1c044
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap02.cpp
@@ -0,0 +1,62 @@
+// From p-overlap bug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly548374163(4);
+ poly548374163.ps[0] = Point(52285, 50415);
+ poly548374163.ps[1] = Point(52285, 50885);
+ poly548374163.ps[2] = Point(51915, 50885);
+ poly548374163.ps[3] = Point(51915, 50415);
+ new ShapeRef(router, poly548374163, 548374163);
+
+ Polygon poly942733064(4);
+ poly942733064.ps[0] = Point(51829, 50800);
+ poly942733064.ps[1] = Point(51829, 50885);
+ poly942733064.ps[2] = Point(51771, 50885);
+ poly942733064.ps[3] = Point(51771, 50800);
+ new ShapeRef(router, poly942733064, 942733064);
+
+ Polygon poly335855988(4);
+ poly335855988.ps[0] = Point(51510, 50190);
+ poly335855988.ps[1] = Point(51510, 50885);
+ poly335855988.ps[2] = Point(51140, 50885);
+ poly335855988.ps[3] = Point(51140, 50190);
+ new ShapeRef(router, poly335855988, 335855988);
+
+ ConnRef *connRef240732432 = new ConnRef(router, 240732432);
+ ConnEnd srcPt240732432(Point(51935, 50650), 4);
+ connRef240732432->setSourceEndpoint(srcPt240732432);
+ ConnEnd dstPt240732432(Point(51800, 50810), 1);
+ connRef240732432->setDestEndpoint(dstPt240732432);
+ connRef240732432->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148374725 = new ConnRef(router, 148374725);
+ ConnEnd srcPt148374725(Point(51935, 50500), 4);
+ connRef148374725->setSourceEndpoint(srcPt148374725);
+ ConnEnd dstPt148374725(Point(51490, 50800), 8);
+ connRef148374725->setDestEndpoint(dstPt148374725);
+ connRef148374725->setRoutingType((ConnType)2);
+
+ ConnRef *connRef100850179 = new ConnRef(router, 100850179);
+ ConnEnd srcPt100850179(Point(51935, 50800), 4);
+ connRef100850179->setSourceEndpoint(srcPt100850179);
+ ConnEnd dstPt100850179(Point(51490, 50650), 8);
+ connRef100850179->setDestEndpoint(dstPt100850179);
+ connRef100850179->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap02");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap03.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap03.cpp
new file mode 100644
index 0000000..945cd72
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap03.cpp
@@ -0,0 +1,55 @@
+// From diffport-pins-overlap-reduced_libavoid-debug_4 bug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly421433292(4);
+ poly421433292.ps[0] = Point(51335, 50215);
+ poly421433292.ps[1] = Point(51335, 50385);
+ poly421433292.ps[2] = Point(51065, 50385);
+ poly421433292.ps[3] = Point(51065, 50215);
+ new ShapeRef(router, poly421433292, 421433292);
+
+ Polygon poly174734866(4);
+ poly174734866.ps[0] = Point(51335, 50490);
+ poly174734866.ps[1] = Point(51335, 50660);
+ poly174734866.ps[2] = Point(51065, 50660);
+ poly174734866.ps[3] = Point(51065, 50490);
+ new ShapeRef(router, poly174734866, 174734866);
+
+ Polygon poly564884274(4);
+ poly564884274.ps[0] = Point(50635, 50500);
+ poly564884274.ps[1] = Point(50635, 50583);
+ poly564884274.ps[2] = Point(50515, 50583);
+ poly564884274.ps[3] = Point(50515, 50500);
+ new ShapeRef(router, poly564884274, 564884274);
+
+ ConnRef *connRef103176525 = new ConnRef(router, 103176525);
+ ConnEnd srcPt103176525(Point(51085, 50550), 4);
+ connRef103176525->setSourceEndpoint(srcPt103176525);
+ ConnEnd dstPt103176525(Point(50575, 50510), 1);
+ connRef103176525->setDestEndpoint(dstPt103176525);
+ connRef103176525->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223495632 = new ConnRef(router, 223495632);
+ ConnEnd srcPt223495632(Point(51085, 50325), 4);
+ connRef223495632->setSourceEndpoint(srcPt223495632);
+ ConnEnd dstPt223495632(Point(50575, 50550), 14);
+ connRef223495632->setDestEndpoint(dstPt223495632);
+ connRef223495632->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap03");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap04.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap04.cpp
new file mode 100644
index 0000000..70847bc
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap04.cpp
@@ -0,0 +1,62 @@
+// From Routing_2a_libavoid-debug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly170253204(4);
+ poly170253204.ps[0] = Point(50450, 50190);
+ poly170253204.ps[1] = Point(50450, 50360);
+ poly170253204.ps[2] = Point(50265, 50360);
+ poly170253204.ps[3] = Point(50265, 50190);
+ new ShapeRef(router, poly170253204, 170253204);
+
+ Polygon poly914700248(4);
+ poly914700248.ps[0] = Point(50800, 50390);
+ poly914700248.ps[1] = Point(50800, 50560);
+ poly914700248.ps[2] = Point(50615, 50560);
+ poly914700248.ps[3] = Point(50615, 50390);
+ new ShapeRef(router, poly914700248, 914700248);
+
+ Polygon poly285103539(4);
+ poly285103539.ps[0] = Point(51385, 50390);
+ poly285103539.ps[1] = Point(51385, 50560);
+ poly285103539.ps[2] = Point(51200, 50560);
+ poly285103539.ps[3] = Point(51200, 50390);
+ new ShapeRef(router, poly285103539, 285103539);
+
+ Polygon poly252459412(4);
+ poly252459412.ps[0] = Point(51360, 50190);
+ poly252459412.ps[1] = Point(51360, 50360);
+ poly252459412.ps[2] = Point(51175, 50360);
+ poly252459412.ps[3] = Point(51175, 50190);
+ new ShapeRef(router, poly252459412, 252459412);
+
+ ConnRef *connRef573390636 = new ConnRef(router, 573390636);
+ ConnEnd srcPt573390636(Point(50790, 50475), 8);
+ connRef573390636->setSourceEndpoint(srcPt573390636);
+ ConnEnd dstPt573390636(Point(51185, 50275), 4);
+ connRef573390636->setDestEndpoint(dstPt573390636);
+ connRef573390636->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214207623 = new ConnRef(router, 214207623);
+ ConnEnd srcPt214207623(Point(51210, 50475), 4);
+ connRef214207623->setSourceEndpoint(srcPt214207623);
+ ConnEnd dstPt214207623(Point(50440, 50275), 8);
+ connRef214207623->setDestEndpoint(dstPt214207623);
+ connRef214207623->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap04");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap05.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap05.cpp
new file mode 100644
index 0000000..1092679
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap05.cpp
@@ -0,0 +1,69 @@
+// From Diplexer-reduced2_libavoid-debug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly231469760(4);
+ poly231469760.ps[0] = Point(6385, 9390);
+ poly231469760.ps[1] = Point(6385, 9560);
+ poly231469760.ps[2] = Point(6200, 9560);
+ poly231469760.ps[3] = Point(6200, 9390);
+ new ShapeRef(router, poly231469760, 231469760);
+
+ Polygon poly7136376(4);
+ poly7136376.ps[0] = Point(6560, 9290);
+ poly7136376.ps[1] = Point(6560, 9460);
+ poly7136376.ps[2] = Point(6375, 9460);
+ poly7136376.ps[3] = Point(6375, 9290);
+ new ShapeRef(router, poly7136376, 7136376);
+
+ Polygon poly215821749(4);
+ poly215821749.ps[0] = Point(6510, 9540);
+ poly215821749.ps[1] = Point(6510, 9710);
+ poly215821749.ps[2] = Point(6325, 9710);
+ poly215821749.ps[3] = Point(6325, 9540);
+ new ShapeRef(router, poly215821749, 215821749);
+
+ Polygon poly83086994(4);
+ poly83086994.ps[0] = Point(5925, 9240);
+ poly83086994.ps[1] = Point(5925, 10085);
+ poly83086994.ps[2] = Point(5575, 10085);
+ poly83086994.ps[3] = Point(5575, 9240);
+ new ShapeRef(router, poly83086994, 83086994);
+
+ ConnRef *connRef292408794 = new ConnRef(router, 292408794);
+ ConnEnd srcPt292408794(Point(5915, 9625), 8);
+ connRef292408794->setSourceEndpoint(srcPt292408794);
+ ConnEnd dstPt292408794(Point(6210, 9475), 4);
+ connRef292408794->setDestEndpoint(dstPt292408794);
+ connRef292408794->setRoutingType((ConnType)2);
+
+ ConnRef *connRef40917776 = new ConnRef(router, 40917776);
+ ConnEnd srcPt40917776(Point(5915, 9550), 8);
+ connRef40917776->setSourceEndpoint(srcPt40917776);
+ ConnEnd dstPt40917776(Point(6385, 9375), 4);
+ connRef40917776->setDestEndpoint(dstPt40917776);
+ connRef40917776->setRoutingType((ConnType)2);
+
+ ConnRef *connRef629564142 = new ConnRef(router, 629564142);
+ ConnEnd srcPt629564142(Point(5915, 9475), 8);
+ connRef629564142->setSourceEndpoint(srcPt629564142);
+ ConnEnd dstPt629564142(Point(6335, 9625), 4);
+ connRef629564142->setDestEndpoint(dstPt629564142);
+ connRef629564142->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap05");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap06.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap06.cpp
new file mode 100644
index 0000000..8319c29
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap06.cpp
@@ -0,0 +1,62 @@
+// From Routing_2a-broken_libavoid-debug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 210);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly170253204(4);
+ poly170253204.ps[0] = Point(50450, 50190);
+ poly170253204.ps[1] = Point(50450, 50360);
+ poly170253204.ps[2] = Point(50265, 50360);
+ poly170253204.ps[3] = Point(50265, 50190);
+ new ShapeRef(router, poly170253204, 170253204);
+
+ Polygon poly285103539(4);
+ poly285103539.ps[0] = Point(51385, 50390);
+ poly285103539.ps[1] = Point(51385, 50560);
+ poly285103539.ps[2] = Point(51200, 50560);
+ poly285103539.ps[3] = Point(51200, 50390);
+ new ShapeRef(router, poly285103539, 285103539);
+
+ Polygon poly252459412(4);
+ poly252459412.ps[0] = Point(51360, 50190);
+ poly252459412.ps[1] = Point(51360, 50360);
+ poly252459412.ps[2] = Point(51175, 50360);
+ poly252459412.ps[3] = Point(51175, 50190);
+ new ShapeRef(router, poly252459412, 252459412);
+
+ Polygon poly914700248(4);
+ poly914700248.ps[0] = Point(50800, 50390);
+ poly914700248.ps[1] = Point(50800, 50560);
+ poly914700248.ps[2] = Point(50615, 50560);
+ poly914700248.ps[3] = Point(50615, 50390);
+ new ShapeRef(router, poly914700248, 914700248);
+
+ ConnRef *connRef214207623 = new ConnRef(router, 214207623);
+ ConnEnd srcPt214207623(Point(51210, 50475), 4);
+ connRef214207623->setSourceEndpoint(srcPt214207623);
+ ConnEnd dstPt214207623(Point(50440, 50275), 8);
+ connRef214207623->setDestEndpoint(dstPt214207623);
+ connRef214207623->setRoutingType((ConnType)2);
+
+ ConnRef *connRef573390636 = new ConnRef(router, 573390636);
+ ConnEnd srcPt573390636(Point(50790, 50475), 8);
+ connRef573390636->setSourceEndpoint(srcPt573390636);
+ ConnEnd dstPt573390636(Point(51185, 50275), 4);
+ connRef573390636->setDestEndpoint(dstPt573390636);
+ connRef573390636->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap06");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap07.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap07.cpp
new file mode 100644
index 0000000..cff0c19
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap07.cpp
@@ -0,0 +1,75 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly186982048(4);
+ poly186982048.ps[0] = Point(52660, 50490);
+ poly186982048.ps[1] = Point(52660, 50960);
+ poly186982048.ps[2] = Point(52100, 50960);
+ poly186982048.ps[3] = Point(52100, 50490);
+ new ShapeRef(router, poly186982048, 186982048);
+
+ Polygon poly193989760(4);
+ poly193989760.ps[0] = Point(51850, 50665);
+ poly193989760.ps[1] = Point(51850, 50835);
+ poly193989760.ps[2] = Point(51590, 50835);
+ poly193989760.ps[3] = Point(51590, 50665);
+ new ShapeRef(router, poly193989760, 193989760);
+
+ Polygon poly276825384(4);
+ poly276825384.ps[0] = Point(51825, 51040);
+ poly276825384.ps[1] = Point(51825, 51210);
+ poly276825384.ps[2] = Point(51565, 51210);
+ poly276825384.ps[3] = Point(51565, 51040);
+ new ShapeRef(router, poly276825384, 276825384);
+
+ Polygon poly190150804(4);
+ poly190150804.ps[0] = Point(50460, 51340);
+ poly190150804.ps[1] = Point(50460, 51510);
+ poly190150804.ps[2] = Point(50290, 51510);
+ poly190150804.ps[3] = Point(50290, 51340);
+ new ShapeRef(router, poly190150804, 190150804);
+
+ ConnRef *connRef562170592 = new ConnRef(router, 562170592);
+ ConnEnd srcPt562170592(Point(52110, 50800), 4);
+ connRef562170592->setSourceEndpoint(srcPt562170592);
+ ConnEnd dstPt562170592(Point(51815, 51100), 8);
+ connRef562170592->setDestEndpoint(dstPt562170592);
+ connRef562170592->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171593006 = new ConnRef(router, 171593006);
+ ConnEnd srcPt171593006(Point(52110, 50750), 4);
+ connRef171593006->setSourceEndpoint(srcPt171593006);
+ ConnEnd dstPt171593006(Point(51840, 50725), 8);
+ connRef171593006->setDestEndpoint(dstPt171593006);
+ connRef171593006->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172593160 = new ConnRef(router, 172593160);
+ ConnEnd srcPt172593160(Point(51815, 51150), 8);
+ connRef172593160->setSourceEndpoint(srcPt172593160);
+ ConnEnd dstPt172593160(Point(52110, 50900), 4);
+ connRef172593160->setDestEndpoint(dstPt172593160);
+ connRef172593160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef116944564 = new ConnRef(router, 116944564);
+ ConnEnd srcPt116944564(Point(51840, 50775), 8);
+ connRef116944564->setSourceEndpoint(srcPt116944564);
+ ConnEnd dstPt116944564(Point(52110, 50850), 4);
+ connRef116944564->setDestEndpoint(dstPt116944564);
+ connRef116944564->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap07");
+ delete router;
+ return 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap08.cpp b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap08.cpp
new file mode 100644
index 0000000..cde44e0
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/inlineoverlap08.cpp
@@ -0,0 +1,120 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 10);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 400);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(99, -20);
+ poly1.ps[1] = Point(99, 0);
+ poly1.ps[2] = Point(55, 0);
+ poly1.ps[3] = Point(55, -20);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(20, -65);
+ poly2.ps[1] = Point(20, -45);
+ poly2.ps[2] = Point(0, -45);
+ poly2.ps[3] = Point(0, -65);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(20, -90);
+ poly3.ps[1] = Point(20, -70);
+ poly3.ps[2] = Point(0, -70);
+ poly3.ps[3] = Point(0, -90);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(20, -115);
+ poly4.ps[1] = Point(20, -95);
+ poly4.ps[2] = Point(0, -95);
+ poly4.ps[3] = Point(0, -115);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(20, -140);
+ poly5.ps[1] = Point(20, -120);
+ poly5.ps[2] = Point(0, -120);
+ poly5.ps[3] = Point(0, -140);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(75, -185);
+ poly6.ps[1] = Point(75, -165);
+ poly6.ps[2] = Point(55, -165);
+ poly6.ps[3] = Point(55, -185);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(100, -185);
+ poly7.ps[1] = Point(100, -165);
+ poly7.ps[2] = Point(80, -165);
+ poly7.ps[3] = Point(80, -185);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(125, -185);
+ poly8.ps[1] = Point(125, -165);
+ poly8.ps[2] = Point(105, -165);
+ poly8.ps[3] = Point(105, -185);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(150, -185);
+ poly9.ps[1] = Point(150, -165);
+ poly9.ps[2] = Point(130, -165);
+ poly9.ps[3] = Point(130, -185);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(175, -185);
+ poly10.ps[1] = Point(175, -165);
+ poly10.ps[2] = Point(155, -165);
+ poly10.ps[3] = Point(155, -185);
+ new ShapeRef(router, poly10, 10);
+
+ ConnRef *connRef11 = new ConnRef(router, 11);
+ ConnEnd srcPt11(Point(20, -47), 15);
+ connRef11->setSourceEndpoint(srcPt11);
+ ConnEnd dstPt11(Point(57, -165), 15);
+ connRef11->setDestEndpoint(dstPt11);
+ connRef11->setRoutingType((ConnType)2);
+
+ ConnRef *connRef12 = new ConnRef(router, 12);
+ ConnEnd srcPt12(Point(61, -165), 15);
+ connRef12->setSourceEndpoint(srcPt12);
+ ConnEnd dstPt12(Point(57, -20), 15);
+ connRef12->setDestEndpoint(dstPt12);
+ connRef12->setRoutingType((ConnType)2);
+
+ ConnRef *connRef13 = new ConnRef(router, 13);
+ ConnEnd srcPt13(Point(15, -74), 15);
+ connRef13->setSourceEndpoint(srcPt13);
+ ConnEnd dstPt13(Point(65, -20), 15);
+ connRef13->setDestEndpoint(dstPt13);
+ connRef13->setRoutingType((ConnType)2);
+
+ ConnRef *connRef14 = new ConnRef(router, 14);
+ ConnEnd srcPt14(Point(61, -20), 15);
+ connRef14->setSourceEndpoint(srcPt14);
+ ConnEnd dstPt14(Point(61, -24), 15);
+ connRef14->setDestEndpoint(dstPt14);
+ connRef14->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/inlineoverlap08");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/junction01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/junction01.cpp
new file mode 100644
index 0000000..24d4b5f
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/junction01.cpp
@@ -0,0 +1,55 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 105);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+ Rectangle rect478845150(Point(50695, 51070), Point(50705, 51080));
+ ShapeRef *shapeRef478845150 = new ShapeRef(router, rect478845150, 478845150);
+ ShapeConnectionPin *pin = new Avoid::ShapeConnectionPin(shapeRef478845150,
+ Avoid::CONNECTIONPIN_CENTRE, Avoid::ATTACH_POS_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+ pin->setExclusive(false);
+
+ Rectangle rect92712048(Point(51246, 50475), Point(51304, 50585));
+ new ShapeRef(router, rect92712048, 92712048);
+ Rectangle rect23127921(Point(50365, 50766), Point(50485, 50834));
+ new ShapeRef(router, rect23127921, 23127921);
+ Rectangle rect159957148(Point(51740, 50891), Point(51860, 50959));
+ new ShapeRef(router, rect159957148, 159957148);
+ Rectangle rect1350214(Point(50375, 51015), Point(50625, 51135));
+ new ShapeRef(router, rect1350214, 1350214);
+ Rectangle rect247197258(Point(50265, 51046), Point(50375, 51104));
+ new ShapeRef(router, rect247197258, 247197258);
+ Rectangle rect281096654(Point(50700, 50390), Point(51000, 50610));
+ new ShapeRef(router, rect281096654, 281096654);
+ ConnEnd srcPt342420237(Point(50425, 50800), 15);
+ ConnEnd dstPt342420237(Point(50710, 50450), 4);
+ new ConnRef(router, srcPt342420237, dstPt342420237, 342420237);
+ ConnEnd srcPt352019675(Point(50990, 50500), 8);
+ ConnEnd dstPt352019675(shapeRef478845150, Avoid::CONNECTIONPIN_CENTRE);
+ //ConnEnd dstPt352019675(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt352019675, dstPt352019675, 352019675);
+ ConnEnd srcPt42699400(shapeRef478845150, Avoid::CONNECTIONPIN_CENTRE);
+ //ConnEnd srcPt42699400(Point(50700, 51075), 15);
+ ConnEnd dstPt42699400(Point(50615, 51075), 8);
+ new ConnRef(router, srcPt42699400, dstPt42699400, 42699400);
+ ConnEnd srcPt94712625(Point(50710, 50550), 4);
+ ConnEnd dstPt94712625(shapeRef478845150, Avoid::CONNECTIONPIN_CENTRE);
+ //ConnEnd dstPt94712625(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt94712625, dstPt94712625, 94712625);
+ ConnEnd srcPt92802970(Point(50990, 50450), 8);
+ ConnEnd dstPt92802970(Point(51275, 50485), 1);
+ new ConnRef(router, srcPt92802970, dstPt92802970, 92802970);
+ ConnEnd srcPt716502036(Point(50710, 50500), 4);
+ ConnEnd dstPt716502036(Point(51800, 50925), 15);
+ new ConnRef(router, srcPt716502036, dstPt716502036, 716502036);
+ router->processTransaction();
+ router->outputDiagram("output/junction01");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/junction02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/junction02.cpp
new file mode 100644
index 0000000..51d9e94
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/junction02.cpp
@@ -0,0 +1,55 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 105);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ JunctionRef *junction478845150 = new JunctionRef(router, Point(50700, 51075));
+
+ Rectangle rect92712048(Point(51246, 50475), Point(51304, 50585));
+ new ShapeRef(router, rect92712048, 92712048);
+ Rectangle rect23127921(Point(50365, 50766), Point(50485, 50834));
+ new ShapeRef(router, rect23127921, 23127921);
+ Rectangle rect159957148(Point(51740, 50891), Point(51860, 50959));
+ new ShapeRef(router, rect159957148, 159957148);
+ Rectangle rect1350214(Point(50375, 51015), Point(50625, 51135));
+ new ShapeRef(router, rect1350214, 1350214);
+ Rectangle rect247197258(Point(50265, 51046), Point(50375, 51104));
+ new ShapeRef(router, rect247197258, 247197258);
+ Rectangle rect281096654(Point(50700, 50390), Point(51000, 50610));
+ new ShapeRef(router, rect281096654, 281096654);
+ ConnEnd srcPt342420237(Point(50425, 50800), 15);
+ ConnEnd dstPt342420237(Point(50710, 50450), 4);
+ new ConnRef(router, srcPt342420237, dstPt342420237, 342420237);
+ ConnEnd srcPt352019675(Point(50990, 50500), 8);
+ ConnEnd dstPt352019675(junction478845150);
+ //ConnEnd dstPt352019675(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt352019675, dstPt352019675, 352019675);
+ ConnEnd srcPt42699400(junction478845150);
+ //ConnEnd srcPt42699400(Point(50700, 51075), 15);
+ ConnEnd dstPt42699400(Point(50615, 51075), 8);
+ new ConnRef(router, srcPt42699400, dstPt42699400, 42699400);
+ ConnEnd srcPt94712625(Point(50710, 50550), 4);
+ ConnEnd dstPt94712625(junction478845150);
+ //ConnEnd dstPt94712625(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt94712625, dstPt94712625, 94712625);
+ ConnEnd srcPt92802970(Point(50990, 50450), 8);
+ ConnEnd dstPt92802970(Point(51275, 50485), 1);
+ new ConnRef(router, srcPt92802970, dstPt92802970, 92802970);
+ ConnEnd srcPt716502036(Point(50710, 50500), 4);
+ ConnEnd dstPt716502036(Point(51800, 50925), 15);
+ new ConnRef(router, srcPt716502036, dstPt716502036, 716502036);
+ router->processTransaction();
+ router->outputDiagram("output/junction02-1");
+ router->moveJunction(junction478845150, 585, 0);
+ router->processTransaction();
+ router->outputDiagram("output/junction02-2");
+ delete router;
+ return 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/junction03.cpp b/src/3rdparty/adaptagrams/libavoid/tests/junction03.cpp
new file mode 100644
index 0000000..7eab3c0
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/junction03.cpp
@@ -0,0 +1,55 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 105);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+ Rectangle rect478845150(Point(50695, 51070), Point(50705, 51080));
+ JunctionRef *junctionRef478845150 = new JunctionRef(router,
+ Point(50700, 51075), 478845150);
+
+ Rectangle rect92712048(Point(51246, 50475), Point(51304, 50585));
+ new ShapeRef(router, rect92712048, 92712048);
+ Rectangle rect23127921(Point(50365, 50766), Point(50485, 50834));
+ new ShapeRef(router, rect23127921, 23127921);
+ Rectangle rect159957148(Point(51740, 50891), Point(51860, 50959));
+ new ShapeRef(router, rect159957148, 159957148);
+ Rectangle rect1350214(Point(50375, 51015), Point(50625, 51135));
+ new ShapeRef(router, rect1350214, 1350214);
+ Rectangle rect247197258(Point(50265, 51046), Point(50375, 51104));
+ new ShapeRef(router, rect247197258, 247197258);
+ Rectangle rect281096654(Point(50700, 50390), Point(51000, 50610));
+ new ShapeRef(router, rect281096654, 281096654);
+ ConnEnd srcPt342420237(Point(50425, 50800), 15);
+ ConnEnd dstPt342420237(Point(50710, 50450), 4);
+ new ConnRef(router, srcPt342420237, dstPt342420237, 342420237);
+ ConnEnd srcPt352019675(Point(50990, 50500), 8);
+ ConnEnd dstPt352019675(junctionRef478845150);
+ //ConnEnd dstPt352019675(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt352019675, dstPt352019675, 352019675);
+ ConnEnd srcPt42699400(junctionRef478845150);
+ //ConnEnd srcPt42699400(Point(50700, 51075), 15);
+ ConnEnd dstPt42699400(Point(50615, 51075), 8);
+ new ConnRef(router, srcPt42699400, dstPt42699400, 42699400);
+ ConnEnd srcPt94712625(Point(50710, 50550), 4);
+ ConnEnd dstPt94712625(junctionRef478845150);
+ //ConnEnd dstPt94712625(Point(50700, 51075), 15);
+ new ConnRef(router, srcPt94712625, dstPt94712625, 94712625);
+ ConnEnd srcPt92802970(Point(50990, 50450), 8);
+ ConnEnd dstPt92802970(Point(51275, 50485), 1);
+ new ConnRef(router, srcPt92802970, dstPt92802970, 92802970);
+ ConnEnd srcPt716502036(Point(50710, 50500), 4);
+ ConnEnd dstPt716502036(Point(51800, 50925), 15);
+ new ConnRef(router, srcPt716502036, dstPt716502036, 716502036);
+ router->processTransaction();
+ router->outputDiagram("output/junction03-1");
+ router->moveJunction(junctionRef478845150, 585, 0);
+ router->processTransaction();
+ router->outputDiagram("output/junction03-2");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/junction04.cpp b/src/3rdparty/adaptagrams/libavoid/tests/junction04.cpp
new file mode 100644
index 0000000..9e75ff7
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/junction04.cpp
@@ -0,0 +1,100 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2010 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+// Another testcase to check the functionality for connection pins.
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting);
+ router->setRoutingPenalty((Avoid::PenaltyType)0, 50);
+
+ Avoid::Rectangle shapeRect1(Avoid::Point(0, 0), Avoid::Point(30, 20));
+ Avoid::ShapeRef *shapeRef1 = new Avoid::ShapeRef(router, shapeRect1);
+
+ Avoid::Rectangle shapeRect2(Avoid::Point(70, 7), Avoid::Point(100, 27));
+ new Avoid::ShapeRef(router, shapeRect2);
+
+ Avoid::Rectangle shapeRect3(Avoid::Point(50, 60), Avoid::Point(80, 155));
+ new Avoid::ShapeRef(router, shapeRect3);
+
+ Avoid::Rectangle shapeRect4(Avoid::Point(125, 60), Avoid::Point(155, 80));
+ new Avoid::ShapeRef(router, shapeRect4);
+
+ Avoid::Rectangle shapeRect5(Avoid::Point(15, 150), Avoid::Point(45, 170));
+ Avoid::ShapeRef *shapeRef5 = new Avoid::ShapeRef(router, shapeRect5);
+
+ Avoid::Rectangle shapeRect6(Avoid::Point(130, 130), Avoid::Point(160, 150));
+ Avoid::ShapeRef *shapeRef6 = new Avoid::ShapeRef(router, shapeRect6);
+
+ // Add a centre connection pin for the three shapes we'll be using.
+ new Avoid::ShapeConnectionPin(shapeRef1, Avoid::CONNECTIONPIN_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+ new Avoid::ShapeConnectionPin(shapeRef5, Avoid::CONNECTIONPIN_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+ new Avoid::ShapeConnectionPin(shapeRef6, Avoid::CONNECTIONPIN_CENTRE,
+ Avoid::ATTACH_POS_CENTRE, Avoid::ATTACH_POS_CENTRE, true, 0.0, Avoid::ConnDirNone);
+
+ Avoid::ConnEnd srcEnd(shapeRef1, Avoid::CONNECTIONPIN_CENTRE);
+ Avoid::ConnEnd dstEnd(shapeRef6, Avoid::CONNECTIONPIN_CENTRE);
+ Avoid::ConnRef *conn1= new Avoid::ConnRef(router, srcEnd, dstEnd);
+
+ router->processTransaction();
+ router->outputDiagram("output/junction04-1");
+
+ // Split the connector on its second segment and add a junction point.
+ std::pair<Avoid::JunctionRef *, Avoid::ConnRef *> newObjs =
+ conn1->splitAtSegment(2);
+
+ router->processTransaction();
+ router->outputDiagram("output/junction04-2");
+
+ // Create a connector from the centre of shape 5 that connects to
+ // the junction.
+ Avoid::ConnEnd srcEnd3(shapeRef5, Avoid::CONNECTIONPIN_CENTRE);
+ Avoid::ConnEnd dstEnd3(newObjs.first);
+ new Avoid::ConnRef(router, srcEnd3, dstEnd3);
+
+ router->processTransaction();
+ router->outputDiagram("output/junction04-3");
+
+ // Delete one half of the original connector, up to the junction.
+ router->deleteConnector(conn1);
+ conn1 = nullptr;
+
+ router->processTransaction();
+ router->outputDiagram("output/junction04-4");
+
+ // The junction just has two connector now, so merge these into one.
+ newObjs.first->removeJunctionAndMergeConnectors();
+ router->processTransaction();
+ router->outputDiagram("output/junction04-5");
+
+ router->processTransaction();
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/latesetup.cpp b/src/3rdparty/adaptagrams/libavoid/tests/latesetup.cpp
new file mode 100644
index 0000000..80b6cdd
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/latesetup.cpp
@@ -0,0 +1,94 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2007 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+
+
+static void connCallback(void *ptr)
+{
+ Avoid::ConnRef *connRef = (Avoid::ConnRef *) ptr;
+
+ printf("Connector %u needs rerouting!\n", connRef->id());
+
+ const Avoid::PolyLine& route = connRef->route();
+ printf("New path: ");
+ for (size_t i = 0; i < route.ps.size(); ++i)
+ {
+ printf("%s(%f, %f)", (i > 0) ? "-" : "",
+ route.ps[i].x, route.ps[i].y);
+ }
+ printf("\n");
+}
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::PolyLineRouting);
+ router->setTransactionUse(false);
+
+ printf("\nCreate connector.\n");
+ Avoid::Point srcPt(1.2, 0.5);
+ Avoid::Point dstPt(1.5, 4);
+ Avoid::ConnRef *connRef = new Avoid::ConnRef(router);
+ connRef->setCallback(connCallback, connRef);
+ // Force inital callback:
+ router->processTransaction();
+
+ Avoid::ConnRef *connRef2 = new Avoid::ConnRef(router);
+ connRef2->setCallback(connCallback, connRef2);
+ router->processTransaction();
+
+ router->deleteConnector(connRef2);
+ connRef2 = nullptr;
+ router->processTransaction();
+
+ printf("\nAdd endpoints.\n");
+ connRef->setEndpoints(srcPt, dstPt);
+ router->processTransaction();
+
+ printf("\nAdding a shape.\n");
+ // Create the ShapeRef:
+ Avoid::Polygon shapePoly(3);
+ shapePoly.ps[0] = Avoid::Point(1, 1);
+ shapePoly.ps[1] = Avoid::Point(2.5, 1.5);
+ shapePoly.ps[2] = Avoid::Point(1.5, 2.5);
+ Avoid::ShapeRef *shapeRef = new Avoid::ShapeRef(router, shapePoly);
+ router->processTransaction();
+
+ printf("\nShifting endpoint.\n");
+ Avoid::Point dstPt2(6, 4.5);
+ connRef->setDestEndpoint(dstPt2);
+ // It's expected you know the connector needs rerouting, so the callback
+ // isn't called. You can force it to be called though, via:
+ router->processTransaction();
+
+ printf("\nMoving shape right by 0.5.\n");
+ router->moveShape(shapeRef, 0.5, 0);
+ router->processTransaction();
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash1.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash1.cpp
new file mode 100644
index 0000000..0b504cf
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash1.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash1");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash2.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash2.cpp
new file mode 100644
index 0000000..f2ee8d4
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash2.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash2");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash3.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash3.cpp
new file mode 100644
index 0000000..36c8d04
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash3.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash3");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash4.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash4.cpp
new file mode 100644
index 0000000..3b03533
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash4.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash4");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash5.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash5.cpp
new file mode 100644
index 0000000..cb49862
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash5.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash5");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash6.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash6.cpp
new file mode 100644
index 0000000..fb186b7
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash6.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash6");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash7.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash7.cpp
new file mode 100644
index 0000000..40f5d4a
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash7.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash7");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash8.cpp b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash8.cpp
new file mode 100644
index 0000000..696222a
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/lineSegWrapperCrash8.cpp
@@ -0,0 +1,1884 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(387.924, 753.557);
+ poly79.ps[1] = Point(387.924, 773.557);
+ poly79.ps[2] = Point(367.924, 773.557);
+ poly79.ps[3] = Point(367.924, 753.557);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(97.9242, 14.8422);
+ poly58.ps[1] = Point(97.9242, 54.8422);
+ poly58.ps[2] = Point(57.9242, 54.8422);
+ poly58.ps[3] = Point(57.9242, 14.8422);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(577.924, 629.557);
+ poly62.ps[1] = Point(577.924, 669.557);
+ poly62.ps[2] = Point(537.924, 669.557);
+ poly62.ps[3] = Point(537.924, 629.557);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(457.924, 507.557);
+ poly63.ps[1] = Point(457.924, 547.557);
+ poly63.ps[2] = Point(417.924, 547.557);
+ poly63.ps[3] = Point(417.924, 507.557);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(217.924, 141.557);
+ poly19.ps[1] = Point(217.924, 181.557);
+ poly19.ps[2] = Point(177.924, 181.557);
+ poly19.ps[3] = Point(177.924, 141.557);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(97.9242, 743.557);
+ poly48.ps[1] = Point(97.9242, 783.557);
+ poly48.ps[2] = Point(57.9242, 783.557);
+ poly48.ps[3] = Point(57.9242, 743.557);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1158.92, -80.6578);
+ poly8.ps[1] = Point(1158.92, -40.6578);
+ poly8.ps[2] = Point(1118.92, -40.6578);
+ poly8.ps[3] = Point(1118.92, -80.6578);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(817.924, 840.057);
+ poly1.ps[1] = Point(817.924, 880.057);
+ poly1.ps[2] = Point(777.924, 880.057);
+ poly1.ps[3] = Point(777.924, 840.057);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(457.924, 743.557);
+ poly24.ps[1] = Point(457.924, 783.557);
+ poly24.ps[2] = Point(417.924, 783.557);
+ poly24.ps[3] = Point(417.924, 743.557);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(267.924, 151.557);
+ poly69.ps[1] = Point(267.924, 171.557);
+ poly69.ps[2] = Point(247.924, 171.557);
+ poly69.ps[3] = Point(247.924, 151.557);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(405.924, -42.6578);
+ poly125.ps[1] = Point(405.924, -2.65778);
+ poly125.ps[2] = Point(349.924, -2.65778);
+ poly125.ps[3] = Point(349.924, -42.6578);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(525.924, -24.1578);
+ poly126.ps[1] = Point(525.924, 15.8422);
+ poly126.ps[2] = Point(469.924, 15.8422);
+ poly126.ps[3] = Point(469.924, -24.1578);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(645.924, -24.1578);
+ poly127.ps[1] = Point(645.924, 15.8422);
+ poly127.ps[2] = Point(589.924, 15.8422);
+ poly127.ps[3] = Point(589.924, -24.1578);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(285.924, 91.5565);
+ poly109.ps[1] = Point(285.924, 131.557);
+ poly109.ps[2] = Point(229.924, 131.557);
+ poly109.ps[3] = Point(229.924, 91.5565);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(507.924, 753.557);
+ poly80.ps[1] = Point(507.924, 773.557);
+ poly80.ps[2] = Point(487.924, 773.557);
+ poly80.ps[3] = Point(487.924, 753.557);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1038.92, 415.557);
+ poly29.ps[1] = Point(1038.92, 455.557);
+ poly29.ps[2] = Point(998.924, 455.557);
+ poly29.ps[3] = Point(998.924, 415.557);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(937.924, -80.6578);
+ poly10.ps[1] = Point(937.924, -40.6578);
+ poly10.ps[2] = Point(897.924, -40.6578);
+ poly10.ps[3] = Point(897.924, -80.6578);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(1371.92, 29.8422);
+ poly4.ps[1] = Point(1371.92, 69.8422);
+ poly4.ps[2] = Point(1331.92, 69.8422);
+ poly4.ps[3] = Point(1331.92, 29.8422);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1038.92, 260.557);
+ poly12.ps[1] = Point(1038.92, 300.557);
+ poly12.ps[2] = Point(998.924, 300.557);
+ poly12.ps[3] = Point(998.924, 260.557);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(337.924, 743.557);
+ poly16.ps[1] = Point(337.924, 783.557);
+ poly16.ps[2] = Point(297.924, 783.557);
+ poly16.ps[3] = Point(297.924, 743.557);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(627.924, 517.557);
+ poly91.ps[1] = Point(627.924, 537.557);
+ poly91.ps[2] = Point(607.924, 537.557);
+ poly91.ps[3] = Point(607.924, 517.557);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(507.924, 425.557);
+ poly90.ps[1] = Point(507.924, 445.557);
+ poly90.ps[2] = Point(487.924, 445.557);
+ poly90.ps[3] = Point(487.924, 425.557);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(405.924, 693.557);
+ poly119.ps[1] = Point(405.924, 733.557);
+ poly119.ps[2] = Point(349.924, 733.557);
+ poly119.ps[3] = Point(349.924, 693.557);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(525.924, 693.557);
+ poly120.ps[1] = Point(525.924, 733.557);
+ poly120.ps[2] = Point(469.924, 733.557);
+ poly120.ps[3] = Point(469.924, 693.557);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(507.924, 517.557);
+ poly89.ps[1] = Point(507.924, 537.557);
+ poly89.ps[2] = Point(487.924, 537.557);
+ poly89.ps[3] = Point(487.924, 517.557);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(747.924, 564.057);
+ poly88.ps[1] = Point(747.924, 584.057);
+ poly88.ps[2] = Point(727.924, 584.057);
+ poly88.ps[3] = Point(727.924, 564.057);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(627.924, 35.8422);
+ poly87.ps[1] = Point(627.924, 55.8422);
+ poly87.ps[2] = Point(607.924, 55.8422);
+ poly87.ps[3] = Point(607.924, 35.8422);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(507.924, 35.8422);
+ poly86.ps[1] = Point(507.924, 55.8422);
+ poly86.ps[2] = Point(487.924, 55.8422);
+ poly86.ps[3] = Point(487.924, 35.8422);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(387.924, 17.3422);
+ poly85.ps[1] = Point(387.924, 37.3422);
+ poly85.ps[2] = Point(367.924, 37.3422);
+ poly85.ps[3] = Point(367.924, 17.3422);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(147.924, 609.557);
+ poly74.ps[1] = Point(147.924, 629.557);
+ poly74.ps[2] = Point(127.924, 629.557);
+ poly74.ps[3] = Point(127.924, 609.557);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(817.924, 323.557);
+ poly28.ps[1] = Point(817.924, 363.557);
+ poly28.ps[2] = Point(777.924, 363.557);
+ poly28.ps[3] = Point(777.924, 323.557);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(577.924, -44.6578);
+ poly61.ps[1] = Point(577.924, -4.65778);
+ poly61.ps[2] = Point(537.924, -4.65778);
+ poly61.ps[3] = Point(537.924, -44.6578);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1158.92, 415.557);
+ poly15.ps[1] = Point(1158.92, 455.557);
+ poly15.ps[2] = Point(1118.92, 455.557);
+ poly15.ps[3] = Point(1118.92, 415.557);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(45.9242, 169.75);
+ poly49.ps[1] = Point(45.9242, 334.75);
+ poly49.ps[2] = Point(-242.076, 334.75);
+ poly49.ps[3] = Point(-242.076, 169.75);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(337.924, 507.557);
+ poly20.ps[1] = Point(337.924, 547.557);
+ poly20.ps[2] = Point(297.924, 547.557);
+ poly20.ps[3] = Point(297.924, 507.557);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(747.924, -70.6578);
+ poly66.ps[1] = Point(747.924, -50.6578);
+ poly66.ps[2] = Point(727.924, -50.6578);
+ poly66.ps[3] = Point(727.924, -70.6578);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(937.924, 141.557);
+ poly21.ps[1] = Point(937.924, 181.557);
+ poly21.ps[2] = Point(897.924, 181.557);
+ poly21.ps[3] = Point(897.924, 141.557);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(147.924, 151.557);
+ poly68.ps[1] = Point(147.924, 171.557);
+ poly68.ps[2] = Point(127.924, 171.557);
+ poly68.ps[3] = Point(127.924, 151.557);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(207.924, 203.557);
+ poly70.ps[1] = Point(207.924, 223.557);
+ poly70.ps[2] = Point(187.924, 223.557);
+ poly70.ps[3] = Point(187.924, 203.557);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(217.924, 507.557);
+ poly38.ps[1] = Point(217.924, 547.557);
+ poly38.ps[2] = Point(177.924, 547.557);
+ poly38.ps[3] = Point(177.924, 507.557);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1038.92, 323.557);
+ poly51.ps[1] = Point(1038.92, 363.557);
+ poly51.ps[2] = Point(998.924, 363.557);
+ poly51.ps[3] = Point(998.924, 323.557);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(697.924, 415.557);
+ poly42.ps[1] = Point(697.924, 455.557);
+ poly42.ps[2] = Point(657.924, 455.557);
+ poly42.ps[3] = Point(657.924, 415.557);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(937.924, 323.557);
+ poly59.ps[1] = Point(937.924, 363.557);
+ poly59.ps[2] = Point(897.924, 363.557);
+ poly59.ps[3] = Point(897.924, 323.557);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(1038.92, 141.557);
+ poly32.ps[1] = Point(1038.92, 181.557);
+ poly32.ps[2] = Point(998.924, 181.557);
+ poly32.ps[3] = Point(998.924, 141.557);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1371.92, -80.6578);
+ poly6.ps[1] = Point(1371.92, -40.6578);
+ poly6.ps[2] = Point(1331.92, -40.6578);
+ poly6.ps[3] = Point(1331.92, -80.6578);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(97.9242, 141.557);
+ poly40.ps[1] = Point(97.9242, 181.557);
+ poly40.ps[2] = Point(57.9242, 181.557);
+ poly40.ps[3] = Point(57.9242, 141.557);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1038.92, 1.84222);
+ poly43.ps[1] = Point(1038.92, 41.8422);
+ poly43.ps[2] = Point(998.924, 41.8422);
+ poly43.ps[3] = Point(998.924, 1.84222);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1158.92, 40.3422);
+ poly35.ps[1] = Point(1158.92, 80.3422);
+ poly35.ps[2] = Point(1118.92, 80.3422);
+ poly35.ps[3] = Point(1118.92, 40.3422);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(627.924, 753.557);
+ poly81.ps[1] = Point(627.924, 773.557);
+ poly81.ps[2] = Point(607.924, 773.557);
+ poly81.ps[3] = Point(607.924, 753.557);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(285.924, 245.557);
+ poly111.ps[1] = Point(285.924, 285.557);
+ poly111.ps[2] = Point(229.924, 285.557);
+ poly111.ps[3] = Point(229.924, 245.557);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(765.924, 504.057);
+ poly128.ps[1] = Point(765.924, 544.057);
+ poly128.ps[2] = Point(709.924, 544.057);
+ poly128.ps[3] = Point(709.924, 504.057);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(525.924, 457.557);
+ poly129.ps[1] = Point(525.924, 497.557);
+ poly129.ps[2] = Point(469.924, 497.557);
+ poly129.ps[3] = Point(469.924, 457.557);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(525.924, 365.557);
+ poly130.ps[1] = Point(525.924, 405.557);
+ poly130.ps[2] = Point(469.924, 405.557);
+ poly130.ps[3] = Point(469.924, 365.557);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(217.924, 743.557);
+ poly18.ps[1] = Point(217.924, 783.557);
+ poly18.ps[2] = Point(177.924, 783.557);
+ poly18.ps[3] = Point(177.924, 743.557);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1278.92, 323.557);
+ poly34.ps[1] = Point(1278.92, 363.557);
+ poly34.ps[2] = Point(1238.92, 363.557);
+ poly34.ps[3] = Point(1238.92, 323.557);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(817.924, 141.557);
+ poly57.ps[1] = Point(817.924, 181.557);
+ poly57.ps[2] = Point(777.924, 181.557);
+ poly57.ps[3] = Point(777.924, 141.557);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(627.924, 893.057);
+ poly83.ps[1] = Point(627.924, 913.057);
+ poly83.ps[2] = Point(607.924, 913.057);
+ poly83.ps[3] = Point(607.924, 893.057);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(645.924, 833.057);
+ poly123.ps[1] = Point(645.924, 873.057);
+ poly123.ps[2] = Point(589.924, 873.057);
+ poly123.ps[3] = Point(589.924, 833.057);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(405.924, 91.5565);
+ poly124.ps[1] = Point(405.924, 131.557);
+ poly124.ps[2] = Point(349.924, 131.557);
+ poly124.ps[3] = Point(349.924, 91.5565);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1278.92, -80.6578);
+ poly7.ps[1] = Point(1278.92, -40.6578);
+ poly7.ps[2] = Point(1238.92, -40.6578);
+ poly7.ps[3] = Point(1238.92, -80.6578);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(97.9242, 507.557);
+ poly44.ps[1] = Point(97.9242, 547.557);
+ poly44.ps[2] = Point(57.9242, 547.557);
+ poly44.ps[3] = Point(57.9242, 507.557);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(1278.92, 415.557);
+ poly30.ps[1] = Point(1278.92, 455.557);
+ poly30.ps[2] = Point(1238.92, 455.557);
+ poly30.ps[3] = Point(1238.92, 415.557);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(267.924, 305.557);
+ poly71.ps[1] = Point(267.924, 325.557);
+ poly71.ps[2] = Point(247.924, 325.557);
+ poly71.ps[3] = Point(247.924, 305.557);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(577.924, 743.557);
+ poly41.ps[1] = Point(577.924, 783.557);
+ poly41.ps[2] = Point(537.924, 783.557);
+ poly41.ps[3] = Point(537.924, 743.557);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(457.924, 141.557);
+ poly39.ps[1] = Point(457.924, 181.557);
+ poly39.ps[2] = Point(417.924, 181.557);
+ poly39.ps[3] = Point(417.924, 141.557);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(697.924, 271.557);
+ poly47.ps[1] = Point(697.924, 311.557);
+ poly47.ps[2] = Point(657.924, 311.557);
+ poly47.ps[3] = Point(657.924, 271.557);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(147.924, 517.557);
+ poly73.ps[1] = Point(147.924, 537.557);
+ poly73.ps[2] = Point(127.924, 537.557);
+ poly73.ps[3] = Point(127.924, 517.557);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(817.924, -80.6578);
+ poly11.ps[1] = Point(817.924, -40.6578);
+ poly11.ps[2] = Point(777.924, -40.6578);
+ poly11.ps[3] = Point(777.924, -80.6578);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(87.9242, 651.557);
+ poly75.ps[1] = Point(87.9242, 671.557);
+ poly75.ps[2] = Point(67.9242, 671.557);
+ poly75.ps[3] = Point(67.9242, 651.557);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(577.924, 507.557);
+ poly27.ps[1] = Point(577.924, 547.557);
+ poly27.ps[2] = Point(537.924, 547.557);
+ poly27.ps[3] = Point(537.924, 507.557);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1278.92, 141.557);
+ poly31.ps[1] = Point(1278.92, 181.557);
+ poly31.ps[2] = Point(1238.92, 181.557);
+ poly31.ps[3] = Point(1238.92, 141.557);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(147.924, 24.8422);
+ poly67.ps[1] = Point(147.924, 44.8422);
+ poly67.ps[2] = Point(127.924, 44.8422);
+ poly67.ps[3] = Point(127.924, 24.8422);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(272.5, -82.1578);
+ poly50.ps[1] = Point(272.5, -47.1578);
+ poly50.ps[2] = Point(35.5, -47.1578);
+ poly50.ps[3] = Point(35.5, -82.1578);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(577.924, 415.557);
+ poly46.ps[1] = Point(577.924, 455.557);
+ poly46.ps[2] = Point(537.924, 455.557);
+ poly46.ps[3] = Point(537.924, 415.557);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(817.924, 554.057);
+ poly64.ps[1] = Point(817.924, 594.057);
+ poly64.ps[2] = Point(777.924, 594.057);
+ poly64.ps[3] = Point(777.924, 554.057);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(337.924, 141.557);
+ poly23.ps[1] = Point(337.924, 181.557);
+ poly23.ps[2] = Point(297.924, 181.557);
+ poly23.ps[3] = Point(297.924, 141.557);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(87.9242, 357.557);
+ poly72.ps[1] = Point(87.9242, 377.557);
+ poly72.ps[2] = Point(67.9242, 377.557);
+ poly72.ps[3] = Point(67.9242, 357.557);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1158.92, 141.557);
+ poly14.ps[1] = Point(1158.92, 181.557);
+ poly14.ps[2] = Point(1118.92, 181.557);
+ poly14.ps[3] = Point(1118.92, 141.557);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(577.924, 34.8422);
+ poly45.ps[1] = Point(577.924, 74.8422);
+ poly45.ps[2] = Point(537.924, 74.8422);
+ poly45.ps[3] = Point(537.924, 34.8422);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(507.924, 893.057);
+ poly82.ps[1] = Point(507.924, 913.057);
+ poly82.ps[2] = Point(487.924, 913.057);
+ poly82.ps[3] = Point(487.924, 893.057);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(457.924, -44.6578);
+ poly56.ps[1] = Point(457.924, -4.65778);
+ poly56.ps[2] = Point(417.924, -4.65778);
+ poly56.ps[3] = Point(417.924, -44.6578);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(577.924, 883.057);
+ poly17.ps[1] = Point(577.924, 923.057);
+ poly17.ps[2] = Point(537.924, 923.057);
+ poly17.ps[3] = Point(537.924, 883.057);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(937.924, 415.557);
+ poly33.ps[1] = Point(937.924, 455.557);
+ poly33.ps[2] = Point(897.924, 455.557);
+ poly33.ps[3] = Point(897.924, 415.557);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(697.924, 34.8422);
+ poly22.ps[1] = Point(697.924, 74.8422);
+ poly22.ps[2] = Point(657.924, 74.8422);
+ poly22.ps[3] = Point(657.924, 34.8422);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1158.92, 323.557);
+ poly13.ps[1] = Point(1158.92, 363.557);
+ poly13.ps[2] = Point(1118.92, 363.557);
+ poly13.ps[3] = Point(1118.92, 323.557);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(217.924, 295.557);
+ poly52.ps[1] = Point(217.924, 335.557);
+ poly52.ps[2] = Point(177.924, 335.557);
+ poly52.ps[3] = Point(177.924, 295.557);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(387.924, 151.557);
+ poly84.ps[1] = Point(387.924, 171.557);
+ poly84.ps[2] = Point(367.924, 171.557);
+ poly84.ps[3] = Point(367.924, 151.557);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(387.924, 617.557);
+ poly78.ps[1] = Point(387.924, 637.557);
+ poly78.ps[2] = Point(367.924, 637.557);
+ poly78.ps[3] = Point(367.924, 617.557);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(165.924, 549.557);
+ poly114.ps[1] = Point(165.924, 589.557);
+ poly114.ps[2] = Point(109.924, 589.557);
+ poly114.ps[3] = Point(109.924, 549.557);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(165.924, -35.1578);
+ poly107.ps[1] = Point(165.924, 4.84222);
+ poly107.ps[2] = Point(109.924, 4.84222);
+ poly107.ps[3] = Point(109.924, -35.1578);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(765.924, -130.658);
+ poly106.ps[1] = Point(765.924, -90.6578);
+ poly106.ps[2] = Point(709.924, -90.6578);
+ poly106.ps[3] = Point(709.924, -130.658);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(747.924, 850.057);
+ poly105.ps[1] = Point(747.924, 870.057);
+ poly105.ps[2] = Point(727.924, 870.057);
+ poly105.ps[3] = Point(727.924, 850.057);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(747.924, 151.557);
+ poly104.ps[1] = Point(747.924, 171.557);
+ poly104.ps[2] = Point(727.924, 171.557);
+ poly104.ps[3] = Point(727.924, 151.557);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(968.924, 270.557);
+ poly103.ps[1] = Point(968.924, 290.557);
+ poly103.ps[2] = Point(948.924, 290.557);
+ poly103.ps[3] = Point(948.924, 270.557);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1088.92, -70.6578);
+ poly102.ps[1] = Point(1088.92, -50.6578);
+ poly102.ps[2] = Point(1068.92, -50.6578);
+ poly102.ps[3] = Point(1068.92, -70.6578);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1208.92, 142.342);
+ poly101.ps[1] = Point(1208.92, 162.342);
+ poly101.ps[2] = Point(1188.92, 162.342);
+ poly101.ps[3] = Point(1188.92, 142.342);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1088.92, 50.3422);
+ poly100.ps[1] = Point(1088.92, 70.3422);
+ poly100.ps[2] = Point(1068.92, 70.3422);
+ poly100.ps[3] = Point(1068.92, 50.3422);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(167.924, 641.557);
+ poly115.ps[1] = Point(167.924, 681.557);
+ poly115.ps[2] = Point(111.924, 681.557);
+ poly115.ps[3] = Point(111.924, 641.557);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(165.924, 693.557);
+ poly116.ps[1] = Point(165.924, 733.557);
+ poly116.ps[2] = Point(109.924, 733.557);
+ poly116.ps[3] = Point(109.924, 693.557);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1088.92, 142.342);
+ poly99.ps[1] = Point(1088.92, 162.342);
+ poly99.ps[2] = Point(1068.92, 162.342);
+ poly99.ps[3] = Point(1068.92, 142.342);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1208.92, 378.557);
+ poly98.ps[1] = Point(1208.92, 398.557);
+ poly98.ps[2] = Point(1188.92, 398.557);
+ poly98.ps[3] = Point(1188.92, 378.557);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1088.92, 378.557);
+ poly97.ps[1] = Point(1088.92, 398.557);
+ poly97.ps[2] = Point(1068.92, 398.557);
+ poly97.ps[3] = Point(1068.92, 378.557);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(747.924, 333.557);
+ poly96.ps[1] = Point(747.924, 353.557);
+ poly96.ps[2] = Point(727.924, 353.557);
+ poly96.ps[3] = Point(727.924, 333.557);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(867.924, 151.557);
+ poly95.ps[1] = Point(867.924, 171.557);
+ poly95.ps[2] = Point(847.924, 171.557);
+ poly95.ps[3] = Point(847.924, 151.557);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(867.924, 425.557);
+ poly94.ps[1] = Point(867.924, 445.557);
+ poly94.ps[2] = Point(847.924, 445.557);
+ poly94.ps[3] = Point(847.924, 425.557);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(867.924, 333.557);
+ poly93.ps[1] = Point(867.924, 353.557);
+ poly93.ps[2] = Point(847.924, 353.557);
+ poly93.ps[3] = Point(847.924, 333.557);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(627.924, 425.557);
+ poly92.ps[1] = Point(627.924, 445.557);
+ poly92.ps[2] = Point(607.924, 445.557);
+ poly92.ps[3] = Point(607.924, 425.557);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(285.924, 693.557);
+ poly117.ps[1] = Point(285.924, 733.557);
+ poly117.ps[2] = Point(229.924, 733.557);
+ poly117.ps[3] = Point(229.924, 693.557);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(405.924, 557.557);
+ poly118.ps[1] = Point(405.924, 597.557);
+ poly118.ps[2] = Point(349.924, 597.557);
+ poly118.ps[3] = Point(349.924, 557.557);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(697.924, 507.557);
+ poly36.ps[1] = Point(697.924, 547.557);
+ poly36.ps[2] = Point(657.924, 547.557);
+ poly36.ps[3] = Point(657.924, 507.557);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(457.924, 7.34222);
+ poly55.ps[1] = Point(457.924, 47.3422);
+ poly55.ps[2] = Point(417.924, 47.3422);
+ poly55.ps[3] = Point(417.924, 7.34222);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(697.924, 743.557);
+ poly26.ps[1] = Point(697.924, 783.557);
+ poly26.ps[2] = Point(657.924, 783.557);
+ poly26.ps[3] = Point(657.924, 743.557);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(457.924, 607.557);
+ poly37.ps[1] = Point(457.924, 647.557);
+ poly37.ps[2] = Point(417.924, 647.557);
+ poly37.ps[3] = Point(417.924, 607.557);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(267.924, 753.557);
+ poly77.ps[1] = Point(267.924, 773.557);
+ poly77.ps[2] = Point(247.924, 773.557);
+ poly77.ps[3] = Point(247.924, 753.557);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(937.924, 1.84222);
+ poly60.ps[1] = Point(937.924, 41.8422);
+ poly60.ps[2] = Point(897.924, 41.8422);
+ poly60.ps[3] = Point(897.924, 1.84222);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(97.9242, 599.557);
+ poly65.ps[1] = Point(97.9242, 639.557);
+ poly65.ps[2] = Point(57.9242, 639.557);
+ poly65.ps[3] = Point(57.9242, 599.557);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(165.924, 91.5565);
+ poly108.ps[1] = Point(165.924, 131.557);
+ poly108.ps[2] = Point(109.924, 131.557);
+ poly108.ps[3] = Point(109.924, 91.5565);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(697.924, 323.557);
+ poly54.ps[1] = Point(697.924, 363.557);
+ poly54.ps[2] = Point(657.924, 363.557);
+ poly54.ps[3] = Point(657.924, 323.557);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(167.924, 347.557);
+ poly112.ps[1] = Point(167.924, 387.557);
+ poly112.ps[2] = Point(111.924, 387.557);
+ poly112.ps[3] = Point(111.924, 347.557);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(165.924, 457.557);
+ poly113.ps[1] = Point(165.924, 497.557);
+ poly113.ps[2] = Point(109.924, 497.557);
+ poly113.ps[3] = Point(109.924, 457.557);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(287.924, 193.557);
+ poly110.ps[1] = Point(287.924, 233.557);
+ poly110.ps[2] = Point(231.924, 233.557);
+ poly110.ps[3] = Point(231.924, 193.557);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(697.924, 883.057);
+ poly25.ps[1] = Point(697.924, 923.057);
+ poly25.ps[2] = Point(657.924, 923.057);
+ poly25.ps[3] = Point(657.924, 883.057);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(577.924, 323.557);
+ poly53.ps[1] = Point(577.924, 363.557);
+ poly53.ps[2] = Point(537.924, 363.557);
+ poly53.ps[3] = Point(537.924, 323.557);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(1278.92, -22.1578);
+ poly3.ps[1] = Point(1278.92, 17.8422);
+ poly3.ps[2] = Point(1238.92, 17.8422);
+ poly3.ps[3] = Point(1238.92, -22.1578);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1226.92, 82.3422);
+ poly141.ps[1] = Point(1226.92, 122.342);
+ poly141.ps[2] = Point(1170.92, 122.342);
+ poly141.ps[3] = Point(1170.92, 82.3422);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(1106.92, -130.658);
+ poly142.ps[1] = Point(1106.92, -90.6578);
+ poly142.ps[2] = Point(1050.92, -90.6578);
+ poly142.ps[3] = Point(1050.92, -130.658);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(986.924, 210.557);
+ poly143.ps[1] = Point(986.924, 250.557);
+ poly143.ps[2] = Point(930.924, 250.557);
+ poly143.ps[3] = Point(930.924, 210.557);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(765.924, 91.5565);
+ poly144.ps[1] = Point(765.924, 131.557);
+ poly144.ps[2] = Point(709.924, 131.557);
+ poly144.ps[3] = Point(709.924, 91.5565);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(765.924, 790.057);
+ poly145.ps[1] = Point(765.924, 830.057);
+ poly145.ps[2] = Point(709.924, 830.057);
+ poly145.ps[3] = Point(709.924, 790.057);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(45.9242, 232.5);
+ poly146.ps[1] = Point(45.9242, 272.5);
+ poly146.ps[2] = Point(-14.0758, 272.5);
+ poly146.ps[3] = Point(-14.0758, 232.5);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(-26.0758, 274.75);
+ poly147.ps[1] = Point(-26.0758, 334.75);
+ poly147.ps[2] = Point(-66.0758, 334.75);
+ poly147.ps[3] = Point(-66.0758, 274.75);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(1371.92, -22.1578);
+ poly5.ps[1] = Point(1371.92, 17.8422);
+ poly5.ps[2] = Point(1331.92, 17.8422);
+ poly5.ps[3] = Point(1331.92, -22.1578);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(645.924, 457.557);
+ poly131.ps[1] = Point(645.924, 497.557);
+ poly131.ps[2] = Point(589.924, 497.557);
+ poly131.ps[3] = Point(589.924, 457.557);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(645.924, 365.557);
+ poly132.ps[1] = Point(645.924, 405.557);
+ poly132.ps[2] = Point(589.924, 405.557);
+ poly132.ps[3] = Point(589.924, 365.557);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(885.924, 273.557);
+ poly133.ps[1] = Point(885.924, 313.557);
+ poly133.ps[2] = Point(829.924, 313.557);
+ poly133.ps[3] = Point(829.924, 273.557);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(645.924, 693.557);
+ poly121.ps[1] = Point(645.924, 733.557);
+ poly121.ps[2] = Point(589.924, 733.557);
+ poly121.ps[3] = Point(589.924, 693.557);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(525.924, 833.057);
+ poly122.ps[1] = Point(525.924, 873.057);
+ poly122.ps[2] = Point(469.924, 873.057);
+ poly122.ps[3] = Point(469.924, 833.057);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(885.924, 365.557);
+ poly134.ps[1] = Point(885.924, 405.557);
+ poly134.ps[2] = Point(829.924, 405.557);
+ poly134.ps[3] = Point(829.924, 365.557);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(885.924, 91.5565);
+ poly135.ps[1] = Point(885.924, 131.557);
+ poly135.ps[2] = Point(829.924, 131.557);
+ poly135.ps[3] = Point(829.924, 91.5565);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(765.924, 273.557);
+ poly136.ps[1] = Point(765.924, 313.557);
+ poly136.ps[2] = Point(709.924, 313.557);
+ poly136.ps[3] = Point(709.924, 273.557);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1106.92, 318.557);
+ poly137.ps[1] = Point(1106.92, 358.557);
+ poly137.ps[2] = Point(1050.92, 358.557);
+ poly137.ps[3] = Point(1050.92, 318.557);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(1226.92, 318.557);
+ poly138.ps[1] = Point(1226.92, 358.557);
+ poly138.ps[2] = Point(1170.92, 358.557);
+ poly138.ps[3] = Point(1170.92, 318.557);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1106.92, 82.3422);
+ poly139.ps[1] = Point(1106.92, 122.342);
+ poly139.ps[2] = Point(1050.92, 122.342);
+ poly139.ps[3] = Point(1050.92, 82.3422);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1106.92, -9.65778);
+ poly140.ps[1] = Point(1106.92, 30.3422);
+ poly140.ps[2] = Point(1050.92, 30.3422);
+ poly140.ps[3] = Point(1050.92, -9.65778);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(147.924, 753.557);
+ poly76.ps[1] = Point(147.924, 773.557);
+ poly76.ps[2] = Point(127.924, 773.557);
+ poly76.ps[3] = Point(127.924, 753.557);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1038.92, -80.6578);
+ poly9.ps[1] = Point(1038.92, -40.6578);
+ poly9.ps[2] = Point(998.924, -40.6578);
+ poly9.ps[3] = Point(998.924, -80.6578);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(577.924, 795.557);
+ poly2.ps[1] = Point(577.924, 835.557);
+ poly2.ps[2] = Point(537.924, 835.557);
+ poly2.ps[3] = Point(537.924, 795.557);
+ new ShapeRef(router, poly2, 2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(507.924, 45.8422), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(557.924, 54.8422), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(627.924, 45.8422), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(677.924, 54.8422), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(747.924, 574.057), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(797.924, 574.057), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(507.924, 527.557), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(557.924, 527.557), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(507.924, 435.557), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(557.924, 435.557), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(627.924, 527.557), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(677.924, 527.557), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(627.924, 435.557), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(677.924, 435.557), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(867.924, 343.557), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(917.924, 343.557), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(867.924, 435.557), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(917.924, 435.557), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(867.924, 161.557), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(917.924, 161.557), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(747.924, 343.557), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(797.924, 343.557), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(1088.92, 388.557), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(1138.92, 435.557), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(1208.92, 388.557), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(1258.92, 435.557), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(1088.92, 152.342), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(1138.92, 161.557), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(1088.92, 60.3422), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(1138.92, 60.3422), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1208.92, 152.342), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1258.92, 161.557), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1088.92, -60.6578), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1138.92, -60.6578), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(747.924, 161.557), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(797.924, 161.557), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(747.924, 860.057), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(797.924, 860.057), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(737.924, -110.658), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(737.924, -60.6578), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(137.924, -15.1578), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(137.924, 34.8422), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(137.924, 111.557), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(137.924, 161.557), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(257.924, 111.557), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(257.924, 161.557), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(259.924, 213.557), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(197.924, 213.557), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(257.924, 265.557), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(257.924, 315.557), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(677.924, 343.557), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(727.924, 343.557), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(797.924, 161.557), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(847.924, 161.557), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(77.9242, 34.8422), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(127.924, 34.8422), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(437.924, 527.557), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(487.924, 527.557), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(77.9242, 619.557), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(127.924, 619.557), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(747.924, -60.6578), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(797.924, -60.6578), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(147.924, 34.8422), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(197.924, 161.557), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(267.924, 161.557), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(317.924, 161.557), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(197.924, 223.557), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(197.924, 315.557), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(77.9242, 377.557), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(77.9242, 527.557), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(147.924, 527.557), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(197.924, 527.557), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(147.924, 619.557), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(197.924, 763.557), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(77.9242, 651.557), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(77.9242, 619.557), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(147.924, 763.557), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(197.924, 763.557), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(267.924, 763.557), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(317.924, 763.557), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(387.924, 627.557), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(437.924, 627.557), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(387.924, 763.557), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(437.924, 763.557), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(507.924, 763.557), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(557.924, 763.557), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(627.924, 763.557), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(677.924, 763.557), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(507.924, 903.057), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(557.924, 903.057), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(627.924, 903.057), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(677.924, 903.057), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(387.924, 161.557), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(437.924, 161.557), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(387.924, 27.3422), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(437.924, 27.3422), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(139.924, 367.557), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(77.9242, 367.557), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(137.924, 477.557), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(137.924, 527.557), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(137.924, 569.557), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(137.924, 619.557), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(139.924, 661.557), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(77.9242, 661.557), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(137.924, 713.557), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(137.924, 763.557), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(257.924, 713.557), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(257.924, 763.557), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(377.924, 577.557), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(377.924, 627.557), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(377.924, 713.557), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(377.924, 763.557), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(497.924, 713.557), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(497.924, 763.557), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(617.924, 713.557), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(617.924, 763.557), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(497.924, 853.057), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(497.924, 903.057), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(617.924, 853.057), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(617.924, 903.057), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(377.924, 111.557), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(377.924, 161.557), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(377.924, -22.6578), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(377.924, 27.3422), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(497.924, -4.15778), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(497.924, 45.8422), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(617.924, -4.15778), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(617.924, 45.8422), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(737.924, 524.057), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(737.924, 574.057), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(497.924, 477.557), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(497.924, 527.557), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(497.924, 385.557), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(497.924, 435.557), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(617.924, 477.557), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(617.924, 527.557), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(617.924, 385.557), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(617.924, 435.557), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(857.924, 293.557), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(857.924, 343.557), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(857.924, 385.557), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(857.924, 435.557), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(857.924, 111.557), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(857.924, 161.557), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(737.924, 293.557), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(737.924, 343.557), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(1078.92, 338.557), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(1078.92, 388.557), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(1198.92, 338.557), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1198.92, 388.557), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(1078.92, 102.342), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(1078.92, 152.342), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(1078.92, 10.3422), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(1078.92, 60.3422), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1198.92, 102.342), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1198.92, 152.342), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1078.92, -110.658), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1078.92, -60.6578), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(958.924, 230.557), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(958.924, 280.557), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(737.924, 111.557), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(737.924, 161.557), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(737.924, 810.057), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(737.924, 860.057), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(77.9242, 161.557), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(40.9242, 252.5), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(77.9242, 763.557), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-46.0758, 329.75), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(797.924, 343.557), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(847.924, 435.557), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1018.92, 435.557), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(1068.92, 388.557), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1018.92, 161.557), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1068.92, 152.342), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1018.92, 161.557), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1068.92, 60.3422), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(267.924, 315.557), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(437.924, 161.557), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(437.924, 161.557), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(487.924, 45.8422), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(437.924, 161.557), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(727.924, 161.557), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(77.9242, 161.557), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(127.924, 161.557), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(77.9242, 161.557), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(77.9242, 357.557), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(557.924, 763.557), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(607.924, 763.557), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(77.9242, 527.557), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(127.924, 527.557), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(557.924, 54.8422), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(607.924, 45.8422), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(557.924, 435.557), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(607.924, 435.557), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(77.9242, 763.557), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(77.9242, 671.557), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(77.9242, 763.557), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(127.924, 763.557), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(197.924, 315.557), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(247.924, 315.557), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(1018.92, -60.6578), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(1068.92, -60.6578), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(1138.92, 161.557), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(1188.92, 152.342), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(1138.92, 435.557), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(1188.92, 388.557), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(317.924, 763.557), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(367.924, 627.557), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(317.924, 763.557), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(367.924, 763.557), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(317.924, 763.557), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(487.924, 903.057), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(317.924, 763.557), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(727.924, 574.057), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(557.924, 903.057), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(607.924, 903.057), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(197.924, 763.557), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(247.924, 763.557), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(147.924, 161.557), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(197.924, 161.557), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(197.924, 161.557), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(247.924, 161.557), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(197.924, 161.557), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(197.924, 203.557), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(317.924, 161.557), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(727.924, -60.6578), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(317.924, 161.557), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(367.924, 161.557), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(317.924, 161.557), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(367.924, 27.3422), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(317.924, 161.557), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(487.924, 435.557), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(437.924, 763.557), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(487.924, 763.557), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(437.924, 763.557), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(727.924, 860.057), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(557.924, 527.557), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(607.924, 527.557), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(797.924, 343.557), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(847.924, 343.557), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/lineSegWrapperCrash8");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/2junctions.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/2junctions.vcxproj
new file mode 100755
index 0000000..9af2c2a
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/2junctions.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{4C07F666-EB74-44E9-811C-57CFCCC553C8}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>My2junctions</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\2junctions.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/buildOrthogonalChannelInfo1.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/buildOrthogonalChannelInfo1.vcxproj
new file mode 100755
index 0000000..3caf3c9
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/buildOrthogonalChannelInfo1.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{022C18E8-4B2A-4CF0-8660-9B691473C20E}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>buildOrthogonalChannelInfo1</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\buildOrthogonalChannelInfo1.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging1.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging1.vcxproj
new file mode 100755
index 0000000..d248fcf
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging1.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{33240DD8-FDA7-4157-B022-C71E0B29467B}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>checkpointNudging1</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\checkpointNudging1.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging2.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging2.vcxproj
new file mode 100755
index 0000000..04db55a
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpointNudging2.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{97CCD32F-F345-4B41-BC79-50EE7644FCCD}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>checkpointNudging2</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\checkpointNudging2.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpoints01.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpoints01.vcxproj
new file mode 100755
index 0000000..a919d2b
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/checkpoints01.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{6C2BA2FB-CD3A-409E-B87B-6A105C7CCA48}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>checkpoints01</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\checkpoints01.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin01.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin01.vcxproj
new file mode 100755
index 0000000..43dfff4
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin01.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{F77FA86C-07F5-468C-A162-479EEE7AEC45}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>connectionpin01</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\connectionpin01.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin02.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin02.vcxproj
new file mode 100755
index 0000000..b2e82b9
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin02.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E570E7C6-CFF4-4639-855E-4C1E02F0DD85}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>connectionpin02</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\connectionpin02.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin03.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin03.vcxproj
new file mode 100755
index 0000000..60a30b3
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connectionpin03.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{69ED412A-63E6-4057-9517-D06A55DD99B0}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>connectionpin03</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\connectionpin03.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/connendmove.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connendmove.vcxproj
new file mode 100755
index 0000000..92dfc06
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/connendmove.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{980B4C23-428F-48A1-9111-40AA4777C246}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>connendmove</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\connendmove.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/corneroverlap01.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/corneroverlap01.vcxproj
new file mode 100755
index 0000000..4814c41
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/corneroverlap01.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8E4B6939-A58A-4DF0-B799-5662E25B7BAD}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>corneroverlap01</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\corneroverlap01.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/example.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/example.vcxproj
new file mode 100755
index 0000000..f2d9ba7
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/example.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{6943E11D-22DE-4F6A-A30E-C7D23681B507}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>example</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\example.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging1.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging1.vcxproj
new file mode 100755
index 0000000..bfc8a87
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging1.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DDD617A0-FFE1-4C05-8144-06F637FB1C7B}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>finalSegmentNudging1</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\finalSegmentNudging1.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging2.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging2.vcxproj
new file mode 100755
index 0000000..d50324c
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging2.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{A5A5A67A-A961-4AA1-A248-196D91406169}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>finalSegmentNudging2</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\finalSegmentNudging2.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging3.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging3.vcxproj
new file mode 100755
index 0000000..7877e5e
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/finalSegmentNudging3.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{6C94F0E2-5A2C-4D6D-93FC-43B9A5A578AF}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>finalSegmentNudging3</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\finalSegmentNudging3.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/freeFloatingDirection01.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/freeFloatingDirection01.vcxproj
new file mode 100755
index 0000000..f16bfeb
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/freeFloatingDirection01.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8DB197B1-20B2-485D-B89E-D9A7674193BD}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>freeFloatingDirection01</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\freeFloatingDirection01.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/msctests/junction01.vcxproj b/src/3rdparty/adaptagrams/libavoid/tests/msctests/junction01.vcxproj
new file mode 100755
index 0000000..02f37f9
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/msctests/junction01.vcxproj
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{35D83117-8DA7-495E-A045-DFDC555227C8}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>junction01</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(SolutionDir)..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\junction01.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\libavoid.vcxproj">
+ <Project>{798c3d94-bf71-4c72-a29d-0e74c2eb296a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/multiconnact.cpp b/src/3rdparty/adaptagrams/libavoid/tests/multiconnact.cpp
new file mode 100644
index 0000000..b5e360d
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/multiconnact.cpp
@@ -0,0 +1,75 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2007 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ * Copyright (C) 2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net>
+*/
+
+#include "libavoid/libavoid.h"
+
+
+
+static void connCallback(void *ptr)
+{
+ Avoid::ConnRef *connRef = (Avoid::ConnRef *) ptr;
+
+ printf("Connector %u needs rerouting!\n", connRef->id());
+
+ const Avoid::PolyLine& route = connRef->displayRoute();
+ printf("New path: ");
+ for (size_t i = 0; i < route.ps.size(); ++i)
+ {
+ printf("%s(%f, %f)", (i > 0) ? "-" : "",
+ route.ps[i].x, route.ps[i].y);
+ }
+ printf("\n");
+}
+
+
+int main(void)
+{
+ Avoid::Router *router = new Avoid::Router(Avoid::OrthogonalRouting);
+
+ Avoid::Point srcPt(0,400);
+ Avoid::Point dstPt(775,400);
+ Avoid::ConnRef *connRef = new Avoid::ConnRef(router, srcPt, dstPt);
+ connRef->setCallback(connCallback, connRef);
+
+ Avoid::Point srcPt2(775,625);
+ Avoid::Point dstPt2(350,475);
+ Avoid::ConnRef *connRef2 = new Avoid::ConnRef(router, srcPt2, dstPt2);
+ connRef2->setCallback(connCallback, connRef2);
+
+ router->processTransaction();
+
+ printf("\nShifting endpoint.\n");
+ connRef->setEndpoints(Avoid::Point(0,375), Avoid::Point(775,400));
+ connRef2->setEndpoints(Avoid::Point(775,625), Avoid::Point(350,450));
+ router->processTransaction();
+
+ printf("\nShifting endpoint.\n");
+ connRef->setEndpoints(Avoid::Point(0,400), Avoid::Point(775,400));
+ connRef2->setEndpoints(Avoid::Point(775,625), Avoid::Point(350,475));
+ router->processTransaction();
+
+ delete router;
+ return 0;
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/node1.cpp b/src/3rdparty/adaptagrams/libavoid/tests/node1.cpp
new file mode 100644
index 0000000..1da1150
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/node1.cpp
@@ -0,0 +1,68 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ //router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ double buffer = 4;
+ Polygon poly342721632(4);
+ poly342721632.ps[0] = Point(51910, 50946);
+ poly342721632.ps[1] = Point(51910, 51004);
+ poly342721632.ps[2] = Point(51825, 51004);
+ poly342721632.ps[3] = Point(51825, 50946);
+ ShapeRef *shapeRef342721632 = new ShapeRef(router, poly342721632, 342721632);
+ new ShapeConnectionPin(shapeRef342721632, 1,
+ ATTACH_POS_LEFT, ATTACH_POS_CENTRE, true, buffer, ConnDirLeft);
+
+ Polygon poly807558175(4);
+ poly807558175.ps[0] = Point(51604, 51000);
+ poly807558175.ps[1] = Point(51604, 51085);
+ poly807558175.ps[2] = Point(51546, 51085);
+ poly807558175.ps[3] = Point(51546, 51000);
+ ShapeRef *shapeRef807558175 = new ShapeRef(router, poly807558175, 807558175);
+ new ShapeConnectionPin(shapeRef807558175, 1,
+ ATTACH_POS_CENTRE, ATTACH_POS_TOP, true, buffer, ConnDirNone);
+
+ Polygon poly404900496(4);
+ poly404900496.ps[0] = Point(51525, 50946);
+ poly404900496.ps[1] = Point(51525, 51004);
+ poly404900496.ps[2] = Point(51440, 51004);
+ poly404900496.ps[3] = Point(51440, 50946);
+ ShapeRef *shapeRef404900496 = new ShapeRef(router, poly404900496, 404900496);
+ new ShapeConnectionPin(shapeRef404900496, 1,
+ ATTACH_POS_RIGHT, ATTACH_POS_CENTRE, true, buffer, (ConnDirFlags) 8);
+
+ JunctionRef *junctionRef265539540 = new JunctionRef(router, Point(51625, 50950), 265539540);
+
+ ConnRef *connRef985644192 = new ConnRef(router, 985644192);
+ ConnEnd srcPt985644192(shapeRef404900496, 1);
+ connRef985644192->setSourceEndpoint(srcPt985644192);
+ ConnEnd dstPt985644192(junctionRef265539540);
+ connRef985644192->setDestEndpoint(dstPt985644192);
+ connRef985644192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467016913 = new ConnRef(router, 467016913);
+ ConnEnd srcPt467016913(junctionRef265539540);
+ connRef467016913->setSourceEndpoint(srcPt467016913);
+ ConnEnd dstPt467016913(shapeRef807558175, 1);
+ connRef467016913->setDestEndpoint(dstPt467016913);
+ connRef467016913->setRoutingType((ConnType)2);
+
+ ConnRef *connRef45740440 = new ConnRef(router, 45740440);
+ ConnEnd srcPt45740440(shapeRef342721632, 1);
+ connRef45740440->setSourceEndpoint(srcPt45740440);
+ ConnEnd dstPt45740440(junctionRef265539540);
+ connRef45740440->setDestEndpoint(dstPt45740440);
+ connRef45740440->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/node1");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/nudgeCrossing01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/nudgeCrossing01.cpp
new file mode 100644
index 0000000..f5725e5
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/nudgeCrossing01.cpp
@@ -0,0 +1,2665 @@
+// #00010
+//
+// Regression test to catch a crossing that could be intriduced during
+// nudging when the centring step could previously change the ordering
+// of some segments. It now unifies them, rather than centring.
+//
+#include "libavoid/libavoid.h"
+#include "libcola/cola.h"
+using namespace cola;
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+#if 0
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1299.5, 855.5);
+ poly1.ps[1] = Point(1299.5, 887.5);
+ poly1.ps[2] = Point(1279.5, 887.5);
+ poly1.ps[3] = Point(1279.5, 855.5);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(647.5, 2048.54);
+ poly2.ps[1] = Point(647.5, 2068.54);
+ poly2.ps[2] = Point(615.5, 2068.54);
+ poly2.ps[3] = Point(615.5, 2048.54);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(282.5, 1914.17);
+ poly3.ps[1] = Point(282.5, 1946.17);
+ poly3.ps[2] = Point(262.5, 1946.17);
+ poly3.ps[3] = Point(262.5, 1914.17);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(647.5, 2090.54);
+ poly4.ps[1] = Point(647.5, 2110.54);
+ poly4.ps[2] = Point(615.5, 2110.54);
+ poly4.ps[3] = Point(615.5, 2090.54);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(282.5, 2048.54);
+ poly5.ps[1] = Point(282.5, 2110.54);
+ poly5.ps[2] = Point(220.5, 2110.54);
+ poly5.ps[3] = Point(220.5, 2048.54);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(1731.5, 492);
+ poly6.ps[1] = Point(1731.5, 869);
+ poly6.ps[2] = Point(1509.5, 869);
+ poly6.ps[3] = Point(1509.5, 492);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(1409.5, 45);
+ poly7.ps[1] = Point(1409.5, 219);
+ poly7.ps[2] = Point(1289.5, 219);
+ poly7.ps[3] = Point(1289.5, 45);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(947.5, 2001.54);
+ poly8.ps[1] = Point(947.5, 2033.54);
+ poly8.ps[2] = Point(927.5, 2033.54);
+ poly8.ps[3] = Point(927.5, 2001.54);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1255.5, 1973.54);
+ poly9.ps[1] = Point(1255.5, 1993.54);
+ poly9.ps[2] = Point(1223.5, 1993.54);
+ poly9.ps[3] = Point(1223.5, 1973.54);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(1255.5, 2048.54);
+ poly10.ps[1] = Point(1255.5, 2068.54);
+ poly10.ps[2] = Point(1223.5, 2068.54);
+ poly10.ps[3] = Point(1223.5, 2048.54);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(1135.5, 1869.54);
+ poly11.ps[1] = Point(1135.5, 1889.54);
+ poly11.ps[2] = Point(1103.5, 1889.54);
+ poly11.ps[3] = Point(1103.5, 1869.54);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1129.5, 1782.17);
+ poly12.ps[1] = Point(1129.5, 1814.17);
+ poly12.ps[2] = Point(1109.5, 1814.17);
+ poly12.ps[3] = Point(1109.5, 1782.17);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(829.5, 1859.17);
+ poly13.ps[1] = Point(829.5, 1879.17);
+ poly13.ps[2] = Point(797.5, 1879.17);
+ poly13.ps[3] = Point(797.5, 1859.17);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(422.5, 1859.17);
+ poly14.ps[1] = Point(422.5, 1879.17);
+ poly14.ps[2] = Point(390.5, 1879.17);
+ poly14.ps[3] = Point(390.5, 1859.17);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1472.5, 1859.17);
+ poly15.ps[1] = Point(1472.5, 1879.17);
+ poly15.ps[2] = Point(1440.5, 1879.17);
+ poly15.ps[3] = Point(1440.5, 1859.17);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(979.028, 1370.55);
+ poly16.ps[1] = Point(979.028, 1414.55);
+ poly16.ps[2] = Point(891.028, 1414.55);
+ poly16.ps[3] = Point(891.028, 1370.55);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(1299.5, 1649.17);
+ poly17.ps[1] = Point(1299.5, 1681.17);
+ poly17.ps[2] = Point(1279.5, 1681.17);
+ poly17.ps[3] = Point(1279.5, 1649.17);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(252, 1663.17);
+ poly18.ps[1] = Point(252, 1827.17);
+ poly18.ps[2] = Point(45, 1827.17);
+ poly18.ps[3] = Point(45, 1663.17);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(1299.5, 1525.17);
+ poly19.ps[1] = Point(1299.5, 1557.17);
+ poly19.ps[2] = Point(1279.5, 1557.17);
+ poly19.ps[3] = Point(1279.5, 1525.17);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(1299.5, 1401.17);
+ poly20.ps[1] = Point(1299.5, 1433.17);
+ poly20.ps[2] = Point(1279.5, 1433.17);
+ poly20.ps[3] = Point(1279.5, 1401.17);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(1278.5, 1011.17);
+ poly21.ps[1] = Point(1278.5, 1043.17);
+ poly21.ps[2] = Point(1258.5, 1043.17);
+ poly21.ps[3] = Point(1258.5, 1011.17);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(849, 1332.17);
+ poly22.ps[1] = Point(849, 1392.17);
+ poly22.ps[2] = Point(536, 1392.17);
+ poly22.ps[3] = Point(536, 1332.17);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(1104.5, 956.167);
+ poly23.ps[1] = Point(1104.5, 976.167);
+ poly23.ps[2] = Point(1072.5, 976.167);
+ poly23.ps[3] = Point(1072.5, 956.167);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(1278.5, 713.5);
+ poly24.ps[1] = Point(1278.5, 745.5);
+ poly24.ps[2] = Point(1258.5, 745.5);
+ poly24.ps[3] = Point(1258.5, 713.5);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(1411.5, 713.5);
+ poly25.ps[1] = Point(1411.5, 745.5);
+ poly25.ps[2] = Point(1391.5, 745.5);
+ poly25.ps[3] = Point(1391.5, 713.5);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(1441.5, 422.5);
+ poly26.ps[1] = Point(1441.5, 442.5);
+ poly26.ps[2] = Point(1409.5, 442.5);
+ poly26.ps[3] = Point(1409.5, 422.5);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(1299.5, 535.25);
+ poly27.ps[1] = Point(1299.5, 567.25);
+ poly27.ps[2] = Point(1279.5, 567.25);
+ poly27.ps[3] = Point(1279.5, 535.25);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(1299.5, 344);
+ poly28.ps[1] = Point(1299.5, 376);
+ poly28.ps[2] = Point(1279.5, 376);
+ poly28.ps[3] = Point(1279.5, 344);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(1042.5, 628.75);
+ poly29.ps[1] = Point(1042.5, 648.75);
+ poly29.ps[2] = Point(1010.5, 648.75);
+ poly29.ps[3] = Point(1010.5, 628.75);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(523.5, 532.75);
+ poly30.ps[1] = Point(523.5, 552.75);
+ poly30.ps[2] = Point(491.5, 552.75);
+ poly30.ps[3] = Point(491.5, 532.75);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(523.5, 607.75);
+ poly31.ps[1] = Point(523.5, 627.75);
+ poly31.ps[2] = Point(491.5, 627.75);
+ poly31.ps[3] = Point(491.5, 607.75);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(922.5, 541.25);
+ poly32.ps[1] = Point(922.5, 561.25);
+ poly32.ps[2] = Point(890.5, 561.25);
+ poly32.ps[3] = Point(890.5, 541.25);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(761.5, 535.25);
+ poly33.ps[1] = Point(761.5, 567.25);
+ poly33.ps[2] = Point(741.5, 567.25);
+ poly33.ps[3] = Point(741.5, 535.25);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(296.5, 535.25);
+ poly34.ps[1] = Point(296.5, 567.25);
+ poly34.ps[2] = Point(276.5, 567.25);
+ poly34.ps[3] = Point(276.5, 535.25);
+ new ShapeRef(router, poly34, 34);
+#endif
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(616.5, 285);
+ poly35.ps[1] = Point(616.5, 305);
+ poly35.ps[2] = Point(584.5, 305);
+ poly35.ps[3] = Point(584.5, 285);
+ new ShapeRef(router, poly35, 35);
+
+#if 0
+ Polygon poly36(4);
+ poly36.ps[0] = Point(616.5, 360);
+ poly36.ps[1] = Point(616.5, 380);
+ poly36.ps[2] = Point(584.5, 380);
+ poly36.ps[3] = Point(584.5, 360);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(616.5, 552);
+ poly37.ps[1] = Point(616.5, 572);
+ poly37.ps[2] = Point(584.5, 572);
+ poly37.ps[3] = Point(584.5, 552);
+ new ShapeRef(router, poly37, 37);
+#endif
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(891.5, 331);
+ poly38.ps[1] = Point(891.5, 351);
+ poly38.ps[2] = Point(859.5, 351);
+ poly38.ps[3] = Point(859.5, 331);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(891.5, 229);
+ poly39.ps[1] = Point(891.5, 249);
+ poly39.ps[2] = Point(859.5, 249);
+ poly39.ps[3] = Point(859.5, 229);
+ new ShapeRef(router, poly39, 39);
+
+#if 0
+ Polygon poly40(4);
+ poly40.ps[0] = Point(402, 96.5);
+ poly40.ps[1] = Point(402, 131.5);
+ poly40.ps[2] = Point(141, 131.5);
+ poly40.ps[3] = Point(141, 96.5);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(554.5, 2002.21);
+ poly41.ps[1] = Point(554.5, 2022.21);
+ poly41.ps[2] = Point(522.5, 2022.21);
+ poly41.ps[3] = Point(522.5, 2002.21);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(1299.5, 1247.17);
+ poly42.ps[1] = Point(1299.5, 1279.17);
+ poly42.ps[2] = Point(1279.5, 1279.17);
+ poly42.ps[3] = Point(1279.5, 1247.17);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(616.5, 435);
+ poly43.ps[1] = Point(616.5, 455);
+ poly43.ps[2] = Point(584.5, 455);
+ poly43.ps[3] = Point(584.5, 435);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(523.5, 649.75);
+ poly44.ps[1] = Point(523.5, 669.75);
+ poly44.ps[2] = Point(491.5, 669.75);
+ poly44.ps[3] = Point(491.5, 649.75);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(302.5, 740.75);
+ poly45.ps[1] = Point(302.5, 760.75);
+ poly45.ps[2] = Point(270.5, 760.75);
+ poly45.ps[3] = Point(270.5, 740.75);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(302.5, 842.75);
+ poly46.ps[1] = Point(302.5, 862.75);
+ poly46.ps[2] = Point(270.5, 862.75);
+ poly46.ps[3] = Point(270.5, 842.75);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(678.5, 740.75);
+ poly47.ps[1] = Point(678.5, 760.75);
+ poly47.ps[2] = Point(646.5, 760.75);
+ poly47.ps[3] = Point(646.5, 740.75);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(678.5, 842.75);
+ poly48.ps[1] = Point(678.5, 862.75);
+ poly48.ps[2] = Point(646.5, 862.75);
+ poly48.ps[3] = Point(646.5, 842.75);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1530.5, 401.5);
+ poly49.ps[1] = Point(1530.5, 463.5);
+ poly49.ps[2] = Point(1468.5, 463.5);
+ poly49.ps[3] = Point(1468.5, 401.5);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(1320.5, 249);
+ poly50.ps[1] = Point(1320.5, 311);
+ poly50.ps[2] = Point(1258.5, 311);
+ poly50.ps[3] = Point(1258.5, 249);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(1320.5, 1448.17);
+ poly51.ps[1] = Point(1320.5, 1510.17);
+ poly51.ps[2] = Point(1258.5, 1510.17);
+ poly51.ps[3] = Point(1258.5, 1448.17);
+ new ShapeRef(router, poly51, 51);
+#endif
+ Polygon poly52(4);
+ poly52.ps[0] = Point(317.5, 435);
+ poly52.ps[1] = Point(317.5, 497);
+ poly52.ps[2] = Point(255.5, 497);
+ poly52.ps[3] = Point(255.5, 435);
+ new ShapeRef(router, poly52, 52);
+#if 0
+ Polygon poly53(4);
+ poly53.ps[0] = Point(317.5, 607.75);
+ poly53.ps[1] = Point(317.5, 669.75);
+ poly53.ps[2] = Point(255.5, 669.75);
+ poly53.ps[3] = Point(255.5, 607.75);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(875.5, 935.167);
+ poly54.ps[1] = Point(875.5, 997.167);
+ poly54.ps[2] = Point(813.5, 997.167);
+ poly54.ps[3] = Point(813.5, 935.167);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(875.5, 607.75);
+ poly55.ps[1] = Point(875.5, 669.75);
+ poly55.ps[2] = Point(813.5, 669.75);
+ poly55.ps[3] = Point(813.5, 607.75);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(1320.5, 435);
+ poly56.ps[1] = Point(1320.5, 497);
+ poly56.ps[2] = Point(1258.5, 497);
+ poly56.ps[3] = Point(1258.5, 435);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(1320.5, 607.75);
+ poly57.ps[1] = Point(1320.5, 669.75);
+ poly57.ps[2] = Point(1258.5, 669.75);
+ poly57.ps[3] = Point(1258.5, 607.75);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(1320.5, 1572.17);
+ poly58.ps[1] = Point(1320.5, 1634.17);
+ poly58.ps[2] = Point(1258.5, 1634.17);
+ poly58.ps[3] = Point(1258.5, 1572.17);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(1320.5, 1324.17);
+ poly59.ps[1] = Point(1320.5, 1386.17);
+ poly59.ps[2] = Point(1258.5, 1386.17);
+ poly59.ps[3] = Point(1258.5, 1324.17);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(1320.5, 1108.17);
+ poly60.ps[1] = Point(1320.5, 1170.17);
+ poly60.ps[2] = Point(1258.5, 1170.17);
+ poly60.ps[3] = Point(1258.5, 1108.17);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(1561.5, 1838.17);
+ poly61.ps[1] = Point(1561.5, 1900.17);
+ poly61.ps[2] = Point(1499.5, 1900.17);
+ poly61.ps[3] = Point(1499.5, 1838.17);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(813.5, 1981.21);
+ poly62.ps[1] = Point(813.5, 2043.21);
+ poly62.ps[2] = Point(751.5, 2043.21);
+ poly62.ps[3] = Point(751.5, 1981.21);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(1456.5, 2048.54);
+ poly63.ps[1] = Point(1456.5, 2110.54);
+ poly63.ps[2] = Point(1394.5, 2110.54);
+ poly63.ps[3] = Point(1394.5, 2048.54);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(1320.5, 1838.17);
+ poly64.ps[1] = Point(1320.5, 1900.17);
+ poly64.ps[2] = Point(1258.5, 1900.17);
+ poly64.ps[3] = Point(1258.5, 1838.17);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(968.5, 1838.17);
+ poly65.ps[1] = Point(968.5, 1900.17);
+ poly65.ps[2] = Point(906.5, 1900.17);
+ poly65.ps[3] = Point(906.5, 1838.17);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(282.5, 1838.17);
+ poly66.ps[1] = Point(282.5, 1900.17);
+ poly66.ps[2] = Point(220.5, 1900.17);
+ poly66.ps[3] = Point(220.5, 1838.17);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(968.5, 2048.54);
+ poly67.ps[1] = Point(968.5, 2110.54);
+ poly67.ps[2] = Point(906.5, 2110.54);
+ poly67.ps[3] = Point(906.5, 2048.54);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(600.5, 1838.17);
+ poly68.ps[1] = Point(600.5, 1900.17);
+ poly68.ps[2] = Point(538.5, 1900.17);
+ poly68.ps[3] = Point(538.5, 1838.17);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(437.5, 1981.21);
+ poly69.ps[1] = Point(437.5, 2043.21);
+ poly69.ps[2] = Point(375.5, 2043.21);
+ poly69.ps[3] = Point(375.5, 1981.21);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(1320.5, 759.5);
+ poly70.ps[1] = Point(1320.5, 821.5);
+ poly70.ps[2] = Point(1258.5, 821.5);
+ poly70.ps[3] = Point(1258.5, 759.5);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(247.5, 719.75);
+ poly71.ps[1] = Point(247.5, 781.75);
+ poly71.ps[2] = Point(185.5, 781.75);
+ poly71.ps[3] = Point(185.5, 719.75);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(468.5, 719.75);
+ poly72.ps[1] = Point(468.5, 781.75);
+ poly72.ps[2] = Point(406.5, 781.75);
+ poly72.ps[3] = Point(406.5, 719.75);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(468.5, 821.75);
+ poly73.ps[1] = Point(468.5, 883.75);
+ poly73.ps[2] = Point(406.5, 883.75);
+ poly73.ps[3] = Point(406.5, 821.75);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(247.5, 821.75);
+ poly74.ps[1] = Point(247.5, 883.75);
+ poly74.ps[2] = Point(185.5, 883.75);
+ poly74.ps[3] = Point(185.5, 821.75);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(391.5, 1572.17);
+ poly75.ps[1] = Point(391.5, 1592.17);
+ poly75.ps[2] = Point(359.5, 1592.17);
+ poly75.ps[3] = Point(359.5, 1572.17);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(282.5, 1572.17);
+ poly76.ps[1] = Point(282.5, 1634.17);
+ poly76.ps[2] = Point(220.5, 1634.17);
+ poly76.ps[3] = Point(220.5, 1572.17);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1255.5, 2090.54);
+ poly77.ps[1] = Point(1255.5, 2110.54);
+ poly77.ps[2] = Point(1223.5, 2110.54);
+ poly77.ps[3] = Point(1223.5, 2090.54);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(391.5, 1614.17);
+ poly78.ps[1] = Point(391.5, 1634.17);
+ poly78.ps[2] = Point(359.5, 1634.17);
+ poly78.ps[3] = Point(359.5, 1614.17);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(1604.5, 1943.04);
+ poly79.ps[1] = Point(1604.5, 2108.04);
+ poly79.ps[2] = Point(1467.5, 2108.04);
+ poly79.ps[3] = Point(1467.5, 1943.04);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(1320.5, 1011.17);
+ poly80.ps[1] = Point(1320.5, 1043.17);
+ poly80.ps[2] = Point(1300.5, 1043.17);
+ poly80.ps[3] = Point(1300.5, 1011.17);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(1406.5, 1185.17);
+ poly81.ps[1] = Point(1406.5, 1217.17);
+ poly81.ps[2] = Point(1386.5, 1217.17);
+ poly81.ps[3] = Point(1386.5, 1185.17);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(1448.5, 1185.17);
+ poly82.ps[1] = Point(1448.5, 1217.17);
+ poly82.ps[2] = Point(1428.5, 1217.17);
+ poly82.ps[3] = Point(1428.5, 1185.17);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(678.5, 1730.17);
+ poly83.ps[1] = Point(678.5, 1750.17);
+ poly83.ps[2] = Point(646.5, 1750.17);
+ poly83.ps[3] = Point(646.5, 1730.17);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(1539.5, 1185.17);
+ poly84.ps[1] = Point(1539.5, 1217.17);
+ poly84.ps[2] = Point(1519.5, 1217.17);
+ poly84.ps[3] = Point(1519.5, 1185.17);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(1088.5, 1232.17);
+ poly85.ps[1] = Point(1088.5, 1294.17);
+ poly85.ps[2] = Point(1026.5, 1294.17);
+ poly85.ps[3] = Point(1026.5, 1232.17);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(1224.5, 1333.17);
+ poly86.ps[1] = Point(1224.5, 1353.17);
+ poly86.ps[2] = Point(1192.5, 1353.17);
+ poly86.ps[3] = Point(1192.5, 1333.17);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(1224.5, 1129.17);
+ poly87.ps[1] = Point(1224.5, 1149.17);
+ poly87.ps[2] = Point(1192.5, 1149.17);
+ poly87.ps[3] = Point(1192.5, 1129.17);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(1320.5, 935.167);
+ poly88.ps[1] = Point(1320.5, 997.167);
+ poly88.ps[2] = Point(1258.5, 997.167);
+ poly88.ps[3] = Point(1258.5, 935.167);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(240.5, 1914.17);
+ poly89.ps[1] = Point(240.5, 1946.17);
+ poly89.ps[2] = Point(220.5, 1946.17);
+ poly89.ps[3] = Point(220.5, 1914.17);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(1320.5, 713.5);
+ poly90.ps[1] = Point(1320.5, 745.5);
+ poly90.ps[2] = Point(1300.5, 745.5);
+ poly90.ps[3] = Point(1300.5, 713.5);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(616.5, 477);
+ poly91.ps[1] = Point(616.5, 497);
+ poly91.ps[2] = Point(584.5, 497);
+ poly91.ps[3] = Point(584.5, 477);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(523.5, 724.75);
+ poly92.ps[1] = Point(523.5, 744.75);
+ poly92.ps[2] = Point(491.5, 744.75);
+ poly92.ps[3] = Point(491.5, 724.75);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1255.5, 2165.54);
+ poly93.ps[1] = Point(1255.5, 2185.54);
+ poly93.ps[2] = Point(1223.5, 2185.54);
+ poly93.ps[3] = Point(1223.5, 2165.54);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(968.5, 1734.17);
+ poly94.ps[1] = Point(968.5, 1796.17);
+ poly94.ps[2] = Point(906.5, 1796.17);
+ poly94.ps[3] = Point(906.5, 1734.17);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(1375.5, 851.5);
+ poly95.ps[1] = Point(1375.5, 891.5);
+ poly95.ps[2] = Point(1299.5, 891.5);
+ poly95.ps[3] = Point(1299.5, 851.5);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(659.5, 1988.54);
+ poly96.ps[1] = Point(659.5, 2048.54);
+ poly96.ps[2] = Point(603.5, 2048.54);
+ poly96.ps[3] = Point(603.5, 1988.54);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(358.5, 1910.17);
+ poly97.ps[1] = Point(358.5, 1950.17);
+ poly97.ps[2] = Point(282.5, 1950.17);
+ poly97.ps[3] = Point(282.5, 1910.17);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(659.5, 2110.54);
+ poly98.ps[1] = Point(659.5, 2170.54);
+ poly98.ps[2] = Point(603.5, 2170.54);
+ poly98.ps[3] = Point(603.5, 2110.54);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1023.5, 1997.54);
+ poly99.ps[1] = Point(1023.5, 2037.54);
+ poly99.ps[2] = Point(947.5, 2037.54);
+ poly99.ps[3] = Point(947.5, 1997.54);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(1267.5, 1913.54);
+ poly100.ps[1] = Point(1267.5, 1973.54);
+ poly100.ps[2] = Point(1211.5, 1973.54);
+ poly100.ps[3] = Point(1211.5, 1913.54);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(1267.5, 1988.54);
+ poly101.ps[1] = Point(1267.5, 2048.54);
+ poly101.ps[2] = Point(1211.5, 2048.54);
+ poly101.ps[3] = Point(1211.5, 1988.54);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1147.5, 1889.54);
+ poly102.ps[1] = Point(1147.5, 1949.54);
+ poly102.ps[2] = Point(1091.5, 1949.54);
+ poly102.ps[3] = Point(1091.5, 1889.54);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(1205.5, 1778.17);
+ poly103.ps[1] = Point(1205.5, 1818.17);
+ poly103.ps[2] = Point(1129.5, 1818.17);
+ poly103.ps[3] = Point(1129.5, 1778.17);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(841.5, 1799.17);
+ poly104.ps[1] = Point(841.5, 1859.17);
+ poly104.ps[2] = Point(785.5, 1859.17);
+ poly104.ps[3] = Point(785.5, 1799.17);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(434.5, 1799.17);
+ poly105.ps[1] = Point(434.5, 1859.17);
+ poly105.ps[2] = Point(378.5, 1859.17);
+ poly105.ps[3] = Point(378.5, 1799.17);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(1484.5, 1799.17);
+ poly106.ps[1] = Point(1484.5, 1859.17);
+ poly106.ps[2] = Point(1428.5, 1859.17);
+ poly106.ps[3] = Point(1428.5, 1799.17);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(1375.5, 1645.17);
+ poly107.ps[1] = Point(1375.5, 1685.17);
+ poly107.ps[2] = Point(1299.5, 1685.17);
+ poly107.ps[3] = Point(1299.5, 1645.17);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(1375.5, 1521.17);
+ poly108.ps[1] = Point(1375.5, 1561.17);
+ poly108.ps[2] = Point(1299.5, 1561.17);
+ poly108.ps[3] = Point(1299.5, 1521.17);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1375.5, 1397.17);
+ poly109.ps[1] = Point(1375.5, 1437.17);
+ poly109.ps[2] = Point(1299.5, 1437.17);
+ poly109.ps[3] = Point(1299.5, 1397.17);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(1258.5, 1007.17);
+ poly110.ps[1] = Point(1258.5, 1047.17);
+ poly110.ps[2] = Point(1182.5, 1047.17);
+ poly110.ps[3] = Point(1182.5, 1007.17);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(1116.5, 896.167);
+ poly111.ps[1] = Point(1116.5, 956.167);
+ poly111.ps[2] = Point(1060.5, 956.167);
+ poly111.ps[3] = Point(1060.5, 896.167);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(1258.5, 709.5);
+ poly112.ps[1] = Point(1258.5, 749.5);
+ poly112.ps[2] = Point(1182.5, 749.5);
+ poly112.ps[3] = Point(1182.5, 709.5);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(1487.5, 709.5);
+ poly113.ps[1] = Point(1487.5, 749.5);
+ poly113.ps[2] = Point(1411.5, 749.5);
+ poly113.ps[3] = Point(1411.5, 709.5);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(1453.5, 362.5);
+ poly114.ps[1] = Point(1453.5, 422.5);
+ poly114.ps[2] = Point(1397.5, 422.5);
+ poly114.ps[3] = Point(1397.5, 362.5);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(1375.5, 531.25);
+ poly115.ps[1] = Point(1375.5, 571.25);
+ poly115.ps[2] = Point(1299.5, 571.25);
+ poly115.ps[3] = Point(1299.5, 531.25);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(1375.5, 340);
+ poly116.ps[1] = Point(1375.5, 380);
+ poly116.ps[2] = Point(1299.5, 380);
+ poly116.ps[3] = Point(1299.5, 340);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(1054.5, 568.75);
+ poly117.ps[1] = Point(1054.5, 628.75);
+ poly117.ps[2] = Point(998.5, 628.75);
+ poly117.ps[3] = Point(998.5, 568.75);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(535.5, 472.75);
+ poly118.ps[1] = Point(535.5, 532.75);
+ poly118.ps[2] = Point(479.5, 532.75);
+ poly118.ps[3] = Point(479.5, 472.75);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(535.5, 547.75);
+ poly119.ps[1] = Point(535.5, 607.75);
+ poly119.ps[2] = Point(479.5, 607.75);
+ poly119.ps[3] = Point(479.5, 547.75);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(934.5, 481.25);
+ poly120.ps[1] = Point(934.5, 541.25);
+ poly120.ps[2] = Point(878.5, 541.25);
+ poly120.ps[3] = Point(878.5, 481.25);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(741.5, 531.25);
+ poly121.ps[1] = Point(741.5, 571.25);
+ poly121.ps[2] = Point(665.5, 571.25);
+ poly121.ps[3] = Point(665.5, 531.25);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(372.5, 531.25);
+ poly122.ps[1] = Point(372.5, 571.25);
+ poly122.ps[2] = Point(296.5, 571.25);
+ poly122.ps[3] = Point(296.5, 531.25);
+ new ShapeRef(router, poly122, 122);
+#endif
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(628.5, 225);
+ poly123.ps[1] = Point(628.5, 285);
+ poly123.ps[2] = Point(572.5, 285);
+ poly123.ps[3] = Point(572.5, 225);
+ new ShapeRef(router, poly123, 123);
+
+#if 0
+ Polygon poly124(4);
+ poly124.ps[0] = Point(628.5, 300);
+ poly124.ps[1] = Point(628.5, 360);
+ poly124.ps[2] = Point(572.5, 360);
+ poly124.ps[3] = Point(572.5, 300);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(628.5, 572);
+ poly125.ps[1] = Point(628.5, 632);
+ poly125.ps[2] = Point(572.5, 632);
+ poly125.ps[3] = Point(572.5, 572);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(903.5, 271);
+ poly126.ps[1] = Point(903.5, 331);
+ poly126.ps[2] = Point(847.5, 331);
+ poly126.ps[3] = Point(847.5, 271);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(903.5, 169);
+ poly127.ps[1] = Point(903.5, 229);
+ poly127.ps[2] = Point(847.5, 229);
+ poly127.ps[3] = Point(847.5, 169);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(566.5, 1942.21);
+ poly128.ps[1] = Point(566.5, 2002.21);
+ poly128.ps[2] = Point(510.5, 2002.21);
+ poly128.ps[3] = Point(510.5, 1942.21);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(1375.5, 1243.17);
+ poly129.ps[1] = Point(1375.5, 1283.17);
+ poly129.ps[2] = Point(1299.5, 1283.17);
+ poly129.ps[3] = Point(1299.5, 1243.17);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(628.5, 375);
+ poly130.ps[1] = Point(628.5, 435);
+ poly130.ps[2] = Point(572.5, 435);
+ poly130.ps[3] = Point(572.5, 375);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(535.5, 669.75);
+ poly131.ps[1] = Point(535.5, 729.75);
+ poly131.ps[2] = Point(479.5, 729.75);
+ poly131.ps[3] = Point(479.5, 669.75);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(314.5, 680.75);
+ poly132.ps[1] = Point(314.5, 740.75);
+ poly132.ps[2] = Point(258.5, 740.75);
+ poly132.ps[3] = Point(258.5, 680.75);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(314.5, 782.75);
+ poly133.ps[1] = Point(314.5, 842.75);
+ poly133.ps[2] = Point(258.5, 842.75);
+ poly133.ps[3] = Point(258.5, 782.75);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(690.5, 680.75);
+ poly134.ps[1] = Point(690.5, 740.75);
+ poly134.ps[2] = Point(634.5, 740.75);
+ poly134.ps[3] = Point(634.5, 680.75);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(690.5, 782.75);
+ poly135.ps[1] = Point(690.5, 842.75);
+ poly135.ps[2] = Point(634.5, 842.75);
+ poly135.ps[3] = Point(634.5, 782.75);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(403.5, 1512.17);
+ poly136.ps[1] = Point(403.5, 1572.17);
+ poly136.ps[2] = Point(347.5, 1572.17);
+ poly136.ps[3] = Point(347.5, 1512.17);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(1267.5, 2110.54);
+ poly137.ps[1] = Point(1267.5, 2170.54);
+ poly137.ps[2] = Point(1211.5, 2170.54);
+ poly137.ps[3] = Point(1211.5, 2110.54);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(403.5, 1634.17);
+ poly138.ps[1] = Point(403.5, 1694.17);
+ poly138.ps[2] = Point(347.5, 1694.17);
+ poly138.ps[3] = Point(347.5, 1634.17);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(1396.5, 1007.17);
+ poly139.ps[1] = Point(1396.5, 1047.17);
+ poly139.ps[2] = Point(1320.5, 1047.17);
+ poly139.ps[3] = Point(1320.5, 1007.17);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(1386.5, 1181.17);
+ poly140.ps[1] = Point(1386.5, 1221.17);
+ poly140.ps[2] = Point(1310.5, 1221.17);
+ poly140.ps[3] = Point(1310.5, 1181.17);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(1524.5, 1181.17);
+ poly141.ps[1] = Point(1524.5, 1221.17);
+ poly141.ps[2] = Point(1448.5, 1221.17);
+ poly141.ps[3] = Point(1448.5, 1181.17);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(690.5, 1670.17);
+ poly142.ps[1] = Point(690.5, 1730.17);
+ poly142.ps[2] = Point(634.5, 1730.17);
+ poly142.ps[3] = Point(634.5, 1670.17);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(1615.5, 1181.17);
+ poly143.ps[1] = Point(1615.5, 1221.17);
+ poly143.ps[2] = Point(1539.5, 1221.17);
+ poly143.ps[3] = Point(1539.5, 1181.17);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(1236.5, 1273.17);
+ poly144.ps[1] = Point(1236.5, 1333.17);
+ poly144.ps[2] = Point(1180.5, 1333.17);
+ poly144.ps[3] = Point(1180.5, 1273.17);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(1236.5, 1069.17);
+ poly145.ps[1] = Point(1236.5, 1129.17);
+ poly145.ps[2] = Point(1180.5, 1129.17);
+ poly145.ps[3] = Point(1180.5, 1069.17);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(220.5, 1910.17);
+ poly146.ps[1] = Point(220.5, 1950.17);
+ poly146.ps[2] = Point(144.5, 1950.17);
+ poly146.ps[3] = Point(144.5, 1910.17);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(1396.5, 709.5);
+ poly147.ps[1] = Point(1396.5, 749.5);
+ poly147.ps[2] = Point(1320.5, 749.5);
+ poly147.ps[3] = Point(1320.5, 709.5);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(628.5, 497);
+ poly148.ps[1] = Point(628.5, 557);
+ poly148.ps[2] = Point(572.5, 557);
+ poly148.ps[3] = Point(572.5, 497);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(535.5, 744.75);
+ poly149.ps[1] = Point(535.5, 804.75);
+ poly149.ps[2] = Point(479.5, 804.75);
+ poly149.ps[3] = Point(479.5, 744.75);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(1267.5, 2185.54);
+ poly150.ps[1] = Point(1267.5, 2245.54);
+ poly150.ps[2] = Point(1211.5, 2245.54);
+ poly150.ps[3] = Point(1211.5, 2185.54);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(1570, 641);
+ poly151.ps[1] = Point(1570, 681);
+ poly151.ps[2] = Point(1510, 681);
+ poly151.ps[3] = Point(1510, 641);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(1570, 681);
+ poly152.ps[1] = Point(1570, 721);
+ poly152.ps[2] = Point(1510, 721);
+ poly152.ps[3] = Point(1510, 681);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(1621, 809.5);
+ poly153.ps[1] = Point(1621, 869.5);
+ poly153.ps[2] = Point(1581, 869.5);
+ poly153.ps[3] = Point(1581, 809.5);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(1661, 809.5);
+ poly154.ps[1] = Point(1661, 869.5);
+ poly154.ps[2] = Point(1621, 869.5);
+ poly154.ps[3] = Point(1621, 809.5);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(1370, 159.5);
+ poly155.ps[1] = Point(1370, 219.5);
+ poly155.ps[2] = Point(1330, 219.5);
+ poly155.ps[3] = Point(1330, 159.5);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(252.5, 1705.67);
+ poly156.ps[1] = Point(252.5, 1745.67);
+ poly156.ps[2] = Point(192.5, 1745.67);
+ poly156.ps[3] = Point(192.5, 1705.67);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(252.5, 1745.67);
+ poly157.ps[1] = Point(252.5, 1785.67);
+ poly157.ps[2] = Point(192.5, 1785.67);
+ poly157.ps[3] = Point(192.5, 1745.67);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(849.5, 1342.67);
+ poly158.ps[1] = Point(849.5, 1382.67);
+ poly158.ps[2] = Point(789.5, 1382.67);
+ poly158.ps[3] = Point(789.5, 1342.67);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(1556.5, 1943.54);
+ poly159.ps[1] = Point(1556.5, 2003.54);
+ poly159.ps[2] = Point(1516.5, 2003.54);
+ poly159.ps[3] = Point(1516.5, 1943.54);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(661.5, 2058.54);
+ poly160.ps[1] = Point(661.5, 2100.54);
+ poly160.ps[2] = Point(593.5, 2100.54);
+ poly160.ps[3] = Point(593.5, 2058.54);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(272.5, 1900.17);
+ poly161.ps[1] = Point(272.5, 1960.17);
+ poly161.ps[2] = Point(230.5, 1960.17);
+ poly161.ps[3] = Point(230.5, 1900.17);
+ new ShapeRef(router, poly161, 161);
+#endif
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(630.5, 295);
+ poly162.ps[1] = Point(630.5, 562);
+ poly162.ps[2] = Point(562.5, 562);
+ poly162.ps[3] = Point(562.5, 295);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(537.5, 542.75);
+ poly163.ps[1] = Point(537.5, 734.75);
+ poly163.ps[2] = Point(469.5, 734.75);
+ poly163.ps[3] = Point(469.5, 542.75);
+ new ShapeRef(router, poly163, 163);
+
+#if 0
+ Polygon poly164(4);
+ poly164.ps[0] = Point(1401.5, 699.5);
+ poly164.ps[1] = Point(1401.5, 759.5);
+ poly164.ps[2] = Point(1268.5, 759.5);
+ poly164.ps[3] = Point(1268.5, 699.5);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(405.5, 1582.17);
+ poly165.ps[1] = Point(405.5, 1624.17);
+ poly165.ps[2] = Point(337.5, 1624.17);
+ poly165.ps[3] = Point(337.5, 1582.17);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(1529.5, 1171.17);
+ poly166.ps[1] = Point(1529.5, 1231.17);
+ poly166.ps[2] = Point(1396.5, 1231.17);
+ poly166.ps[3] = Point(1396.5, 1171.17);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(1310.5, 997.167);
+ poly167.ps[1] = Point(1310.5, 1057.17);
+ poly167.ps[2] = Point(1268.5, 1057.17);
+ poly167.ps[3] = Point(1268.5, 997.167);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(1269.5, 1983.54);
+ poly168.ps[1] = Point(1269.5, 2175.54);
+ poly168.ps[2] = Point(1201.5, 2175.54);
+ poly168.ps[3] = Point(1201.5, 1983.54);
+ new ShapeRef(router, poly168, 168);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(1289.5, 886.5), 2);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(844.5, 966.167), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(1289.5, 856.5), 1);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(1289.5, 790.5), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(1289.5, 886.5), 2);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(1289.5, 966.167), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(616.5, 2058.54), 4);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(251.5, 2079.54), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints172(1);
+ checkpoints172[0] = Point(593.5, 2079.54);
+ connRef172->setRoutingCheckpoints(checkpoints172);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(646.5, 2058.54), 8);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(937.5, 2079.54), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints173(1);
+ checkpoints173[0] = Point(669.5, 2079.54);
+ connRef173->setRoutingCheckpoints(checkpoints173);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(272.5, 1945.17), 2);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(251.5, 2079.54), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints174(1);
+ checkpoints174[0] = Point(251.5, 1960.17);
+ connRef174->setRoutingCheckpoints(checkpoints174);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(616.5, 2100.54), 4);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(251.5, 2079.54), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints175(1);
+ checkpoints175[0] = Point(593.5, 2079.54);
+ connRef175->setRoutingCheckpoints(checkpoints175);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(646.5, 2100.54), 8);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(937.5, 2079.54), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints176(1);
+ checkpoints176[0] = Point(669.5, 2079.54);
+ connRef176->setRoutingCheckpoints(checkpoints176);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(251.5, 2079.54), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(230.5, 1945.17), 2);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints177(1);
+ checkpoints177[0] = Point(251.5, 1960.17);
+ connRef177->setRoutingCheckpoints(checkpoints177);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(937.5, 2032.54), 2);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(937.5, 2079.54), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(1224.5, 1983.54), 4);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(937.5, 2079.54), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints179(1);
+ checkpoints179[0] = Point(1201.5, 2079.54);
+ connRef179->setRoutingCheckpoints(checkpoints179);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(1224.5, 2058.54), 4);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(937.5, 2079.54), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints180(1);
+ checkpoints180[0] = Point(1201.5, 2079.54);
+ connRef180->setRoutingCheckpoints(checkpoints180);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(1104.5, 1879.54), 4);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(937.5, 1869.17), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(1119.5, 1813.17), 2);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(937.5, 1869.17), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(798.5, 1869.17), 4);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(569.5, 1869.17), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(798.5, 1869.17), 4);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(937.5, 1765.17), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(391.5, 1869.17), 4);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(251.5, 1869.17), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(421.5, 1869.17), 8);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(569.5, 1869.17), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(391.5, 1869.17), 4);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(406.5, 2012.21), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(1471.5, 1869.17), 8);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(1530.5, 1869.17), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(1441.5, 1869.17), 4);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(1289.5, 1869.17), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(1289.5, 1680.17), 2);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(1289.5, 1869.17), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(1289.5, 1526.17), 1);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(1289.5, 1479.17), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(1289.5, 1556.17), 2);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(1289.5, 1603.17), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(1289.5, 1432.17), 2);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(1289.5, 1479.17), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(1289.5, 1402.17), 1);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(1289.5, 1355.17), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(1268.5, 1042.17), 2);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(1289.5, 1139.17), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints195(1);
+ checkpoints195[0] = Point(1289.5, 1057.17);
+ connRef195->setRoutingCheckpoints(checkpoints195);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(1268.5, 1012.17), 1);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(1289.5, 966.167), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints196(1);
+ checkpoints196[0] = Point(1289.5, 997.167);
+ connRef196->setRoutingCheckpoints(checkpoints196);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(1073.5, 966.167), 4);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(844.5, 966.167), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(1103.5, 966.167), 8);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(1289.5, 966.167), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(1268.5, 744.5), 2);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(1289.5, 790.5), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints199(1);
+ checkpoints199[0] = Point(1289.5, 759.5);
+ connRef199->setRoutingCheckpoints(checkpoints199);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(1401.5, 714.5), 1);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(1289.5, 638.75), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints200(1);
+ checkpoints200[0] = Point(1289.5, 699.5);
+ connRef200->setRoutingCheckpoints(checkpoints200);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(1410.5, 432.5), 4);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(1289.5, 466), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(1289.5, 536.25), 1);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(1289.5, 466), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(1289.5, 566.25), 2);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(1289.5, 638.75), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(1289.5, 345), 1);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(1289.5, 280), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(1289.5, 375), 2);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(1289.5, 466), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(1011.5, 638.75), 4);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(844.5, 638.75), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(1041.5, 638.75), 8);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(1289.5, 638.75), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(522.5, 542.75), 8);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(844.5, 638.75), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints208(1);
+ checkpoints208[0] = Point(545.5, 638.75);
+ connRef208->setRoutingCheckpoints(checkpoints208);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(522.5, 617.75), 8);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(844.5, 638.75), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints209(1);
+ checkpoints209[0] = Point(545.5, 638.75);
+ connRef209->setRoutingCheckpoints(checkpoints209);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(891.5, 551.25), 4);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(844.5, 638.75), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(921.5, 551.25), 8);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(1289.5, 466), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(751.5, 566.25), 2);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(844.5, 638.75), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(751.5, 536.25), 1);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(1289.5, 466), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(286.5, 536.25), 1);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(286.5, 466), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(286.5, 566.25), 2);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(286.5, 638.75), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(615.5, 295), 8);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(1289.5, 466), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints216(1);
+ checkpoints216[0] = Point(638.5, 466);
+ connRef216->setRoutingCheckpoints(checkpoints216);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(615.5, 370), 8);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(1289.5, 466), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints217(1);
+ checkpoints217[0] = Point(638.5, 466);
+ connRef217->setRoutingCheckpoints(checkpoints217);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(585.5, 562), 4);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(286.5, 466), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints218(1);
+ checkpoints218[0] = Point(562.5, 466);
+ connRef218->setRoutingCheckpoints(checkpoints218);
+#endif
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(860.5, 341), 4);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(286.5, 466), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(860.5, 239), 4);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(286.5, 466), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+#if 0
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(553.5, 2012.21), 8);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(782.5, 2012.21), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(1289.5, 1278.17), 2);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(1289.5, 1355.17), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(1289.5, 1248.17), 1);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(1289.5, 1139.17), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(615.5, 445), 8);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(1289.5, 466), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints224(1);
+ checkpoints224[0] = Point(638.5, 466);
+ connRef224->setRoutingCheckpoints(checkpoints224);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(522.5, 659.75), 8);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(844.5, 638.75), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints225(1);
+ checkpoints225[0] = Point(545.5, 638.75);
+ connRef225->setRoutingCheckpoints(checkpoints225);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(301.5, 750.75), 8);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(437.5, 750.75), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(301.5, 852.75), 8);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(437.5, 852.75), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(677.5, 750.75), 8);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(844.5, 638.75), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(677.5, 852.75), 8);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(844.5, 638.75), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(1499.5, 432.5), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(1440.5, 432.5), 8);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(286.5, 466), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(585.5, 445), 4);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints231(1);
+ checkpoints231[0] = Point(562.5, 466);
+ connRef231->setRoutingCheckpoints(checkpoints231);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(286.5, 466), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(585.5, 487), 4);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints232(1);
+ checkpoints232[0] = Point(562.5, 466);
+ connRef232->setRoutingCheckpoints(checkpoints232);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(286.5, 638.75), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(492.5, 659.75), 4);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints233(1);
+ checkpoints233[0] = Point(469.5, 638.75);
+ connRef233->setRoutingCheckpoints(checkpoints233);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(492.5, 734.75), 4);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(286.5, 638.75), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints234(1);
+ checkpoints234[0] = Point(469.5, 638.75);
+ connRef234->setRoutingCheckpoints(checkpoints234);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(522.5, 734.75), 8);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(844.5, 638.75), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints235(1);
+ checkpoints235[0] = Point(545.5, 638.75);
+ connRef235->setRoutingCheckpoints(checkpoints235);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(1289.5, 638.75), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(1310.5, 714.5), 1);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints236(1);
+ checkpoints236[0] = Point(1289.5, 699.5);
+ connRef236->setRoutingCheckpoints(checkpoints236);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(390.5, 1624.17), 8);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(1289.5, 1603.17), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints237(1);
+ checkpoints237[0] = Point(413.5, 1603.17);
+ connRef237->setRoutingCheckpoints(checkpoints237);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(1396.5, 1216.17), 2);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(1289.5, 1355.17), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints238(1);
+ checkpoints238[0] = Point(1417.5, 1231.17);
+ connRef238->setRoutingCheckpoints(checkpoints238);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(1438.5, 1216.17), 2);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(1289.5, 1355.17), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints239(1);
+ checkpoints239[0] = Point(1417.5, 1231.17);
+ connRef239->setRoutingCheckpoints(checkpoints239);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(1529.5, 1216.17), 2);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(1289.5, 1355.17), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints240(1);
+ checkpoints240[0] = Point(1417.5, 1231.17);
+ connRef240->setRoutingCheckpoints(checkpoints240);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(1310.5, 1042.17), 2);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(1289.5, 1139.17), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints241(1);
+ checkpoints241[0] = Point(1289.5, 1057.17);
+ connRef241->setRoutingCheckpoints(checkpoints241);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(1223.5, 1139.17), 8);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(1289.5, 1139.17), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(1254.5, 1983.54), 8);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(1425.5, 2079.54), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints243(1);
+ checkpoints243[0] = Point(1277.5, 2079.54);
+ connRef243->setRoutingCheckpoints(checkpoints243);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(1254.5, 2058.54), 8);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(1425.5, 2079.54), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints244(1);
+ checkpoints244[0] = Point(1277.5, 2079.54);
+ connRef244->setRoutingCheckpoints(checkpoints244);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(1254.5, 2100.54), 8);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(1425.5, 2079.54), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints245(1);
+ checkpoints245[0] = Point(1277.5, 2079.54);
+ connRef245->setRoutingCheckpoints(checkpoints245);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(1254.5, 2175.54), 8);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(1425.5, 2079.54), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints246(1);
+ checkpoints246[0] = Point(1277.5, 2079.54);
+ connRef246->setRoutingCheckpoints(checkpoints246);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(677.5, 1740.17), 8);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(1289.5, 1869.17), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(937.5, 1869.17), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(937.5, 2002.54), 1);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(647.5, 1740.17), 4);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(251.5, 1869.17), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(1224.5, 2100.54), 4);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(937.5, 2079.54), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints250(1);
+ checkpoints250[0] = Point(1201.5, 2079.54);
+ connRef250->setRoutingCheckpoints(checkpoints250);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(1224.5, 2175.54), 4);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(937.5, 2079.54), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints251(1);
+ checkpoints251[0] = Point(1201.5, 2079.54);
+ connRef251->setRoutingCheckpoints(checkpoints251);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(523.5, 2012.21), 4);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(406.5, 2012.21), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(1289.5, 790.5), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(1401.5, 744.5), 2);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints253(1);
+ checkpoints253[0] = Point(1289.5, 759.5);
+ connRef253->setRoutingCheckpoints(checkpoints253);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(216.5, 750.75), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(271.5, 750.75), 4);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(437.5, 750.75), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(647.5, 750.75), 4);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(437.5, 852.75), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(647.5, 852.75), 4);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(216.5, 852.75), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(271.5, 852.75), 4);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(390.5, 1582.17), 8);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(1289.5, 1603.17), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints258(1);
+ checkpoints258[0] = Point(413.5, 1603.17);
+ connRef258->setRoutingCheckpoints(checkpoints258);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(251.5, 1603.17), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(360.5, 1582.17), 4);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints259(1);
+ checkpoints259[0] = Point(337.5, 1603.17);
+ connRef259->setRoutingCheckpoints(checkpoints259);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(251.5, 1603.17), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(360.5, 1624.17), 4);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints260(1);
+ checkpoints260[0] = Point(337.5, 1603.17);
+ connRef260->setRoutingCheckpoints(checkpoints260);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(1310.5, 1012.17), 1);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(1289.5, 966.167), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints261(1);
+ checkpoints261[0] = Point(1289.5, 997.167);
+ connRef261->setRoutingCheckpoints(checkpoints261);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(1193.5, 1343.17), 4);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(1057.5, 1263.17), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(1223.5, 1343.17), 8);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(1289.5, 1355.17), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(1193.5, 1139.17), 4);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(1057.5, 1263.17), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(1289.5, 966.167), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(1396.5, 1186.17), 1);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints265(1);
+ checkpoints265[0] = Point(1417.5, 1171.17);
+ connRef265->setRoutingCheckpoints(checkpoints265);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(1289.5, 966.167), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(1438.5, 1186.17), 1);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints266(1);
+ checkpoints266[0] = Point(1417.5, 1171.17);
+ connRef266->setRoutingCheckpoints(checkpoints266);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(1289.5, 966.167), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(1529.5, 1186.17), 1);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints267(1);
+ checkpoints267[0] = Point(1417.5, 1171.17);
+ connRef267->setRoutingCheckpoints(checkpoints267);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(230.5, 1915.17), 1);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(251.5, 1869.17), 15);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints268(1);
+ checkpoints268[0] = Point(251.5, 1900.17);
+ connRef268->setRoutingCheckpoints(checkpoints268);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(1310.5, 744.5), 2);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(1289.5, 790.5), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints269(1);
+ checkpoints269[0] = Point(1289.5, 759.5);
+ connRef269->setRoutingCheckpoints(checkpoints269);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(615.5, 487), 8);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(1289.5, 466), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints270(1);
+ checkpoints270[0] = Point(638.5, 466);
+ connRef270->setRoutingCheckpoints(checkpoints270);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(937.5, 1765.17), 15);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(1134.5, 1879.54), 8);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(937.5, 1765.17), 15);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(1119.5, 1783.17), 1);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(1347.5, 871.5), 4);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(1289.5, 871.5), 8);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(631.5, 2008.54), 2);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(631.5, 2058.54), 1);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(330.5, 1930.17), 4);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(272.5, 1930.17), 8);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(631.5, 2150.54), 1);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(631.5, 2100.54), 2);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(995.5, 2017.54), 4);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(937.5, 2017.54), 8);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(1239.5, 1933.54), 2);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(1239.5, 1983.54), 1);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(1239.5, 2008.54), 2);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(1239.5, 2058.54), 1);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(1119.5, 1929.54), 1);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(1119.5, 1879.54), 2);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(1177.5, 1798.17), 4);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(1119.5, 1798.17), 8);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(813.5, 1819.17), 2);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(813.5, 1869.17), 1);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(406.5, 1819.17), 2);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(406.5, 1869.17), 1);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(1456.5, 1819.17), 2);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(1456.5, 1869.17), 1);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(1347.5, 1665.17), 4);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(1289.5, 1665.17), 8);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(1347.5, 1541.17), 4);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(1289.5, 1541.17), 8);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(1347.5, 1417.17), 4);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(1289.5, 1417.17), 8);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(1210.5, 1027.17), 8);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(1268.5, 1027.17), 4);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(1088.5, 916.167), 2);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(1088.5, 966.167), 1);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(1210.5, 729.5), 8);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(1268.5, 729.5), 4);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(1459.5, 729.5), 4);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(1401.5, 729.5), 8);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(1425.5, 382.5), 2);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(1425.5, 432.5), 1);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(1347.5, 551.25), 4);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(1289.5, 551.25), 8);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(1347.5, 360), 4);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(1289.5, 360), 8);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(1026.5, 588.75), 2);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(1026.5, 638.75), 1);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(507.5, 492.75), 2);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(507.5, 542.75), 1);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(507.5, 567.75), 2);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(507.5, 617.75), 1);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(906.5, 501.25), 2);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(906.5, 551.25), 1);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(693.5, 551.25), 8);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(751.5, 551.25), 4);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(344.5, 551.25), 4);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(286.5, 551.25), 8);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(600.5, 245), 2);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(600.5, 295), 1);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(600.5, 320), 2);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(600.5, 370), 1);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(600.5, 612), 1);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(600.5, 562), 2);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(875.5, 291), 2);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(875.5, 341), 1);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(875.5, 189), 2);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(875.5, 239), 1);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(538.5, 1962.21), 2);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(538.5, 2012.21), 1);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(1347.5, 1263.17), 4);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(1289.5, 1263.17), 8);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(600.5, 395), 2);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(600.5, 445), 1);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(507.5, 709.75), 1);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(507.5, 659.75), 2);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(286.5, 700.75), 2);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(286.5, 750.75), 1);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(286.5, 802.75), 2);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(286.5, 852.75), 1);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(662.5, 700.75), 2);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(662.5, 750.75), 1);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(662.5, 802.75), 2);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(662.5, 852.75), 1);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(375.5, 1532.17), 2);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(375.5, 1582.17), 1);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(1239.5, 2150.54), 1);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(1239.5, 2100.54), 2);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(375.5, 1674.17), 1);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(375.5, 1624.17), 2);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(1368.5, 1027.17), 4);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(1310.5, 1027.17), 8);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(1338.5, 1201.17), 8);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(1396.5, 1201.17), 4);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(1496.5, 1201.17), 4);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(1438.5, 1201.17), 8);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(662.5, 1690.17), 2);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(662.5, 1740.17), 1);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(1587.5, 1201.17), 4);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(1529.5, 1201.17), 8);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(1208.5, 1293.17), 2);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(1208.5, 1343.17), 1);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(1208.5, 1089.17), 2);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(1208.5, 1139.17), 1);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(172.5, 1930.17), 8);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(230.5, 1930.17), 4);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(1368.5, 729.5), 4);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(1310.5, 729.5), 8);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(600.5, 537), 1);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(600.5, 487), 2);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(507.5, 784.75), 1);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(507.5, 734.75), 2);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(1239.5, 2225.54), 1);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(1239.5, 2175.54), 2);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(251.5, 1869.17), 15);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(272.5, 1915.17), 1);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints329(1);
+ checkpoints329[0] = Point(251.5, 1900.17);
+ connRef329->setRoutingCheckpoints(checkpoints329);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(1289.5, 1869.17), 15);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(1134.5, 1879.54), 8);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+
+ ConnRef *connRef331 = new ConnRef(router, 331);
+ ConnEnd srcPt331(Point(1289.5, 1869.17), 15);
+ connRef331->setSourceEndpoint(srcPt331);
+ ConnEnd dstPt331(Point(1119.5, 1783.17), 1);
+ connRef331->setDestEndpoint(dstPt331);
+ connRef331->setRoutingType((ConnType)2);
+
+ ConnRef *connRef332 = new ConnRef(router, 332);
+ ConnEnd srcPt332(Point(782.5, 2012.21), 15);
+ connRef332->setSourceEndpoint(srcPt332);
+ ConnEnd dstPt332(Point(828.5, 1869.17), 8);
+ connRef332->setDestEndpoint(dstPt332);
+ connRef332->setRoutingType((ConnType)2);
+
+ ConnRef *connRef333 = new ConnRef(router, 333);
+ ConnEnd srcPt333(Point(937.5, 1869.17), 15);
+ connRef333->setSourceEndpoint(srcPt333);
+ ConnEnd dstPt333(Point(828.5, 1869.17), 8);
+ connRef333->setDestEndpoint(dstPt333);
+ connRef333->setRoutingType((ConnType)2);
+
+ ConnRef *connRef334 = new ConnRef(router, 334);
+ ConnEnd srcPt334(Point(1289.5, 1603.17), 15);
+ connRef334->setSourceEndpoint(srcPt334);
+ ConnEnd dstPt334(Point(1289.5, 1650.17), 1);
+ connRef334->setDestEndpoint(dstPt334);
+ connRef334->setRoutingType((ConnType)2);
+
+ ConnRef *connRef335 = new ConnRef(router, 335);
+ ConnEnd srcPt335(Point(1289.5, 638.75), 15);
+ connRef335->setSourceEndpoint(srcPt335);
+ ConnEnd dstPt335(Point(1268.5, 714.5), 1);
+ connRef335->setDestEndpoint(dstPt335);
+ connRef335->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints335(1);
+ checkpoints335[0] = Point(1289.5, 699.5);
+ connRef335->setRoutingCheckpoints(checkpoints335);
+
+ ConnRef *connRef336 = new ConnRef(router, 336);
+ ConnEnd srcPt336(Point(286.5, 638.75), 15);
+ connRef336->setSourceEndpoint(srcPt336);
+ ConnEnd dstPt336(Point(492.5, 542.75), 4);
+ connRef336->setDestEndpoint(dstPt336);
+ connRef336->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints336(1);
+ checkpoints336[0] = Point(469.5, 638.75);
+ connRef336->setRoutingCheckpoints(checkpoints336);
+
+ ConnRef *connRef337 = new ConnRef(router, 337);
+ ConnEnd srcPt337(Point(286.5, 638.75), 15);
+ connRef337->setSourceEndpoint(srcPt337);
+ ConnEnd dstPt337(Point(492.5, 617.75), 4);
+ connRef337->setDestEndpoint(dstPt337);
+ connRef337->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints337(1);
+ checkpoints337[0] = Point(469.5, 638.75);
+ connRef337->setRoutingCheckpoints(checkpoints337);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(286.5, 466), 15);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(585.5, 295), 4);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints338(1);
+ checkpoints338[0] = Point(562.5, 466);
+ connRef338->setRoutingCheckpoints(checkpoints338);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(286.5, 466), 15);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(585.5, 370), 4);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints339(1);
+ checkpoints339[0] = Point(562.5, 466);
+ connRef339->setRoutingCheckpoints(checkpoints339);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(1289.5, 466), 15);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(615.5, 562), 8);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+ std::vector<Point> checkpoints340(1);
+ checkpoints340[0] = Point(638.5, 466);
+ connRef340->setRoutingCheckpoints(checkpoints340);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1289.5, 280), 15);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(890.5, 341), 8);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1289.5, 280), 15);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(890.5, 239), 8);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+
+ ConnRef *connRef343 = new ConnRef(router, 343);
+ ConnEnd srcPt343(Point(1289.5, 466), 15);
+ connRef343->setSourceEndpoint(srcPt343);
+ ConnEnd dstPt343(Point(1515, 661), 4);
+ connRef343->setDestEndpoint(dstPt343);
+ connRef343->setRoutingType((ConnType)2);
+
+ ConnRef *connRef344 = new ConnRef(router, 344);
+ ConnEnd srcPt344(Point(1289.5, 966.167), 15);
+ connRef344->setSourceEndpoint(srcPt344);
+ ConnEnd dstPt344(Point(1515, 701), 4);
+ connRef344->setDestEndpoint(dstPt344);
+ connRef344->setRoutingType((ConnType)2);
+
+ ConnRef *connRef345 = new ConnRef(router, 345);
+ ConnEnd srcPt345(Point(1289.5, 1479.17), 15);
+ connRef345->setSourceEndpoint(srcPt345);
+ ConnEnd dstPt345(Point(1601, 864.5), 2);
+ connRef345->setDestEndpoint(dstPt345);
+ connRef345->setRoutingType((ConnType)2);
+
+ ConnRef *connRef346 = new ConnRef(router, 346);
+ ConnEnd srcPt346(Point(1289.5, 1869.17), 15);
+ connRef346->setSourceEndpoint(srcPt346);
+ ConnEnd dstPt346(Point(1641, 864.5), 2);
+ connRef346->setDestEndpoint(dstPt346);
+ connRef346->setRoutingType((ConnType)2);
+
+ ConnRef *connRef347 = new ConnRef(router, 347);
+ ConnEnd srcPt347(Point(1289.5, 280), 15);
+ connRef347->setSourceEndpoint(srcPt347);
+ ConnEnd dstPt347(Point(1350, 214.5), 2);
+ connRef347->setDestEndpoint(dstPt347);
+ connRef347->setRoutingType((ConnType)2);
+
+ ConnRef *connRef348 = new ConnRef(router, 348);
+ ConnEnd srcPt348(Point(251.5, 1603.17), 15);
+ connRef348->setSourceEndpoint(srcPt348);
+ ConnEnd dstPt348(Point(247.5, 1725.67), 8);
+ connRef348->setDestEndpoint(dstPt348);
+ connRef348->setRoutingType((ConnType)2);
+
+ ConnRef *connRef349 = new ConnRef(router, 349);
+ ConnEnd srcPt349(Point(251.5, 1869.17), 15);
+ connRef349->setSourceEndpoint(srcPt349);
+ ConnEnd dstPt349(Point(247.5, 1765.67), 8);
+ connRef349->setDestEndpoint(dstPt349);
+ connRef349->setRoutingType((ConnType)2);
+
+ ConnRef *connRef350 = new ConnRef(router, 350);
+ ConnEnd srcPt350(Point(1289.5, 1355.17), 15);
+ connRef350->setSourceEndpoint(srcPt350);
+ ConnEnd dstPt350(Point(844.5, 1362.67), 8);
+ connRef350->setDestEndpoint(dstPt350);
+ connRef350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef351 = new ConnRef(router, 351);
+ ConnEnd srcPt351(Point(1530.5, 1869.17), 15);
+ connRef351->setSourceEndpoint(srcPt351);
+ ConnEnd dstPt351(Point(1536.5, 1948.54), 1);
+ connRef351->setDestEndpoint(dstPt351);
+ connRef351->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/nudgeCrossing01");
+
+ bool optimisedForConnectorType = false;
+ int crossings = router->existsCrossings(optimisedForConnectorType);
+
+ delete router;
+ return crossings;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/nudgeintobug.cpp b/src/3rdparty/adaptagrams/libavoid/tests/nudgeintobug.cpp
new file mode 100644
index 0000000..cf7f4e9
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/nudgeintobug.cpp
@@ -0,0 +1,40 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((Avoid::PenaltyType)0, 50);
+ router->setRoutingPenalty((Avoid::PenaltyType)1, 0);
+ router->setRoutingPenalty((Avoid::PenaltyType)2, 200);
+ router->setRoutingPenalty((Avoid::PenaltyType)3, 4000);
+ router->setRoutingPenalty((Avoid::PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+ Rectangle rect548374163(Point(51900, 50400), Point(52300, 50900));
+ new ShapeRef(router, rect548374163, 548374163);
+ Rectangle rect901116812(Point(51131, 49750), Point(51531, 50100));
+ new ShapeRef(router, rect901116812, 901116812);
+ Rectangle rect335855988(Point(51125, 50175), Point(51525, 50900));
+ new ShapeRef(router, rect335855988, 335855988);
+ Rectangle rect448725420(Point(52375, 50750), Point(52575, 50900));
+ new ShapeRef(router, rect448725420, 448725420);
+ Rectangle rect74263573(Point(51900, 49750), Point(52300, 50100));
+ new ShapeRef(router, rect74263573, 74263573);
+ ConnEnd srcPt463223880(Point(51500, 50275), 8);
+ ConnEnd dstPt463223880(Point(51150, 50275), 4);
+ ConnEnd srcPt144520410(Point(51150, 49850), 4);
+ ConnEnd dstPt144520410(Point(51500, 50350), 8);
+ ConnEnd srcPt45398340(Point(52400, 50825), 4);
+ ConnEnd dstPt45398340(Point(51500, 49925), 8);
+ ConnEnd srcPt29344262(Point(51150, 50500), 4);
+ ConnEnd dstPt29344262(Point(51925, 50000), 4);
+ new ConnRef(router, srcPt29344262, dstPt29344262, 29344262);
+ new ConnRef(router, srcPt45398340, dstPt45398340, 45398340);
+ new ConnRef(router, srcPt144520410, dstPt144520410, 144520410);
+ new ConnRef(router, srcPt463223880, dstPt463223880, 463223880);
+ router->processTransaction();
+ router->outputDiagram("output/nudgeintobug");
+ bool overlap = router->existsOrthogonalFixedSegmentOverlap();
+ bool touching = router->existsOrthogonalTouchingPaths();
+ delete router;
+ return (overlap || touching) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/nudgeold.cpp b/src/3rdparty/adaptagrams/libavoid/tests/nudgeold.cpp
new file mode 100644
index 0000000..96bf237
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/nudgeold.cpp
@@ -0,0 +1,80 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly426345871(4);
+ poly426345871.ps[0] = Point(7200, 5240);
+ poly426345871.ps[1] = Point(7200, 5660);
+ poly426345871.ps[2] = Point(6690, 5660);
+ poly426345871.ps[3] = Point(6690, 5240);
+ new ShapeRef(router, poly426345871, 426345871);
+
+ Polygon poly596896212(4);
+ poly596896212.ps[0] = Point(7200, 5740);
+ poly596896212.ps[1] = Point(7200, 6160);
+ poly596896212.ps[2] = Point(6690, 6160);
+ poly596896212.ps[3] = Point(6690, 5740);
+ new ShapeRef(router, poly596896212, 596896212);
+
+ ConnRef *connRef20026701 = new ConnRef(router, 20026701);
+ ConnEnd srcPt20026701(Point(7190, 5600), 8);
+ connRef20026701->setSourceEndpoint(srcPt20026701);
+ ConnEnd dstPt20026701(Point(7190, 5800), 8);
+ connRef20026701->setDestEndpoint(dstPt20026701);
+ connRef20026701->setRoutingType((ConnType)2);
+
+ ConnRef *connRef124776000 = new ConnRef(router, 124776000);
+ ConnEnd srcPt124776000(Point(7190, 5550), 8);
+ connRef124776000->setSourceEndpoint(srcPt124776000);
+ ConnEnd dstPt124776000(Point(7190, 5850), 8);
+ connRef124776000->setDestEndpoint(dstPt124776000);
+ connRef124776000->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162425002 = new ConnRef(router, 162425002);
+ ConnEnd srcPt162425002(Point(7190, 5500), 8);
+ connRef162425002->setSourceEndpoint(srcPt162425002);
+ ConnEnd dstPt162425002(Point(7190, 5900), 8);
+ connRef162425002->setDestEndpoint(dstPt162425002);
+ connRef162425002->setRoutingType((ConnType)2);
+
+ ConnRef *connRef445102866 = new ConnRef(router, 445102866);
+ ConnEnd srcPt445102866(Point(7190, 5450), 8);
+ connRef445102866->setSourceEndpoint(srcPt445102866);
+ ConnEnd dstPt445102866(Point(7190, 5950), 8);
+ connRef445102866->setDestEndpoint(dstPt445102866);
+ connRef445102866->setRoutingType((ConnType)2);
+
+ ConnRef *connRef472520508 = new ConnRef(router, 472520508);
+ ConnEnd srcPt472520508(Point(7190, 5400), 8);
+ connRef472520508->setSourceEndpoint(srcPt472520508);
+ ConnEnd dstPt472520508(Point(7190, 6000), 8);
+ connRef472520508->setDestEndpoint(dstPt472520508);
+ connRef472520508->setRoutingType((ConnType)2);
+
+ ConnRef *connRef406587600 = new ConnRef(router, 406587600);
+ ConnEnd srcPt406587600(Point(7190, 5350), 8);
+ connRef406587600->setSourceEndpoint(srcPt406587600);
+ ConnEnd dstPt406587600(Point(7190, 6050), 8);
+ connRef406587600->setDestEndpoint(dstPt406587600);
+ connRef406587600->setRoutingType((ConnType)2);
+
+ ConnRef *connRef41657796 = new ConnRef(router, 41657796);
+ ConnEnd srcPt41657796(Point(7190, 5300), 8);
+ connRef41657796->setSourceEndpoint(srcPt41657796);
+ ConnEnd dstPt41657796(Point(7190, 6100), 8);
+ connRef41657796->setDestEndpoint(dstPt41657796);
+ connRef41657796->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/nudgeold");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint01.cpp
new file mode 100644
index 0000000..27c9d50
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint01.cpp
@@ -0,0 +1,1507 @@
+// Regression test to catch problem where orthogonal segments from the same
+// connector were being merged with others going through checkpoints and
+// being simplified so as not to pass the checkpoint anymore.
+// Based on ec00232.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+#if ALL
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-80.18071812011561, 825.315092940984);
+ polygon.ps[1] = Point(-80.18071812011561, 887.315092940984);
+ polygon.ps[2] = Point(-142.1807181201156, 887.315092940984);
+ polygon.ps[3] = Point(-142.1807181201156, 825.315092940984);
+ new ShapeRef(router, polygon, 1);
+#endif
+
+ // shapeRef2
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(620.1049961655988, -86.0182403953493);
+ polygon.ps[1] = Point(620.1049961655988, -24.0182403953493);
+ polygon.ps[2] = Point(558.1049961655988, -24.0182403953493);
+ polygon.ps[3] = Point(558.1049961655988, -86.0182403953493);
+ new ShapeRef(router, polygon, 2);
+
+#if ALL
+ // shapeRef3
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1044.504996167599, 719.315092940984);
+ polygon.ps[1] = Point(1044.504996167599, 781.315092940984);
+ polygon.ps[2] = Point(982.5049961675986, 781.315092940984);
+ polygon.ps[3] = Point(982.5049961675986, 719.315092940984);
+ new ShapeRef(router, polygon, 3);
+
+ // shapeRef4
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1153.104996167599, 759.315092940984);
+ polygon.ps[1] = Point(1153.104996167599, 821.315092940984);
+ polygon.ps[2] = Point(1091.104996167599, 821.315092940984);
+ polygon.ps[3] = Point(1091.104996167599, 759.315092940984);
+ new ShapeRef(router, polygon, 4);
+
+ // shapeRef5
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1044.504996167599, 495.9817596066507);
+ polygon.ps[1] = Point(1044.504996167599, 557.9817596066507);
+ polygon.ps[2] = Point(982.5049961675986, 557.9817596066507);
+ polygon.ps[3] = Point(982.5049961675986, 495.9817596066507);
+ new ShapeRef(router, polygon, 5);
+
+ // shapeRef6
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(968.1049961675988, 759.315092940984);
+ polygon.ps[1] = Point(968.1049961675988, 821.315092940984);
+ polygon.ps[2] = Point(906.1049961675988, 821.315092940984);
+ polygon.ps[3] = Point(906.1049961675988, 759.315092940984);
+ new ShapeRef(router, polygon, 6);
+
+ // shapeRef7
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1044.504996167599, 792.315092940984);
+ polygon.ps[1] = Point(1044.504996167599, 854.315092940984);
+ polygon.ps[2] = Point(982.5049961675986, 854.315092940984);
+ polygon.ps[3] = Point(982.5049961675986, 792.315092940984);
+ new ShapeRef(router, polygon, 7);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(349.8192818798844, 1008.815092941984);
+ polygon.ps[1] = Point(349.8192818798844, 1070.815092941984);
+ polygon.ps[2] = Point(287.8192818798844, 1070.815092941984);
+ polygon.ps[3] = Point(287.8192818798844, 1008.815092941984);
+ new ShapeRef(router, polygon, 8);
+
+ // shapeRef9
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(349.8192818798844, 617.315092940984);
+ polygon.ps[1] = Point(349.8192818798844, 679.315092940984);
+ polygon.ps[2] = Point(287.8192818798844, 679.315092940984);
+ polygon.ps[3] = Point(287.8192818798844, 617.315092940984);
+ new ShapeRef(router, polygon, 9);
+
+ // shapeRef10
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(288.8192818798844, 371.9817596066507);
+ polygon.ps[1] = Point(288.8192818798844, 433.9817596066507);
+ polygon.ps[2] = Point(226.8192818798844, 433.9817596066507);
+ polygon.ps[3] = Point(226.8192818798844, 371.9817596066507);
+ new ShapeRef(router, polygon, 10);
+#endif
+
+ // shapeRef11
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(103.8192818798844, 975.8150929419839);
+ polygon.ps[1] = Point(103.8192818798844, 995.8150929419839);
+ polygon.ps[2] = Point(71.81928187988439, 995.8150929419839);
+ polygon.ps[3] = Point(71.81928187988439, 975.8150929419839);
+ new ShapeRef(router, polygon, 11);
+
+ // shapeRef12
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(103.8192818798844, 1017.815092941984);
+ polygon.ps[1] = Point(103.8192818798844, 1037.815092941984);
+ polygon.ps[2] = Point(71.81928187988439, 1037.815092941984);
+ polygon.ps[3] = Point(71.81928187988439, 1017.815092941984);
+ new ShapeRef(router, polygon, 12);
+
+#if ALL
+ // shapeRef13
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(328.8192818798844, 957.8150929419839);
+ polygon.ps[1] = Point(328.8192818798844, 989.8150929419839);
+ polygon.ps[2] = Point(308.8192818798844, 989.8150929419839);
+ polygon.ps[3] = Point(308.8192818798844, 957.8150929419839);
+ new ShapeRef(router, polygon, 13);
+
+ // shapeRef14
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12.81928187988439, 901.815092940984);
+ polygon.ps[1] = Point(12.81928187988439, 921.815092940984);
+ polygon.ps[2] = Point(-19.18071812011561, 921.815092940984);
+ polygon.ps[3] = Point(-19.18071812011561, 901.815092940984);
+ new ShapeRef(router, polygon, 14);
+
+ // shapeRef15
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(466.8192818798844, 840.315092940984);
+ polygon.ps[1] = Point(466.8192818798844, 872.315092940984);
+ polygon.ps[2] = Point(446.8192818798844, 872.315092940984);
+ polygon.ps[3] = Point(446.8192818798844, 840.315092940984);
+ new ShapeRef(router, polygon, 15);
+
+ // shapeRef16
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1023.504996167599, 572.9817596076507);
+ polygon.ps[1] = Point(1023.504996167599, 604.9817596076507);
+ polygon.ps[2] = Point(1003.504996167599, 604.9817596076507);
+ polygon.ps[3] = Point(1003.504996167599, 572.9817596076507);
+ new ShapeRef(router, polygon, 16);
+
+ // shapeRef17
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(887.1049961675988, 638.315092940984);
+ polygon.ps[1] = Point(887.1049961675988, 658.315092940984);
+ polygon.ps[2] = Point(855.1049961675988, 658.315092940984);
+ polygon.ps[3] = Point(855.1049961675988, 638.315092940984);
+ new ShapeRef(router, polygon, 17);
+
+ // shapeRef18
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, 671.315092940984);
+ polygon.ps[1] = Point(472.8192818798844, 691.315092940984);
+ polygon.ps[2] = Point(440.8192818798844, 691.315092940984);
+ polygon.ps[3] = Point(440.8192818798844, 671.315092940984);
+ new ShapeRef(router, polygon, 18);
+
+ // shapeRef19
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(142.8192818798844, 638.315092940984);
+ polygon.ps[1] = Point(142.8192818798844, 658.315092940984);
+ polygon.ps[2] = Point(110.8192818798844, 658.315092940984);
+ polygon.ps[3] = Point(110.8192818798844, 638.315092940984);
+ new ShapeRef(router, polygon, 19);
+
+ // shapeRef20
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(599.1049961655988, 419.9817596066507);
+ polygon.ps[1] = Point(599.1049961655988, 451.9817596066507);
+ polygon.ps[2] = Point(579.1049961655988, 451.9817596066507);
+ polygon.ps[3] = Point(579.1049961655988, 419.9817596066507);
+ new ShapeRef(router, polygon, 20);
+
+ // shapeRef21
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, 483.9817596066507);
+ polygon.ps[1] = Point(472.8192818798844, 503.9817596066507);
+ polygon.ps[2] = Point(440.8192818798844, 503.9817596066507);
+ polygon.ps[3] = Point(440.8192818798844, 483.9817596066507);
+ new ShapeRef(router, polygon, 21);
+
+ // shapeRef22
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, 134.9817596056507);
+ polygon.ps[1] = Point(472.8192818798844, 154.9817596056507);
+ polygon.ps[2] = Point(440.8192818798844, 154.9817596056507);
+ polygon.ps[3] = Point(440.8192818798844, 134.9817596056507);
+ new ShapeRef(router, polygon, 22);
+
+ // shapeRef23
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1023.504996167599, 419.9817596066507);
+ polygon.ps[1] = Point(1023.504996167599, 451.9817596066507);
+ polygon.ps[2] = Point(1003.504996167599, 451.9817596066507);
+ polygon.ps[3] = Point(1003.504996167599, 419.9817596066507);
+ new ShapeRef(router, polygon, 23);
+
+ // shapeRef24
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.1049961665988, 276.9817596056507);
+ polygon.ps[1] = Point(751.1049961665988, 296.9817596056507);
+ polygon.ps[2] = Point(719.1049961665988, 296.9817596056507);
+ polygon.ps[3] = Point(719.1049961665988, 276.9817596056507);
+ new ShapeRef(router, polygon, 24);
+
+ // shapeRef25
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, 209.9817596056507);
+ polygon.ps[1] = Point(472.8192818798844, 229.9817596056507);
+ polygon.ps[2] = Point(440.8192818798844, 229.9817596056507);
+ polygon.ps[3] = Point(440.8192818798844, 209.9817596056507);
+ new ShapeRef(router, polygon, 25);
+
+ // shapeRef26
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.1049961665988, 318.9817596056507);
+ polygon.ps[1] = Point(751.1049961665988, 338.9817596056507);
+ polygon.ps[2] = Point(719.1049961665988, 338.9817596056507);
+ polygon.ps[3] = Point(719.1049961665988, 318.9817596056507);
+ new ShapeRef(router, polygon, 26);
+
+ // shapeRef27
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, -181.0182403963493);
+ polygon.ps[1] = Point(472.8192818798844, -161.0182403963493);
+ polygon.ps[2] = Point(440.8192818798844, -161.0182403963493);
+ polygon.ps[3] = Point(440.8192818798844, -181.0182403963493);
+ new ShapeRef(router, polygon, 27);
+
+ // shapeRef28
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(599.1049961655988, -199.0182403963493);
+ polygon.ps[1] = Point(599.1049961655988, -167.0182403963493);
+ polygon.ps[2] = Point(579.1049961655988, -167.0182403963493);
+ polygon.ps[3] = Point(579.1049961655988, -199.0182403963493);
+ new ShapeRef(router, polygon, 28);
+
+ // shapeRef29
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, 251.9817596056507);
+ polygon.ps[1] = Point(472.8192818798844, 271.9817596056507);
+ polygon.ps[2] = Point(440.8192818798844, 271.9817596056507);
+ polygon.ps[3] = Point(440.8192818798844, 251.9817596056507);
+ new ShapeRef(router, polygon, 29);
+
+ // shapeRef30
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(142.8192818798844, -65.0182403953493);
+ polygon.ps[1] = Point(142.8192818798844, -45.0182403953493);
+ polygon.ps[2] = Point(110.8192818798844, -45.0182403953493);
+ polygon.ps[3] = Point(110.8192818798844, -65.0182403953493);
+ new ShapeRef(router, polygon, 30);
+
+ // shapeRef31
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-20.18071812011561, -65.0182403953493);
+ polygon.ps[1] = Point(-20.18071812011561, -45.0182403953493);
+ polygon.ps[2] = Point(-52.18071812011561, -45.0182403953493);
+ polygon.ps[3] = Point(-52.18071812011561, -65.0182403953493);
+ new ShapeRef(router, polygon, 31);
+
+ // shapeRef32
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(267.8192818798844, 324.9817596056507);
+ polygon.ps[1] = Point(267.8192818798844, 356.9817596056507);
+ polygon.ps[2] = Point(247.8192818798844, 356.9817596056507);
+ polygon.ps[3] = Point(247.8192818798844, 324.9817596056507);
+ new ShapeRef(router, polygon, 32);
+
+ // shapeRef33
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(136.8192818798844, 258.9817596056507);
+ polygon.ps[1] = Point(136.8192818798844, 290.9817596056507);
+ polygon.ps[2] = Point(116.8192818798844, 290.9817596056507);
+ polygon.ps[3] = Point(116.8192818798844, 258.9817596056507);
+ new ShapeRef(router, polygon, 33);
+
+ // shapeRef34
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, -32.0182403953493);
+ polygon.ps[1] = Point(472.8192818798844, -12.0182403953493);
+ polygon.ps[2] = Point(440.8192818798844, -12.0182403953493);
+ polygon.ps[3] = Point(440.8192818798844, -32.0182403953493);
+ new ShapeRef(router, polygon, 34);
+
+ // shapeRef35
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1001.104996167599, 276.9817596056507);
+ polygon.ps[1] = Point(1001.104996167599, 338.9817596056507);
+ polygon.ps[2] = Point(939.1049961675988, 338.9817596056507);
+ polygon.ps[3] = Point(939.1049961675988, 276.9817596056507);
+ new ShapeRef(router, polygon, 35);
+
+ // shapeRef36
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(854.1049961675988, 144.9817596056507);
+ polygon.ps[1] = Point(854.1049961675988, 164.9817596056507);
+ polygon.ps[2] = Point(822.1049961675988, 164.9817596056507);
+ polygon.ps[3] = Point(822.1049961675988, 144.9817596056507);
+ new ShapeRef(router, polygon, 36);
+
+ // shapeRef37
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(854.1049961675988, 186.9817596056507);
+ polygon.ps[1] = Point(854.1049961675988, 206.9817596056507);
+ polygon.ps[2] = Point(822.1049961675988, 206.9817596056507);
+ polygon.ps[3] = Point(822.1049961675988, 186.9817596056507);
+ new ShapeRef(router, polygon, 37);
+
+ // shapeRef38
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(472.8192818798844, -139.0182403963493);
+ polygon.ps[1] = Point(472.8192818798844, -119.0182403963493);
+ polygon.ps[2] = Point(440.8192818798844, -119.0182403963493);
+ polygon.ps[3] = Point(440.8192818798844, -139.0182403963493);
+ new ShapeRef(router, polygon, 38);
+
+ // shapeRef39
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(854.1049961675988, 69.98175960565069);
+ polygon.ps[1] = Point(854.1049961675988, 89.98175960565069);
+ polygon.ps[2] = Point(822.1049961675988, 89.98175960565069);
+ polygon.ps[3] = Point(822.1049961675988, 69.98175960565069);
+ new ShapeRef(router, polygon, 39);
+
+ // shapeRef40
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-51.68071812011561, 455.4817596066507);
+ polygon.ps[1] = Point(-51.68071812011561, 619.4817596066507);
+ polygon.ps[2] = Point(-170.6807181201156, 619.4817596066507);
+ polygon.ps[3] = Point(-170.6807181201156, 455.4817596066507);
+ new ShapeRef(router, polygon, 40);
+
+ // shapeRef41
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(31.81928187988439, -317.5182403973492);
+ polygon.ps[1] = Point(31.81928187988439, -282.5182403973492);
+ polygon.ps[2] = Point(-164.1807181201156, -282.5182403973492);
+ polygon.ps[3] = Point(-164.1807181201156, -317.5182403973492);
+ new ShapeRef(router, polygon, 41);
+
+ // shapeRef42
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(752.8192818798843, 768.315092940984);
+ polygon.ps[1] = Point(752.8192818798843, 812.315092940984);
+ polygon.ps[2] = Point(664.8192818798843, 812.315092940984);
+ polygon.ps[3] = Point(664.8192818798843, 768.315092940984);
+ new ShapeRef(router, polygon, 42);
+
+ // shapeRef43
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(349.8192818798844, 880.815092940984);
+ polygon.ps[1] = Point(349.8192818798844, 942.815092940984);
+ polygon.ps[2] = Point(287.8192818798844, 942.815092940984);
+ polygon.ps[3] = Point(287.8192818798844, 880.815092940984);
+ new ShapeRef(router, polygon, 43);
+
+ // shapeRef44
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(349.8192818798844, -181.0182403963493);
+ polygon.ps[1] = Point(349.8192818798844, -119.0182403963493);
+ polygon.ps[2] = Point(287.8192818798844, -119.0182403963493);
+ polygon.ps[3] = Point(287.8192818798844, -181.0182403963493);
+ new ShapeRef(router, polygon, 44);
+
+ // shapeRef45
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(935.1049961675988, -276.0182403973492);
+ polygon.ps[1] = Point(935.1049961675988, -214.0182403973492);
+ polygon.ps[2] = Point(873.1049961675988, -214.0182403973492);
+ polygon.ps[3] = Point(873.1049961675988, -276.0182403973492);
+ new ShapeRef(router, polygon, 45);
+
+ // shapeRef46
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(620.1049961655988, 276.9817596056507);
+ polygon.ps[1] = Point(620.1049961655988, 338.9817596056507);
+ polygon.ps[2] = Point(558.1049961655988, 338.9817596056507);
+ polygon.ps[3] = Point(558.1049961655988, 276.9817596056507);
+ new ShapeRef(router, polygon, 46);
+
+ // shapeRef47
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(620.1049961655988, 617.315092940984);
+ polygon.ps[1] = Point(620.1049961655988, 679.315092940984);
+ polygon.ps[2] = Point(558.1049961655988, 679.315092940984);
+ polygon.ps[3] = Point(558.1049961655988, 617.315092940984);
+ new ShapeRef(router, polygon, 47);
+#endif
+
+ // shapeRef48
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(78.81928187988439, -86.0182403953493);
+ polygon.ps[1] = Point(78.81928187988439, -24.0182403953493);
+ polygon.ps[2] = Point(16.81928187988439, -24.0182403953493);
+ polygon.ps[3] = Point(16.81928187988439, -86.0182403953493);
+ new ShapeRef(router, polygon, 48);
+
+#if ALL
+ // shapeRef49
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-80.18071812011561, -86.0182403953493);
+ polygon.ps[1] = Point(-80.18071812011561, -24.0182403953493);
+ polygon.ps[2] = Point(-142.1807181201156, -24.0182403953493);
+ polygon.ps[3] = Point(-142.1807181201156, -86.0182403953493);
+ new ShapeRef(router, polygon, 49);
+
+ // shapeRef50
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(620.1049961655988, -276.0182403973492);
+ polygon.ps[1] = Point(620.1049961655988, -214.0182403973492);
+ polygon.ps[2] = Point(558.1049961655988, -214.0182403973492);
+ polygon.ps[3] = Point(558.1049961655988, -276.0182403973492);
+ new ShapeRef(router, polygon, 50);
+
+ // shapeRef51
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(349.8192818798844, -86.0182403953493);
+ polygon.ps[1] = Point(349.8192818798844, -24.0182403953493);
+ polygon.ps[2] = Point(287.8192818798844, -24.0182403953493);
+ polygon.ps[3] = Point(287.8192818798844, -86.0182403953493);
+ new ShapeRef(router, polygon, 51);
+
+ // shapeRef52
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(620.1049961655988, 495.9817596066507);
+ polygon.ps[1] = Point(620.1049961655988, 557.9817596066507);
+ polygon.ps[2] = Point(558.1049961655988, 557.9817596066507);
+ polygon.ps[3] = Point(558.1049961655988, 495.9817596066507);
+ new ShapeRef(router, polygon, 52);
+
+ // shapeRef53
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(115.8192818798844, 915.8150929419839);
+ polygon.ps[1] = Point(115.8192818798844, 975.8150929419839);
+ polygon.ps[2] = Point(59.81928187988439, 975.8150929419839);
+ polygon.ps[3] = Point(59.81928187988439, 915.8150929419839);
+ new ShapeRef(router, polygon, 53);
+
+ // shapeRef54
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(115.8192818798844, 1037.815092941984);
+ polygon.ps[1] = Point(115.8192818798844, 1097.815092941984);
+ polygon.ps[2] = Point(59.81928187988439, 1097.815092941984);
+ polygon.ps[3] = Point(59.81928187988439, 1037.815092941984);
+ new ShapeRef(router, polygon, 54);
+
+ // shapeRef55
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(404.8192818798844, 953.8150929419839);
+ polygon.ps[1] = Point(404.8192818798844, 993.8150929419839);
+ polygon.ps[2] = Point(328.8192818798844, 993.8150929419839);
+ polygon.ps[3] = Point(328.8192818798844, 953.8150929419839);
+ new ShapeRef(router, polygon, 55);
+#endif
+
+ // shapeRef56
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(24.81928187988439, 841.815092940984);
+ polygon.ps[1] = Point(24.81928187988439, 901.815092940984);
+ polygon.ps[2] = Point(-31.18071812011561, 901.815092940984);
+ polygon.ps[3] = Point(-31.18071812011561, 841.815092940984);
+ new ShapeRef(router, polygon, 56);
+
+#if ALL
+ // shapeRef57
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(542.8192818798843, 836.315092940984);
+ polygon.ps[1] = Point(542.8192818798843, 876.315092940984);
+ polygon.ps[2] = Point(466.8192818798844, 876.315092940984);
+ polygon.ps[3] = Point(466.8192818798844, 836.315092940984);
+ new ShapeRef(router, polygon, 57);
+
+ // shapeRef58
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1099.504996167599, 568.9817596076507);
+ polygon.ps[1] = Point(1099.504996167599, 608.9817596076507);
+ polygon.ps[2] = Point(1023.504996167599, 608.9817596076507);
+ polygon.ps[3] = Point(1023.504996167599, 568.9817596076507);
+ new ShapeRef(router, polygon, 58);
+
+ // shapeRef59
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(899.1049961675988, 578.315092940984);
+ polygon.ps[1] = Point(899.1049961675988, 638.315092940984);
+ polygon.ps[2] = Point(843.1049961675988, 638.315092940984);
+ polygon.ps[3] = Point(843.1049961675988, 578.315092940984);
+ new ShapeRef(router, polygon, 59);
+
+ // shapeRef60
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, 691.315092940984);
+ polygon.ps[1] = Point(484.8192818798844, 751.315092940984);
+ polygon.ps[2] = Point(428.8192818798844, 751.315092940984);
+ polygon.ps[3] = Point(428.8192818798844, 691.315092940984);
+ new ShapeRef(router, polygon, 60);
+
+ // shapeRef61
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(154.8192818798844, 578.315092940984);
+ polygon.ps[1] = Point(154.8192818798844, 638.315092940984);
+ polygon.ps[2] = Point(98.81928187988439, 638.315092940984);
+ polygon.ps[3] = Point(98.81928187988439, 578.315092940984);
+ new ShapeRef(router, polygon, 61);
+
+ // shapeRef62
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(675.1049961655988, 415.9817596066507);
+ polygon.ps[1] = Point(675.1049961655988, 455.9817596066507);
+ polygon.ps[2] = Point(599.1049961655988, 455.9817596066507);
+ polygon.ps[3] = Point(599.1049961655988, 415.9817596066507);
+ new ShapeRef(router, polygon, 62);
+
+ // shapeRef63
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, 423.9817596066507);
+ polygon.ps[1] = Point(484.8192818798844, 483.9817596066507);
+ polygon.ps[2] = Point(428.8192818798844, 483.9817596066507);
+ polygon.ps[3] = Point(428.8192818798844, 423.9817596066507);
+ new ShapeRef(router, polygon, 63);
+
+ // shapeRef64
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, 74.98175960565069);
+ polygon.ps[1] = Point(484.8192818798844, 134.9817596056507);
+ polygon.ps[2] = Point(428.8192818798844, 134.9817596056507);
+ polygon.ps[3] = Point(428.8192818798844, 74.98175960565069);
+ new ShapeRef(router, polygon, 64);
+
+ // shapeRef65
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1099.504996167599, 415.9817596066507);
+ polygon.ps[1] = Point(1099.504996167599, 455.9817596066507);
+ polygon.ps[2] = Point(1023.504996167599, 455.9817596066507);
+ polygon.ps[3] = Point(1023.504996167599, 415.9817596066507);
+ new ShapeRef(router, polygon, 65);
+
+ // shapeRef66
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(763.1049961665988, 216.9817596056507);
+ polygon.ps[1] = Point(763.1049961665988, 276.9817596056507);
+ polygon.ps[2] = Point(707.1049961665988, 276.9817596056507);
+ polygon.ps[3] = Point(707.1049961665988, 216.9817596056507);
+ new ShapeRef(router, polygon, 66);
+
+ // shapeRef67
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, 149.9817596056507);
+ polygon.ps[1] = Point(484.8192818798844, 209.9817596056507);
+ polygon.ps[2] = Point(428.8192818798844, 209.9817596056507);
+ polygon.ps[3] = Point(428.8192818798844, 149.9817596056507);
+ new ShapeRef(router, polygon, 67);
+
+ // shapeRef68
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(763.1049961665988, 338.9817596056507);
+ polygon.ps[1] = Point(763.1049961665988, 398.9817596056507);
+ polygon.ps[2] = Point(707.1049961665988, 398.9817596056507);
+ polygon.ps[3] = Point(707.1049961665988, 338.9817596056507);
+ new ShapeRef(router, polygon, 68);
+
+ // shapeRef69
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, -241.0182403963493);
+ polygon.ps[1] = Point(484.8192818798844, -181.0182403963493);
+ polygon.ps[2] = Point(428.8192818798844, -181.0182403963493);
+ polygon.ps[3] = Point(428.8192818798844, -241.0182403963493);
+ new ShapeRef(router, polygon, 69);
+
+ // shapeRef70
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(675.1049961655988, -203.0182403963493);
+ polygon.ps[1] = Point(675.1049961655988, -163.0182403963493);
+ polygon.ps[2] = Point(599.1049961655988, -163.0182403963493);
+ polygon.ps[3] = Point(599.1049961655988, -203.0182403963493);
+ new ShapeRef(router, polygon, 70);
+
+ // shapeRef71
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, 271.9817596056507);
+ polygon.ps[1] = Point(484.8192818798844, 331.9817596056507);
+ polygon.ps[2] = Point(428.8192818798844, 331.9817596056507);
+ polygon.ps[3] = Point(428.8192818798844, 271.9817596056507);
+ new ShapeRef(router, polygon, 71);
+
+ // shapeRef72
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(154.8192818798844, -125.0182403953493);
+ polygon.ps[1] = Point(154.8192818798844, -65.0182403953493);
+ polygon.ps[2] = Point(98.81928187988439, -65.0182403953493);
+ polygon.ps[3] = Point(98.81928187988439, -125.0182403953493);
+ new ShapeRef(router, polygon, 72);
+
+ // shapeRef73
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-8.180718120115614, -125.0182403953493);
+ polygon.ps[1] = Point(-8.180718120115614, -65.0182403953493);
+ polygon.ps[2] = Point(-64.18071812011561, -65.0182403953493);
+ polygon.ps[3] = Point(-64.18071812011561, -125.0182403953493);
+ new ShapeRef(router, polygon, 73);
+
+ // shapeRef74
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.8192818798844, 320.9817596056507);
+ polygon.ps[1] = Point(343.8192818798844, 360.9817596056507);
+ polygon.ps[2] = Point(267.8192818798844, 360.9817596056507);
+ polygon.ps[3] = Point(267.8192818798844, 320.9817596056507);
+ new ShapeRef(router, polygon, 74);
+
+ // shapeRef75
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(212.8192818798844, 254.9817596056507);
+ polygon.ps[1] = Point(212.8192818798844, 294.9817596056507);
+ polygon.ps[2] = Point(136.8192818798844, 294.9817596056507);
+ polygon.ps[3] = Point(136.8192818798844, 254.9817596056507);
+ new ShapeRef(router, polygon, 75);
+
+ // shapeRef76
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, -12.0182403953493);
+ polygon.ps[1] = Point(484.8192818798844, 47.9817596046507);
+ polygon.ps[2] = Point(428.8192818798844, 47.9817596046507);
+ polygon.ps[3] = Point(428.8192818798844, -12.0182403953493);
+ new ShapeRef(router, polygon, 76);
+
+ // shapeRef77
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(866.1049961675988, 84.98175960565069);
+ polygon.ps[1] = Point(866.1049961675988, 144.9817596056507);
+ polygon.ps[2] = Point(810.1049961675988, 144.9817596056507);
+ polygon.ps[3] = Point(810.1049961675988, 84.98175960565069);
+ new ShapeRef(router, polygon, 77);
+
+ // shapeRef78
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(866.1049961675988, 206.9817596056507);
+ polygon.ps[1] = Point(866.1049961675988, 266.9817596056507);
+ polygon.ps[2] = Point(810.1049961675988, 266.9817596056507);
+ polygon.ps[3] = Point(810.1049961675988, 206.9817596056507);
+ new ShapeRef(router, polygon, 78);
+
+ // shapeRef79
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(484.8192818798844, -119.0182403963493);
+ polygon.ps[1] = Point(484.8192818798844, -59.01824039634928);
+ polygon.ps[2] = Point(428.8192818798844, -59.01824039634928);
+ polygon.ps[3] = Point(428.8192818798844, -119.0182403963493);
+ new ShapeRef(router, polygon, 79);
+
+ // shapeRef80
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(866.1049961675988, 9.981759605650694);
+ polygon.ps[1] = Point(866.1049961675988, 69.98175960565069);
+ polygon.ps[2] = Point(810.1049961675988, 69.98175960565069);
+ polygon.ps[3] = Point(810.1049961675988, 9.981759605650694);
+ new ShapeRef(router, polygon, 80);
+
+ // shapeRef81
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-91.18071812011561, 455.9817596066507);
+ polygon.ps[1] = Point(-91.18071812011561, 515.9817596066507);
+ polygon.ps[2] = Point(-131.1807181201156, 515.9817596066507);
+ polygon.ps[3] = Point(-131.1807181201156, 455.9817596066507);
+ new ShapeRef(router, polygon, 81);
+
+ // shapeRef82
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(-91.18071812011561, 559.9817596066507);
+ polygon.ps[1] = Point(-91.18071812011561, 619.9817596066507);
+ polygon.ps[2] = Point(-131.1807181201156, 619.9817596066507);
+ polygon.ps[3] = Point(-131.1807181201156, 559.9817596066507);
+ new ShapeRef(router, polygon, 82);
+
+ // shapeRef83
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(876.0049961675987, 79.98175960565069);
+ polygon.ps[1] = Point(876.0049961675987, 196.9817596056507);
+ polygon.ps[2] = Point(800.2049961675988, 196.9817596056507);
+ polygon.ps[3] = Point(800.2049961675988, 79.98175960565069);
+ new ShapeRef(router, polygon, 83);
+#endif
+
+ // shapeRef84
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.7192818798844, 985.8150929419839);
+ polygon.ps[1] = Point(125.7192818798844, 1027.815092941984);
+ polygon.ps[2] = Point(49.91928187988439, 1027.815092941984);
+ polygon.ps[3] = Point(49.91928187988439, 985.8150929419839);
+ new ShapeRef(router, polygon, 84);
+
+#if ALL
+ // shapeRef85
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(494.7192818798844, -171.0182403963493);
+ polygon.ps[1] = Point(494.7192818798844, -129.0182403963493);
+ polygon.ps[2] = Point(418.9192818798844, -129.0182403963493);
+ polygon.ps[3] = Point(418.9192818798844, -171.0182403963493);
+ new ShapeRef(router, polygon, 85);
+
+ // shapeRef86
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(773.0049961665987, 286.9817596056507);
+ polygon.ps[1] = Point(773.0049961665987, 328.9817596056507);
+ polygon.ps[2] = Point(697.2049961665988, 328.9817596056507);
+ polygon.ps[3] = Point(697.2049961665988, 286.9817596056507);
+ new ShapeRef(router, polygon, 86);
+
+ // shapeRef87
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(494.7192818798844, 144.9817596056507);
+ polygon.ps[1] = Point(494.7192818798844, 261.9817596056507);
+ polygon.ps[2] = Point(418.9192818798844, 261.9817596056507);
+ polygon.ps[3] = Point(418.9192818798844, 144.9817596056507);
+ new ShapeRef(router, polygon, 87);
+
+ // connRef88
+ connRef = new ConnRef(router, 88);
+ srcPt = ConnEnd(Point(111.8192818798844, 648.315092940984), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-111.1807181201156, 856.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef89
+ connRef = new ConnRef(router, 89);
+ srcPt = ConnEnd(Point(126.8192818798844, 289.9817596056507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-111.1807181201156, 856.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+#endif
+
+ // connRef90
+ connRef = new ConnRef(router, 90);
+ srcPt = ConnEnd(Point(72.81928187988439, 985.8150929419839), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints90(1);
+ checkpoints90[0] = Checkpoint(Point(49.81928187988439, 1006.815092941984), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints90);
+ Avoid::ConnRef *connRef90 = connRef;
+
+ // connRef91
+ connRef = new ConnRef(router, 91);
+ srcPt = ConnEnd(Point(72.81928187988439, 1027.815092941984), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints91(1);
+ checkpoints91[0] = Checkpoint(Point(49.81928187988439, 1006.815092941984), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints91);
+ Avoid::ConnRef *connRef91 = connRef;
+
+#if ALL
+ // connRef92
+ connRef = new ConnRef(router, 92);
+ srcPt = ConnEnd(Point(471.8192818798844, -171.0182403963493), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints92(1);
+ checkpoints92[0] = Checkpoint(Point(494.8192818798844, -150.0182403963493), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints92);
+
+ // connRef93
+ connRef = new ConnRef(router, 93);
+ srcPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -168.0182403963493), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef94
+ connRef = new ConnRef(router, 94);
+ srcPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(471.8192818798844, -22.0182403953493), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef95
+ connRef = new ConnRef(router, 95);
+ srcPt = ConnEnd(Point(823.1049961675988, 154.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints95(1);
+ checkpoints95[0] = Checkpoint(Point(800.1049961675988, 175.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints95);
+
+ // connRef96
+ connRef = new ConnRef(router, 96);
+ srcPt = ConnEnd(Point(823.1049961675988, 196.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints96(1);
+ checkpoints96[0] = Checkpoint(Point(800.1049961675988, 175.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints96);
+
+ // connRef97
+ connRef = new ConnRef(router, 97);
+ srcPt = ConnEnd(Point(471.8192818798844, -129.0182403963493), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints97(1);
+ checkpoints97[0] = Checkpoint(Point(494.8192818798844, -150.0182403963493), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints97);
+
+ // connRef98
+ connRef = new ConnRef(router, 98);
+ srcPt = ConnEnd(Point(823.1049961675988, 79.98175960565069), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints98(1);
+ checkpoints98[0] = Checkpoint(Point(800.1049961675988, 175.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints98);
+
+ // connRef99
+ connRef = new ConnRef(router, 99);
+ srcPt = ConnEnd(Point(1013.504996167599, 526.9817596066507), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1013.504996167599, 573.9817596076507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef100
+ connRef = new ConnRef(router, 100);
+ srcPt = ConnEnd(Point(1013.504996167599, 450.9817596066507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1013.504996167599, 526.9817596066507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef101
+ connRef = new ConnRef(router, 101);
+ srcPt = ConnEnd(Point(318.8192818798844, 648.315092940984), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(141.8192818798844, 648.315092940984), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef102
+ connRef = new ConnRef(router, 102);
+ srcPt = ConnEnd(Point(441.8192818798844, 493.9817596066507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 648.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef103
+ connRef = new ConnRef(router, 103);
+ srcPt = ConnEnd(Point(102.8192818798844, 985.8150929419839), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 911.815092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints103(1);
+ checkpoints103[0] = Checkpoint(Point(125.8192818798844, 1006.815092941984), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints103);
+
+ // connRef104
+ connRef = new ConnRef(router, 104);
+ srcPt = ConnEnd(Point(102.8192818798844, 1027.815092941984), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 911.815092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints104(1);
+ checkpoints104[0] = Checkpoint(Point(125.8192818798844, 1006.815092941984), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints104);
+
+ // connRef105
+ connRef = new ConnRef(router, 105);
+ srcPt = ConnEnd(Point(318.8192818798844, 988.8150929419839), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 1039.815092941984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef106
+ connRef = new ConnRef(router, 106);
+ srcPt = ConnEnd(Point(318.8192818798844, 911.815092940984), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 958.8150929419839), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef107
+ connRef = new ConnRef(router, 107);
+ srcPt = ConnEnd(Point(-18.18071812011561, 911.815092940984), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-111.1807181201156, 856.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef108
+ connRef = new ConnRef(router, 108);
+ srcPt = ConnEnd(Point(318.8192818798844, 911.815092940984), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11.81928187988439, 911.815092940984), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef109
+ connRef = new ConnRef(router, 109);
+ srcPt = ConnEnd(Point(456.8192818798844, 871.315092940984), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 911.815092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef110
+ connRef = new ConnRef(router, 110);
+ srcPt = ConnEnd(Point(589.1049961655988, 648.315092940984), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 841.315092940984), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef111
+ connRef = new ConnRef(router, 111);
+ srcPt = ConnEnd(Point(1013.504996167599, 603.9817596076507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1013.504996167599, 750.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef112
+ connRef = new ConnRef(router, 112);
+ srcPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(886.1049961675988, 648.315092940984), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef113
+ connRef = new ConnRef(router, 113);
+ srcPt = ConnEnd(Point(856.1049961675988, 648.315092940984), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 648.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef114
+ connRef = new ConnRef(router, 114);
+ srcPt = ConnEnd(Point(441.8192818798844, 681.315092940984), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 648.315092940984), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef115
+ connRef = new ConnRef(router, 115);
+ srcPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 420.9817596066507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef116
+ connRef = new ConnRef(router, 116);
+ srcPt = ConnEnd(Point(589.1049961655988, 450.9817596066507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 526.9817596066507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef117
+ connRef = new ConnRef(router, 117);
+ srcPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(471.8192818798844, 493.9817596066507), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef118
+ connRef = new ConnRef(router, 118);
+ srcPt = ConnEnd(Point(471.8192818798844, 144.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints118(1);
+ checkpoints118[0] = Checkpoint(Point(494.8192818798844, 240.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints118);
+
+ // connRef119
+ connRef = new ConnRef(router, 119);
+ srcPt = ConnEnd(Point(441.8192818798844, 144.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints119(1);
+ checkpoints119[0] = Checkpoint(Point(418.8192818798844, 240.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints119);
+
+ // connRef120
+ connRef = new ConnRef(router, 120);
+ srcPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1013.504996167599, 420.9817596066507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef121
+ connRef = new ConnRef(router, 121);
+ srcPt = ConnEnd(Point(750.1049961665988, 286.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints121(1);
+ checkpoints121[0] = Checkpoint(Point(773.1049961665988, 307.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints121);
+
+ // connRef122
+ connRef = new ConnRef(router, 122);
+ srcPt = ConnEnd(Point(720.1049961665988, 286.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints122(1);
+ checkpoints122[0] = Checkpoint(Point(697.1049961665988, 307.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints122);
+
+ // connRef123
+ connRef = new ConnRef(router, 123);
+ srcPt = ConnEnd(Point(471.8192818798844, 219.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints123(1);
+ checkpoints123[0] = Checkpoint(Point(494.8192818798844, 240.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints123);
+
+ // connRef124
+ connRef = new ConnRef(router, 124);
+ srcPt = ConnEnd(Point(441.8192818798844, 219.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints124(1);
+ checkpoints124[0] = Checkpoint(Point(418.8192818798844, 240.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints124);
+
+ // connRef125
+ connRef = new ConnRef(router, 125);
+ srcPt = ConnEnd(Point(750.1049961665988, 328.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints125(1);
+ checkpoints125[0] = Checkpoint(Point(773.1049961665988, 307.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints125);
+
+ // connRef126
+ connRef = new ConnRef(router, 126);
+ srcPt = ConnEnd(Point(441.8192818798844, -171.0182403963493), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -150.0182403963493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints126(1);
+ checkpoints126[0] = Checkpoint(Point(418.8192818798844, -150.0182403963493), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints126);
+
+ // connRef127
+ connRef = new ConnRef(router, 127);
+ srcPt = ConnEnd(Point(589.1049961655988, -198.0182403963493), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -245.0182403973492), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef128
+ connRef = new ConnRef(router, 128);
+ srcPt = ConnEnd(Point(471.8192818798844, 261.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints128(1);
+ checkpoints128[0] = Checkpoint(Point(494.8192818798844, 240.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints128);
+
+ // connRef129
+ connRef = new ConnRef(router, 129);
+ srcPt = ConnEnd(Point(441.8192818798844, 261.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints129(1);
+ checkpoints129[0] = Checkpoint(Point(418.8192818798844, 240.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints129);
+#endif
+
+ // connRef130
+ connRef = new ConnRef(router, 130);
+ srcPt = ConnEnd(Point(47.81928187988439, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(111.8192818798844, -55.0182403953493), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+#if ALL
+ // connRef131
+ connRef = new ConnRef(router, 131);
+ srcPt = ConnEnd(Point(141.8192818798844, -55.0182403953493), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef132
+ connRef = new ConnRef(router, 132);
+ srcPt = ConnEnd(Point(-21.18071812011561, -55.0182403953493), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(47.81928187988439, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef133
+ connRef = new ConnRef(router, 133);
+ srcPt = ConnEnd(Point(-111.1807181201156, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-51.18071812011561, -55.0182403953493), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef134
+ connRef = new ConnRef(router, 134);
+ srcPt = ConnEnd(Point(257.8192818798844, 355.9817596056507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(257.8192818798844, 402.9817596066507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef135
+ connRef = new ConnRef(router, 135);
+ srcPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(257.8192818798844, 325.9817596056507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef136
+ connRef = new ConnRef(router, 136);
+ srcPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(126.8192818798844, 259.9817596056507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef137
+ connRef = new ConnRef(router, 137);
+ srcPt = ConnEnd(Point(441.8192818798844, -22.0182403953493), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -55.0182403953493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef138
+ connRef = new ConnRef(router, 138);
+ srcPt = ConnEnd(Point(853.1049961675988, 154.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints138(1);
+ checkpoints138[0] = Checkpoint(Point(876.1049961675988, 175.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints138);
+
+ // connRef139
+ connRef = new ConnRef(router, 139);
+ srcPt = ConnEnd(Point(853.1049961675988, 196.9817596056507), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints139(1);
+ checkpoints139[0] = Checkpoint(Point(876.1049961675988, 175.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints139);
+
+ // connRef140
+ connRef = new ConnRef(router, 140);
+ srcPt = ConnEnd(Point(853.1049961675988, 79.98175960565069), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(970.1049961675988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints140(1);
+ checkpoints140[0] = Checkpoint(Point(876.1049961675988, 175.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef->setRoutingCheckpoints(checkpoints140);
+
+ // connRef141
+ connRef = new ConnRef(router, 141);
+ srcPt = ConnEnd(Point(441.8192818798844, -129.0182403963493), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, -150.0182403963493), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints141(1);
+ checkpoints141[0] = Checkpoint(Point(418.8192818798844, -150.0182403963493), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints141);
+
+ // connRef142
+ connRef = new ConnRef(router, 142);
+ srcPt = ConnEnd(Point(720.1049961665988, 328.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 307.9817596056507), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints142(1);
+ checkpoints142[0] = Checkpoint(Point(697.1049961665988, 307.9817596056507), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef->setRoutingCheckpoints(checkpoints142);
+
+ // connRef143
+ connRef = new ConnRef(router, 143);
+ srcPt = ConnEnd(Point(589.1049961655988, 648.315092940984), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(471.8192818798844, 681.315092940984), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef144
+ connRef = new ConnRef(router, 144);
+ srcPt = ConnEnd(Point(87.81928187988439, 935.8150929419839), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(87.81928187988439, 985.8150929419839), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef145
+ connRef = new ConnRef(router, 145);
+ srcPt = ConnEnd(Point(87.81928187988439, 1077.815092941984), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(87.81928187988439, 1027.815092941984), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef146
+ connRef = new ConnRef(router, 146);
+ srcPt = ConnEnd(Point(376.8192818798844, 973.8150929419839), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(318.8192818798844, 973.8150929419839), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef147
+ connRef = new ConnRef(router, 147);
+ srcPt = ConnEnd(Point(-3.180718120115614, 861.815092940984), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-3.180718120115614, 911.815092940984), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef148
+ connRef = new ConnRef(router, 148);
+ srcPt = ConnEnd(Point(514.8192818798843, 856.315092940984), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 856.315092940984), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef149
+ connRef = new ConnRef(router, 149);
+ srcPt = ConnEnd(Point(1071.504996167599, 588.9817596076507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1013.504996167599, 588.9817596076507), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef150
+ connRef = new ConnRef(router, 150);
+ srcPt = ConnEnd(Point(871.1049961675988, 598.315092940984), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(871.1049961675988, 648.315092940984), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef151
+ connRef = new ConnRef(router, 151);
+ srcPt = ConnEnd(Point(456.8192818798844, 731.315092940984), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 681.315092940984), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef152
+ connRef = new ConnRef(router, 152);
+ srcPt = ConnEnd(Point(126.8192818798844, 598.315092940984), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(126.8192818798844, 648.315092940984), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef153
+ connRef = new ConnRef(router, 153);
+ srcPt = ConnEnd(Point(647.1049961655988, 435.9817596066507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, 435.9817596066507), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef154
+ connRef = new ConnRef(router, 154);
+ srcPt = ConnEnd(Point(456.8192818798844, 443.9817596066507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 493.9817596066507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef155
+ connRef = new ConnRef(router, 155);
+ srcPt = ConnEnd(Point(456.8192818798844, 94.98175960565069), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 144.9817596056507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef156
+ connRef = new ConnRef(router, 156);
+ srcPt = ConnEnd(Point(1071.504996167599, 435.9817596066507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1013.504996167599, 435.9817596066507), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef157
+ connRef = new ConnRef(router, 157);
+ srcPt = ConnEnd(Point(735.1049961665988, 236.9817596056507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(735.1049961665988, 286.9817596056507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef158
+ connRef = new ConnRef(router, 158);
+ srcPt = ConnEnd(Point(456.8192818798844, 169.9817596056507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 219.9817596056507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef159
+ connRef = new ConnRef(router, 159);
+ srcPt = ConnEnd(Point(735.1049961665988, 378.9817596056507), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(735.1049961665988, 328.9817596056507), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef160
+ connRef = new ConnRef(router, 160);
+ srcPt = ConnEnd(Point(456.8192818798844, -221.0182403963493), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, -171.0182403963493), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef161
+ connRef = new ConnRef(router, 161);
+ srcPt = ConnEnd(Point(647.1049961655988, -183.0182403963493), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(589.1049961655988, -183.0182403963493), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef162
+ connRef = new ConnRef(router, 162);
+ srcPt = ConnEnd(Point(456.8192818798844, 311.9817596056507), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, 261.9817596056507), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef163
+ connRef = new ConnRef(router, 163);
+ srcPt = ConnEnd(Point(126.8192818798844, -105.0182403953493), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(126.8192818798844, -55.0182403953493), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef164
+ connRef = new ConnRef(router, 164);
+ srcPt = ConnEnd(Point(-36.18071812011561, -105.0182403953493), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-36.18071812011561, -55.0182403953493), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef165
+ connRef = new ConnRef(router, 165);
+ srcPt = ConnEnd(Point(315.8192818798844, 340.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(257.8192818798844, 340.9817596056507), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef166
+ connRef = new ConnRef(router, 166);
+ srcPt = ConnEnd(Point(184.8192818798844, 274.9817596056507), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(126.8192818798844, 274.9817596056507), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef167
+ connRef = new ConnRef(router, 167);
+ srcPt = ConnEnd(Point(456.8192818798844, 27.9817596046507), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, -22.0182403953493), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef168
+ connRef = new ConnRef(router, 168);
+ srcPt = ConnEnd(Point(838.1049961675988, 104.9817596056507), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(838.1049961675988, 154.9817596056507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef169
+ connRef = new ConnRef(router, 169);
+ srcPt = ConnEnd(Point(838.1049961675988, 246.9817596056507), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(838.1049961675988, 196.9817596056507), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef170
+ connRef = new ConnRef(router, 170);
+ srcPt = ConnEnd(Point(456.8192818798844, -79.01824039634928), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(456.8192818798844, -129.0182403963493), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef171
+ connRef = new ConnRef(router, 171);
+ srcPt = ConnEnd(Point(838.1049961675988, 29.98175960565069), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(838.1049961675988, 79.98175960565069), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef172
+ connRef = new ConnRef(router, 172);
+ srcPt = ConnEnd(Point(-111.1807181201156, -55.0182403953493), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-111.1807181201156, 460.9817596066507), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef173
+ connRef = new ConnRef(router, 173);
+ srcPt = ConnEnd(Point(-111.1807181201156, 856.315092940984), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-111.1807181201156, 614.9817596066507), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/nudgingSkipsCheckpoint01");
+ Avoid::PolyLine route90 = connRef90->displayRoute();
+ Avoid::PolyLine route91 = connRef91->displayRoute();
+
+ delete router;
+ return (route90.size() == 7 && route91.size() == 7) ? 0 : 1;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint02.cpp
new file mode 100644
index 0000000..cb17c82
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/nudgingSkipsCheckpoint02.cpp
@@ -0,0 +1,3054 @@
+// Regression test to catch problem where orthogonal segments from the same
+// connector were being merged with others going through checkpoints and
+// being simplified so as not to pass the checkpoint anymore.
+// Based on ec00480.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+
+#ifdef ALL
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1395.728847251115, 277.2282734381338);
+ poly1.ps[1] = Point(1395.728847251115, 339.2282734381338);
+ poly1.ps[2] = Point(1333.728847251115, 339.2282734381338);
+ poly1.ps[3] = Point(1333.728847251115, 277.2282734381338);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(-406.4508064345389, -754.3431551372947);
+ poly2.ps[1] = Point(-406.4508064345389, -719.3431551372947);
+ poly2.ps[2] = Point(-635.4508064345389, -719.3431551372947);
+ poly2.ps[3] = Point(-635.4508064345389, -754.3431551372947);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(887.7288472481148, -474.3431551372947);
+ poly3.ps[1] = Point(887.7288472481148, -310.3431551372947);
+ poly3.ps[2] = Point(803.7288472481148, -310.3431551372947);
+ poly3.ps[3] = Point(803.7288472481148, -474.3431551372947);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(723.2288472481148, -439.8431551372947);
+ poly4.ps[1] = Point(723.2288472481148, -384.8431551372947);
+ poly4.ps[2] = Point(515.2288472481148, -384.8431551372947);
+ poly4.ps[3] = Point(515.2288472481148, -439.8431551372947);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(543.4431329624006, -281.3431551362947);
+ poly5.ps[1] = Point(543.4431329624006, -231.3431551362947);
+ poly5.ps[2] = Point(301.4431329624006, -231.3431551362947);
+ poly5.ps[3] = Point(301.4431329624006, -281.3431551362947);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(261.4431329624006, -444.8431551372947);
+ poly6.ps[1] = Point(261.4431329624006, -389.8431551372947);
+ poly6.ps[2] = Point(49.44313296240057, -389.8431551372947);
+ poly6.ps[3] = Point(49.44313296240057, -444.8431551372947);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(976.7288472491148, 236.2282734371338);
+ poly7.ps[1] = Point(976.7288472491148, 256.2282734371338);
+ poly7.ps[2] = Point(944.7288472491148, 256.2282734371338);
+ poly7.ps[3] = Point(944.7288472491148, 236.2282734371338);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(865.7288472481148, 364.561606771467);
+ poly8.ps[1] = Point(865.7288472481148, 384.561606771467);
+ poly8.ps[2] = Point(833.7288472481148, 384.561606771467);
+ poly8.ps[3] = Point(833.7288472481148, 364.561606771467);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(634.7288472481148, 424.9901782000385);
+ poly9.ps[1] = Point(634.7288472481148, 444.9901782000385);
+ poly9.ps[2] = Point(602.7288472481148, 444.9901782000385);
+ poly9.ps[3] = Point(602.7288472481148, 424.9901782000385);
+ new ShapeRef(router, poly9, 9);
+#endif
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(-264.9508064325389, 376.2282734371338);
+ poly10.ps[1] = Point(-264.9508064325389, 396.2282734371338);
+ poly10.ps[2] = Point(-296.9508064325389, 396.2282734371338);
+ poly10.ps[3] = Point(-296.9508064325389, 376.2282734371338);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(-264.9508064325389, 451.2282734371338);
+ poly11.ps[1] = Point(-264.9508064325389, 471.2282734371338);
+ poly11.ps[2] = Point(-296.9508064325389, 471.2282734371338);
+ poly11.ps[3] = Point(-296.9508064325389, 451.2282734371338);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(-264.9508064325389, 526.2282734371338);
+ poly12.ps[1] = Point(-264.9508064325389, 546.2282734371338);
+ poly12.ps[2] = Point(-296.9508064325389, 546.2282734371338);
+ poly12.ps[3] = Point(-296.9508064325389, 526.2282734371338);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(-264.9508064325389, 601.2282734371338);
+ poly13.ps[1] = Point(-264.9508064325389, 621.2282734371338);
+ poly13.ps[2] = Point(-296.9508064325389, 621.2282734371338);
+ poly13.ps[3] = Point(-296.9508064325389, 601.2282734371338);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(-264.9508064325389, 676.2282734371338);
+ poly14.ps[1] = Point(-264.9508064325389, 696.2282734371338);
+ poly14.ps[2] = Point(-296.9508064325389, 696.2282734371338);
+ poly14.ps[3] = Point(-296.9508064325389, 676.2282734371338);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(-264.9508064325389, 943.2282734371338);
+ poly15.ps[1] = Point(-264.9508064325389, 963.2282734371338);
+ poly15.ps[2] = Point(-296.9508064325389, 963.2282734371338);
+ poly15.ps[3] = Point(-296.9508064325389, 943.2282734371338);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(-264.9508064325389, 751.2282734371338);
+ poly16.ps[1] = Point(-264.9508064325389, 771.2282734371338);
+ poly16.ps[2] = Point(-296.9508064325389, 771.2282734371338);
+ poly16.ps[3] = Point(-296.9508064325389, 751.2282734371338);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(-264.9508064325389, 793.2282734371338);
+ poly17.ps[1] = Point(-264.9508064325389, 813.2282734371338);
+ poly17.ps[2] = Point(-296.9508064325389, 813.2282734371338);
+ poly17.ps[3] = Point(-296.9508064325389, 793.2282734371338);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(-264.9508064325389, 868.2282734371338);
+ poly18.ps[1] = Point(-264.9508064325389, 888.2282734371338);
+ poly18.ps[2] = Point(-296.9508064325389, 888.2282734371338);
+ poly18.ps[3] = Point(-296.9508064325389, 868.2282734371338);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(-264.9508064325389, 1018.228273437134);
+ poly19.ps[1] = Point(-264.9508064325389, 1038.228273437134);
+ poly19.ps[2] = Point(-296.9508064325389, 1038.228273437134);
+ poly19.ps[3] = Point(-296.9508064325389, 1018.228273437134);
+ new ShapeRef(router, poly19, 19);
+
+#ifdef ALL
+ Polygon poly20(4);
+ poly20.ps[0] = Point(-392.9508064335388, 202.2282734381338);
+ poly20.ps[1] = Point(-392.9508064335388, 222.2282734381338);
+ poly20.ps[2] = Point(-424.9508064335388, 222.2282734381338);
+ poly20.ps[3] = Point(-424.9508064335388, 202.2282734381338);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(-392.9508064335388, 277.2282734381338);
+ poly21.ps[1] = Point(-392.9508064335388, 297.2282734381338);
+ poly21.ps[2] = Point(-424.9508064335388, 297.2282734381338);
+ poly21.ps[3] = Point(-424.9508064335388, 277.2282734381338);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(-392.9508064335388, 319.2282734381338);
+ poly22.ps[1] = Point(-392.9508064335388, 339.2282734381338);
+ poly22.ps[2] = Point(-424.9508064335388, 339.2282734381338);
+ poly22.ps[3] = Point(-424.9508064335388, 319.2282734381338);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(601.7288472481148, 236.2282734371338);
+ poly23.ps[1] = Point(601.7288472481148, 256.2282734371338);
+ poly23.ps[2] = Point(569.7288472481148, 256.2282734371338);
+ poly23.ps[3] = Point(569.7288472481148, 236.2282734371338);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(727.7288472481148, -284.3431551362947);
+ poly24.ps[1] = Point(727.7288472481148, -252.3431551362947);
+ poly24.ps[2] = Point(707.7288472481148, -252.3431551362947);
+ poly24.ps[3] = Point(707.7288472481148, -284.3431551362947);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(168.7764662957339, 153.6568448657052);
+ poly25.ps[1] = Point(168.7764662957339, 185.6568448657052);
+ poly25.ps[2] = Point(148.7764662957339, 185.6568448657052);
+ poly25.ps[3] = Point(148.7764662957339, 153.6568448657052);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(257.9431329624006, -143.3431551362948);
+ poly26.ps[1] = Point(257.9431329624006, -123.3431551362948);
+ poly26.ps[2] = Point(225.9431329624006, -123.3431551362948);
+ poly26.ps[3] = Point(225.9431329624006, -143.3431551362948);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(354.4431329624006, -561.3431551372947);
+ poly27.ps[1] = Point(354.4431329624006, -541.3431551372947);
+ poly27.ps[2] = Point(322.4431329624006, -541.3431551372947);
+ poly27.ps[3] = Point(322.4431329624006, -561.3431551372947);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(568.7288472481148, -651.8431551372947);
+ poly28.ps[1] = Point(568.7288472481148, -631.8431551372947);
+ poly28.ps[2] = Point(536.7288472481148, -631.8431551372947);
+ poly28.ps[3] = Point(536.7288472481148, -651.8431551372947);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(-210.9735337052661, 120.6568448657052);
+ poly29.ps[1] = Point(-210.9735337052661, 152.6568448657052);
+ poly29.ps[2] = Point(-230.9735337052661, 152.6568448657052);
+ poly29.ps[3] = Point(-230.9735337052661, 120.6568448657052);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(-210.9735337052661, -372.3431551372947);
+ poly30.ps[1] = Point(-210.9735337052661, -340.3431551372947);
+ poly30.ps[2] = Point(-230.9735337052661, -340.3431551372947);
+ poly30.ps[3] = Point(-230.9735337052661, -372.3431551372947);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1446.728847251115, 424.9901782000385);
+ poly31.ps[1] = Point(1446.728847251115, 444.9901782000385);
+ poly31.ps[2] = Point(1414.728847251115, 444.9901782000385);
+ poly31.ps[3] = Point(1414.728847251115, 424.9901782000385);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(420.4431329624006, 424.9901782000385);
+ poly32.ps[1] = Point(420.4431329624006, 444.9901782000385);
+ poly32.ps[2] = Point(388.4431329624006, 444.9901782000385);
+ poly32.ps[3] = Point(388.4431329624006, 424.9901782000385);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(447.4431329624006, 869.3235115333719);
+ poly33.ps[1] = Point(447.4431329624006, 901.3235115333719);
+ poly33.ps[2] = Point(427.4431329624006, 901.3235115333719);
+ poly33.ps[3] = Point(427.4431329624006, 869.3235115333719);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(447.4431329624006, 578.9901782000385);
+ poly34.ps[1] = Point(447.4431329624006, 610.9901782000385);
+ poly34.ps[2] = Point(427.4431329624006, 610.9901782000385);
+ poly34.ps[3] = Point(427.4431329624006, 578.9901782000385);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(-555.9508064345389, -439.3431551372947);
+ poly35.ps[1] = Point(-555.9508064345389, -377.3431551372947);
+ poly35.ps[2] = Point(-617.9508064345389, -377.3431551372947);
+ poly35.ps[3] = Point(-617.9508064345389, -439.3431551372947);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(-189.9735337052661, -582.3431551372947);
+ poly36.ps[1] = Point(-189.9735337052661, -520.3431551372947);
+ poly36.ps[2] = Point(-251.9735337052661, -520.3431551372947);
+ poly36.ps[3] = Point(-251.9735337052661, -582.3431551372947);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(468.4431329624006, -354.3431551372947);
+ poly37.ps[1] = Point(468.4431329624006, -292.3431551372947);
+ poly37.ps[2] = Point(406.4431329624006, -292.3431551372947);
+ poly37.ps[3] = Point(406.4431329624006, -354.3431551372947);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(748.7288472481148, -549.3431551372947);
+ poly38.ps[1] = Point(748.7288472481148, -487.3431551372947);
+ poly38.ps[2] = Point(686.7288472481148, -487.3431551372947);
+ poly38.ps[3] = Point(686.7288472481148, -549.3431551372947);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(649.7288472481148, -233.3431551362948);
+ poly39.ps[1] = Point(649.7288472481148, -171.3431551362948);
+ poly39.ps[2] = Point(587.7288472481148, -171.3431551362948);
+ poly39.ps[3] = Point(587.7288472481148, -233.3431551362948);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(189.7764662957339, 72.65684486570521);
+ poly40.ps[1] = Point(189.7764662957339, 134.6568448657052);
+ poly40.ps[2] = Point(127.7764662957339, 134.6568448657052);
+ poly40.ps[3] = Point(127.7764662957339, 72.65684486570521);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(-189.9735337052661, -266.3431551362947);
+ poly41.ps[1] = Point(-189.9735337052661, -204.3431551362947);
+ poly41.ps[2] = Point(-251.9735337052661, -204.3431551362947);
+ poly41.ps[3] = Point(-251.9735337052661, -266.3431551362947);
+ new ShapeRef(router, poly41, 41);
+#endif
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(189.7764662957339, 215.2282734371338);
+ poly42.ps[1] = Point(189.7764662957339, 277.2282734371338);
+ poly42.ps[2] = Point(127.7764662957339, 277.2282734371338);
+ poly42.ps[3] = Point(127.7764662957339, 215.2282734371338);
+ new ShapeRef(router, poly42, 42);
+
+#ifdef ALL
+ Polygon poly43(4);
+ poly43.ps[0] = Point(748.7288472481148, 215.2282734371338);
+ poly43.ps[1] = Point(748.7288472481148, 277.2282734371338);
+ poly43.ps[2] = Point(686.7288472481148, 277.2282734371338);
+ poly43.ps[3] = Point(686.7288472481148, 215.2282734371338);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(1329.728847251115, 215.2282734371338);
+ poly44.ps[1] = Point(1329.728847251115, 277.2282734371338);
+ poly44.ps[2] = Point(1267.728847251115, 277.2282734371338);
+ poly44.ps[3] = Point(1267.728847251115, 215.2282734371338);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(-594.9508064345389, 215.2282734371338);
+ poly45.ps[1] = Point(-594.9508064345389, 277.2282734371338);
+ poly45.ps[2] = Point(-656.9508064345389, 277.2282734371338);
+ poly45.ps[3] = Point(-656.9508064345389, 215.2282734371338);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(-522.9508064345389, 277.2282734381338);
+ poly46.ps[1] = Point(-522.9508064345389, 339.2282734381338);
+ poly46.ps[2] = Point(-584.9508064345389, 339.2282734381338);
+ poly46.ps[3] = Point(-584.9508064345389, 277.2282734381338);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(0.776466294733865, 277.2282734381338);
+ poly47.ps[1] = Point(0.776466294733865, 339.2282734381338);
+ poly47.ps[2] = Point(-61.22353370526614, 339.2282734381338);
+ poly47.ps[3] = Point(-61.22353370526614, 277.2282734381338);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(272.9431329624006, 277.2282734381338);
+ poly48.ps[1] = Point(272.9431329624006, 339.2282734381338);
+ poly48.ps[2] = Point(210.9431329624006, 339.2282734381338);
+ poly48.ps[3] = Point(210.9431329624006, 277.2282734381338);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(550.7288472481148, 403.9901782000385);
+ poly49.ps[1] = Point(550.7288472481148, 465.9901782000385);
+ poly49.ps[2] = Point(488.7288472481148, 465.9901782000385);
+ poly49.ps[3] = Point(488.7288472481148, 403.9901782000385);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(682.7288472481148, 887.3235115333719);
+ poly50.ps[1] = Point(682.7288472481148, 949.3235115333719);
+ poly50.ps[2] = Point(620.7288472481148, 949.3235115333719);
+ poly50.ps[3] = Point(620.7288472481148, 887.3235115333719);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(715.7288472481148, 277.2282734381338);
+ poly51.ps[1] = Point(715.7288472481148, 339.2282734381338);
+ poly51.ps[2] = Point(653.7288472481148, 339.2282734381338);
+ poly51.ps[3] = Point(653.7288472481148, 277.2282734381338);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(812.7288472481148, 403.9901782000385);
+ poly52.ps[1] = Point(812.7288472481148, 465.9901782000385);
+ poly52.ps[2] = Point(750.7288472481148, 465.9901782000385);
+ poly52.ps[3] = Point(750.7288472481148, 403.9901782000385);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(1160.728847250115, 277.2282734381338);
+ poly53.ps[1] = Point(1160.728847250115, 339.2282734381338);
+ poly53.ps[2] = Point(1098.728847250115, 339.2282734381338);
+ poly53.ps[3] = Point(1098.728847250115, 277.2282734381338);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(1362.728847251115, 403.9901782000385);
+ poly54.ps[1] = Point(1362.728847251115, 465.9901782000385);
+ poly54.ps[2] = Point(1300.728847251115, 465.9901782000385);
+ poly54.ps[3] = Point(1300.728847251115, 403.9901782000385);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(1542.728847251115, 403.9901782000385);
+ poly55.ps[1] = Point(1542.728847251115, 465.9901782000385);
+ poly55.ps[2] = Point(1480.728847251115, 465.9901782000385);
+ poly55.ps[3] = Point(1480.728847251115, 403.9901782000385);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(-485.9508064345389, 236.2282734371338);
+ poly56.ps[1] = Point(-485.9508064345389, 256.2282734371338);
+ poly56.ps[2] = Point(-517.9508064345389, 256.2282734371338);
+ poly56.ps[3] = Point(-517.9508064345389, 236.2282734371338);
+ new ShapeRef(router, poly56, 56);
+#endif
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(-264.9508064325389, 1093.228273437134);
+ poly57.ps[1] = Point(-264.9508064325389, 1113.228273437134);
+ poly57.ps[2] = Point(-296.9508064325389, 1113.228273437134);
+ poly57.ps[3] = Point(-296.9508064325389, 1093.228273437134);
+ new ShapeRef(router, poly57, 57);
+
+#ifdef ALL
+ Polygon poly58(4);
+ poly58.ps[0] = Point(-119.8902003719328, 990.3235115333719);
+ poly58.ps[1] = Point(-119.8902003719328, 1052.323511533372);
+ poly58.ps[2] = Point(-181.8902003719328, 1052.323511533372);
+ poly58.ps[3] = Point(-181.8902003719328, 990.3235115333719);
+ new ShapeRef(router, poly58, 58);
+#endif
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(-119.8902003719328, 765.3235115333719);
+ poly59.ps[1] = Point(-119.8902003719328, 827.3235115333719);
+ poly59.ps[2] = Point(-181.8902003719328, 827.3235115333719);
+ poly59.ps[3] = Point(-181.8902003719328, 765.3235115333719);
+ new ShapeRef(router, poly59, 59);
+
+#ifdef ALL
+ Polygon poly60(4);
+ poly60.ps[0] = Point(402.4431329624006, 765.3235115333719);
+ poly60.ps[1] = Point(402.4431329624006, 827.3235115333719);
+ poly60.ps[2] = Point(340.4431329624006, 827.3235115333719);
+ poly60.ps[3] = Point(340.4431329624006, 765.3235115333719);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(925.7288472491148, 887.3235115333719);
+ poly61.ps[1] = Point(925.7288472491148, 949.3235115333719);
+ poly61.ps[2] = Point(863.7288472491148, 949.3235115333719);
+ poly61.ps[3] = Point(863.7288472491148, 887.3235115333719);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(1509.728847251115, 887.3235115333719);
+ poly62.ps[1] = Point(1509.728847251115, 949.3235115333719);
+ poly62.ps[2] = Point(1447.728847251115, 949.3235115333719);
+ poly62.ps[3] = Point(1447.728847251115, 887.3235115333719);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(1428.728847251115, 530.9901782000385);
+ poly63.ps[1] = Point(1428.728847251115, 592.9901782000385);
+ poly63.ps[2] = Point(1366.728847251115, 592.9901782000385);
+ poly63.ps[3] = Point(1366.728847251115, 530.9901782000385);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(1127.728847250115, 530.9901782000385);
+ poly64.ps[1] = Point(1127.728847250115, 592.9901782000385);
+ poly64.ps[2] = Point(1065.728847250115, 592.9901782000385);
+ poly64.ps[3] = Point(1065.728847250115, 530.9901782000385);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(1024.728847249115, 821.3235115333719);
+ poly65.ps[1] = Point(1024.728847249115, 883.3235115333719);
+ poly65.ps[2] = Point(962.7288472491148, 883.3235115333719);
+ poly65.ps[3] = Point(962.7288472491148, 821.3235115333719);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(1461.728847251115, 821.3235115333719);
+ poly66.ps[1] = Point(1461.728847251115, 883.3235115333719);
+ poly66.ps[2] = Point(1399.728847251115, 883.3235115333719);
+ poly66.ps[3] = Point(1399.728847251115, 821.3235115333719);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(1024.728847249115, 1023.323511533372);
+ poly67.ps[1] = Point(1024.728847249115, 1085.323511533372);
+ poly67.ps[2] = Point(962.7288472491148, 1085.323511533372);
+ poly67.ps[3] = Point(962.7288472491148, 1023.323511533372);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(1461.728847251115, 1023.323511533372);
+ poly68.ps[1] = Point(1461.728847251115, 1085.323511533372);
+ poly68.ps[2] = Point(1399.728847251115, 1085.323511533372);
+ poly68.ps[3] = Point(1399.728847251115, 1023.323511533372);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(305.9431329624006, 1120.323511533372);
+ poly69.ps[1] = Point(305.9431329624006, 1182.323511533372);
+ poly69.ps[2] = Point(243.9431329624006, 1182.323511533372);
+ poly69.ps[3] = Point(243.9431329624006, 1120.323511533372);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(682.7288472481148, 1293.723511533372);
+ poly70.ps[1] = Point(682.7288472481148, 1355.723511533372);
+ poly70.ps[2] = Point(620.7288472481148, 1355.723511533372);
+ poly70.ps[3] = Point(620.7288472481148, 1293.723511533372);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(925.7288472491148, 1293.723511533372);
+ poly71.ps[1] = Point(925.7288472491148, 1355.723511533372);
+ poly71.ps[2] = Point(863.7288472491148, 1355.723511533372);
+ poly71.ps[3] = Point(863.7288472491148, 1293.723511533372);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(1509.728847251115, 1293.723511533372);
+ poly72.ps[1] = Point(1509.728847251115, 1355.723511533372);
+ poly72.ps[2] = Point(1447.728847251115, 1355.723511533372);
+ poly72.ps[3] = Point(1447.728847251115, 1293.723511533372);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(-410.9508064335388, 1449.609225819086);
+ poly73.ps[1] = Point(-410.9508064335388, 1511.609225819086);
+ poly73.ps[2] = Point(-472.9508064335388, 1511.609225819086);
+ poly73.ps[3] = Point(-472.9508064335388, 1449.609225819086);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(66.77646629473389, 1449.609225819086);
+ poly74.ps[1] = Point(66.77646629473389, 1511.609225819086);
+ poly74.ps[2] = Point(4.776466294733893, 1511.609225819086);
+ poly74.ps[3] = Point(4.776466294733893, 1449.609225819086);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(682.7288472481148, 1449.609225819086);
+ poly75.ps[1] = Point(682.7288472481148, 1511.609225819086);
+ poly75.ps[2] = Point(620.7288472481148, 1511.609225819086);
+ poly75.ps[3] = Point(620.7288472481148, 1449.609225819086);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(925.7288472491148, 1449.609225819086);
+ poly76.ps[1] = Point(925.7288472491148, 1511.609225819086);
+ poly76.ps[2] = Point(863.7288472491148, 1511.609225819086);
+ poly76.ps[3] = Point(863.7288472491148, 1449.609225819086);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(1509.728847251115, 1449.609225819086);
+ poly77.ps[1] = Point(1509.728847251115, 1511.609225819086);
+ poly77.ps[2] = Point(1447.728847251115, 1511.609225819086);
+ poly77.ps[3] = Point(1447.728847251115, 1449.609225819086);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(-392.9508064335388, 394.2282734381338);
+ poly78.ps[1] = Point(-392.9508064335388, 414.2282734381338);
+ poly78.ps[2] = Point(-424.9508064335388, 414.2282734381338);
+ poly78.ps[3] = Point(-424.9508064335388, 394.2282734381338);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(-140.8902003719328, 902.3235115333719);
+ poly79.ps[1] = Point(-140.8902003719328, 934.3235115333719);
+ poly79.ps[2] = Point(-160.8902003719328, 934.3235115333719);
+ poly79.ps[3] = Point(-160.8902003719328, 902.3235115333719);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(18.77646629473389, 786.3235115333719);
+ poly80.ps[1] = Point(18.77646629473389, 806.3235115333719);
+ poly80.ps[2] = Point(-13.22353370526611, 806.3235115333719);
+ poly80.ps[3] = Point(-13.22353370526611, 786.3235115333719);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(453.4431329624006, 705.9901782000385);
+ poly81.ps[1] = Point(453.4431329624006, 725.9901782000385);
+ poly81.ps[2] = Point(421.4431329624006, 725.9901782000385);
+ poly81.ps[3] = Point(421.4431329624006, 705.9901782000385);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(453.4431329624006, 941.3235115333719);
+ poly82.ps[1] = Point(453.4431329624006, 961.3235115333719);
+ poly82.ps[2] = Point(421.4431329624006, 961.3235115333719);
+ poly82.ps[3] = Point(421.4431329624006, 941.3235115333719);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(830.7288472481148, 929.3235115333719);
+ poly83.ps[1] = Point(830.7288472481148, 949.3235115333719);
+ poly83.ps[2] = Point(798.7288472481148, 949.3235115333719);
+ poly83.ps[3] = Point(798.7288472481148, 929.3235115333719);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(830.7288472481148, 887.3235115333719);
+ poly84.ps[1] = Point(830.7288472481148, 907.3235115333719);
+ poly84.ps[2] = Point(798.7288472481148, 907.3235115333719);
+ poly84.ps[3] = Point(798.7288472481148, 887.3235115333719);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(284.9431329624006, 1071.323511533372);
+ poly85.ps[1] = Point(284.9431329624006, 1103.323511533372);
+ poly85.ps[2] = Point(264.9431329624006, 1103.323511533372);
+ poly85.ps[3] = Point(264.9431329624006, 1071.323511533372);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(453.4431329624006, 1314.723511533372);
+ poly86.ps[1] = Point(453.4431329624006, 1334.723511533372);
+ poly86.ps[2] = Point(421.4431329624006, 1334.723511533372);
+ poly86.ps[3] = Point(421.4431329624006, 1314.723511533372);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(830.7288472481148, 1314.723511533372);
+ poly87.ps[1] = Point(830.7288472481148, 1334.723511533372);
+ poly87.ps[2] = Point(798.7288472481148, 1334.723511533372);
+ poly87.ps[3] = Point(798.7288472481148, 1314.723511533372);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(-47.22353370526614, 1470.609225819086);
+ poly88.ps[1] = Point(-47.22353370526614, 1490.609225819086);
+ poly88.ps[2] = Point(-79.22353370526614, 1490.609225819086);
+ poly88.ps[3] = Point(-79.22353370526614, 1470.609225819086);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(453.4431329624006, 1470.609225819086);
+ poly89.ps[1] = Point(453.4431329624006, 1490.609225819086);
+ poly89.ps[2] = Point(421.4431329624006, 1490.609225819086);
+ poly89.ps[3] = Point(421.4431329624006, 1470.609225819086);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(830.7288472481148, 1449.609225819086);
+ poly90.ps[1] = Point(830.7288472481148, 1469.609225819086);
+ poly90.ps[2] = Point(798.7288472481148, 1469.609225819086);
+ poly90.ps[3] = Point(798.7288472481148, 1449.609225819086);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(830.7288472481148, 1491.609225819086);
+ poly91.ps[1] = Point(830.7288472481148, 1511.609225819086);
+ poly91.ps[2] = Point(798.7288472481148, 1511.609225819086);
+ poly91.ps[3] = Point(798.7288472481148, 1491.609225819086);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(1281.728847251115, 842.3235115333719);
+ poly92.ps[1] = Point(1281.728847251115, 862.3235115333719);
+ poly92.ps[2] = Point(1249.728847251115, 862.3235115333719);
+ poly92.ps[3] = Point(1249.728847251115, 842.3235115333719);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1281.728847251115, 645.9901782000385);
+ poly93.ps[1] = Point(1281.728847251115, 665.9901782000385);
+ poly93.ps[2] = Point(1249.728847251115, 665.9901782000385);
+ poly93.ps[3] = Point(1249.728847251115, 645.9901782000385);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(1178.728847250115, 948.3235115333719);
+ poly94.ps[1] = Point(1178.728847250115, 968.3235115333719);
+ poly94.ps[2] = Point(1146.728847250115, 968.3235115333719);
+ poly94.ps[3] = Point(1146.728847250115, 948.3235115333719);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(1178.728847250115, 1023.323511533372);
+ poly95.ps[1] = Point(1178.728847250115, 1043.323511533372);
+ poly95.ps[2] = Point(1146.728847250115, 1043.323511533372);
+ poly95.ps[3] = Point(1146.728847250115, 1023.323511533372);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(1281.728847251115, 1043.323511533372);
+ poly96.ps[1] = Point(1281.728847251115, 1063.323511533372);
+ poly96.ps[2] = Point(1249.728847251115, 1063.323511533372);
+ poly96.ps[3] = Point(1249.728847251115, 1043.323511533372);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(1281.728847251115, 1085.323511533372);
+ poly97.ps[1] = Point(1281.728847251115, 1105.323511533372);
+ poly97.ps[2] = Point(1249.728847251115, 1105.323511533372);
+ poly97.ps[3] = Point(1249.728847251115, 1085.323511533372);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(1281.728847251115, 1257.323511533372);
+ poly98.ps[1] = Point(1281.728847251115, 1277.323511533372);
+ poly98.ps[2] = Point(1249.728847251115, 1277.323511533372);
+ poly98.ps[3] = Point(1249.728847251115, 1257.323511533372);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(1281.728847251115, 1413.323511533372);
+ poly99.ps[1] = Point(1281.728847251115, 1433.323511533372);
+ poly99.ps[2] = Point(1249.728847251115, 1433.323511533372);
+ poly99.ps[3] = Point(1249.728847251115, 1413.323511533372);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(-27.22353370526614, 1116.323511533372);
+ poly100.ps[1] = Point(-27.22353370526614, 1160.323511533372);
+ poly100.ps[2] = Point(-157.2235337052661, 1160.323511533372);
+ poly100.ps[3] = Point(-157.2235337052661, 1116.323511533372);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(116.7764662947339, -149.3431551362948);
+ poly101.ps[1] = Point(116.7764662947339, -117.3431551362948);
+ poly101.ps[2] = Point(96.77646629473389, -117.3431551362948);
+ poly101.ps[3] = Point(96.77646629473389, -149.3431551362948);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(865.7288472481148, 457.9901782000385);
+ poly102.ps[1] = Point(865.7288472481148, 477.9901782000385);
+ poly102.ps[2] = Point(833.7288472481148, 477.9901782000385);
+ poly102.ps[3] = Point(833.7288472481148, 457.9901782000385);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(116.7764662947339, -47.34315513529478);
+ poly103.ps[1] = Point(116.7764662947339, -15.34315513529478);
+ poly103.ps[2] = Point(96.77646629473389, -15.34315513529478);
+ poly103.ps[3] = Point(96.77646629473389, -47.34315513529478);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(943.7288472491148, 457.9901782000385);
+ poly104.ps[1] = Point(943.7288472491148, 477.9901782000385);
+ poly104.ps[2] = Point(911.7288472491148, 477.9901782000385);
+ poly104.ps[3] = Point(911.7288472491148, 457.9901782000385);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(116.7764662947339, 54.65684486570521);
+ poly105.ps[1] = Point(116.7764662947339, 86.65684486570521);
+ poly105.ps[2] = Point(96.77646629473389, 86.65684486570521);
+ poly105.ps[3] = Point(96.77646629473389, 54.65684486570521);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(1042.728847249115, 457.9901782000385);
+ poly106.ps[1] = Point(1042.728847249115, 477.9901782000385);
+ poly106.ps[2] = Point(1010.728847249115, 477.9901782000385);
+ poly106.ps[3] = Point(1010.728847249115, 457.9901782000385);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(257.9431329624006, -41.34315513529478);
+ poly107.ps[1] = Point(257.9431329624006, -21.34315513529478);
+ poly107.ps[2] = Point(225.9431329624006, -21.34315513529478);
+ poly107.ps[3] = Point(225.9431329624006, -41.34315513529478);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(943.7288472491148, 364.561606771467);
+ poly108.ps[1] = Point(943.7288472491148, 384.561606771467);
+ poly108.ps[2] = Point(911.7288472491148, 384.561606771467);
+ poly108.ps[3] = Point(911.7288472491148, 364.561606771467);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(1178.728847250115, 1065.323511533372);
+ poly109.ps[1] = Point(1178.728847250115, 1085.323511533372);
+ poly109.ps[2] = Point(1146.728847250115, 1085.323511533372);
+ poly109.ps[3] = Point(1146.728847250115, 1065.323511533372);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(257.9431329624006, 60.65684486570521);
+ poly110.ps[1] = Point(257.9431329624006, 80.65684486570521);
+ poly110.ps[2] = Point(225.9431329624006, 80.65684486570521);
+ poly110.ps[3] = Point(225.9431329624006, 60.65684486570521);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(1042.728847249115, 364.561606771467);
+ poly111.ps[1] = Point(1042.728847249115, 384.561606771467);
+ poly111.ps[2] = Point(1010.728847249115, 384.561606771467);
+ poly111.ps[3] = Point(1010.728847249115, 364.561606771467);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(988.7288472491148, 176.2282734371338);
+ poly112.ps[1] = Point(988.7288472491148, 236.2282734371338);
+ poly112.ps[2] = Point(932.7288472491148, 236.2282734371338);
+ poly112.ps[3] = Point(932.7288472491148, 176.2282734371338);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(877.7288472481148, 304.561606771467);
+ poly113.ps[1] = Point(877.7288472481148, 364.561606771467);
+ poly113.ps[2] = Point(821.7288472481148, 364.561606771467);
+ poly113.ps[3] = Point(821.7288472481148, 304.561606771467);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(646.7288472481148, 364.9901782000385);
+ poly114.ps[1] = Point(646.7288472481148, 424.9901782000385);
+ poly114.ps[2] = Point(590.7288472481148, 424.9901782000385);
+ poly114.ps[3] = Point(590.7288472481148, 364.9901782000385);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(-252.9508064325389, 316.2282734371338);
+ poly115.ps[1] = Point(-252.9508064325389, 376.2282734371338);
+ poly115.ps[2] = Point(-308.9508064325389, 376.2282734371338);
+ poly115.ps[3] = Point(-308.9508064325389, 316.2282734371338);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(-252.9508064325389, 391.2282734371338);
+ poly116.ps[1] = Point(-252.9508064325389, 451.2282734371338);
+ poly116.ps[2] = Point(-308.9508064325389, 451.2282734371338);
+ poly116.ps[3] = Point(-308.9508064325389, 391.2282734371338);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(-252.9508064325389, 466.2282734371338);
+ poly117.ps[1] = Point(-252.9508064325389, 526.2282734371338);
+ poly117.ps[2] = Point(-308.9508064325389, 526.2282734371338);
+ poly117.ps[3] = Point(-308.9508064325389, 466.2282734371338);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(-252.9508064325389, 541.2282734371338);
+ poly118.ps[1] = Point(-252.9508064325389, 601.2282734371338);
+ poly118.ps[2] = Point(-308.9508064325389, 601.2282734371338);
+ poly118.ps[3] = Point(-308.9508064325389, 541.2282734371338);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(-252.9508064325389, 616.2282734371338);
+ poly119.ps[1] = Point(-252.9508064325389, 676.2282734371338);
+ poly119.ps[2] = Point(-308.9508064325389, 676.2282734371338);
+ poly119.ps[3] = Point(-308.9508064325389, 616.2282734371338);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(-252.9508064325389, 963.2282734371338);
+ poly120.ps[1] = Point(-252.9508064325389, 1023.228273437134);
+ poly120.ps[2] = Point(-308.9508064325389, 1023.228273437134);
+ poly120.ps[3] = Point(-308.9508064325389, 963.2282734371338);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(-252.9508064325389, 691.2282734371338);
+ poly121.ps[1] = Point(-252.9508064325389, 751.2282734371338);
+ poly121.ps[2] = Point(-308.9508064325389, 751.2282734371338);
+ poly121.ps[3] = Point(-308.9508064325389, 691.2282734371338);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(-252.9508064325389, 813.2282734371338);
+ poly122.ps[1] = Point(-252.9508064325389, 873.2282734371338);
+ poly122.ps[2] = Point(-308.9508064325389, 873.2282734371338);
+ poly122.ps[3] = Point(-308.9508064325389, 813.2282734371338);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(-252.9508064325389, 888.2282734371338);
+ poly123.ps[1] = Point(-252.9508064325389, 948.2282734371338);
+ poly123.ps[2] = Point(-308.9508064325389, 948.2282734371338);
+ poly123.ps[3] = Point(-308.9508064325389, 888.2282734371338);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(-252.9508064325389, 1038.228273437134);
+ poly124.ps[1] = Point(-252.9508064325389, 1098.228273437134);
+ poly124.ps[2] = Point(-308.9508064325389, 1098.228273437134);
+ poly124.ps[3] = Point(-308.9508064325389, 1038.228273437134);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(-380.9508064335388, 142.2282734381338);
+ poly125.ps[1] = Point(-380.9508064335388, 202.2282734381338);
+ poly125.ps[2] = Point(-436.9508064335388, 202.2282734381338);
+ poly125.ps[3] = Point(-436.9508064335388, 142.2282734381338);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(-380.9508064335388, 217.2282734381338);
+ poly126.ps[1] = Point(-380.9508064335388, 277.2282734381338);
+ poly126.ps[2] = Point(-436.9508064335388, 277.2282734381338);
+ poly126.ps[3] = Point(-436.9508064335388, 217.2282734381338);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(-380.9508064335388, 339.2282734381338);
+ poly127.ps[1] = Point(-380.9508064335388, 399.2282734381338);
+ poly127.ps[2] = Point(-436.9508064335388, 399.2282734381338);
+ poly127.ps[3] = Point(-436.9508064335388, 339.2282734381338);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(613.7288472481148, 176.2282734371338);
+ poly128.ps[1] = Point(613.7288472481148, 236.2282734371338);
+ poly128.ps[2] = Point(557.7288472481148, 236.2282734371338);
+ poly128.ps[3] = Point(557.7288472481148, 176.2282734371338);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(803.7288472481148, -288.3431551362947);
+ poly129.ps[1] = Point(803.7288472481148, -248.3431551362947);
+ poly129.ps[2] = Point(727.7288472481148, -248.3431551362947);
+ poly129.ps[3] = Point(727.7288472481148, -288.3431551362947);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(244.7764662957339, 149.6568448657052);
+ poly130.ps[1] = Point(244.7764662957339, 189.6568448657052);
+ poly130.ps[2] = Point(168.7764662957339, 189.6568448657052);
+ poly130.ps[3] = Point(168.7764662957339, 149.6568448657052);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(269.9431329624006, -203.3431551362948);
+ poly131.ps[1] = Point(269.9431329624006, -143.3431551362948);
+ poly131.ps[2] = Point(213.9431329624006, -143.3431551362948);
+ poly131.ps[3] = Point(213.9431329624006, -203.3431551362948);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(366.4431329624006, -621.3431551372947);
+ poly132.ps[1] = Point(366.4431329624006, -561.3431551372947);
+ poly132.ps[2] = Point(310.4431329624006, -561.3431551372947);
+ poly132.ps[3] = Point(310.4431329624006, -621.3431551372947);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(580.7288472481148, -711.8431551372947);
+ poly133.ps[1] = Point(580.7288472481148, -651.8431551372947);
+ poly133.ps[2] = Point(524.7288472481148, -651.8431551372947);
+ poly133.ps[3] = Point(524.7288472481148, -711.8431551372947);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(-230.9735337052661, 116.6568448657052);
+ poly134.ps[1] = Point(-230.9735337052661, 156.6568448657052);
+ poly134.ps[2] = Point(-306.9735337052662, 156.6568448657052);
+ poly134.ps[3] = Point(-306.9735337052662, 116.6568448657052);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(-134.9735337052661, -376.3431551372947);
+ poly135.ps[1] = Point(-134.9735337052661, -336.3431551372947);
+ poly135.ps[2] = Point(-210.9735337052661, -336.3431551372947);
+ poly135.ps[3] = Point(-210.9735337052661, -376.3431551372947);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(1458.728847251115, 364.9901782000385);
+ poly136.ps[1] = Point(1458.728847251115, 424.9901782000385);
+ poly136.ps[2] = Point(1402.728847251115, 424.9901782000385);
+ poly136.ps[3] = Point(1402.728847251115, 364.9901782000385);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(432.4431329624006, 364.9901782000385);
+ poly137.ps[1] = Point(432.4431329624006, 424.9901782000385);
+ poly137.ps[2] = Point(376.4431329624006, 424.9901782000385);
+ poly137.ps[3] = Point(376.4431329624006, 364.9901782000385);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(523.4431329624006, 865.3235115333719);
+ poly138.ps[1] = Point(523.4431329624006, 905.3235115333719);
+ poly138.ps[2] = Point(447.4431329624006, 905.3235115333719);
+ poly138.ps[3] = Point(447.4431329624006, 865.3235115333719);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(523.4431329624006, 574.9901782000385);
+ poly139.ps[1] = Point(523.4431329624006, 614.9901782000385);
+ poly139.ps[2] = Point(447.4431329624006, 614.9901782000385);
+ poly139.ps[3] = Point(447.4431329624006, 574.9901782000385);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(-473.9508064345389, 176.2282734371338);
+ poly140.ps[1] = Point(-473.9508064345389, 236.2282734371338);
+ poly140.ps[2] = Point(-529.9508064345389, 236.2282734371338);
+ poly140.ps[3] = Point(-529.9508064345389, 176.2282734371338);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(-252.9508064325389, 1113.228273437134);
+ poly141.ps[1] = Point(-252.9508064325389, 1173.228273437134);
+ poly141.ps[2] = Point(-308.9508064325389, 1173.228273437134);
+ poly141.ps[3] = Point(-308.9508064325389, 1113.228273437134);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(-380.9508064335388, 414.2282734381338);
+ poly142.ps[1] = Point(-380.9508064335388, 474.2282734381338);
+ poly142.ps[2] = Point(-436.9508064335388, 474.2282734381338);
+ poly142.ps[3] = Point(-436.9508064335388, 414.2282734381338);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(-64.89020037193279, 898.3235115333719);
+ poly143.ps[1] = Point(-64.89020037193279, 938.3235115333719);
+ poly143.ps[2] = Point(-140.8902003719328, 938.3235115333719);
+ poly143.ps[3] = Point(-140.8902003719328, 898.3235115333719);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(30.77646629473389, 726.3235115333719);
+ poly144.ps[1] = Point(30.77646629473389, 786.3235115333719);
+ poly144.ps[2] = Point(-25.22353370526611, 786.3235115333719);
+ poly144.ps[3] = Point(-25.22353370526611, 726.3235115333719);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(465.4431329624006, 645.9901782000385);
+ poly145.ps[1] = Point(465.4431329624006, 705.9901782000385);
+ poly145.ps[2] = Point(409.4431329624006, 705.9901782000385);
+ poly145.ps[3] = Point(409.4431329624006, 645.9901782000385);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(465.4431329624006, 961.3235115333719);
+ poly146.ps[1] = Point(465.4431329624006, 1021.323511533372);
+ poly146.ps[2] = Point(409.4431329624006, 1021.323511533372);
+ poly146.ps[3] = Point(409.4431329624006, 961.3235115333719);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(842.7288472481148, 949.3235115333719);
+ poly147.ps[1] = Point(842.7288472481148, 1009.323511533372);
+ poly147.ps[2] = Point(786.7288472481148, 1009.323511533372);
+ poly147.ps[3] = Point(786.7288472481148, 949.3235115333719);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(842.7288472481148, 827.3235115333719);
+ poly148.ps[1] = Point(842.7288472481148, 887.3235115333719);
+ poly148.ps[2] = Point(786.7288472481148, 887.3235115333719);
+ poly148.ps[3] = Point(786.7288472481148, 827.3235115333719);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(360.9431329624006, 1067.323511533372);
+ poly149.ps[1] = Point(360.9431329624006, 1107.323511533372);
+ poly149.ps[2] = Point(284.9431329624006, 1107.323511533372);
+ poly149.ps[3] = Point(284.9431329624006, 1067.323511533372);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(465.4431329624006, 1254.723511533372);
+ poly150.ps[1] = Point(465.4431329624006, 1314.723511533372);
+ poly150.ps[2] = Point(409.4431329624006, 1314.723511533372);
+ poly150.ps[3] = Point(409.4431329624006, 1254.723511533372);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(842.7288472481148, 1254.723511533372);
+ poly151.ps[1] = Point(842.7288472481148, 1314.723511533372);
+ poly151.ps[2] = Point(786.7288472481148, 1314.723511533372);
+ poly151.ps[3] = Point(786.7288472481148, 1254.723511533372);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(-35.22353370526614, 1410.609225819086);
+ poly152.ps[1] = Point(-35.22353370526614, 1470.609225819086);
+ poly152.ps[2] = Point(-91.22353370526614, 1470.609225819086);
+ poly152.ps[3] = Point(-91.22353370526614, 1410.609225819086);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(465.4431329624006, 1410.609225819086);
+ poly153.ps[1] = Point(465.4431329624006, 1470.609225819086);
+ poly153.ps[2] = Point(409.4431329624006, 1470.609225819086);
+ poly153.ps[3] = Point(409.4431329624006, 1410.609225819086);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(842.7288472481148, 1389.609225819086);
+ poly154.ps[1] = Point(842.7288472481148, 1449.609225819086);
+ poly154.ps[2] = Point(786.7288472481148, 1449.609225819086);
+ poly154.ps[3] = Point(786.7288472481148, 1389.609225819086);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(842.7288472481148, 1511.609225819086);
+ poly155.ps[1] = Point(842.7288472481148, 1571.609225819086);
+ poly155.ps[2] = Point(786.7288472481148, 1571.609225819086);
+ poly155.ps[3] = Point(786.7288472481148, 1511.609225819086);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(1293.728847251115, 782.3235115333719);
+ poly156.ps[1] = Point(1293.728847251115, 842.3235115333719);
+ poly156.ps[2] = Point(1237.728847251115, 842.3235115333719);
+ poly156.ps[3] = Point(1237.728847251115, 782.3235115333719);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(1293.728847251115, 585.9901782000385);
+ poly157.ps[1] = Point(1293.728847251115, 645.9901782000385);
+ poly157.ps[2] = Point(1237.728847251115, 645.9901782000385);
+ poly157.ps[3] = Point(1237.728847251115, 585.9901782000385);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(1190.728847250115, 888.3235115333719);
+ poly158.ps[1] = Point(1190.728847250115, 948.3235115333719);
+ poly158.ps[2] = Point(1134.728847250115, 948.3235115333719);
+ poly158.ps[3] = Point(1134.728847250115, 888.3235115333719);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(1190.728847250115, 963.3235115333719);
+ poly159.ps[1] = Point(1190.728847250115, 1023.323511533372);
+ poly159.ps[2] = Point(1134.728847250115, 1023.323511533372);
+ poly159.ps[3] = Point(1134.728847250115, 963.3235115333719);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(1293.728847251115, 983.3235115333719);
+ poly160.ps[1] = Point(1293.728847251115, 1043.323511533372);
+ poly160.ps[2] = Point(1237.728847251115, 1043.323511533372);
+ poly160.ps[3] = Point(1237.728847251115, 983.3235115333719);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(1293.728847251115, 1105.323511533372);
+ poly161.ps[1] = Point(1293.728847251115, 1165.323511533372);
+ poly161.ps[2] = Point(1237.728847251115, 1165.323511533372);
+ poly161.ps[3] = Point(1237.728847251115, 1105.323511533372);
+ new ShapeRef(router, poly161, 161);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(1293.728847251115, 1197.323511533372);
+ poly162.ps[1] = Point(1293.728847251115, 1257.323511533372);
+ poly162.ps[2] = Point(1237.728847251115, 1257.323511533372);
+ poly162.ps[3] = Point(1237.728847251115, 1197.323511533372);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(1293.728847251115, 1353.323511533372);
+ poly163.ps[1] = Point(1293.728847251115, 1413.323511533372);
+ poly163.ps[2] = Point(1237.728847251115, 1413.323511533372);
+ poly163.ps[3] = Point(1237.728847251115, 1353.323511533372);
+ new ShapeRef(router, poly163, 163);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(96.77646629473389, -153.3431551362948);
+ poly164.ps[1] = Point(96.77646629473389, -113.3431551362948);
+ poly164.ps[2] = Point(20.77646629473389, -113.3431551362948);
+ poly164.ps[3] = Point(20.77646629473389, -153.3431551362948);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(877.7288472481148, 477.9901782000385);
+ poly165.ps[1] = Point(877.7288472481148, 537.9901782000385);
+ poly165.ps[2] = Point(821.7288472481148, 537.9901782000385);
+ poly165.ps[3] = Point(821.7288472481148, 477.9901782000385);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(96.77646629473389, -51.34315513529478);
+ poly166.ps[1] = Point(96.77646629473389, -11.34315513529478);
+ poly166.ps[2] = Point(20.77646629473389, -11.34315513529478);
+ poly166.ps[3] = Point(20.77646629473389, -51.34315513529478);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(955.7288472491148, 477.9901782000385);
+ poly167.ps[1] = Point(955.7288472491148, 537.9901782000385);
+ poly167.ps[2] = Point(899.7288472491148, 537.9901782000385);
+ poly167.ps[3] = Point(899.7288472491148, 477.9901782000385);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(96.77646629473389, 50.65684486570521);
+ poly168.ps[1] = Point(96.77646629473389, 90.65684486570521);
+ poly168.ps[2] = Point(20.77646629473389, 90.65684486570521);
+ poly168.ps[3] = Point(20.77646629473389, 50.65684486570521);
+ new ShapeRef(router, poly168, 168);
+
+ Polygon poly169(4);
+ poly169.ps[0] = Point(1054.728847249115, 477.9901782000385);
+ poly169.ps[1] = Point(1054.728847249115, 537.9901782000385);
+ poly169.ps[2] = Point(998.7288472491148, 537.9901782000385);
+ poly169.ps[3] = Point(998.7288472491148, 477.9901782000385);
+ new ShapeRef(router, poly169, 169);
+
+ Polygon poly170(4);
+ poly170.ps[0] = Point(269.9431329624006, -101.3431551352948);
+ poly170.ps[1] = Point(269.9431329624006, -41.34315513529478);
+ poly170.ps[2] = Point(213.9431329624006, -41.34315513529478);
+ poly170.ps[3] = Point(213.9431329624006, -101.3431551352948);
+ new ShapeRef(router, poly170, 170);
+
+ Polygon poly171(4);
+ poly171.ps[0] = Point(955.7288472491148, 304.561606771467);
+ poly171.ps[1] = Point(955.7288472491148, 364.561606771467);
+ poly171.ps[2] = Point(899.7288472491148, 364.561606771467);
+ poly171.ps[3] = Point(899.7288472491148, 304.561606771467);
+ new ShapeRef(router, poly171, 171);
+
+ Polygon poly172(4);
+ poly172.ps[0] = Point(1190.728847250115, 1085.323511533372);
+ poly172.ps[1] = Point(1190.728847250115, 1145.323511533372);
+ poly172.ps[2] = Point(1134.728847250115, 1145.323511533372);
+ poly172.ps[3] = Point(1134.728847250115, 1085.323511533372);
+ new ShapeRef(router, poly172, 172);
+
+ Polygon poly173(4);
+ poly173.ps[0] = Point(269.9431329624006, 0.6568448657052102);
+ poly173.ps[1] = Point(269.9431329624006, 60.65684486570521);
+ poly173.ps[2] = Point(213.9431329624006, 60.65684486570521);
+ poly173.ps[3] = Point(213.9431329624006, 0.6568448657052102);
+ new ShapeRef(router, poly173, 173);
+
+ Polygon poly174(4);
+ poly174.ps[0] = Point(1054.728847249115, 304.561606771467);
+ poly174.ps[1] = Point(1054.728847249115, 364.561606771467);
+ poly174.ps[2] = Point(998.7288472491148, 364.561606771467);
+ poly174.ps[3] = Point(998.7288472491148, 304.561606771467);
+ new ShapeRef(router, poly174, 174);
+
+ Polygon poly175(4);
+ poly175.ps[0] = Point(865.7288472481148, -473.8431551372947);
+ poly175.ps[1] = Point(865.7288472481148, -413.8431551372947);
+ poly175.ps[2] = Point(825.7288472481148, -413.8431551372947);
+ poly175.ps[3] = Point(825.7288472481148, -473.8431551372947);
+ new ShapeRef(router, poly175, 175);
+
+ Polygon poly176(4);
+ poly176.ps[0] = Point(575.7288472481148, -432.3431551372947);
+ poly176.ps[1] = Point(575.7288472481148, -392.3431551372947);
+ poly176.ps[2] = Point(515.7288472481148, -392.3431551372947);
+ poly176.ps[3] = Point(515.7288472481148, -432.3431551372947);
+ new ShapeRef(router, poly176, 176);
+
+ Polygon poly177(4);
+ poly177.ps[0] = Point(543.9431329624006, -276.3431551362947);
+ poly177.ps[1] = Point(543.9431329624006, -236.3431551362947);
+ poly177.ps[2] = Point(483.9431329624006, -236.3431551362947);
+ poly177.ps[3] = Point(483.9431329624006, -276.3431551362947);
+ new ShapeRef(router, poly177, 177);
+
+ Polygon poly178(4);
+ poly178.ps[0] = Point(261.9431329624006, -437.3431551372947);
+ poly178.ps[1] = Point(261.9431329624006, -397.3431551372947);
+ poly178.ps[2] = Point(201.9431329624006, -397.3431551372947);
+ poly178.ps[3] = Point(201.9431329624006, -437.3431551372947);
+ new ShapeRef(router, poly178, 178);
+
+ Polygon poly179(4);
+ poly179.ps[0] = Point(-243.0508064325388, 386.2282734371338);
+ poly179.ps[1] = Point(-243.0508064325388, 1103.228273437134);
+ poly179.ps[2] = Point(-318.8508064325388, 1103.228273437134);
+ poly179.ps[3] = Point(-318.8508064325388, 386.2282734371338);
+ new ShapeRef(router, poly179, 179);
+
+ Polygon poly180(4);
+ poly180.ps[0] = Point(-371.0508064335389, 212.2282734381338);
+ poly180.ps[1] = Point(-371.0508064335389, 404.2282734381338);
+ poly180.ps[2] = Point(-446.8508064335388, 404.2282734381338);
+ poly180.ps[3] = Point(-446.8508064335388, 212.2282734381338);
+ new ShapeRef(router, poly180, 180);
+
+ Polygon poly181(4);
+ poly181.ps[0] = Point(852.6288472481148, 897.3235115333719);
+ poly181.ps[1] = Point(852.6288472481148, 939.3235115333719);
+ poly181.ps[2] = Point(776.8288472481148, 939.3235115333719);
+ poly181.ps[3] = Point(776.8288472481148, 897.3235115333719);
+ new ShapeRef(router, poly181, 181);
+
+ Polygon poly182(4);
+ poly182.ps[0] = Point(1303.628847251115, 1053.323511533372);
+ poly182.ps[1] = Point(1303.628847251115, 1095.323511533372);
+ poly182.ps[2] = Point(1227.828847251115, 1095.323511533372);
+ poly182.ps[3] = Point(1227.828847251115, 1053.323511533372);
+ new ShapeRef(router, poly182, 182);
+
+ Polygon poly183(4);
+ poly183.ps[0] = Point(1200.628847250115, 958.3235115333719);
+ poly183.ps[1] = Point(1200.628847250115, 1075.323511533372);
+ poly183.ps[2] = Point(1124.828847250115, 1075.323511533372);
+ poly183.ps[3] = Point(1124.828847250115, 958.3235115333719);
+ new ShapeRef(router, poly183, 183);
+
+ Polygon poly184(4);
+ poly184.ps[0] = Point(852.6288472481148, 1459.609225819086);
+ poly184.ps[1] = Point(852.6288472481148, 1501.609225819086);
+ poly184.ps[2] = Point(776.8288472481148, 1501.609225819086);
+ poly184.ps[3] = Point(776.8288472481148, 1459.609225819086);
+ new ShapeRef(router, poly184, 184);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(1364.728847251115, 308.2282734381338), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(1415.728847251115, 434.9901782000385), 4);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(717.7288472481148, 246.2282734371338), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(945.7288472491148, 246.2282734371338), 4);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(975.7288472491148, 246.2282734371338), 8);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(1298.728847251115, 246.2282734371338), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(864.7288472481148, 374.561606771467), 8);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(1129.728847250115, 308.2282734381338), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(864.7288472481148, 374.561606771467), 8);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(633.7288472481148, 434.9901782000385), 8);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(684.7288472481148, 308.2282734381338), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(633.7288472481148, 434.9901782000385), 8);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(-295.9508064325389, 386.2282734371338), 4);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints192(1);
+ checkpoints192[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef192->setRoutingCheckpoints(checkpoints192);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(-295.9508064325389, 461.2282734371338), 4);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints193(1);
+ checkpoints193[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef193->setRoutingCheckpoints(checkpoints193);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(-295.9508064325389, 536.2282734371338), 4);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints194(1);
+ checkpoints194[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef194->setRoutingCheckpoints(checkpoints194);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(-295.9508064325389, 611.2282734371338), 4);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints195(1);
+ checkpoints195[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef195->setRoutingCheckpoints(checkpoints195);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(-295.9508064325389, 686.2282734371338), 4);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints196(1);
+ checkpoints196[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef196->setRoutingCheckpoints(checkpoints196);
+#endif
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(-265.9508064325389, 953.2282734371338), 8);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints197(1);
+ checkpoints197[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef197->setRoutingCheckpoints(checkpoints197);
+
+#ifdef ALL
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(-295.9508064325389, 761.2282734371338), 4);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints198(1);
+ checkpoints198[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef198->setRoutingCheckpoints(checkpoints198);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(-295.9508064325389, 803.2282734371338), 4);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints199(1);
+ checkpoints199[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef199->setRoutingCheckpoints(checkpoints199);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(-295.9508064325389, 878.2282734371338), 4);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints200(1);
+ checkpoints200[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef200->setRoutingCheckpoints(checkpoints200);
+#endif
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(-265.9508064325389, 1028.228273437134), 8);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints201(1);
+ checkpoints201[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef201->setRoutingCheckpoints(checkpoints201);
+
+#ifdef ALL
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(-423.9508064335388, 212.2282734381338), 4);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(-553.9508064345389, 308.2282734381338), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints202(1);
+ checkpoints202[0] = Checkpoint(Point(-446.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef202->setRoutingCheckpoints(checkpoints202);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(-423.9508064335388, 287.2282734381338), 4);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(-553.9508064345389, 308.2282734381338), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints203(1);
+ checkpoints203[0] = Checkpoint(Point(-446.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef203->setRoutingCheckpoints(checkpoints203);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(-423.9508064335388, 329.2282734381338), 4);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(-553.9508064345389, 308.2282734381338), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints204(1);
+ checkpoints204[0] = Checkpoint(Point(-446.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef204->setRoutingCheckpoints(checkpoints204);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(600.7288472481148, 246.2282734371338), 8);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(570.7288472481148, 246.2282734371338), 4);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(717.7288472481148, 246.2282734371338), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(600.7288472481148, 246.2282734371338), 8);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(717.7288472481148, -283.3431551362947), 1);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(717.7288472481148, -518.3431551372947), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(717.7288472481148, -283.3431551362947), 1);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(717.7288472481148, -253.3431551362947), 2);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(717.7288472481148, 246.2282734371338), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(158.7764662957339, 154.6568448657052), 1);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(717.7288472481148, -518.3431551372947), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(158.7764662957339, 154.6568448657052), 1);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(158.7764662957339, 184.6568448657052), 2);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(256.9431329624006, -133.3431551362948), 8);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(256.9431329624006, -133.3431551362948), 8);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(226.9431329624006, -133.3431551362948), 4);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(-220.9735337052661, -551.3431551372947), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(323.4431329624006, -551.3431551372947), 4);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(353.4431329624006, -551.3431551372947), 8);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(717.7288472481148, -518.3431551372947), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(537.7288472481148, -641.8431551372947), 4);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(-220.9735337052661, -551.3431551372947), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(537.7288472481148, -641.8431551372947), 4);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(-220.9735337052661, 121.6568448657052), 1);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(-220.9735337052661, 121.6568448657052), 1);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(-220.9735337052661, -235.3431551362947), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(-220.9735337052661, 151.6568448657052), 2);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(-220.9735337052661, -371.3431551372947), 1);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(-586.9508064345389, -408.3431551372947), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(-220.9735337052661, -371.3431551372947), 1);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(-220.9735337052661, -551.3431551372947), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(-220.9735337052661, -235.3431551362947), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(-220.9735337052661, -341.3431551372947), 2);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(1415.728847251115, 434.9901782000385), 4);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(1445.728847251115, 434.9901782000385), 8);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(1511.728847251115, 434.9901782000385), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(389.4431329624006, 434.9901782000385), 4);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(419.4431329624006, 434.9901782000385), 8);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(519.7288472481148, 434.9901782000385), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(437.4431329624006, 870.3235115333719), 1);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(437.4431329624006, 900.3235115333719), 2);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(651.7288472481148, 918.3235115333719), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(371.4431329624006, 796.3235115333719), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(437.4431329624006, 870.3235115333719), 1);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(437.4431329624006, 579.9901782000385), 1);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(651.7288472481148, 918.3235115333719), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(437.4431329624006, 609.9901782000385), 2);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(437.4431329624006, 579.9901782000385), 1);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(371.4431329624006, 796.3235115333719), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(-586.9508064345389, -408.3431551372947), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(-220.9735337052661, 151.6568448657052), 2);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(256.9431329624006, 70.65684486570521), 8);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(106.7764662947339, -148.3431551362948), 1);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(106.7764662947339, -46.34315513529478), 1);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(106.7764662947339, 55.65684486570521), 1);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(256.9431329624006, -31.34315513529478), 8);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(256.9431329624006, 70.65684486570521), 8);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(106.7764662947339, -118.3431551362948), 2);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(106.7764662947339, -16.34315513529478), 2);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(106.7764662947339, 85.65684486570521), 2);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(226.9431329624006, -31.34315513529478), 4);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(158.7764662957339, 103.6568448657052), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(226.9431329624006, 70.65684486570521), 4);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+#endif
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(-265.9508064325389, 386.2282734371338), 8);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints249(1);
+ checkpoints249[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef249->setRoutingCheckpoints(checkpoints249);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(-265.9508064325389, 461.2282734371338), 8);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints250(1);
+ checkpoints250[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef250->setRoutingCheckpoints(checkpoints250);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(-265.9508064325389, 536.2282734371338), 8);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints251(1);
+ checkpoints251[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef251->setRoutingCheckpoints(checkpoints251);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(-265.9508064325389, 611.2282734371338), 8);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints252(1);
+ checkpoints252[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef252->setRoutingCheckpoints(checkpoints252);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(-265.9508064325389, 686.2282734371338), 8);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints253(1);
+ checkpoints253[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef253->setRoutingCheckpoints(checkpoints253);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(-265.9508064325389, 761.2282734371338), 8);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints254(1);
+ checkpoints254[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef254->setRoutingCheckpoints(checkpoints254);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(-265.9508064325389, 803.2282734371338), 8);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints255(1);
+ checkpoints255[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef255->setRoutingCheckpoints(checkpoints255);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(-265.9508064325389, 878.2282734371338), 8);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints256(1);
+ checkpoints256[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef256->setRoutingCheckpoints(checkpoints256);
+
+#ifdef ALL
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(-486.9508064345389, 246.2282734371338), 8);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+#endif
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(-265.9508064325389, 1103.228273437134), 8);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints258(1);
+ checkpoints258[0] = Checkpoint(Point(-242.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef258->setRoutingCheckpoints(checkpoints258);
+
+#ifdef ALL
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(422.4431329624006, 715.9901782000385), 4);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(422.4431329624006, 951.3235115333719), 4);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(422.4431329624006, 1324.723511533372), 4);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(158.7764662957339, 246.2282734371338), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(422.4431329624006, 1480.609225819086), 4);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(717.7288472481148, 246.2282734371338), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(567.7288472481148, -641.8431551372947), 8);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(-295.9508064325389, 953.2282734371338), 4);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints264(1);
+ checkpoints264[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef264->setRoutingCheckpoints(checkpoints264);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(-295.9508064325389, 1028.228273437134), 4);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints265(1);
+ checkpoints265[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef265->setRoutingCheckpoints(checkpoints265);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(-516.9508064345389, 246.2282734371338), 4);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(-295.9508064325389, 1103.228273437134), 4);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(-625.9508064345389, 246.2282734371338), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints267(1);
+ checkpoints267[0] = Checkpoint(Point(-318.9508064325389, 782.2282734371338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef267->setRoutingCheckpoints(checkpoints267);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(-553.9508064345389, 308.2282734381338), 15);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(-516.9508064345389, 246.2282734371338), 4);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(-393.9508064335388, 212.2282734381338), 8);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(-30.22353370526614, 308.2282734381338), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints269(1);
+ checkpoints269[0] = Checkpoint(Point(-370.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef269->setRoutingCheckpoints(checkpoints269);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(-393.9508064335388, 287.2282734381338), 8);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(-30.22353370526614, 308.2282734381338), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints270(1);
+ checkpoints270[0] = Checkpoint(Point(-370.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef270->setRoutingCheckpoints(checkpoints270);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(-393.9508064335388, 329.2282734381338), 8);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(-30.22353370526614, 308.2282734381338), 15);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints271(1);
+ checkpoints271[0] = Checkpoint(Point(-370.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef271->setRoutingCheckpoints(checkpoints271);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(-393.9508064335388, 404.2282734381338), 8);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(-30.22353370526614, 308.2282734381338), 15);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints272(1);
+ checkpoints272[0] = Checkpoint(Point(-370.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef272->setRoutingCheckpoints(checkpoints272);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(241.9431329624006, 308.2282734381338), 15);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(389.4431329624006, 434.9901782000385), 4);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(519.7288472481148, 434.9901782000385), 15);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(603.7288472481148, 434.9901782000385), 4);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(651.7288472481148, 918.3235115333719), 15);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(452.4431329624006, 715.9901782000385), 8);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(799.7288472481148, 939.3235115333719), 4);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(651.7288472481148, 918.3235115333719), 15);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints276(1);
+ checkpoints276[0] = Checkpoint(Point(776.7288472481148, 918.3235115333719), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef276->setRoutingCheckpoints(checkpoints276);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(799.7288472481148, 897.3235115333719), 4);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(651.7288472481148, 918.3235115333719), 15);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints277(1);
+ checkpoints277[0] = Checkpoint(Point(776.7288472481148, 918.3235115333719), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef277->setRoutingCheckpoints(checkpoints277);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(834.7288472481148, 374.561606771467), 4);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(834.7288472481148, 467.9901782000385), 4);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(912.7288472491148, 467.9901782000385), 4);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(1011.728847249115, 467.9901782000385), 4);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(912.7288472491148, 374.561606771467), 4);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(781.7288472481148, 434.9901782000385), 15);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(1011.728847249115, 374.561606771467), 4);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(864.7288472481148, 467.9901782000385), 8);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(942.7288472491148, 467.9901782000385), 8);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(1041.728847249115, 467.9901782000385), 8);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(942.7288472491148, 374.561606771467), 8);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(-486.9508064345389, 246.2282734371338), 8);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(-30.22353370526614, 308.2282734381338), 15);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(-150.8902003719328, 1021.323511533372), 15);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(-150.8902003719328, 933.3235115333719), 2);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(-150.8902003719328, 796.3235115333719), 15);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(-12.22353370526611, 796.3235115333719), 4);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(17.77646629473389, 796.3235115333719), 8);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(371.4431329624006, 796.3235115333719), 15);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(371.4431329624006, 796.3235115333719), 15);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(422.4431329624006, 951.3235115333719), 4);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(371.4431329624006, 796.3235115333719), 15);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(274.9431329624006, 1072.323511533372), 1);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(829.7288472481148, 939.3235115333719), 8);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(894.7288472491148, 918.3235115333719), 15);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints294(1);
+ checkpoints294[0] = Checkpoint(Point(852.7288472481148, 918.3235115333719), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef294->setRoutingCheckpoints(checkpoints294);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(1250.728847251115, 655.9901782000385), 4);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(894.7288472491148, 918.3235115333719), 15);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(1250.728847251115, 1053.323511533372), 4);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(894.7288472491148, 918.3235115333719), 15);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints296(1);
+ checkpoints296[0] = Checkpoint(Point(1227.728847251115, 1074.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef296->setRoutingCheckpoints(checkpoints296);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(1250.728847251115, 1095.323511533372), 4);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(894.7288472491148, 918.3235115333719), 15);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints297(1);
+ checkpoints297[0] = Checkpoint(Point(1227.728847251115, 1074.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef297->setRoutingCheckpoints(checkpoints297);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(1478.728847251115, 918.3235115333719), 15);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(1280.728847251115, 655.9901782000385), 8);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(1397.728847251115, 561.9901782000385), 15);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(1280.728847251115, 655.9901782000385), 8);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(1430.728847251115, 852.3235115333719), 15);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(1280.728847251115, 852.3235115333719), 8);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(1177.728847250115, 958.3235115333719), 8);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(1430.728847251115, 1054.323511533372), 15);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints301(1);
+ checkpoints301[0] = Checkpoint(Point(1200.728847250115, 1054.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef301->setRoutingCheckpoints(checkpoints301);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(1177.728847250115, 1033.323511533372), 8);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(1430.728847251115, 1054.323511533372), 15);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints302(1);
+ checkpoints302[0] = Checkpoint(Point(1200.728847250115, 1054.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef302->setRoutingCheckpoints(checkpoints302);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(1177.728847250115, 1075.323511533372), 8);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(1430.728847251115, 1054.323511533372), 15);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints303(1);
+ checkpoints303[0] = Checkpoint(Point(1200.728847250115, 1054.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef303->setRoutingCheckpoints(checkpoints303);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(274.9431329624006, 1151.323511533372), 15);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(422.4431329624006, 1324.723511533372), 4);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(651.7288472481148, 1324.723511533372), 15);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(799.7288472481148, 1324.723511533372), 4);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(1250.728847251115, 1267.323511533372), 4);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(894.7288472491148, 1324.723511533372), 15);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(1478.728847251115, 1324.723511533372), 15);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(1280.728847251115, 1267.323511533372), 8);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(-441.9508064335388, 1480.609225819086), 15);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(-78.22353370526614, 1480.609225819086), 4);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(35.77646629473389, 1480.609225819086), 15);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(422.4431329624006, 1480.609225819086), 4);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(799.7288472481148, 1459.609225819086), 4);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(651.7288472481148, 1480.609225819086), 15);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints310(1);
+ checkpoints310[0] = Checkpoint(Point(776.7288472481148, 1480.609225819086), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef310->setRoutingCheckpoints(checkpoints310);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(829.7288472481148, 1501.609225819086), 8);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(894.7288472491148, 1480.609225819086), 15);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints311(1);
+ checkpoints311[0] = Checkpoint(Point(852.7288472481148, 1480.609225819086), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef311->setRoutingCheckpoints(checkpoints311);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(1250.728847251115, 1423.323511533372), 4);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(894.7288472491148, 1480.609225819086), 15);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(1478.728847251115, 1480.609225819086), 15);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(1280.728847251115, 1423.323511533372), 8);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(-423.9508064335388, 404.2282734381338), 4);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(-553.9508064345389, 308.2282734381338), 15);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints314(1);
+ checkpoints314[0] = Checkpoint(Point(-446.9508064335388, 308.2282734381338), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef314->setRoutingCheckpoints(checkpoints314);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(-150.8902003719328, 903.3235115333719), 1);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(-150.8902003719328, 796.3235115333719), 15);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(422.4431329624006, 715.9901782000385), 4);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(371.4431329624006, 796.3235115333719), 15);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(452.4431329624006, 951.3235115333719), 8);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(651.7288472481148, 918.3235115333719), 15);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(829.7288472481148, 897.3235115333719), 8);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(894.7288472491148, 918.3235115333719), 15);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints318(1);
+ checkpoints318[0] = Checkpoint(Point(852.7288472481148, 918.3235115333719), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef318->setRoutingCheckpoints(checkpoints318);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(274.9431329624006, 1102.323511533372), 2);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(274.9431329624006, 1151.323511533372), 15);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(452.4431329624006, 1324.723511533372), 8);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(651.7288472481148, 1324.723511533372), 15);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(829.7288472481148, 1324.723511533372), 8);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(894.7288472491148, 1324.723511533372), 15);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(-48.22353370526614, 1480.609225819086), 8);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(35.77646629473389, 1480.609225819086), 15);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(452.4431329624006, 1480.609225819086), 8);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(651.7288472481148, 1480.609225819086), 15);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(829.7288472481148, 1459.609225819086), 8);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(894.7288472491148, 1480.609225819086), 15);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints324(1);
+ checkpoints324[0] = Checkpoint(Point(852.7288472481148, 1480.609225819086), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef324->setRoutingCheckpoints(checkpoints324);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(799.7288472481148, 1501.609225819086), 4);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(651.7288472481148, 1480.609225819086), 15);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints325(1);
+ checkpoints325[0] = Checkpoint(Point(776.7288472481148, 1480.609225819086), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef325->setRoutingCheckpoints(checkpoints325);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(1250.728847251115, 852.3235115333719), 4);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(993.7288472491148, 852.3235115333719), 15);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(1250.728847251115, 655.9901782000385), 4);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(1096.728847250115, 561.9901782000385), 15);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(1147.728847250115, 958.3235115333719), 4);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(993.7288472491148, 1054.323511533372), 15);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints328(1);
+ checkpoints328[0] = Checkpoint(Point(1124.728847250115, 1054.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef328->setRoutingCheckpoints(checkpoints328);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(1147.728847250115, 1033.323511533372), 4);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(993.7288472491148, 1054.323511533372), 15);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints329(1);
+ checkpoints329[0] = Checkpoint(Point(1124.728847250115, 1054.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef329->setRoutingCheckpoints(checkpoints329);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(1280.728847251115, 1053.323511533372), 8);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(1478.728847251115, 918.3235115333719), 15);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints330(1);
+ checkpoints330[0] = Checkpoint(Point(1303.728847251115, 1074.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef330->setRoutingCheckpoints(checkpoints330);
+
+ ConnRef *connRef331 = new ConnRef(router, 331);
+ ConnEnd srcPt331(Point(1280.728847251115, 1095.323511533372), 8);
+ connRef331->setSourceEndpoint(srcPt331);
+ ConnEnd dstPt331(Point(1478.728847251115, 918.3235115333719), 15);
+ connRef331->setDestEndpoint(dstPt331);
+ connRef331->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints331(1);
+ checkpoints331[0] = Checkpoint(Point(1303.728847251115, 1074.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 8);
+ connRef331->setRoutingCheckpoints(checkpoints331);
+
+ ConnRef *connRef332 = new ConnRef(router, 332);
+ ConnEnd srcPt332(Point(106.7764662947339, -148.3431551362948), 1);
+ connRef332->setSourceEndpoint(srcPt332);
+ ConnEnd dstPt332(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef332->setDestEndpoint(dstPt332);
+ connRef332->setRoutingType((ConnType)2);
+
+ ConnRef *connRef333 = new ConnRef(router, 333);
+ ConnEnd srcPt333(Point(864.7288472481148, 467.9901782000385), 8);
+ connRef333->setSourceEndpoint(srcPt333);
+ ConnEnd dstPt333(Point(1129.728847250115, 308.2282734381338), 15);
+ connRef333->setDestEndpoint(dstPt333);
+ connRef333->setRoutingType((ConnType)2);
+
+ ConnRef *connRef334 = new ConnRef(router, 334);
+ ConnEnd srcPt334(Point(106.7764662947339, -46.34315513529478), 1);
+ connRef334->setSourceEndpoint(srcPt334);
+ ConnEnd dstPt334(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef334->setDestEndpoint(dstPt334);
+ connRef334->setRoutingType((ConnType)2);
+
+ ConnRef *connRef335 = new ConnRef(router, 335);
+ ConnEnd srcPt335(Point(942.7288472491148, 467.9901782000385), 8);
+ connRef335->setSourceEndpoint(srcPt335);
+ ConnEnd dstPt335(Point(1129.728847250115, 308.2282734381338), 15);
+ connRef335->setDestEndpoint(dstPt335);
+ connRef335->setRoutingType((ConnType)2);
+
+ ConnRef *connRef336 = new ConnRef(router, 336);
+ ConnEnd srcPt336(Point(106.7764662947339, 55.65684486570521), 1);
+ connRef336->setSourceEndpoint(srcPt336);
+ ConnEnd dstPt336(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef336->setDestEndpoint(dstPt336);
+ connRef336->setRoutingType((ConnType)2);
+
+ ConnRef *connRef337 = new ConnRef(router, 337);
+ ConnEnd srcPt337(Point(1041.728847249115, 467.9901782000385), 8);
+ connRef337->setSourceEndpoint(srcPt337);
+ ConnEnd dstPt337(Point(1129.728847250115, 308.2282734381338), 15);
+ connRef337->setDestEndpoint(dstPt337);
+ connRef337->setRoutingType((ConnType)2);
+
+ ConnRef *connRef338 = new ConnRef(router, 338);
+ ConnEnd srcPt338(Point(256.9431329624006, -31.34315513529478), 8);
+ connRef338->setSourceEndpoint(srcPt338);
+ ConnEnd dstPt338(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef338->setDestEndpoint(dstPt338);
+ connRef338->setRoutingType((ConnType)2);
+
+ ConnRef *connRef339 = new ConnRef(router, 339);
+ ConnEnd srcPt339(Point(942.7288472491148, 374.561606771467), 8);
+ connRef339->setSourceEndpoint(srcPt339);
+ ConnEnd dstPt339(Point(1129.728847250115, 308.2282734381338), 15);
+ connRef339->setDestEndpoint(dstPt339);
+ connRef339->setRoutingType((ConnType)2);
+
+ ConnRef *connRef340 = new ConnRef(router, 340);
+ ConnEnd srcPt340(Point(1147.728847250115, 1075.323511533372), 4);
+ connRef340->setSourceEndpoint(srcPt340);
+ ConnEnd dstPt340(Point(993.7288472491148, 1054.323511533372), 15);
+ connRef340->setDestEndpoint(dstPt340);
+ connRef340->setRoutingType((ConnType)2);
+ std::vector<Checkpoint> checkpoints340(1);
+ checkpoints340[0] = Checkpoint(Point(1124.728847250115, 1054.323511533372), (ConnDirFlags) 15, (ConnDirFlags) 4);
+ connRef340->setRoutingCheckpoints(checkpoints340);
+
+ ConnRef *connRef341 = new ConnRef(router, 341);
+ ConnEnd srcPt341(Point(1041.728847249115, 374.561606771467), 8);
+ connRef341->setSourceEndpoint(srcPt341);
+ ConnEnd dstPt341(Point(1129.728847250115, 308.2282734381338), 15);
+ connRef341->setDestEndpoint(dstPt341);
+ connRef341->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342 = new ConnRef(router, 342);
+ ConnEnd srcPt342(Point(1041.728847249115, 374.561606771467), 8);
+ connRef342->setSourceEndpoint(srcPt342);
+ ConnEnd dstPt342(Point(1331.728847251115, 434.9901782000385), 15);
+ connRef342->setDestEndpoint(dstPt342);
+ connRef342->setRoutingType((ConnType)2);
+
+ ConnRef *connRef343 = new ConnRef(router, 343);
+ ConnEnd srcPt343(Point(960.7288472491148, 196.2282734371338), 2);
+ connRef343->setSourceEndpoint(srcPt343);
+ ConnEnd dstPt343(Point(960.7288472491148, 246.2282734371338), 1);
+ connRef343->setDestEndpoint(dstPt343);
+ connRef343->setRoutingType((ConnType)2);
+
+ ConnRef *connRef344 = new ConnRef(router, 344);
+ ConnEnd srcPt344(Point(849.7288472481148, 324.561606771467), 2);
+ connRef344->setSourceEndpoint(srcPt344);
+ ConnEnd dstPt344(Point(849.7288472481148, 374.561606771467), 1);
+ connRef344->setDestEndpoint(dstPt344);
+ connRef344->setRoutingType((ConnType)2);
+
+ ConnRef *connRef345 = new ConnRef(router, 345);
+ ConnEnd srcPt345(Point(618.7288472481148, 384.9901782000385), 2);
+ connRef345->setSourceEndpoint(srcPt345);
+ ConnEnd dstPt345(Point(618.7288472481148, 434.9901782000385), 1);
+ connRef345->setDestEndpoint(dstPt345);
+ connRef345->setRoutingType((ConnType)2);
+
+ ConnRef *connRef346 = new ConnRef(router, 346);
+ ConnEnd srcPt346(Point(-280.9508064325389, 336.2282734371338), 2);
+ connRef346->setSourceEndpoint(srcPt346);
+ ConnEnd dstPt346(Point(-280.9508064325389, 386.2282734371338), 1);
+ connRef346->setDestEndpoint(dstPt346);
+ connRef346->setRoutingType((ConnType)2);
+
+ ConnRef *connRef347 = new ConnRef(router, 347);
+ ConnEnd srcPt347(Point(-280.9508064325389, 411.2282734371338), 2);
+ connRef347->setSourceEndpoint(srcPt347);
+ ConnEnd dstPt347(Point(-280.9508064325389, 461.2282734371338), 1);
+ connRef347->setDestEndpoint(dstPt347);
+ connRef347->setRoutingType((ConnType)2);
+
+ ConnRef *connRef348 = new ConnRef(router, 348);
+ ConnEnd srcPt348(Point(-280.9508064325389, 486.2282734371338), 2);
+ connRef348->setSourceEndpoint(srcPt348);
+ ConnEnd dstPt348(Point(-280.9508064325389, 536.2282734371338), 1);
+ connRef348->setDestEndpoint(dstPt348);
+ connRef348->setRoutingType((ConnType)2);
+
+ ConnRef *connRef349 = new ConnRef(router, 349);
+ ConnEnd srcPt349(Point(-280.9508064325389, 561.2282734371338), 2);
+ connRef349->setSourceEndpoint(srcPt349);
+ ConnEnd dstPt349(Point(-280.9508064325389, 611.2282734371338), 1);
+ connRef349->setDestEndpoint(dstPt349);
+ connRef349->setRoutingType((ConnType)2);
+
+ ConnRef *connRef350 = new ConnRef(router, 350);
+ ConnEnd srcPt350(Point(-280.9508064325389, 636.2282734371338), 2);
+ connRef350->setSourceEndpoint(srcPt350);
+ ConnEnd dstPt350(Point(-280.9508064325389, 686.2282734371338), 1);
+ connRef350->setDestEndpoint(dstPt350);
+ connRef350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef351 = new ConnRef(router, 351);
+ ConnEnd srcPt351(Point(-280.9508064325389, 1003.228273437134), 1);
+ connRef351->setSourceEndpoint(srcPt351);
+ ConnEnd dstPt351(Point(-280.9508064325389, 953.2282734371338), 2);
+ connRef351->setDestEndpoint(dstPt351);
+ connRef351->setRoutingType((ConnType)2);
+
+ ConnRef *connRef352 = new ConnRef(router, 352);
+ ConnEnd srcPt352(Point(-280.9508064325389, 711.2282734371338), 2);
+ connRef352->setSourceEndpoint(srcPt352);
+ ConnEnd dstPt352(Point(-280.9508064325389, 761.2282734371338), 1);
+ connRef352->setDestEndpoint(dstPt352);
+ connRef352->setRoutingType((ConnType)2);
+
+ ConnRef *connRef353 = new ConnRef(router, 353);
+ ConnEnd srcPt353(Point(-280.9508064325389, 853.2282734371338), 1);
+ connRef353->setSourceEndpoint(srcPt353);
+ ConnEnd dstPt353(Point(-280.9508064325389, 803.2282734371338), 2);
+ connRef353->setDestEndpoint(dstPt353);
+ connRef353->setRoutingType((ConnType)2);
+
+ ConnRef *connRef354 = new ConnRef(router, 354);
+ ConnEnd srcPt354(Point(-280.9508064325389, 928.2282734371338), 1);
+ connRef354->setSourceEndpoint(srcPt354);
+ ConnEnd dstPt354(Point(-280.9508064325389, 878.2282734371338), 2);
+ connRef354->setDestEndpoint(dstPt354);
+ connRef354->setRoutingType((ConnType)2);
+
+ ConnRef *connRef355 = new ConnRef(router, 355);
+ ConnEnd srcPt355(Point(-280.9508064325389, 1078.228273437134), 1);
+ connRef355->setSourceEndpoint(srcPt355);
+ ConnEnd dstPt355(Point(-280.9508064325389, 1028.228273437134), 2);
+ connRef355->setDestEndpoint(dstPt355);
+ connRef355->setRoutingType((ConnType)2);
+
+ ConnRef *connRef356 = new ConnRef(router, 356);
+ ConnEnd srcPt356(Point(-408.9508064335388, 162.2282734381338), 2);
+ connRef356->setSourceEndpoint(srcPt356);
+ ConnEnd dstPt356(Point(-408.9508064335388, 212.2282734381338), 1);
+ connRef356->setDestEndpoint(dstPt356);
+ connRef356->setRoutingType((ConnType)2);
+
+ ConnRef *connRef357 = new ConnRef(router, 357);
+ ConnEnd srcPt357(Point(-408.9508064335388, 237.2282734381338), 2);
+ connRef357->setSourceEndpoint(srcPt357);
+ ConnEnd dstPt357(Point(-408.9508064335388, 287.2282734381338), 1);
+ connRef357->setDestEndpoint(dstPt357);
+ connRef357->setRoutingType((ConnType)2);
+
+ ConnRef *connRef358 = new ConnRef(router, 358);
+ ConnEnd srcPt358(Point(-408.9508064335388, 379.2282734381338), 1);
+ connRef358->setSourceEndpoint(srcPt358);
+ ConnEnd dstPt358(Point(-408.9508064335388, 329.2282734381338), 2);
+ connRef358->setDestEndpoint(dstPt358);
+ connRef358->setRoutingType((ConnType)2);
+
+ ConnRef *connRef359 = new ConnRef(router, 359);
+ ConnEnd srcPt359(Point(585.7288472481148, 196.2282734371338), 2);
+ connRef359->setSourceEndpoint(srcPt359);
+ ConnEnd dstPt359(Point(585.7288472481148, 246.2282734371338), 1);
+ connRef359->setDestEndpoint(dstPt359);
+ connRef359->setRoutingType((ConnType)2);
+
+ ConnRef *connRef360 = new ConnRef(router, 360);
+ ConnEnd srcPt360(Point(775.7288472481148, -268.3431551362947), 4);
+ connRef360->setSourceEndpoint(srcPt360);
+ ConnEnd dstPt360(Point(717.7288472481148, -268.3431551362947), 8);
+ connRef360->setDestEndpoint(dstPt360);
+ connRef360->setRoutingType((ConnType)2);
+
+ ConnRef *connRef361 = new ConnRef(router, 361);
+ ConnEnd srcPt361(Point(216.7764662957339, 169.6568448657052), 4);
+ connRef361->setSourceEndpoint(srcPt361);
+ ConnEnd dstPt361(Point(158.7764662957339, 169.6568448657052), 8);
+ connRef361->setDestEndpoint(dstPt361);
+ connRef361->setRoutingType((ConnType)2);
+
+ ConnRef *connRef362 = new ConnRef(router, 362);
+ ConnEnd srcPt362(Point(241.9431329624006, -183.3431551362948), 2);
+ connRef362->setSourceEndpoint(srcPt362);
+ ConnEnd dstPt362(Point(241.9431329624006, -133.3431551362948), 1);
+ connRef362->setDestEndpoint(dstPt362);
+ connRef362->setRoutingType((ConnType)2);
+
+ ConnRef *connRef363 = new ConnRef(router, 363);
+ ConnEnd srcPt363(Point(338.4431329624006, -601.3431551372947), 2);
+ connRef363->setSourceEndpoint(srcPt363);
+ ConnEnd dstPt363(Point(338.4431329624006, -551.3431551372947), 1);
+ connRef363->setDestEndpoint(dstPt363);
+ connRef363->setRoutingType((ConnType)2);
+
+ ConnRef *connRef364 = new ConnRef(router, 364);
+ ConnEnd srcPt364(Point(552.7288472481148, -691.8431551372947), 2);
+ connRef364->setSourceEndpoint(srcPt364);
+ ConnEnd dstPt364(Point(552.7288472481148, -641.8431551372947), 1);
+ connRef364->setDestEndpoint(dstPt364);
+ connRef364->setRoutingType((ConnType)2);
+
+ ConnRef *connRef365 = new ConnRef(router, 365);
+ ConnEnd srcPt365(Point(-278.9735337052662, 136.6568448657052), 8);
+ connRef365->setSourceEndpoint(srcPt365);
+ ConnEnd dstPt365(Point(-220.9735337052661, 136.6568448657052), 4);
+ connRef365->setDestEndpoint(dstPt365);
+ connRef365->setRoutingType((ConnType)2);
+
+ ConnRef *connRef366 = new ConnRef(router, 366);
+ ConnEnd srcPt366(Point(-162.9735337052661, -356.3431551372947), 4);
+ connRef366->setSourceEndpoint(srcPt366);
+ ConnEnd dstPt366(Point(-220.9735337052661, -356.3431551372947), 8);
+ connRef366->setDestEndpoint(dstPt366);
+ connRef366->setRoutingType((ConnType)2);
+
+ ConnRef *connRef367 = new ConnRef(router, 367);
+ ConnEnd srcPt367(Point(1430.728847251115, 384.9901782000385), 2);
+ connRef367->setSourceEndpoint(srcPt367);
+ ConnEnd dstPt367(Point(1430.728847251115, 434.9901782000385), 1);
+ connRef367->setDestEndpoint(dstPt367);
+ connRef367->setRoutingType((ConnType)2);
+
+ ConnRef *connRef368 = new ConnRef(router, 368);
+ ConnEnd srcPt368(Point(404.4431329624006, 384.9901782000385), 2);
+ connRef368->setSourceEndpoint(srcPt368);
+ ConnEnd dstPt368(Point(404.4431329624006, 434.9901782000385), 1);
+ connRef368->setDestEndpoint(dstPt368);
+ connRef368->setRoutingType((ConnType)2);
+
+ ConnRef *connRef369 = new ConnRef(router, 369);
+ ConnEnd srcPt369(Point(495.4431329624006, 885.3235115333719), 4);
+ connRef369->setSourceEndpoint(srcPt369);
+ ConnEnd dstPt369(Point(437.4431329624006, 885.3235115333719), 8);
+ connRef369->setDestEndpoint(dstPt369);
+ connRef369->setRoutingType((ConnType)2);
+
+ ConnRef *connRef370 = new ConnRef(router, 370);
+ ConnEnd srcPt370(Point(495.4431329624006, 594.9901782000385), 4);
+ connRef370->setSourceEndpoint(srcPt370);
+ ConnEnd dstPt370(Point(437.4431329624006, 594.9901782000385), 8);
+ connRef370->setDestEndpoint(dstPt370);
+ connRef370->setRoutingType((ConnType)2);
+
+ ConnRef *connRef371 = new ConnRef(router, 371);
+ ConnEnd srcPt371(Point(-501.9508064345389, 196.2282734371338), 2);
+ connRef371->setSourceEndpoint(srcPt371);
+ ConnEnd dstPt371(Point(-501.9508064345389, 246.2282734371338), 1);
+ connRef371->setDestEndpoint(dstPt371);
+ connRef371->setRoutingType((ConnType)2);
+
+ ConnRef *connRef372 = new ConnRef(router, 372);
+ ConnEnd srcPt372(Point(-280.9508064325389, 1153.228273437134), 1);
+ connRef372->setSourceEndpoint(srcPt372);
+ ConnEnd dstPt372(Point(-280.9508064325389, 1103.228273437134), 2);
+ connRef372->setDestEndpoint(dstPt372);
+ connRef372->setRoutingType((ConnType)2);
+
+ ConnRef *connRef373 = new ConnRef(router, 373);
+ ConnEnd srcPt373(Point(-408.9508064335388, 454.2282734381338), 1);
+ connRef373->setSourceEndpoint(srcPt373);
+ ConnEnd dstPt373(Point(-408.9508064335388, 404.2282734381338), 2);
+ connRef373->setDestEndpoint(dstPt373);
+ connRef373->setRoutingType((ConnType)2);
+
+ ConnRef *connRef374 = new ConnRef(router, 374);
+ ConnEnd srcPt374(Point(-92.89020037193279, 918.3235115333719), 4);
+ connRef374->setSourceEndpoint(srcPt374);
+ ConnEnd dstPt374(Point(-150.8902003719328, 918.3235115333719), 8);
+ connRef374->setDestEndpoint(dstPt374);
+ connRef374->setRoutingType((ConnType)2);
+
+ ConnRef *connRef375 = new ConnRef(router, 375);
+ ConnEnd srcPt375(Point(2.776466294733893, 746.3235115333719), 2);
+ connRef375->setSourceEndpoint(srcPt375);
+ ConnEnd dstPt375(Point(2.776466294733893, 796.3235115333719), 1);
+ connRef375->setDestEndpoint(dstPt375);
+ connRef375->setRoutingType((ConnType)2);
+
+ ConnRef *connRef376 = new ConnRef(router, 376);
+ ConnEnd srcPt376(Point(437.4431329624006, 665.9901782000385), 2);
+ connRef376->setSourceEndpoint(srcPt376);
+ ConnEnd dstPt376(Point(437.4431329624006, 715.9901782000385), 1);
+ connRef376->setDestEndpoint(dstPt376);
+ connRef376->setRoutingType((ConnType)2);
+
+ ConnRef *connRef377 = new ConnRef(router, 377);
+ ConnEnd srcPt377(Point(437.4431329624006, 1001.323511533372), 1);
+ connRef377->setSourceEndpoint(srcPt377);
+ ConnEnd dstPt377(Point(437.4431329624006, 951.3235115333719), 2);
+ connRef377->setDestEndpoint(dstPt377);
+ connRef377->setRoutingType((ConnType)2);
+
+ ConnRef *connRef378 = new ConnRef(router, 378);
+ ConnEnd srcPt378(Point(814.7288472481148, 989.3235115333719), 1);
+ connRef378->setSourceEndpoint(srcPt378);
+ ConnEnd dstPt378(Point(814.7288472481148, 939.3235115333719), 2);
+ connRef378->setDestEndpoint(dstPt378);
+ connRef378->setRoutingType((ConnType)2);
+
+ ConnRef *connRef379 = new ConnRef(router, 379);
+ ConnEnd srcPt379(Point(814.7288472481148, 847.3235115333719), 2);
+ connRef379->setSourceEndpoint(srcPt379);
+ ConnEnd dstPt379(Point(814.7288472481148, 897.3235115333719), 1);
+ connRef379->setDestEndpoint(dstPt379);
+ connRef379->setRoutingType((ConnType)2);
+
+ ConnRef *connRef380 = new ConnRef(router, 380);
+ ConnEnd srcPt380(Point(332.9431329624006, 1087.323511533372), 4);
+ connRef380->setSourceEndpoint(srcPt380);
+ ConnEnd dstPt380(Point(274.9431329624006, 1087.323511533372), 8);
+ connRef380->setDestEndpoint(dstPt380);
+ connRef380->setRoutingType((ConnType)2);
+
+ ConnRef *connRef381 = new ConnRef(router, 381);
+ ConnEnd srcPt381(Point(437.4431329624006, 1274.723511533372), 2);
+ connRef381->setSourceEndpoint(srcPt381);
+ ConnEnd dstPt381(Point(437.4431329624006, 1324.723511533372), 1);
+ connRef381->setDestEndpoint(dstPt381);
+ connRef381->setRoutingType((ConnType)2);
+
+ ConnRef *connRef382 = new ConnRef(router, 382);
+ ConnEnd srcPt382(Point(814.7288472481148, 1274.723511533372), 2);
+ connRef382->setSourceEndpoint(srcPt382);
+ ConnEnd dstPt382(Point(814.7288472481148, 1324.723511533372), 1);
+ connRef382->setDestEndpoint(dstPt382);
+ connRef382->setRoutingType((ConnType)2);
+
+ ConnRef *connRef383 = new ConnRef(router, 383);
+ ConnEnd srcPt383(Point(-63.22353370526614, 1430.609225819086), 2);
+ connRef383->setSourceEndpoint(srcPt383);
+ ConnEnd dstPt383(Point(-63.22353370526614, 1480.609225819086), 1);
+ connRef383->setDestEndpoint(dstPt383);
+ connRef383->setRoutingType((ConnType)2);
+
+ ConnRef *connRef384 = new ConnRef(router, 384);
+ ConnEnd srcPt384(Point(437.4431329624006, 1430.609225819086), 2);
+ connRef384->setSourceEndpoint(srcPt384);
+ ConnEnd dstPt384(Point(437.4431329624006, 1480.609225819086), 1);
+ connRef384->setDestEndpoint(dstPt384);
+ connRef384->setRoutingType((ConnType)2);
+
+ ConnRef *connRef385 = new ConnRef(router, 385);
+ ConnEnd srcPt385(Point(814.7288472481148, 1409.609225819086), 2);
+ connRef385->setSourceEndpoint(srcPt385);
+ ConnEnd dstPt385(Point(814.7288472481148, 1459.609225819086), 1);
+ connRef385->setDestEndpoint(dstPt385);
+ connRef385->setRoutingType((ConnType)2);
+
+ ConnRef *connRef386 = new ConnRef(router, 386);
+ ConnEnd srcPt386(Point(814.7288472481148, 1551.609225819086), 1);
+ connRef386->setSourceEndpoint(srcPt386);
+ ConnEnd dstPt386(Point(814.7288472481148, 1501.609225819086), 2);
+ connRef386->setDestEndpoint(dstPt386);
+ connRef386->setRoutingType((ConnType)2);
+
+ ConnRef *connRef387 = new ConnRef(router, 387);
+ ConnEnd srcPt387(Point(1265.728847251115, 802.3235115333719), 2);
+ connRef387->setSourceEndpoint(srcPt387);
+ ConnEnd dstPt387(Point(1265.728847251115, 852.3235115333719), 1);
+ connRef387->setDestEndpoint(dstPt387);
+ connRef387->setRoutingType((ConnType)2);
+
+ ConnRef *connRef388 = new ConnRef(router, 388);
+ ConnEnd srcPt388(Point(1265.728847251115, 605.9901782000385), 2);
+ connRef388->setSourceEndpoint(srcPt388);
+ ConnEnd dstPt388(Point(1265.728847251115, 655.9901782000385), 1);
+ connRef388->setDestEndpoint(dstPt388);
+ connRef388->setRoutingType((ConnType)2);
+
+ ConnRef *connRef389 = new ConnRef(router, 389);
+ ConnEnd srcPt389(Point(1162.728847250115, 908.3235115333719), 2);
+ connRef389->setSourceEndpoint(srcPt389);
+ ConnEnd dstPt389(Point(1162.728847250115, 958.3235115333719), 1);
+ connRef389->setDestEndpoint(dstPt389);
+ connRef389->setRoutingType((ConnType)2);
+
+ ConnRef *connRef390 = new ConnRef(router, 390);
+ ConnEnd srcPt390(Point(1162.728847250115, 983.3235115333719), 2);
+ connRef390->setSourceEndpoint(srcPt390);
+ ConnEnd dstPt390(Point(1162.728847250115, 1033.323511533372), 1);
+ connRef390->setDestEndpoint(dstPt390);
+ connRef390->setRoutingType((ConnType)2);
+
+ ConnRef *connRef391 = new ConnRef(router, 391);
+ ConnEnd srcPt391(Point(1265.728847251115, 1003.323511533372), 2);
+ connRef391->setSourceEndpoint(srcPt391);
+ ConnEnd dstPt391(Point(1265.728847251115, 1053.323511533372), 1);
+ connRef391->setDestEndpoint(dstPt391);
+ connRef391->setRoutingType((ConnType)2);
+
+ ConnRef *connRef392 = new ConnRef(router, 392);
+ ConnEnd srcPt392(Point(1265.728847251115, 1145.323511533372), 1);
+ connRef392->setSourceEndpoint(srcPt392);
+ ConnEnd dstPt392(Point(1265.728847251115, 1095.323511533372), 2);
+ connRef392->setDestEndpoint(dstPt392);
+ connRef392->setRoutingType((ConnType)2);
+
+ ConnRef *connRef393 = new ConnRef(router, 393);
+ ConnEnd srcPt393(Point(1265.728847251115, 1217.323511533372), 2);
+ connRef393->setSourceEndpoint(srcPt393);
+ ConnEnd dstPt393(Point(1265.728847251115, 1267.323511533372), 1);
+ connRef393->setDestEndpoint(dstPt393);
+ connRef393->setRoutingType((ConnType)2);
+
+ ConnRef *connRef394 = new ConnRef(router, 394);
+ ConnEnd srcPt394(Point(1265.728847251115, 1373.323511533372), 2);
+ connRef394->setSourceEndpoint(srcPt394);
+ ConnEnd dstPt394(Point(1265.728847251115, 1423.323511533372), 1);
+ connRef394->setDestEndpoint(dstPt394);
+ connRef394->setRoutingType((ConnType)2);
+
+ ConnRef *connRef395 = new ConnRef(router, 395);
+ ConnEnd srcPt395(Point(48.77646629473389, -133.3431551362948), 8);
+ connRef395->setSourceEndpoint(srcPt395);
+ ConnEnd dstPt395(Point(106.7764662947339, -133.3431551362948), 4);
+ connRef395->setDestEndpoint(dstPt395);
+ connRef395->setRoutingType((ConnType)2);
+
+ ConnRef *connRef396 = new ConnRef(router, 396);
+ ConnEnd srcPt396(Point(849.7288472481148, 517.9901782000385), 1);
+ connRef396->setSourceEndpoint(srcPt396);
+ ConnEnd dstPt396(Point(849.7288472481148, 467.9901782000385), 2);
+ connRef396->setDestEndpoint(dstPt396);
+ connRef396->setRoutingType((ConnType)2);
+
+ ConnRef *connRef397 = new ConnRef(router, 397);
+ ConnEnd srcPt397(Point(48.77646629473389, -31.34315513529478), 8);
+ connRef397->setSourceEndpoint(srcPt397);
+ ConnEnd dstPt397(Point(106.7764662947339, -31.34315513529478), 4);
+ connRef397->setDestEndpoint(dstPt397);
+ connRef397->setRoutingType((ConnType)2);
+
+ ConnRef *connRef398 = new ConnRef(router, 398);
+ ConnEnd srcPt398(Point(927.7288472491148, 517.9901782000385), 1);
+ connRef398->setSourceEndpoint(srcPt398);
+ ConnEnd dstPt398(Point(927.7288472491148, 467.9901782000385), 2);
+ connRef398->setDestEndpoint(dstPt398);
+ connRef398->setRoutingType((ConnType)2);
+
+ ConnRef *connRef399 = new ConnRef(router, 399);
+ ConnEnd srcPt399(Point(48.77646629473389, 70.65684486570521), 8);
+ connRef399->setSourceEndpoint(srcPt399);
+ ConnEnd dstPt399(Point(106.7764662947339, 70.65684486570521), 4);
+ connRef399->setDestEndpoint(dstPt399);
+ connRef399->setRoutingType((ConnType)2);
+
+ ConnRef *connRef400 = new ConnRef(router, 400);
+ ConnEnd srcPt400(Point(1026.728847249115, 517.9901782000385), 1);
+ connRef400->setSourceEndpoint(srcPt400);
+ ConnEnd dstPt400(Point(1026.728847249115, 467.9901782000385), 2);
+ connRef400->setDestEndpoint(dstPt400);
+ connRef400->setRoutingType((ConnType)2);
+
+ ConnRef *connRef401 = new ConnRef(router, 401);
+ ConnEnd srcPt401(Point(241.9431329624006, -81.34315513529478), 2);
+ connRef401->setSourceEndpoint(srcPt401);
+ ConnEnd dstPt401(Point(241.9431329624006, -31.34315513529478), 1);
+ connRef401->setDestEndpoint(dstPt401);
+ connRef401->setRoutingType((ConnType)2);
+
+ ConnRef *connRef402 = new ConnRef(router, 402);
+ ConnEnd srcPt402(Point(927.7288472491148, 324.561606771467), 2);
+ connRef402->setSourceEndpoint(srcPt402);
+ ConnEnd dstPt402(Point(927.7288472491148, 374.561606771467), 1);
+ connRef402->setDestEndpoint(dstPt402);
+ connRef402->setRoutingType((ConnType)2);
+
+ ConnRef *connRef403 = new ConnRef(router, 403);
+ ConnEnd srcPt403(Point(1162.728847250115, 1125.323511533372), 1);
+ connRef403->setSourceEndpoint(srcPt403);
+ ConnEnd dstPt403(Point(1162.728847250115, 1075.323511533372), 2);
+ connRef403->setDestEndpoint(dstPt403);
+ connRef403->setRoutingType((ConnType)2);
+
+ ConnRef *connRef404 = new ConnRef(router, 404);
+ ConnEnd srcPt404(Point(241.9431329624006, 20.65684486570521), 2);
+ connRef404->setSourceEndpoint(srcPt404);
+ ConnEnd dstPt404(Point(241.9431329624006, 70.65684486570521), 1);
+ connRef404->setDestEndpoint(dstPt404);
+ connRef404->setRoutingType((ConnType)2);
+
+ ConnRef *connRef405 = new ConnRef(router, 405);
+ ConnEnd srcPt405(Point(1026.728847249115, 324.561606771467), 2);
+ connRef405->setSourceEndpoint(srcPt405);
+ ConnEnd dstPt405(Point(1026.728847249115, 374.561606771467), 1);
+ connRef405->setDestEndpoint(dstPt405);
+ connRef405->setRoutingType((ConnType)2);
+
+ ConnRef *connRef406 = new ConnRef(router, 406);
+ ConnEnd srcPt406(Point(717.7288472481148, -518.3431551372947), 15);
+ connRef406->setSourceEndpoint(srcPt406);
+ ConnEnd dstPt406(Point(845.7288472481148, -468.8431551372947), 1);
+ connRef406->setDestEndpoint(dstPt406);
+ connRef406->setRoutingType((ConnType)2);
+
+ ConnRef *connRef407 = new ConnRef(router, 407);
+ ConnEnd srcPt407(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef407->setSourceEndpoint(srcPt407);
+ ConnEnd dstPt407(Point(520.7288472481148, -412.3431551372947), 4);
+ connRef407->setDestEndpoint(dstPt407);
+ connRef407->setRoutingType((ConnType)2);
+
+ ConnRef *connRef408 = new ConnRef(router, 408);
+ ConnEnd srcPt408(Point(618.7288472481148, -202.3431551362948), 15);
+ connRef408->setSourceEndpoint(srcPt408);
+ ConnEnd dstPt408(Point(538.9431329624006, -256.3431551362947), 8);
+ connRef408->setDestEndpoint(dstPt408);
+ connRef408->setRoutingType((ConnType)2);
+
+ ConnRef *connRef409 = new ConnRef(router, 409);
+ ConnEnd srcPt409(Point(437.4431329624006, -323.3431551372947), 15);
+ connRef409->setSourceEndpoint(srcPt409);
+ ConnEnd dstPt409(Point(256.9431329624006, -417.3431551372947), 8);
+ connRef409->setDestEndpoint(dstPt409);
+ connRef409->setRoutingType((ConnType)2);
+#endif
+
+ router->processTransaction();
+ router->outputDiagram("output/nudgingSkipsCheckpoint02");
+ Avoid::PolyLine route249 = connRef249->displayRoute();
+
+ delete router;
+ return (route249.size() == 6) ? 0 : 1;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/orderassertion.cpp b/src/3rdparty/adaptagrams/libavoid/tests/orderassertion.cpp
new file mode 100644
index 0000000..ad2a5c3
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/orderassertion.cpp
@@ -0,0 +1,1720 @@
+// Test case that triggers the orderSwapped after a second call
+// to the PtOrder::addPoints method.
+
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(232, 362);
+ poly73.ps[1] = Point(232, 402);
+ poly73.ps[2] = Point(192, 402);
+ poly73.ps[3] = Point(192, 362);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(125, 362);
+ poly74.ps[1] = Point(125, 402);
+ poly74.ps[2] = Point(85, 402);
+ poly74.ps[3] = Point(85, 362);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(77.5, 716);
+ poly75.ps[1] = Point(77.5, 880);
+ poly75.ps[2] = Point(20.5, 880);
+ poly75.ps[3] = Point(20.5, 716);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(187, 713);
+ poly76.ps[1] = Point(187, 733);
+ poly76.ps[2] = Point(167, 733);
+ poly76.ps[3] = Point(167, 713);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(139, 714);
+ poly77.ps[1] = Point(139, 754);
+ poly77.ps[2] = Point(99, 754);
+ poly77.ps[3] = Point(99, 714);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(422, 951);
+ poly78.ps[1] = Point(422, 971);
+ poly78.ps[2] = Point(402, 971);
+ poly78.ps[3] = Point(402, 951);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(187, 734);
+ poly79.ps[1] = Point(187, 754);
+ poly79.ps[2] = Point(167, 754);
+ poly79.ps[3] = Point(167, 734);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(470, 951);
+ poly80.ps[1] = Point(470, 971);
+ poly80.ps[2] = Point(450, 971);
+ poly80.ps[3] = Point(450, 951);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(669.5, 899.5);
+ poly81.ps[1] = Point(669.5, 934.5);
+ poly81.ps[2] = Point(532.5, 934.5);
+ poly81.ps[3] = Point(532.5, 899.5);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(491, 471);
+ poly82.ps[1] = Point(491, 491);
+ poly82.ps[2] = Point(471, 491);
+ poly82.ps[3] = Point(471, 471);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(565, 512);
+ poly83.ps[1] = Point(565, 532);
+ poly83.ps[2] = Point(545, 532);
+ poly83.ps[3] = Point(545, 512);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(538, 531);
+ poly84.ps[1] = Point(538, 551);
+ poly84.ps[2] = Point(518, 551);
+ poly84.ps[3] = Point(518, 531);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(272, 782);
+ poly85.ps[1] = Point(272, 802);
+ poly85.ps[2] = Point(252, 802);
+ poly85.ps[3] = Point(252, 782);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(515, 512);
+ poly86.ps[1] = Point(515, 532);
+ poly86.ps[2] = Point(495, 532);
+ poly86.ps[3] = Point(495, 512);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(391, 534);
+ poly87.ps[1] = Point(391, 574);
+ poly87.ps[2] = Point(351, 574);
+ poly87.ps[3] = Point(351, 534);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(420, 573);
+ poly88.ps[1] = Point(420, 593);
+ poly88.ps[2] = Point(400, 593);
+ poly88.ps[3] = Point(400, 573);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(421, 509);
+ poly89.ps[1] = Point(421, 529);
+ poly89.ps[2] = Point(401, 529);
+ poly89.ps[3] = Point(401, 509);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(476, 426);
+ poly90.ps[1] = Point(476, 466);
+ poly90.ps[2] = Point(436, 466);
+ poly90.ps[3] = Point(436, 426);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(290, 970);
+ poly91.ps[1] = Point(290, 1010);
+ poly91.ps[2] = Point(234, 1010);
+ poly91.ps[3] = Point(234, 970);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(77, 888);
+ poly92.ps[1] = Point(77, 928);
+ poly92.ps[2] = Point(21, 928);
+ poly92.ps[3] = Point(21, 888);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(360, 991);
+ poly93.ps[1] = Point(360, 1031);
+ poly93.ps[2] = Point(304, 1031);
+ poly93.ps[3] = Point(304, 991);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(449, 889);
+ poly94.ps[1] = Point(449, 929);
+ poly94.ps[2] = Point(393, 929);
+ poly94.ps[3] = Point(393, 889);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(488, 970);
+ poly95.ps[1] = Point(488, 1010);
+ poly95.ps[2] = Point(432, 1010);
+ poly95.ps[3] = Point(432, 970);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(440, 970);
+ poly96.ps[1] = Point(440, 1010);
+ poly96.ps[2] = Point(384, 1010);
+ poly96.ps[3] = Point(384, 970);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(432, 801);
+ poly97.ps[1] = Point(432, 841);
+ poly97.ps[2] = Point(376, 841);
+ poly97.ps[3] = Point(376, 801);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(502, 780);
+ poly98.ps[1] = Point(502, 820);
+ poly98.ps[2] = Point(446, 820);
+ poly98.ps[3] = Point(446, 780);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(320, 792);
+ poly99.ps[1] = Point(320, 832);
+ poly99.ps[2] = Point(264, 832);
+ poly99.ps[3] = Point(264, 792);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(211, 792);
+ poly100.ps[1] = Point(211, 832);
+ poly100.ps[2] = Point(155, 832);
+ poly100.ps[3] = Point(155, 792);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(559, 791);
+ poly101.ps[1] = Point(559, 831);
+ poly101.ps[2] = Point(503, 831);
+ poly101.ps[3] = Point(503, 791);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(554, 747);
+ poly102.ps[1] = Point(554, 787);
+ poly102.ps[2] = Point(498, 787);
+ poly102.ps[3] = Point(498, 747);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(554, 678);
+ poly103.ps[1] = Point(554, 718);
+ poly103.ps[2] = Point(498, 718);
+ poly103.ps[3] = Point(498, 678);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(555, 606);
+ poly104.ps[1] = Point(555, 646);
+ poly104.ps[2] = Point(499, 646);
+ poly104.ps[3] = Point(499, 606);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(389, 461);
+ poly105.ps[1] = Point(389, 501);
+ poly105.ps[2] = Point(333, 501);
+ poly105.ps[3] = Point(333, 461);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(404, 377);
+ poly106.ps[1] = Point(404, 417);
+ poly106.ps[2] = Point(348, 417);
+ poly106.ps[3] = Point(348, 377);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(554, 381);
+ poly107.ps[1] = Point(554, 421);
+ poly107.ps[2] = Point(498, 421);
+ poly107.ps[3] = Point(498, 381);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(554, 315);
+ poly108.ps[1] = Point(554, 355);
+ poly108.ps[2] = Point(498, 355);
+ poly108.ps[3] = Point(498, 315);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(431, 265);
+ poly109.ps[1] = Point(431, 305);
+ poly109.ps[2] = Point(375, 305);
+ poly109.ps[3] = Point(375, 265);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(553, 122);
+ poly110.ps[1] = Point(553, 162);
+ poly110.ps[2] = Point(497, 162);
+ poly110.ps[3] = Point(497, 122);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(554, 245);
+ poly111.ps[1] = Point(554, 285);
+ poly111.ps[2] = Point(498, 285);
+ poly111.ps[3] = Point(498, 245);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(414, 150);
+ poly112.ps[1] = Point(414, 190);
+ poly112.ps[2] = Point(358, 190);
+ poly112.ps[3] = Point(358, 150);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(404, 229);
+ poly113.ps[1] = Point(404, 269);
+ poly113.ps[2] = Point(348, 269);
+ poly113.ps[3] = Point(348, 229);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(319, 310);
+ poly114.ps[1] = Point(319, 350);
+ poly114.ps[2] = Point(263, 350);
+ poly114.ps[3] = Point(263, 310);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(249, 229);
+ poly115.ps[1] = Point(249, 269);
+ poly115.ps[2] = Point(193, 269);
+ poly115.ps[3] = Point(193, 229);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(358, 196);
+ poly116.ps[1] = Point(358, 236);
+ poly116.ps[2] = Point(302, 236);
+ poly116.ps[3] = Point(302, 196);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(308, 196);
+ poly117.ps[1] = Point(308, 236);
+ poly117.ps[2] = Point(252, 236);
+ poly117.ps[3] = Point(252, 196);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(112, 241);
+ poly118.ps[1] = Point(112, 281);
+ poly118.ps[2] = Point(56, 281);
+ poly118.ps[3] = Point(56, 241);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(249, 154);
+ poly119.ps[1] = Point(249, 194);
+ poly119.ps[2] = Point(193, 194);
+ poly119.ps[3] = Point(193, 154);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(249, 135);
+ poly120.ps[1] = Point(249, 175);
+ poly120.ps[2] = Point(193, 175);
+ poly120.ps[3] = Point(193, 135);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(317, 113);
+ poly121.ps[1] = Point(317, 153);
+ poly121.ps[2] = Point(261, 153);
+ poly121.ps[3] = Point(261, 113);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(344, 81);
+ poly122.ps[1] = Point(344, 121);
+ poly122.ps[2] = Point(288, 121);
+ poly122.ps[3] = Point(288, 81);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(344, 160);
+ poly123.ps[1] = Point(344, 200);
+ poly123.ps[2] = Point(288, 200);
+ poly123.ps[3] = Point(288, 160);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(263, 835);
+ poly124.ps[1] = Point(263, 875);
+ poly124.ps[2] = Point(207, 875);
+ poly124.ps[3] = Point(207, 835);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(554, 533);
+ poly125.ps[1] = Point(554, 573);
+ poly125.ps[2] = Point(498, 573);
+ poly125.ps[3] = Point(498, 533);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(249, 173);
+ poly126.ps[1] = Point(249, 213);
+ poly126.ps[2] = Point(193, 213);
+ poly126.ps[3] = Point(193, 173);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(319, 248);
+ poly127.ps[1] = Point(319, 288);
+ poly127.ps[2] = Point(263, 288);
+ poly127.ps[3] = Point(263, 248);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(182, 287);
+ poly128.ps[1] = Point(182, 327);
+ poly128.ps[2] = Point(126, 327);
+ poly128.ps[3] = Point(126, 287);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(182, 413);
+ poly129.ps[1] = Point(182, 453);
+ poly129.ps[2] = Point(126, 453);
+ poly129.ps[3] = Point(126, 413);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(292, 286);
+ poly130.ps[1] = Point(292, 326);
+ poly130.ps[2] = Point(236, 326);
+ poly130.ps[3] = Point(236, 286);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(292, 412);
+ poly131.ps[1] = Point(292, 452);
+ poly131.ps[2] = Point(236, 452);
+ poly131.ps[3] = Point(236, 412);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(205, 653);
+ poly132.ps[1] = Point(205, 693);
+ poly132.ps[2] = Point(149, 693);
+ poly132.ps[3] = Point(149, 653);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(510, 891);
+ poly133.ps[1] = Point(510, 931);
+ poly133.ps[2] = Point(454, 931);
+ poly133.ps[3] = Point(454, 891);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(275, 674);
+ poly134.ps[1] = Point(275, 714);
+ poly134.ps[2] = Point(219, 714);
+ poly134.ps[3] = Point(219, 674);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(488, 891);
+ poly135.ps[1] = Point(488, 931);
+ poly135.ps[2] = Point(432, 931);
+ poly135.ps[3] = Point(432, 891);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(579, 461);
+ poly136.ps[1] = Point(579, 501);
+ poly136.ps[2] = Point(523, 501);
+ poly136.ps[3] = Point(523, 461);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(583, 452);
+ poly137.ps[1] = Point(583, 492);
+ poly137.ps[2] = Point(527, 492);
+ poly137.ps[3] = Point(527, 452);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(556, 571);
+ poly138.ps[1] = Point(556, 611);
+ poly138.ps[2] = Point(500, 611);
+ poly138.ps[3] = Point(500, 571);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(290, 722);
+ poly139.ps[1] = Point(290, 762);
+ poly139.ps[2] = Point(234, 762);
+ poly139.ps[3] = Point(234, 722);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(603, 502);
+ poly140.ps[1] = Point(603, 542);
+ poly140.ps[2] = Point(547, 542);
+ poly140.ps[3] = Point(547, 502);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(438, 613);
+ poly141.ps[1] = Point(438, 653);
+ poly141.ps[2] = Point(382, 653);
+ poly141.ps[3] = Point(382, 613);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(439, 449);
+ poly142.ps[1] = Point(439, 489);
+ poly142.ps[2] = Point(383, 489);
+ poly142.ps[3] = Point(383, 449);
+ new ShapeRef(router, poly142, 142);
+
+ ConnRef *connRef143 = new ConnRef(router, 143);
+ ConnEnd srcPt143(Point(262, 940), 15);
+ connRef143->setSourceEndpoint(srcPt143);
+ ConnEnd dstPt143(Point(119, 951), 15);
+ connRef143->setDestEndpoint(dstPt143);
+ connRef143->setRoutingType((ConnType)2);
+
+ ConnRef *connRef144 = new ConnRef(router, 144);
+ ConnEnd srcPt144(Point(262, 940), 15);
+ connRef144->setSourceEndpoint(srcPt144);
+ ConnEnd dstPt144(Point(351, 951), 15);
+ connRef144->setDestEndpoint(dstPt144);
+ connRef144->setRoutingType((ConnType)2);
+
+ ConnRef *connRef145 = new ConnRef(router, 145);
+ ConnEnd srcPt145(Point(119, 908), 15);
+ connRef145->setSourceEndpoint(srcPt145);
+ ConnEnd dstPt145(Point(119, 951), 15);
+ connRef145->setDestEndpoint(dstPt145);
+ connRef145->setRoutingType((ConnType)2);
+
+ ConnRef *connRef146 = new ConnRef(router, 146);
+ ConnEnd srcPt146(Point(119, 908), 15);
+ connRef146->setSourceEndpoint(srcPt146);
+ ConnEnd dstPt146(Point(119, 861), 15);
+ connRef146->setDestEndpoint(dstPt146);
+ connRef146->setRoutingType((ConnType)2);
+
+ ConnRef *connRef147 = new ConnRef(router, 147);
+ ConnEnd srcPt147(Point(262, 961), 15);
+ connRef147->setSourceEndpoint(srcPt147);
+ ConnEnd dstPt147(Point(119, 951), 15);
+ connRef147->setDestEndpoint(dstPt147);
+ connRef147->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(262, 961), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(351, 951), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(629, 336), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(456, 446), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(351, 909), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(351, 951), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(460, 940), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(351, 951), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(412, 940), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(351, 951), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(404, 871), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(456, 861), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(404, 871), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(351, 861), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(404, 850), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(456, 861), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(404, 850), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(351, 861), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(292, 862), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(287, 904), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(292, 862), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(351, 861), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(292, 862), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(351, 818), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(292, 862), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(238, 861), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(183, 862), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(119, 861), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(183, 862), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(238, 861), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(183, 862), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(185, 904), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(531, 861), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(600, 861), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(531, 861), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(456, 861), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(456, 767), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(456, 734), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(456, 767), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(456, 861), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(456, 698), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(456, 662), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(456, 698), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(456, 734), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(457, 626), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(456, 662), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(457, 626), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(456, 590), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(431, 481), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(456, 518), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(431, 481), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(456, 446), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(376, 447), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(305, 446), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(376, 447), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(456, 446), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(456, 401), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(305, 446), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(456, 401), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(456, 371), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(456, 401), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(456, 446), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(456, 335), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(456, 301), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(456, 335), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(456, 371), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(403, 335), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(456, 301), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(525, 192), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(456, 228), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(456, 265), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(456, 228), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(456, 265), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(456, 301), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(456, 170), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(456, 141), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(456, 170), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(456, 228), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(376, 299), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(305, 299), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(376, 299), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(456, 301), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(221, 280), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(154, 299), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(221, 280), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(305, 299), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(221, 299), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(154, 299), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(221, 299), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(305, 299), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(330, 266), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(305, 299), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(330, 266), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(456, 228), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(280, 266), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(305, 299), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(280, 266), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(456, 228), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(154, 261), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(154, 226), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(154, 261), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(154, 299), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(221, 224), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(154, 226), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(221, 224), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(456, 228), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(221, 205), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(154, 226), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(221, 205), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(456, 228), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(289, 183), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(154, 226), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(289, 183), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(456, 228), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(316, 151), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(456, 141), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(316, 151), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(154, 226), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(316, 130), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(456, 141), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(316, 130), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(154, 226), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(235, 905), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(287, 904), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(456, 553), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(456, 590), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(456, 553), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(456, 518), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(221, 243), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(456, 228), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(221, 318), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(305, 299), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(154, 357), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(212, 356), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(154, 383), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(212, 382), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(264, 356), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(305, 299), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(264, 382), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(305, 299), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(574, 193), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(525, 192), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(456, 141), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(458, 74), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(456, 662), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(629, 336), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(154, 226), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(221, 243), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(221, 318), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(154, 299), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(456, 228), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(629, 336), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(456, 734), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(49, 798), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(177, 744), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(456, 734), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(456, 590), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(278, 597), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(555, 522), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(456, 590), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(528, 541), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(456, 590), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(505, 522), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(456, 590), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(481, 481), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(456, 518), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(411, 519), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(456, 518), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(600, 861), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(601, 917), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(460, 940), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(523, 951), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(412, 940), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(523, 951), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(523, 951), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(412, 961), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(460, 961), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(523, 951), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(456, 861), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(629, 336), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(456, 861), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(49, 798), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(262, 792), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(456, 861), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(351, 861), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(351, 909), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(351, 818), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(404, 871), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(351, 818), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(404, 850), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(119, 861), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(49, 798), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(262, 792), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(119, 861), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(412, 961), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(351, 951), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(460, 961), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(351, 951), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(235, 905), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(185, 904), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(456, 371), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(403, 335), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(105, 356), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(154, 357), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(212, 356), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(264, 356), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(212, 382), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(264, 382), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(105, 382), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(154, 383), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(49, 798), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(119, 734), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(177, 723), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(456, 734), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(119, 734), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(177, 723), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(119, 734), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(177, 744), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(481, 481), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(456, 446), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(410, 583), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(371, 554), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(410, 583), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(456, 590), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(411, 519), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(371, 554), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(456, 446), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(555, 522), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(456, 446), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(528, 541), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(456, 446), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(505, 522), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(262, 990), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(262, 940), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(49, 908), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(119, 908), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(332, 1011), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(262, 961), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(421, 909), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(351, 909), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(460, 990), 15);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(460, 940), 15);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(412, 990), 15);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(412, 940), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(404, 821), 15);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(404, 871), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(474, 800), 15);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(404, 850), 15);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(292, 812), 15);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(292, 862), 15);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(183, 812), 15);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(183, 862), 15);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(531, 811), 15);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(531, 861), 15);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(526, 767), 15);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(456, 767), 15);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(526, 698), 15);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(456, 698), 15);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(527, 626), 15);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(457, 626), 15);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(361, 481), 15);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(431, 481), 15);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(376, 397), 15);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(376, 447), 15);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(526, 401), 15);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(456, 401), 15);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(526, 335), 15);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(456, 335), 15);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(403, 285), 15);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(403, 335), 15);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(525, 142), 15);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(525, 192), 15);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(526, 265), 15);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(456, 265), 15);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(386, 170), 15);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(456, 170), 15);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(376, 249), 15);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(376, 299), 15);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(291, 330), 15);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(221, 280), 15);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(221, 249), 15);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(221, 299), 15);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(330, 216), 15);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(330, 266), 15);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(280, 216), 15);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(280, 266), 15);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(84, 261), 15);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(154, 261), 15);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(221, 174), 15);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(221, 224), 15);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(221, 155), 15);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(221, 205), 15);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(289, 133), 15);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(289, 183), 15);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(316, 101), 15);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(316, 151), 15);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(316, 180), 15);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(316, 130), 15);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(235, 855), 15);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(235, 905), 15);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(526, 553), 15);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(456, 553), 15);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(221, 193), 15);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(221, 243), 15);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(291, 268), 15);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(221, 318), 15);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(154, 307), 15);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(154, 357), 15);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(154, 433), 15);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(154, 383), 15);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(264, 306), 15);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(264, 356), 15);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(264, 432), 15);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(264, 382), 15);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(177, 673), 15);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(177, 723), 15);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(482, 911), 15);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(412, 961), 15);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(247, 694), 15);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(177, 744), 15);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(460, 911), 15);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(460, 961), 15);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(551, 481), 15);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(481, 481), 15);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(555, 472), 15);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(555, 522), 15);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(528, 591), 15);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(528, 541), 15);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(262, 742), 15);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(262, 792), 15);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(575, 522), 15);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(505, 522), 15);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(410, 633), 15);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(410, 583), 15);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(411, 469), 15);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(411, 519), 15);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/orderassertion");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/orthordering01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/orthordering01.cpp
new file mode 100644
index 0000000..30317e6
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/orthordering01.cpp
@@ -0,0 +1,92 @@
+// From bandgap_1_nooverlap_reduced_libavoid-debug.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 400);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly143407352(4);
+ poly143407352.ps[0] = Point(5810, 4340);
+ poly143407352.ps[1] = Point(5810, 5035);
+ poly143407352.ps[2] = Point(5450, 5035);
+ poly143407352.ps[3] = Point(5450, 4340);
+ new ShapeRef(router, poly143407352, 143407352);
+
+ Polygon poly124950386(4);
+ poly124950386.ps[0] = Point(4900, 4090);
+ poly124950386.ps[1] = Point(4900, 4785);
+ poly124950386.ps[2] = Point(4540, 4785);
+ poly124950386.ps[3] = Point(4540, 4090);
+ new ShapeRef(router, poly124950386, 124950386);
+
+ ConnRef *connRef373967044 = new ConnRef(router, 373967044);
+ ConnEnd srcPt373967044(Point(4890, 4250), 8);
+ connRef373967044->setSourceEndpoint(srcPt373967044);
+ ConnEnd dstPt373967044(Point(5460, 4500), 4);
+ connRef373967044->setDestEndpoint(dstPt373967044);
+ connRef373967044->setRoutingType((ConnType)2);
+
+ ConnRef *connRef681881486 = new ConnRef(router, 681881486);
+ ConnEnd srcPt681881486(Point(4890, 4325), 8);
+ connRef681881486->setSourceEndpoint(srcPt681881486);
+ ConnEnd dstPt681881486(Point(5460, 4575), 4);
+ connRef681881486->setDestEndpoint(dstPt681881486);
+ connRef681881486->setRoutingType((ConnType)2);
+
+ ConnRef *connRef829752 = new ConnRef(router, 829752);
+ ConnEnd srcPt829752(Point(4890, 4400), 8);
+ connRef829752->setSourceEndpoint(srcPt829752);
+ ConnEnd dstPt829752(Point(5460, 4650), 4);
+ connRef829752->setDestEndpoint(dstPt829752);
+ connRef829752->setRoutingType((ConnType)2);
+
+ ConnRef *connRef17625739 = new ConnRef(router, 17625739);
+ ConnEnd srcPt17625739(Point(4890, 4475), 8);
+ connRef17625739->setSourceEndpoint(srcPt17625739);
+ ConnEnd dstPt17625739(Point(5460, 4725), 4);
+ connRef17625739->setDestEndpoint(dstPt17625739);
+ connRef17625739->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223864175 = new ConnRef(router, 223864175);
+ ConnEnd srcPt223864175(Point(4890, 4550), 8);
+ connRef223864175->setSourceEndpoint(srcPt223864175);
+ ConnEnd dstPt223864175(Point(5460, 4800), 4);
+ connRef223864175->setDestEndpoint(dstPt223864175);
+ connRef223864175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef98144280 = new ConnRef(router, 98144280);
+ ConnEnd srcPt98144280(Point(4890, 4625), 8);
+ connRef98144280->setSourceEndpoint(srcPt98144280);
+ ConnEnd dstPt98144280(Point(5460, 4875), 4);
+ connRef98144280->setDestEndpoint(dstPt98144280);
+ connRef98144280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283100856 = new ConnRef(router, 283100856);
+ ConnEnd srcPt283100856(Point(4890, 4700), 8);
+ connRef283100856->setSourceEndpoint(srcPt283100856);
+ ConnEnd dstPt283100856(Point(5460, 4950), 4);
+ connRef283100856->setDestEndpoint(dstPt283100856);
+ connRef283100856->setRoutingType((ConnType)2);
+
+ ConnRef *connRef387080925 = new ConnRef(router, 387080925);
+ ConnEnd srcPt387080925(Point(5460, 4425), 4);
+ connRef387080925->setSourceEndpoint(srcPt387080925);
+ ConnEnd dstPt387080925(Point(4890, 4175), 8);
+ connRef387080925->setDestEndpoint(dstPt387080925);
+ connRef387080925->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/orthordering-01");
+
+ int crossings = router->existsCrossings();
+
+ delete router;
+ return (crossings > 0) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/orthordering02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/orthordering02.cpp
new file mode 100644
index 0000000..1fec6fa
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/orthordering02.cpp
@@ -0,0 +1,92 @@
+// From bandgap_1_overlap_reduced_libavoid-debug.svg.
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 50);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly143407352(4);
+ poly143407352.ps[0] = Point(6035, 4390);
+ poly143407352.ps[1] = Point(6035, 5085);
+ poly143407352.ps[2] = Point(5675, 5085);
+ poly143407352.ps[3] = Point(5675, 4390);
+ new ShapeRef(router, poly143407352, 143407352);
+
+ Polygon poly124950386(4);
+ poly124950386.ps[0] = Point(4900, 4090);
+ poly124950386.ps[1] = Point(4900, 4785);
+ poly124950386.ps[2] = Point(4540, 4785);
+ poly124950386.ps[3] = Point(4540, 4090);
+ new ShapeRef(router, poly124950386, 124950386);
+
+ ConnRef *connRef373967044 = new ConnRef(router, 373967044);
+ ConnEnd srcPt373967044(Point(4890, 4250), 8);
+ connRef373967044->setSourceEndpoint(srcPt373967044);
+ ConnEnd dstPt373967044(Point(5685, 4550), 4);
+ connRef373967044->setDestEndpoint(dstPt373967044);
+ connRef373967044->setRoutingType((ConnType)2);
+
+ ConnRef *connRef681881486 = new ConnRef(router, 681881486);
+ ConnEnd srcPt681881486(Point(4890, 4325), 8);
+ connRef681881486->setSourceEndpoint(srcPt681881486);
+ ConnEnd dstPt681881486(Point(5685, 4625), 4);
+ connRef681881486->setDestEndpoint(dstPt681881486);
+ connRef681881486->setRoutingType((ConnType)2);
+
+ ConnRef *connRef829752 = new ConnRef(router, 829752);
+ ConnEnd srcPt829752(Point(4890, 4400), 8);
+ connRef829752->setSourceEndpoint(srcPt829752);
+ ConnEnd dstPt829752(Point(5685, 4700), 4);
+ connRef829752->setDestEndpoint(dstPt829752);
+ connRef829752->setRoutingType((ConnType)2);
+
+ ConnRef *connRef17625739 = new ConnRef(router, 17625739);
+ ConnEnd srcPt17625739(Point(4890, 4475), 8);
+ connRef17625739->setSourceEndpoint(srcPt17625739);
+ ConnEnd dstPt17625739(Point(5685, 4775), 4);
+ connRef17625739->setDestEndpoint(dstPt17625739);
+ connRef17625739->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223864175 = new ConnRef(router, 223864175);
+ ConnEnd srcPt223864175(Point(4890, 4550), 8);
+ connRef223864175->setSourceEndpoint(srcPt223864175);
+ ConnEnd dstPt223864175(Point(5685, 4850), 4);
+ connRef223864175->setDestEndpoint(dstPt223864175);
+ connRef223864175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef98144280 = new ConnRef(router, 98144280);
+ ConnEnd srcPt98144280(Point(4890, 4625), 8);
+ connRef98144280->setSourceEndpoint(srcPt98144280);
+ ConnEnd dstPt98144280(Point(5685, 4925), 4);
+ connRef98144280->setDestEndpoint(dstPt98144280);
+ connRef98144280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283100856 = new ConnRef(router, 283100856);
+ ConnEnd srcPt283100856(Point(4890, 4700), 8);
+ connRef283100856->setSourceEndpoint(srcPt283100856);
+ ConnEnd dstPt283100856(Point(5685, 5000), 4);
+ connRef283100856->setDestEndpoint(dstPt283100856);
+ connRef283100856->setRoutingType((ConnType)2);
+
+ ConnRef *connRef387080925 = new ConnRef(router, 387080925);
+ ConnEnd srcPt387080925(Point(5685, 4475), 4);
+ connRef387080925->setSourceEndpoint(srcPt387080925);
+ ConnEnd dstPt387080925(Point(4890, 4175), 8);
+ connRef387080925->setDestEndpoint(dstPt387080925);
+ connRef387080925->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/orthordering-02");
+
+ int crossings = router->existsCrossings();
+
+ delete router;
+ return (crossings > 0) ? 1 : 0;
+};
+
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/output/README.txt b/src/3rdparty/adaptagrams/libavoid/tests/output/README.txt
new file mode 100644
index 0000000..1524fa2
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/output/README.txt
@@ -0,0 +1 @@
+This directory is used to for output debug svg files from the testcases.
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/overlappingRects.cpp b/src/3rdparty/adaptagrams/libavoid/tests/overlappingRects.cpp
new file mode 100644
index 0000000..f286285
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/overlappingRects.cpp
@@ -0,0 +1,2327 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+ router->setRoutingOption(nudgeOrthogonalSegmentsConnectedToShapes, true);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(-66.016, 38.6079);
+ poly57.ps[1] = Point(-66.016, 58.6079);
+ poly57.ps[2] = Point(-86.016, 58.6079);
+ poly57.ps[3] = Point(-86.016, 38.6079);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(886.746, 359.608);
+ poly114.ps[1] = Point(886.746, 399.608);
+ poly114.ps[2] = Point(830.746, 399.608);
+ poly114.ps[3] = Point(830.746, 359.608);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(510.984, 767.608);
+ poly126.ps[1] = Point(510.984, 807.608);
+ poly126.ps[2] = Point(454.984, 807.608);
+ poly126.ps[3] = Point(454.984, 767.608);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(149.984, 62.6079);
+ poly142.ps[1] = Point(149.984, 102.608);
+ poly142.ps[2] = Point(93.984, 102.608);
+ poly142.ps[3] = Point(93.984, 62.6079);
+ new ShapeRef(router, poly142, 142);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(539.534, 166.608);
+ poly115.ps[1] = Point(539.534, 206.608);
+ poly115.ps[2] = Point(483.534, 206.608);
+ poly115.ps[3] = Point(483.534, 166.608);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(484.984, 500.608);
+ poly107.ps[1] = Point(484.984, 540.608);
+ poly107.ps[2] = Point(444.984, 540.608);
+ poly107.ps[3] = Point(444.984, 500.608);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(388.984, 1086.01);
+ poly164.ps[1] = Point(388.984, 1126.01);
+ poly164.ps[2] = Point(328.984, 1126.01);
+ poly164.ps[3] = Point(328.984, 1086.01);
+ new ShapeRef(router, poly164, 164);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(131.984, -13.3921);
+ poly40.ps[1] = Point(131.984, 6.60786);
+ poly40.ps[2] = Point(111.984, 6.60786);
+ poly40.ps[3] = Point(111.984, -13.3921);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(785.5, 24.6079);
+ poly161.ps[1] = Point(785.5, 64.6079);
+ poly161.ps[2] = Point(725.5, 64.6079);
+ poly161.ps[3] = Point(725.5, 24.6079);
+ new ShapeRef(router, poly161, 161);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(813.984, 1031.01);
+ poly82.ps[1] = Point(813.984, 1071.01);
+ poly82.ps[2] = Point(773.984, 1071.01);
+ poly82.ps[3] = Point(773.984, 1031.01);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(530.584, -65.3921);
+ poly146.ps[1] = Point(530.584, -25.3921);
+ poly146.ps[2] = Point(474.584, -25.3921);
+ poly146.ps[3] = Point(474.584, -65.3921);
+ new ShapeRef(router, poly146, 146);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(97.984, -229.392);
+ poly151.ps[1] = Point(97.984, -189.392);
+ poly151.ps[2] = Point(41.984, -189.392);
+ poly151.ps[3] = Point(41.984, -229.392);
+ new ShapeRef(router, poly151, 151);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(691.984, 725.608);
+ poly23.ps[1] = Point(691.984, 745.608);
+ poly23.ps[2] = Point(671.984, 745.608);
+ poly23.ps[3] = Point(671.984, 725.608);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(709.984, 1063.01);
+ poly121.ps[1] = Point(709.984, 1103.01);
+ poly121.ps[2] = Point(653.984, 1103.01);
+ poly121.ps[3] = Point(653.984, 1063.01);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(460.584, 164.608);
+ poly68.ps[1] = Point(460.584, 204.608);
+ poly68.ps[2] = Point(420.584, 204.608);
+ poly68.ps[3] = Point(420.584, 164.608);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(450.584, -424.392);
+ poly53.ps[1] = Point(450.584, -404.392);
+ poly53.ps[2] = Point(430.584, -404.392);
+ poly53.ps[3] = Point(430.584, -424.392);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(808.746, 229.608);
+ poly29.ps[1] = Point(808.746, 249.608);
+ poly29.ps[2] = Point(788.746, 249.608);
+ poly29.ps[3] = Point(788.746, 229.608);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(1085.98, 883.608);
+ poly88.ps[1] = Point(1085.98, 923.608);
+ poly88.ps[2] = Point(1045.98, 923.608);
+ poly88.ps[3] = Point(1045.98, 883.608);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(390.984, 62.6079);
+ poly141.ps[1] = Point(390.984, 102.608);
+ poly141.ps[2] = Point(334.984, 102.608);
+ poly141.ps[3] = Point(334.984, 62.6079);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(1155.98, 739.608);
+ poly118.ps[1] = Point(1155.98, 779.608);
+ poly118.ps[2] = Point(1099.98, 779.608);
+ poly118.ps[3] = Point(1099.98, 739.608);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(1.98401, 363.608);
+ poly31.ps[1] = Point(1.98401, 383.608);
+ poly31.ps[2] = Point(-18.016, 383.608);
+ poly31.ps[3] = Point(-18.016, 363.608);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(408.584, 166.608);
+ poly137.ps[1] = Point(408.584, 206.608);
+ poly137.ps[2] = Point(352.584, 206.608);
+ poly137.ps[3] = Point(352.584, 166.608);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(622.984, 330.5);
+ poly159.ps[1] = Point(622.984, 390.5);
+ poly159.ps[2] = Point(582.984, 390.5);
+ poly159.ps[3] = Point(582.984, 330.5);
+ new ShapeRef(router, poly159, 159);
+
+ Polygon poly169(4);
+ poly169.ps[0] = Point(1089.98, 243.608);
+ poly169.ps[1] = Point(1089.98, 303.608);
+ poly169.ps[2] = Point(1049.98, 303.608);
+ poly169.ps[3] = Point(1049.98, 243.608);
+ new ShapeRef(router, poly169, 169);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(763.984, 1145.01);
+ poly13.ps[1] = Point(763.984, 1165.01);
+ poly13.ps[2] = Point(743.984, 1165.01);
+ poly13.ps[3] = Point(743.984, 1145.01);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(327.084, 309.608);
+ poly33.ps[1] = Point(327.084, 329.608);
+ poly33.ps[2] = Point(307.084, 329.608);
+ poly33.ps[3] = Point(307.084, 309.608);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(11.984, -23.3921);
+ poly60.ps[1] = Point(11.984, 16.6079);
+ poly60.ps[2] = Point(-28.016, 16.6079);
+ poly60.ps[3] = Point(-28.016, -23.3921);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(149.984, -73.3921);
+ poly145.ps[1] = Point(149.984, -33.3921);
+ poly145.ps[2] = Point(93.984, -33.3921);
+ poly145.ps[3] = Point(93.984, -73.3921);
+ new ShapeRef(router, poly145, 145);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(888.746, 219.608);
+ poly134.ps[1] = Point(888.746, 259.608);
+ poly134.ps[2] = Point(832.746, 259.608);
+ poly134.ps[3] = Point(832.746, 219.608);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(785.5, -27.3921);
+ poly160.ps[1] = Point(785.5, 12.6079);
+ poly160.ps[2] = Point(725.5, 12.6079);
+ poly160.ps[3] = Point(725.5, -27.3921);
+ new ShapeRef(router, poly160, 160);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(646.484, 1203.01);
+ poly117.ps[1] = Point(646.484, 1243.01);
+ poly117.ps[2] = Point(590.484, 1243.01);
+ poly117.ps[3] = Point(590.484, 1203.01);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly170(4);
+ poly170.ps[0] = Point(322.984, 536.5);
+ poly170.ps[1] = Point(322.984, 596.5);
+ poly170.ps[2] = Point(282.984, 596.5);
+ poly170.ps[3] = Point(282.984, 536.5);
+ new ShapeRef(router, poly170, 170);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(372.984, 122.608);
+ poly36.ps[1] = Point(372.984, 142.608);
+ poly36.ps[2] = Point(352.984, 142.608);
+ poly36.ps[3] = Point(352.984, 122.608);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(803.984, 869.608);
+ poly19.ps[1] = Point(803.984, 889.608);
+ poly19.ps[2] = Point(783.984, 889.608);
+ poly19.ps[3] = Point(783.984, 869.608);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(456.984, 1213.01);
+ poly116.ps[1] = Point(456.984, 1253.01);
+ poly116.ps[2] = Point(400.984, 1253.01);
+ poly116.ps[3] = Point(400.984, 1213.01);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(450.584, -271.392);
+ poly52.ps[1] = Point(450.584, -251.392);
+ poly52.ps[2] = Point(430.584, -251.392);
+ poly52.ps[3] = Point(430.584, -271.392);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(307.984, -334.392);
+ poly99.ps[1] = Point(307.984, -294.392);
+ poly99.ps[2] = Point(267.984, -294.392);
+ poly99.ps[3] = Point(267.984, -334.392);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(570.984, 450.608);
+ poly154.ps[1] = Point(570.984, 490.608);
+ poly154.ps[2] = Point(514.984, 490.608);
+ poly154.ps[3] = Point(514.984, 450.608);
+ new ShapeRef(router, poly154, 154);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(377.984, -281.392);
+ poly150.ps[1] = Point(377.984, -241.392);
+ poly150.ps[2] = Point(321.984, -241.392);
+ poly150.ps[3] = Point(321.984, -281.392);
+ new ShapeRef(router, poly150, 150);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(767.984, 450.608);
+ poly153.ps[1] = Point(767.984, 490.608);
+ poly153.ps[2] = Point(711.984, 490.608);
+ poly153.ps[3] = Point(711.984, 450.608);
+ new ShapeRef(router, poly153, 153);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(965.984, 164.608);
+ poly104.ps[1] = Point(965.984, 204.608);
+ poly104.ps[2] = Point(925.984, 204.608);
+ poly104.ps[3] = Point(925.984, 164.608);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(442.984, 663.608);
+ poly75.ps[1] = Point(442.984, 703.608);
+ poly75.ps[2] = Point(402.984, 703.608);
+ poly75.ps[3] = Point(402.984, 663.608);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(450.584, -55.3921);
+ poly51.ps[1] = Point(450.584, -35.3921);
+ poly51.ps[2] = Point(430.584, -35.3921);
+ poly51.ps[3] = Point(430.584, -55.3921);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(539.534, -229.392);
+ poly112.ps[1] = Point(539.534, -189.392);
+ poly112.ps[2] = Point(483.534, -189.392);
+ poly112.ps[3] = Point(483.534, -229.392);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(337.084, 425.608);
+ poly61.ps[1] = Point(337.084, 465.608);
+ poly61.ps[2] = Point(297.084, 465.608);
+ poly61.ps[3] = Point(297.084, 425.608);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(285.084, 425.608);
+ poly158.ps[1] = Point(285.084, 465.608);
+ poly158.ps[2] = Point(225.084, 465.608);
+ poly158.ps[3] = Point(225.084, 425.608);
+ new ShapeRef(router, poly158, 158);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(785.5, 76.6079);
+ poly162.ps[1] = Point(785.5, 116.608);
+ poly162.ps[2] = Point(725.5, 116.608);
+ poly162.ps[3] = Point(725.5, 76.6079);
+ new ShapeRef(router, poly162, 162);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(965.984, 315.608);
+ poly103.ps[1] = Point(965.984, 355.608);
+ poly103.ps[2] = Point(925.984, 355.608);
+ poly103.ps[3] = Point(925.984, 315.608);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(813.984, 817.608);
+ poly90.ps[1] = Point(813.984, 857.608);
+ poly90.ps[2] = Point(773.984, 857.608);
+ poly90.ps[3] = Point(773.984, 817.608);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(340.584, 164.608);
+ poly70.ps[1] = Point(340.584, 204.608);
+ poly70.ps[2] = Point(300.584, 204.608);
+ poly70.ps[3] = Point(300.584, 164.608);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(886.746, 307.608);
+ poly50.ps[1] = Point(886.746, 347.608);
+ poly50.ps[2] = Point(830.746, 347.608);
+ poly50.ps[3] = Point(830.746, 307.608);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(1115.98, 1187.01);
+ poly49.ps[1] = Point(1115.98, 1247.01);
+ poly49.ps[2] = Point(825.984, 1247.01);
+ poly49.ps[3] = Point(825.984, 1187.01);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(131.984, 122.608);
+ poly37.ps[1] = Point(131.984, 142.608);
+ poly37.ps[2] = Point(111.984, 142.608);
+ poly37.ps[3] = Point(111.984, 122.608);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(843.984, 1135.01);
+ poly120.ps[1] = Point(843.984, 1175.01);
+ poly120.ps[2] = Point(787.984, 1175.01);
+ poly120.ps[3] = Point(787.984, 1135.01);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(372.984, 673.608);
+ poly28.ps[1] = Point(372.984, 693.608);
+ poly28.ps[2] = Point(352.984, 693.608);
+ poly28.ps[3] = Point(352.984, 673.608);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(81.984, 353.608);
+ poly136.ps[1] = Point(81.984, 393.608);
+ poly136.ps[2] = Point(25.984, 393.608);
+ poly136.ps[3] = Point(25.984, 353.608);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(933.984, 939.008);
+ poly12.ps[1] = Point(933.984, 959.008);
+ poly12.ps[2] = Point(913.984, 959.008);
+ poly12.ps[3] = Point(913.984, 939.008);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(390.984, 715.608);
+ poly131.ps[1] = Point(390.984, 755.608);
+ poly131.ps[2] = Point(334.984, 755.608);
+ poly131.ps[3] = Point(334.984, 715.608);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(302.984, 1031.01);
+ poly78.ps[1] = Point(302.984, 1071.01);
+ poly78.ps[2] = Point(262.984, 1071.01);
+ poly78.ps[3] = Point(262.984, 1031.01);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(944.984, 516.108);
+ poly3.ps[1] = Point(944.984, 536.108);
+ poly3.ps[2] = Point(924.984, 536.108);
+ poly3.ps[3] = Point(924.984, 516.108);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(691.984, 939.008);
+ poly17.ps[1] = Point(691.984, 959.008);
+ poly17.ps[2] = Point(671.984, 959.008);
+ poly17.ps[3] = Point(671.984, 939.008);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(11.984, 229.608);
+ poly66.ps[1] = Point(11.984, 269.608);
+ poly66.ps[2] = Point(-28.016, 269.608);
+ poly66.ps[3] = Point(-28.016, 229.608);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(691.984, 1031.01);
+ poly15.ps[1] = Point(691.984, 1051.01);
+ poly15.ps[2] = Point(671.984, 1051.01);
+ poly15.ps[3] = Point(671.984, 1031.01);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(868.746, 419.608);
+ poly4.ps[1] = Point(868.746, 439.608);
+ poly4.ps[2] = Point(848.746, 439.608);
+ poly4.ps[3] = Point(848.746, 419.608);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(803.984, 725.608);
+ poly22.ps[1] = Point(803.984, 745.608);
+ poly22.ps[2] = Point(783.984, 745.608);
+ poly22.ps[3] = Point(783.984, 725.608);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(951.984, 879.008);
+ poly119.ps[1] = Point(951.984, 919.008);
+ poly119.ps[2] = Point(895.984, 919.008);
+ poly119.ps[3] = Point(895.984, 879.008);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(512.984, 715.608);
+ poly130.ps[1] = Point(512.984, 755.608);
+ poly130.ps[2] = Point(456.984, 755.608);
+ poly130.ps[3] = Point(456.984, 715.608);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(407.084, 299.608);
+ poly138.ps[1] = Point(407.084, 339.608);
+ poly138.ps[2] = Point(351.084, 339.608);
+ poly138.ps[3] = Point(351.084, 299.608);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(460.584, -334.392);
+ poly97.ps[1] = Point(460.584, -294.392);
+ poly97.ps[2] = Point(420.584, -294.392);
+ poly97.ps[3] = Point(420.584, -334.392);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(190.984, 624.465);
+ poly156.ps[1] = Point(190.984, 664.465);
+ poly156.ps[2] = Point(134.984, 664.465);
+ poly156.ps[3] = Point(134.984, 624.465);
+ new ShapeRef(router, poly156, 156);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(1075.98, 749.608);
+ poly11.ps[1] = Point(1075.98, 769.608);
+ poly11.ps[2] = Point(1055.98, 769.608);
+ poly11.ps[3] = Point(1055.98, 749.608);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(13.984, 28.6079);
+ poly152.ps[1] = Point(13.984, 68.6079);
+ poly152.ps[2] = Point(-42.016, 68.6079);
+ poly152.ps[3] = Point(-42.016, 28.6079);
+ new ShapeRef(router, poly152, 152);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(122.984, 817.608);
+ poly81.ps[1] = Point(122.984, 857.608);
+ poly81.ps[2] = Point(82.984, 857.608);
+ poly81.ps[3] = Point(82.984, 817.608);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(372.984, -313.392);
+ poly109.ps[1] = Point(372.984, -293.392);
+ poly109.ps[2] = Point(352.984, -293.392);
+ poly109.ps[3] = Point(352.984, -313.392);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(-81.016, -179.392);
+ poly101.ps[1] = Point(-81.016, -139.392);
+ poly101.ps[2] = Point(-121.016, -139.392);
+ poly101.ps[3] = Point(-121.016, -179.392);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(307.984, 112.608);
+ poly64.ps[1] = Point(307.984, 152.608);
+ poly64.ps[2] = Point(267.984, 152.608);
+ poly64.ps[3] = Point(267.984, 112.608);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(813.984, 929.008);
+ poly92.ps[1] = Point(813.984, 969.008);
+ poly92.ps[2] = Point(773.984, 969.008);
+ poly92.ps[3] = Point(773.984, 929.008);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(542.984, 680.465);
+ poly27.ps[1] = Point(542.984, 700.465);
+ poly27.ps[2] = Point(522.984, 700.465);
+ poly27.ps[3] = Point(522.984, 680.465);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(438.984, 1273.01);
+ poly9.ps[1] = Point(438.984, 1293.01);
+ poly9.ps[2] = Point(418.984, 1293.01);
+ poly9.ps[3] = Point(418.984, 1273.01);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly171(4);
+ poly171.ps[0] = Point(885.984, 1187.01);
+ poly171.ps[1] = Point(885.984, 1227.01);
+ poly171.ps[2] = Point(825.984, 1227.01);
+ poly171.ps[3] = Point(825.984, 1187.01);
+ new ShapeRef(router, poly171, 171);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(852, 549);
+ poly26.ps[1] = Point(852, 589);
+ poly26.ps[2] = Point(796, 589);
+ poly26.ps[3] = Point(796, 549);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(818.746, 315.608);
+ poly95.ps[1] = Point(818.746, 355.608);
+ poly95.ps[2] = Point(778.746, 355.608);
+ poly95.ps[3] = Point(778.746, 315.608);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(813.984, 663.608);
+ poly72.ps[1] = Point(813.984, 703.608);
+ poly72.ps[2] = Point(773.984, 703.608);
+ poly72.ps[3] = Point(773.984, 663.608);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(561.984, 981.008);
+ poly16.ps[1] = Point(561.984, 1001.01);
+ poly16.ps[2] = Point(541.984, 1001.01);
+ poly16.ps[3] = Point(541.984, 981.008);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(521.534, 122.608);
+ poly35.ps[1] = Point(521.534, 142.608);
+ poly35.ps[2] = Point(501.534, 142.608);
+ poly35.ps[3] = Point(501.534, 122.608);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(1.98401, 197.608);
+ poly34.ps[1] = Point(1.98401, 217.608);
+ poly34.ps[2] = Point(-18.016, 217.608);
+ poly34.ps[3] = Point(-18.016, 197.608);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(571.984, 1031.01);
+ poly86.ps[1] = Point(571.984, 1071.01);
+ poly86.ps[2] = Point(531.984, 1071.01);
+ poly86.ps[3] = Point(531.984, 1031.01);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(539.534, 62.6079);
+ poly140.ps[1] = Point(539.534, 102.608);
+ poly140.ps[2] = Point(483.534, 102.608);
+ poly140.ps[3] = Point(483.534, 62.6079);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(591.534, 164.608);
+ poly69.ps[1] = Point(591.534, 204.608);
+ poly69.ps[2] = Point(551.534, 204.608);
+ poly69.ps[3] = Point(551.534, 164.608);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(322.984, 477.608);
+ poly48.ps[1] = Point(322.984, 651.608);
+ poly48.ps[2] = Point(202.984, 651.608);
+ poly48.ps[3] = Point(202.984, 477.608);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(307.984, -179.392);
+ poly100.ps[1] = Point(307.984, -139.392);
+ poly100.ps[2] = Point(267.984, -139.392);
+ poly100.ps[3] = Point(267.984, -179.392);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(372.984, -405.392);
+ poly54.ps[1] = Point(372.984, -385.392);
+ poly54.ps[2] = Point(352.984, -385.392);
+ poly54.ps[3] = Point(352.984, -405.392);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(1024.98, 506.108);
+ poly113.ps[1] = Point(1024.98, 546.108);
+ poly113.ps[2] = Point(968.984, 546.108);
+ poly113.ps[3] = Point(968.984, 506.108);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(390.984, -373.392);
+ poly155.ps[1] = Point(390.984, -333.392);
+ poly155.ps[2] = Point(334.984, -333.392);
+ poly155.ps[3] = Point(334.984, -373.392);
+ new ShapeRef(router, poly155, 155);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(376.184, 939.758);
+ poly87.ps[1] = Point(376.184, 979.758);
+ poly87.ps[2] = Point(336.184, 979.758);
+ poly87.ps[3] = Point(336.184, 939.758);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(460.584, 112.608);
+ poly63.ps[1] = Point(460.584, 152.608);
+ poly63.ps[2] = Point(420.584, 152.608);
+ poly63.ps[3] = Point(420.584, 112.608);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(771.984, 715.608);
+ poly129.ps[1] = Point(771.984, 755.608);
+ poly129.ps[2] = Point(715.984, 755.608);
+ poly129.ps[3] = Point(715.984, 715.608);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(320.984, 663.608);
+ poly76.ps[1] = Point(320.984, 703.608);
+ poly76.ps[2] = Point(280.984, 703.608);
+ poly76.ps[3] = Point(280.984, 663.608);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(1085.98, 663.608);
+ poly93.ps[1] = Point(1085.98, 703.608);
+ poly93.ps[2] = Point(1045.98, 703.608);
+ poly93.ps[3] = Point(1045.98, 663.608);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(213, 425.608);
+ poly157.ps[1] = Point(213, 465.608);
+ poly157.ps[2] = Point(153, 465.608);
+ poly157.ps[3] = Point(153, 425.608);
+ new ShapeRef(router, poly157, 157);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(530.584, -281.392);
+ poly147.ps[1] = Point(530.584, -241.392);
+ poly147.ps[2] = Point(474.584, -241.392);
+ poly147.ps[3] = Point(474.584, -281.392);
+ new ShapeRef(router, poly147, 147);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(122.984, 933.758);
+ poly80.ps[1] = Point(122.984, 973.758);
+ poly80.ps[2] = Point(82.984, 973.758);
+ poly80.ps[3] = Point(82.984, 933.758);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(326.584, 1263.01);
+ poly7.ps[1] = Point(326.584, 1303.01);
+ poly7.ps[2] = Point(286.584, 1303.01);
+ poly7.ps[3] = Point(286.584, 1263.01);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(460.584, 216.608);
+ poly5.ps[1] = Point(460.584, 256.608);
+ poly5.ps[2] = Point(420.584, 256.608);
+ poly5.ps[3] = Point(420.584, 216.608);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(530.584, -434.392);
+ poly148.ps[1] = Point(530.584, -394.392);
+ poly148.ps[2] = Point(474.584, -394.392);
+ poly148.ps[3] = Point(474.584, -434.392);
+ new ShapeRef(router, poly148, 148);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(316.984, 1158.01);
+ poly166.ps[1] = Point(316.984, 1218.01);
+ poly166.ps[2] = Point(276.984, 1218.01);
+ poly166.ps[3] = Point(276.984, 1158.01);
+ new ShapeRef(router, poly166, 166);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(81.984, 187.608);
+ poly139.ps[1] = Point(81.984, 227.608);
+ poly139.ps[2] = Point(25.984, 227.608);
+ poly139.ps[3] = Point(25.984, 187.608);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(701.984, 827.008);
+ poly91.ps[1] = Point(701.984, 867.008);
+ poly91.ps[2] = Point(661.984, 867.008);
+ poly91.ps[3] = Point(661.984, 827.008);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(709.984, 971.008);
+ poly122.ps[1] = Point(709.984, 1011.01);
+ poly122.ps[2] = Point(653.984, 1011.01);
+ poly122.ps[3] = Point(653.984, 971.008);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(521.534, 226.608);
+ poly6.ps[1] = Point(521.534, 246.608);
+ poly6.ps[2] = Point(501.534, 246.608);
+ poly6.ps[3] = Point(501.534, 226.608);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(517, 916.608);
+ poly18.ps[1] = Point(517, 956.608);
+ poly18.ps[2] = Point(461, 956.608);
+ poly18.ps[3] = Point(461, 916.608);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(372.984, -13.3921);
+ poly39.ps[1] = Point(372.984, 6.60786);
+ poly39.ps[2] = Point(352.984, 6.60786);
+ poly39.ps[3] = Point(352.984, -13.3921);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(310.984, 725.608);
+ poly25.ps[1] = Point(310.984, 745.608);
+ poly25.ps[2] = Point(290.984, 745.608);
+ poly25.ps[3] = Point(290.984, 725.608);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(79.984, -169.392);
+ poly56.ps[1] = Point(79.984, -149.392);
+ poly56.ps[2] = Point(59.984, -149.392);
+ poly56.ps[3] = Point(59.984, -169.392);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(432.984, 874.608);
+ poly21.ps[1] = Point(432.984, 894.608);
+ poly21.ps[2] = Point(412.984, 894.608);
+ poly21.ps[3] = Point(412.984, 874.608);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(1291.98, 128.608);
+ poly47.ps[1] = Point(1291.98, 303.608);
+ poly47.ps[2] = Point(977.984, 303.608);
+ poly47.ps[3] = Point(977.984, 128.608);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(460.584, -23.3921);
+ poly62.ps[1] = Point(460.584, 16.6079);
+ poly62.ps[2] = Point(420.584, 16.6079);
+ poly62.ps[3] = Point(420.584, -23.3921);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(11.984, 425.608);
+ poly74.ps[1] = Point(11.984, 465.608);
+ poly74.ps[2] = Point(-28.016, 465.608);
+ poly74.ps[3] = Point(-28.016, 425.608);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(979.984, 663.608);
+ poly89.ps[1] = Point(979.984, 703.608);
+ poly89.ps[2] = Point(939.984, 703.608);
+ poly89.ps[3] = Point(939.984, 663.608);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(81.984, 70.6079);
+ poly143.ps[1] = Point(81.984, 110.608);
+ poly143.ps[2] = Point(25.984, 110.608);
+ poly143.ps[3] = Point(25.984, 70.6079);
+ new ShapeRef(router, poly143, 143);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(407.084, 383.608);
+ poly135.ps[1] = Point(407.084, 423.608);
+ poly135.ps[2] = Point(351.084, 423.608);
+ poly135.ps[3] = Point(351.084, 383.608);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(285.084, 281.608);
+ poly46.ps[1] = Point(285.084, 341.608);
+ poly46.ps[2] = Point(49.084, 341.608);
+ poly46.ps[3] = Point(49.084, 281.608);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(390.984, -73.3921);
+ poly144.ps[1] = Point(390.984, -33.3921);
+ poly144.ps[2] = Point(334.984, -33.3921);
+ poly144.ps[3] = Point(334.984, -73.3921);
+ new ShapeRef(router, poly144, 144);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(883.984, 715.608);
+ poly128.ps[1] = Point(883.984, 755.608);
+ poly128.ps[2] = Point(827.984, 755.608);
+ poly128.ps[3] = Point(827.984, 715.608);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(172.984, 684.465);
+ poly111.ps[1] = Point(172.984, 704.465);
+ poly111.ps[2] = Point(152.984, 704.465);
+ poly111.ps[3] = Point(152.984, 684.465);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(388.984, 1086.01);
+ poly45.ps[1] = Point(388.984, 1251.01);
+ poly45.ps[2] = Point(73.984, 1251.01);
+ poly45.ps[3] = Point(73.984, 1086.01);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly172(4);
+ poly172.ps[0] = Point(532.584, -117.392);
+ poly172.ps[1] = Point(532.584, -77.3921);
+ poly172.ps[2] = Point(472.584, -77.3921);
+ poly172.ps[3] = Point(472.584, -117.392);
+ new ShapeRef(router, poly172, 172);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(813.984, 1187.01);
+ poly83.ps[1] = Point(813.984, 1227.01);
+ poly83.ps[2] = Point(773.984, 1227.01);
+ poly83.ps[3] = Point(773.984, 1187.01);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(749.984, 510.608);
+ poly58.ps[1] = Point(749.984, 530.608);
+ poly58.ps[2] = Point(729.984, 530.608);
+ poly58.ps[3] = Point(729.984, 510.608);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(502.984, 448.608);
+ poly106.ps[1] = Point(502.984, 488.608);
+ poly106.ps[2] = Point(462.984, 488.608);
+ poly106.ps[3] = Point(462.984, 448.608);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(285.084, 405.608);
+ poly41.ps[1] = Point(285.084, 465.608);
+ poly41.ps[2] = Point(52.084, 465.608);
+ poly41.ps[3] = Point(52.084, 405.608);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(560.984, 620.465);
+ poly132.ps[1] = Point(560.984, 660.465);
+ poly132.ps[2] = Point(504.984, 660.465);
+ poly132.ps[3] = Point(504.984, 620.465);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(512.984, 864.608);
+ poly127.ps[1] = Point(512.984, 904.608);
+ poly127.ps[2] = Point(456.984, 904.608);
+ poly127.ps[3] = Point(456.984, 864.608);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(709.984, 879.008);
+ poly124.ps[1] = Point(709.984, 919.008);
+ poly124.ps[2] = Point(653.984, 919.008);
+ poly124.ps[3] = Point(653.984, 879.008);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(1037.98, 263.5);
+ poly168.ps[1] = Point(1037.98, 303.5);
+ poly168.ps[2] = Point(977.984, 303.5);
+ poly168.ps[3] = Point(977.984, 263.5);
+ new ShapeRef(router, poly168, 168);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(442.984, 817.608);
+ poly85.ps[1] = Point(442.984, 857.608);
+ poly85.ps[2] = Point(402.984, 857.608);
+ poly85.ps[3] = Point(402.984, 817.608);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(390.984, -465.392);
+ poly149.ps[1] = Point(390.984, -425.392);
+ poly149.ps[2] = Point(334.984, -425.392);
+ poly149.ps[3] = Point(334.984, -465.392);
+ new ShapeRef(router, poly149, 149);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(122.984, 1034.01);
+ poly79.ps[1] = Point(122.984, 1074.01);
+ poly79.ps[2] = Point(82.984, 1074.01);
+ poly79.ps[3] = Point(82.984, 1034.01);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(390.984, 613.608);
+ poly133.ps[1] = Point(390.984, 653.608);
+ poly133.ps[2] = Point(334.984, 653.608);
+ poly133.ps[3] = Point(334.984, 613.608);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(691.984, 1123.01);
+ poly14.ps[1] = Point(691.984, 1143.01);
+ poly14.ps[2] = Point(671.984, 1143.01);
+ poly14.ps[3] = Point(671.984, 1123.01);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(327.084, 393.608);
+ poly30.ps[1] = Point(327.084, 413.608);
+ poly30.ps[2] = Point(307.084, 413.608);
+ poly30.ps[3] = Point(307.084, 393.608);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(492.984, 827.608);
+ poly20.ps[1] = Point(492.984, 847.608);
+ poly20.ps[2] = Point(472.984, 847.608);
+ poly20.ps[3] = Point(472.984, 827.608);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(1.98401, 80.6079);
+ poly38.ps[1] = Point(1.98401, 100.608);
+ poly38.ps[2] = Point(-18.016, 100.608);
+ poly38.ps[3] = Point(-18.016, 80.6079);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(408.584, -512.392);
+ poly44.ps[1] = Point(408.584, -477.392);
+ poly44.ps[2] = Point(20.584, -477.392);
+ poly44.ps[3] = Point(20.584, -512.392);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(585.984, 817.608);
+ poly94.ps[1] = Point(585.984, 857.608);
+ poly94.ps[2] = Point(545.984, 857.608);
+ poly94.ps[3] = Point(545.984, 817.608);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(390.584, 226.608);
+ poly32.ps[1] = Point(390.584, 246.608);
+ poly32.ps[2] = Point(370.584, 246.608);
+ poly32.ps[3] = Point(370.584, 226.608);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(576.484, 1263.01);
+ poly8.ps[1] = Point(576.484, 1303.01);
+ poly8.ps[2] = Point(536.484, 1303.01);
+ poly8.ps[3] = Point(536.484, 1263.01);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(552.984, 510.608);
+ poly59.ps[1] = Point(552.984, 530.608);
+ poly59.ps[2] = Point(532.984, 530.608);
+ poly59.ps[3] = Point(532.984, 510.608);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(1047.98, 315.608);
+ poly102.ps[1] = Point(1047.98, 355.608);
+ poly102.ps[2] = Point(1007.98, 355.608);
+ poly102.ps[3] = Point(1007.98, 315.608);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(818.746, 164.608);
+ poly67.ps[1] = Point(818.746, 204.608);
+ poly67.ps[2] = Point(778.746, 204.608);
+ poly67.ps[3] = Point(778.746, 164.608);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(429.484, 1031.01);
+ poly77.ps[1] = Point(429.484, 1071.01);
+ poly77.ps[2] = Point(389.484, 1071.01);
+ poly77.ps[3] = Point(389.484, 1031.01);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(886.5, 56.6079);
+ poly163.ps[1] = Point(886.5, 116.608);
+ poly163.ps[2] = Point(846.5, 116.608);
+ poly163.ps[3] = Point(846.5, 56.6079);
+ new ShapeRef(router, poly163, 163);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(954.984, 442.608);
+ poly2.ps[1] = Point(954.984, 482.608);
+ poly2.ps[2] = Point(914.984, 482.608);
+ poly2.ps[3] = Point(914.984, 442.608);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(122.984, 663.608);
+ poly73.ps[1] = Point(122.984, 703.608);
+ poly73.ps[2] = Point(82.984, 703.608);
+ poly73.ps[3] = Point(82.984, 663.608);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(307.984, -23.3921);
+ poly65.ps[1] = Point(307.984, 16.6079);
+ poly65.ps[2] = Point(267.984, 16.6079);
+ poly65.ps[3] = Point(267.984, -23.3921);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(337.084, 341.608);
+ poly71.ps[1] = Point(337.084, 381.608);
+ poly71.ps[2] = Point(297.084, 381.608);
+ poly71.ps[3] = Point(297.084, 341.608);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(786.584, -137.392);
+ poly110.ps[1] = Point(786.584, -77.3921);
+ poly110.ps[2] = Point(472.584, -77.3921);
+ poly110.ps[3] = Point(472.584, -137.392);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(571.984, 929.008);
+ poly84.ps[1] = Point(571.984, 969.008);
+ poly84.ps[2] = Point(531.984, 969.008);
+ poly84.ps[3] = Point(531.984, 929.008);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(883.984, 859.608);
+ poly125.ps[1] = Point(883.984, 899.608);
+ poly125.ps[2] = Point(827.984, 899.608);
+ poly125.ps[3] = Point(827.984, 859.608);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(460.584, -476.392);
+ poly96.ps[1] = Point(460.584, -436.392);
+ poly96.ps[2] = Point(420.584, -436.392);
+ poly96.ps[3] = Point(420.584, -476.392);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(285.084, 301.608);
+ poly167.ps[1] = Point(285.084, 341.608);
+ poly167.ps[2] = Point(225.084, 341.608);
+ poly167.ps[3] = Point(225.084, 301.608);
+ new ShapeRef(router, poly167, 167);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1007, -57.3921);
+ poly43.ps[1] = Point(1007, 116.608);
+ poly43.ps[2] = Point(725, 116.608);
+ poly43.ps[3] = Point(725, -57.3921);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(297.984, -271.392);
+ poly55.ps[1] = Point(297.984, -251.392);
+ poly55.ps[2] = Point(277.984, -251.392);
+ poly55.ps[3] = Point(277.984, -271.392);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(460.584, -179.392);
+ poly98.ps[1] = Point(460.584, -139.392);
+ poly98.ps[2] = Point(420.584, -139.392);
+ poly98.ps[3] = Point(420.584, -179.392);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(699.984, 314.608);
+ poly42.ps[1] = Point(699.984, 488.608);
+ poly42.ps[2] = Point(582.984, 488.608);
+ poly42.ps[3] = Point(582.984, 314.608);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(622.984, 500.608);
+ poly105.ps[1] = Point(622.984, 540.608);
+ poly105.ps[2] = Point(582.984, 540.608);
+ poly105.ps[3] = Point(582.984, 500.608);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(521.534, -169.392);
+ poly1.ps[1] = Point(521.534, -149.392);
+ poly1.ps[2] = Point(501.534, -149.392);
+ poly1.ps[3] = Point(501.534, -169.392);
+ new ShapeRef(router, poly1, 1);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(316.984, 1086.01);
+ poly165.ps[1] = Point(316.984, 1146.01);
+ poly165.ps[2] = Point(276.984, 1146.01);
+ poly165.ps[3] = Point(276.984, 1086.01);
+ new ShapeRef(router, poly165, 165);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(566.484, 1213.01);
+ poly10.ps[1] = Point(566.484, 1233.01);
+ poly10.ps[2] = Point(546.484, 1233.01);
+ poly10.ps[3] = Point(546.484, 1213.01);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(432.984, 725.608);
+ poly24.ps[1] = Point(432.984, 745.608);
+ poly24.ps[2] = Point(412.984, 745.608);
+ poly24.ps[3] = Point(412.984, 725.608);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(11.984, 112.608);
+ poly108.ps[1] = Point(11.984, 152.608);
+ poly108.ps[2] = Point(-28.016, 152.608);
+ poly108.ps[3] = Point(-28.016, 112.608);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(641.984, 971.008);
+ poly123.ps[1] = Point(641.984, 1011.01);
+ poly123.ps[2] = Point(585.984, 1011.01);
+ poly123.ps[3] = Point(585.984, 971.008);
+ new ShapeRef(router, poly123, 123);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(743.984, 735.608), 15);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(681.984, 735.608), 15);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(484.984, 735.608), 15);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(422.984, 735.608), 15);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef327 = new ConnRef(router, 327);
+ ConnEnd srcPt327(Point(1065.98, 683.608), 15);
+ connRef327->setSourceEndpoint(srcPt327);
+ ConnEnd dstPt327(Point(1069.98, 298.608), 2);
+ connRef327->setDestEndpoint(dstPt327);
+ connRef327->setRoutingType((ConnType)2);
+
+ ConnRef *connRef330 = new ConnRef(router, 330);
+ ConnEnd srcPt330(Point(440.584, -3.39214), 15);
+ connRef330->setSourceEndpoint(srcPt330);
+ ConnEnd dstPt330(Point(477.584, -97.3921), 4);
+ connRef330->setDestEndpoint(dstPt330);
+ connRef330->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(934.984, 536.108), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(793.984, 837.608), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(440.584, 236.608), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(501.534, 236.608), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(440.584, -159.392), 15);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(440.584, -55.3921), 15);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(162.984, 644.465), 15);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(162.984, 694.465), 15);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(422.984, 894.608), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(551.984, 949.008), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(422.984, 874.608), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(422.984, 837.608), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(532.984, 640.465), 15);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(532.984, 690.465), 15);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(362.984, 633.608), 15);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(362.984, 683.608), 15);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(913.984, 949.008), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(793.984, 949.008), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(753.984, 1145.01), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(793.984, 1051.01), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(501.534, 132.608), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(440.584, 132.608), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(521.534, 132.608), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(571.534, 184.608), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(860.746, 239.608), 15);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(798.746, 239.608), 15);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(934.984, 462.608), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(934.984, 516.108), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(868.746, 429.608), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(934.984, 462.608), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(753.984, 1165.01), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(793.984, 1207.01), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(671.984, 1133.01), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(551.984, 1051.01), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(492.984, 837.608), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(565.984, 837.608), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(798.746, 335.608), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(858.746, 327.608), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(-8.01599, 445.608), 15);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(158, 445.608), 4);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ ConnRef *connRef321 = new ConnRef(router, 321);
+ ConnEnd srcPt321(Point(1065.98, 683.608), 15);
+ connRef321->setSourceEndpoint(srcPt321);
+ ConnEnd dstPt321(Point(866.5, 111.608), 2);
+ connRef321->setDestEndpoint(dstPt321);
+ connRef321->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(438.984, 1283.01), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(556.484, 1283.01), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(556.484, 1233.01), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(556.484, 1283.01), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(379.084, 319.608), 15);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(317.084, 319.608), 15);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(53.984, 207.608), 15);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(-8.01599, 207.608), 15);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef328 = new ConnRef(router, 328);
+ ConnEnd srcPt328(Point(300.984, 683.608), 15);
+ connRef328->setSourceEndpoint(srcPt328);
+ ConnEnd dstPt328(Point(302.984, 591.5), 2);
+ connRef328->setDestEndpoint(dstPt328);
+ connRef328->setRoutingType((ConnType)2);
+
+ ConnRef *connRef329 = new ConnRef(router, 329);
+ ConnEnd srcPt329(Point(793.984, 1207.01), 15);
+ connRef329->setSourceEndpoint(srcPt329);
+ ConnEnd dstPt329(Point(830.984, 1207.01), 4);
+ connRef329->setDestEndpoint(dstPt329);
+ connRef329->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(551.984, 1001.01), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(551.984, 1051.01), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(671.984, 949.008), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(551.984, 949.008), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(-8.01599, 363.608), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(-8.01599, 249.608), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(482.984, 787.608), 15);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(482.984, 837.608), 15);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(484.984, 884.608), 15);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(422.984, 884.608), 15);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(613.984, 991.008), 15);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(551.984, 991.008), 15);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(681.984, 899.008), 15);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(681.984, 949.008), 15);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(440.584, -314.392), 15);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(440.584, -271.392), 15);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(287.984, -314.392), 15);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(287.984, -271.392), 15);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(691.984, 1041.01), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(793.984, 1051.01), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(317.084, 445.608), 15);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(317.084, 413.608), 15);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(681.984, 745.608), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(681.984, 847.008), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(532.984, 520.608), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(482.984, 468.608), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef316 = new ConnRef(router, 316);
+ ConnEnd srcPt316(Point(317.084, 445.608), 15);
+ connRef316->setSourceEndpoint(srcPt316);
+ ConnEnd dstPt316(Point(280.084, 445.608), 8);
+ connRef316->setDestEndpoint(dstPt316);
+ connRef316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef317 = new ConnRef(router, 317);
+ ConnEnd srcPt317(Point(571.534, 184.608), 15);
+ connRef317->setSourceEndpoint(srcPt317);
+ ConnEnd dstPt317(Point(602.984, 335.5), 1);
+ connRef317->setDestEndpoint(dstPt317);
+ connRef317->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(287.984, -251.392), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(287.984, -159.392), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(59.984, -159.392), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(-101.016, -159.392), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322 = new ConnRef(router, 322);
+ ConnEnd srcPt322(Point(551.984, 1051.01), 15);
+ connRef322->setSourceEndpoint(srcPt322);
+ ConnEnd dstPt322(Point(383.984, 1106.01), 8);
+ connRef322->setDestEndpoint(dstPt322);
+ connRef322->setRoutingType((ConnType)2);
+
+ ConnRef *connRef323 = new ConnRef(router, 323);
+ ConnEnd srcPt323(Point(-8.01599, 132.608), 15);
+ connRef323->setSourceEndpoint(srcPt323);
+ ConnEnd dstPt323(Point(296.984, 1091.01), 1);
+ connRef323->setDestEndpoint(dstPt323);
+ connRef323->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(798.746, 249.608), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(798.746, 335.608), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(317.084, 393.608), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(317.084, 361.608), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(749.984, 520.608), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(793.984, 683.608), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(372.984, 683.608), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(422.984, 683.608), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(681.984, 991.008), 15);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(681.984, 1041.01), 15);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(522.984, 690.465), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(422.984, 683.608), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(352.984, 683.608), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(300.984, 683.608), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(300.984, 683.608), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(172.984, 694.465), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(390.584, 236.608), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(440.584, 236.608), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(521.534, 236.608), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(571.534, 184.608), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(691.984, 949.008), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(793.984, 949.008), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(502.584, -45.3921), 15);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(440.584, -45.3921), 15);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(440.584, -35.3921), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(440.584, -3.39214), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(409.484, 1051.01), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(551.984, 1051.01), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(691.984, 1133.01), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(793.984, 1051.01), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(923.984, 899.008), 15);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(923.984, 949.008), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(532.984, 520.608), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(464.984, 520.608), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(131.984, 132.608), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(287.984, 132.608), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(793.984, 745.608), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(793.984, 837.608), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(681.984, 725.608), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(793.984, 683.608), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef324 = new ConnRef(router, 324);
+ ConnEnd srcPt324(Point(306.584, 1283.01), 15);
+ connRef324->setSourceEndpoint(srcPt324);
+ ConnEnd dstPt324(Point(296.984, 1213.01), 2);
+ connRef324->setDestEndpoint(dstPt324);
+ connRef324->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(418.984, 1283.01), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(306.584, 1283.01), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(556.484, 1213.01), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(551.984, 1051.01), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(671.984, 1041.01), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(551.984, 1051.01), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(551.984, 981.008), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(551.984, 949.008), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(379.084, 403.608), 15);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(317.084, 403.608), 15);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(53.984, 373.608), 15);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(-8.01599, 373.608), 15);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(362.984, 82.6079), 15);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(362.984, 132.608), 15);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(121.984, 82.6079), 15);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(121.984, 132.608), 15);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef325 = new ConnRef(router, 325);
+ ConnEnd srcPt325(Point(317.084, 361.608), 15);
+ connRef325->setSourceEndpoint(srcPt325);
+ ConnEnd dstPt325(Point(280.084, 321.608), 8);
+ connRef325->setDestEndpoint(dstPt325);
+ connRef325->setRoutingType((ConnType)2);
+
+ ConnRef *connRef326 = new ConnRef(router, 326);
+ ConnEnd srcPt326(Point(571.534, 184.608), 15);
+ connRef326->setSourceEndpoint(srcPt326);
+ ConnEnd dstPt326(Point(982.984, 283.5), 4);
+ connRef326->setDestEndpoint(dstPt326);
+ connRef326->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(317.084, 329.608), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(317.084, 361.608), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(-8.01599, 217.608), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(-8.01599, 249.608), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(372.984, 132.608), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(440.584, 132.608), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(511.534, -149.392), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(440.584, -3.39214), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(552.984, 520.608), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(602.984, 520.608), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(472.984, 837.608), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(422.984, 837.608), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(300.984, 725.608), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(300.984, 683.608), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(440.584, -456.392), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(440.584, -424.392), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(440.584, -314.392), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(362.984, -405.392), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(352.984, 132.608), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(287.984, 132.608), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(111.984, 132.608), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(-8.01599, 132.608), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(-76.016, 38.6079), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(-101.016, -159.392), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(1065.98, 769.608), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(1065.98, 903.608), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(1065.98, 749.608), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(1065.98, 683.608), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(798.746, 229.608), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(798.746, 184.608), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(489, 936.608), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(551.984, 1051.01), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(793.984, 869.608), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(793.984, 837.608), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(362.984, -53.3921), 15);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(362.984, -3.39214), 15);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(121.984, -53.3921), 15);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(121.984, -3.39214), 15);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(798.746, 335.608), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(945.984, 335.608), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(858.746, 379.608), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(858.746, 429.608), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(511.534, 186.608), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(511.534, 236.608), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(428.984, 1233.01), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(428.984, 1283.01), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(511.534, 82.6079), 15);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(511.534, 132.608), 15);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(815.984, 1155.01), 15);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(753.984, 1155.01), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(681.984, 1083.01), 15);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(681.984, 1133.01), 15);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(69.984, -209.392), 15);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(69.984, -159.392), 15);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(352.984, -3.39214), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(287.984, -3.39214), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(111.984, -3.39214), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(-8.01599, -3.39214), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(-76.016, 58.6079), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(-8.01599, 132.608), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(729.984, 520.608), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(602.984, 520.608), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(-8.01599, 100.608), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(-8.01599, 132.608), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(362.984, 735.608), 15);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(300.984, 735.608), 15);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(-8.01599, 197.608), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(-8.01599, 132.608), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(542.984, 470.608), 15);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(542.984, 520.608), 15);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(362.984, -353.392), 15);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(362.984, -303.392), 15);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef319 = new ConnRef(router, 319);
+ ConnEnd srcPt319(Point(571.534, 184.608), 15);
+ connRef319->setSourceEndpoint(srcPt319);
+ ConnEnd dstPt319(Point(730.5, 44.6079), 4);
+ connRef319->setDestEndpoint(dstPt319);
+ connRef319->setRoutingType((ConnType)2);
+
+ ConnRef *connRef320 = new ConnRef(router, 320);
+ ConnEnd srcPt320(Point(798.746, 184.608), 15);
+ connRef320->setSourceEndpoint(srcPt320);
+ ConnEnd dstPt320(Point(730.5, 96.6079), 4);
+ connRef320->setDestEndpoint(dstPt320);
+ connRef320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(793.984, 889.608), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(793.984, 949.008), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(152.984, 694.465), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(102.984, 683.608), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(511.534, -209.392), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(511.534, -159.392), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(440.584, -314.392), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(372.984, -303.392), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(362.984, -385.392), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(287.984, -314.392), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(996.984, 526.108), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(934.984, 526.108), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(380.584, 186.608), 15);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(380.584, 236.608), 15);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(317.084, 309.608), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(320.584, 184.608), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(618.484, 1223.01), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(556.484, 1223.01), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(1127.98, 759.608), 15);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(1065.98, 759.608), 15);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(855.984, 735.608), 15);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(793.984, 735.608), 15);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(362.984, -445.392), 15);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(362.984, -395.392), 15);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(349.984, -261.392), 15);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(287.984, -261.392), 15);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(-14.016, 48.6079), 15);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(-76.016, 48.6079), 15);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(739.984, 470.608), 15);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(739.984, 520.608), 15);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(422.984, 725.608), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(422.984, 683.608), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(422.984, 745.608), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(422.984, 837.608), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(300.984, 745.608), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(422.984, 837.608), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(824, 569), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(1065.98, 683.608), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(352.984, -303.392), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(287.984, -314.392), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(79.984, -159.392), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(287.984, -159.392), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(793.984, 725.608), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(793.984, 683.608), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(440.584, -251.392), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(440.584, -159.392), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(440.584, -404.392), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(440.584, -314.392), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef318 = new ConnRef(router, 318);
+ ConnEnd srcPt318(Point(440.584, -3.39214), 15);
+ connRef318->setSourceEndpoint(srcPt318);
+ ConnEnd dstPt318(Point(730.5, -7.39214), 4);
+ connRef318->setDestEndpoint(dstPt318);
+ connRef318->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(53.984, 90.6079), 15);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(-8.01599, 90.6079), 15);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(-8.01599, -3.39214), 15);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(-8.01599, 80.6079), 15);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(440.584, -3.39214), 15);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(372.984, -3.39214), 15);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(933.984, 949.008), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(1065.98, 903.608), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(959.984, 683.608), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(1065.98, 683.608), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(287.984, -3.39214), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(131.984, -3.39214), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(855.984, 879.608), 15);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(793.984, 879.608), 15);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(440.584, -314.392), 15);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(511.534, -169.392), 15);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(798.746, 335.608), 15);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(848.746, 429.608), 15);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(502.584, -261.392), 15);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(440.584, -261.392), 15);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(502.584, -414.392), 15);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(440.584, -414.392), 15);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(-8.01599, 383.608), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(-8.01599, 445.608), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(370.584, 236.608), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(320.584, 184.608), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(542.984, 690.465), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(793.984, 683.608), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/overlappingRects");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/penaltyRerouting01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/penaltyRerouting01.cpp
new file mode 100644
index 0000000..5dabad7
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/penaltyRerouting01.cpp
@@ -0,0 +1,369 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 10);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 1e+09);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 0);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingParameter((RoutingParameter)8, 0);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ router->setRoutingOption((RoutingOption)4, true);
+ router->setRoutingOption((RoutingOption)5, false);
+ router->setRoutingOption((RoutingOption)6, true);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ ConnEnd heConnPt;
+ PolyLine newRoute;
+
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(449, 491);
+ polygon.ps[1] = Point(479, 491);
+ polygon.ps[2] = Point(479, 521);
+ polygon.ps[3] = Point(449, 521);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(449, 583);
+ polygon.ps[1] = Point(479, 583);
+ polygon.ps[2] = Point(479, 613);
+ polygon.ps[3] = Point(449, 613);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef2
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354, 583);
+ polygon.ps[1] = Point(384, 583);
+ polygon.ps[2] = Point(384, 613);
+ polygon.ps[3] = Point(354, 613);
+ new ShapeRef(router, polygon, 2);
+
+ // shapeRef3
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(354, 354);
+ polygon.ps[1] = Point(384, 354);
+ polygon.ps[2] = Point(384, 384);
+ polygon.ps[3] = Point(354, 384);
+ new ShapeRef(router, polygon, 3);
+
+ // shapeRef4
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(252.5, 354);
+ polygon.ps[1] = Point(282.5, 354);
+ polygon.ps[2] = Point(282.5, 384);
+ polygon.ps[3] = Point(252.5, 384);
+ new ShapeRef(router, polygon, 4);
+
+ // shapeRef5
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(252.5, 583);
+ polygon.ps[1] = Point(282.5, 583);
+ polygon.ps[2] = Point(282.5, 613);
+ polygon.ps[3] = Point(252.5, 613);
+ new ShapeRef(router, polygon, 5);
+
+ // shapeRef6
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(151, 583);
+ polygon.ps[1] = Point(181, 583);
+ polygon.ps[2] = Point(181, 613);
+ polygon.ps[3] = Point(151, 613);
+ new ShapeRef(router, polygon, 6);
+
+ // shapeRef7
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(151, 130);
+ polygon.ps[1] = Point(181, 130);
+ polygon.ps[2] = Point(181, 160);
+ polygon.ps[3] = Point(151, 160);
+ new ShapeRef(router, polygon, 7);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(520, 491);
+ polygon.ps[1] = Point(550, 491);
+ polygon.ps[2] = Point(550, 521);
+ polygon.ps[3] = Point(520, 521);
+ new ShapeRef(router, polygon, 8);
+
+ // shapeRef9
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(520, 354);
+ polygon.ps[1] = Point(550, 354);
+ polygon.ps[2] = Point(550, 384);
+ polygon.ps[3] = Point(520, 384);
+ new ShapeRef(router, polygon, 9);
+
+ // shapeRef10
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(633, 354);
+ polygon.ps[1] = Point(663, 354);
+ polygon.ps[2] = Point(663, 384);
+ polygon.ps[3] = Point(633, 384);
+ new ShapeRef(router, polygon, 10);
+
+ // shapeRef11
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(633, 583);
+ polygon.ps[1] = Point(663, 583);
+ polygon.ps[2] = Point(663, 613);
+ polygon.ps[3] = Point(633, 613);
+ new ShapeRef(router, polygon, 11);
+
+ // shapeRef12
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(741, 583);
+ polygon.ps[1] = Point(771, 583);
+ polygon.ps[2] = Point(771, 613);
+ polygon.ps[3] = Point(741, 613);
+ new ShapeRef(router, polygon, 12);
+
+ // shapeRef13
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(741, 130);
+ polygon.ps[1] = Point(771, 130);
+ polygon.ps[2] = Point(771, 160);
+ polygon.ps[3] = Point(741, 160);
+ new ShapeRef(router, polygon, 13);
+
+ // shapeRef14
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(459.495, 481.99);
+ polygon.ps[1] = Point(468.505, 481.99);
+ polygon.ps[2] = Point(468.505, 491);
+ polygon.ps[3] = Point(459.495, 491);
+ new ShapeRef(router, polygon, 14);
+
+ // shapeRef15
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(212.495, 481.99);
+ polygon.ps[1] = Point(221.505, 481.99);
+ polygon.ps[2] = Point(221.505, 491);
+ polygon.ps[3] = Point(212.495, 491);
+ new ShapeRef(router, polygon, 15);
+
+ // shapeRef16
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(701.99, 481.99);
+ polygon.ps[1] = Point(711, 481.99);
+ polygon.ps[2] = Point(711, 491);
+ polygon.ps[3] = Point(701.99, 491);
+ new ShapeRef(router, polygon, 16);
+
+ // connRef17
+ connRef = new ConnRef(router, 17);
+ srcPt = ConnEnd(Point(464, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369, 598), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 17;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(464, 598);
+ newRoute.ps[1] = Point(369, 598);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef18
+ connRef = new ConnRef(router, 18);
+ srcPt = ConnEnd(Point(267.5, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(166, 598), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 18;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(267.5, 598);
+ newRoute.ps[1] = Point(166, 598);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef19
+ connRef = new ConnRef(router, 19);
+ srcPt = ConnEnd(Point(369, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(369, 369), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 19;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(369, 598);
+ newRoute.ps[1] = Point(369, 369);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef20
+ connRef = new ConnRef(router, 20);
+ srcPt = ConnEnd(Point(464, 506), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(464, 598), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 20;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(464, 506);
+ newRoute.ps[1] = Point(464, 598);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef21
+ connRef = new ConnRef(router, 21);
+ srcPt = ConnEnd(Point(756, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(756, 145), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 21;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(756, 598);
+ newRoute.ps[1] = Point(756, 145);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef22
+ connRef = new ConnRef(router, 22);
+ srcPt = ConnEnd(Point(369, 369), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(267.5, 369), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 22;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(369, 369);
+ newRoute.ps[1] = Point(267.5, 369);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef23
+ connRef = new ConnRef(router, 23);
+ srcPt = ConnEnd(Point(166, 145), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(756, 145), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 23;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(166, 145);
+ newRoute.ps[1] = Point(756, 145);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef24
+ connRef = new ConnRef(router, 24);
+ srcPt = ConnEnd(Point(464, 486.495), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(706.495, 486.495), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef25
+ connRef = new ConnRef(router, 25);
+ srcPt = ConnEnd(Point(535, 369), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(535, 506), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 25;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(535, 369);
+ newRoute.ps[1] = Point(535, 506);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef26
+ connRef = new ConnRef(router, 26);
+ srcPt = ConnEnd(Point(648, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(648, 369), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 26;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(648, 598);
+ newRoute.ps[1] = Point(648, 369);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef27
+ connRef = new ConnRef(router, 27);
+ srcPt = ConnEnd(Point(464, 486.495), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(217, 486.495), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef28
+ connRef = new ConnRef(router, 28);
+ srcPt = ConnEnd(Point(648, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(756, 598), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 28;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(648, 598);
+ newRoute.ps[1] = Point(756, 598);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef29
+ connRef = new ConnRef(router, 29);
+ srcPt = ConnEnd(Point(166, 598), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(166, 145), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 29;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(166, 598);
+ newRoute.ps[1] = Point(166, 145);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef30
+ connRef = new ConnRef(router, 30);
+ srcPt = ConnEnd(Point(648, 369), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(535, 369), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 30;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(648, 369);
+ newRoute.ps[1] = Point(535, 369);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef31
+ connRef = new ConnRef(router, 31);
+ srcPt = ConnEnd(Point(267.5, 369), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(267.5, 598), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 31;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(267.5, 369);
+ newRoute.ps[1] = Point(267.5, 598);
+ connRef->setFixedRoute(newRoute);
+
+ // connRef32
+ connRef = new ConnRef(router, 32);
+ srcPt = ConnEnd(Point(535, 506), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(464, 506), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+ newRoute._id = 32;
+ newRoute.ps.resize(2);
+ newRoute.ps[0] = Point(535, 506);
+ newRoute.ps[1] = Point(464, 506);
+ connRef->setFixedRoute(newRoute);
+
+ router->processTransaction();
+ router->outputDiagram("output/penaltyRerouting01");
+
+ int crossings = router->existsCrossings();
+
+ delete router;
+ return (crossings > 0) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/performance01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/performance01.cpp
new file mode 100644
index 0000000..df22037
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/performance01.cpp
@@ -0,0 +1,7665 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 100);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 612.918);
+ polygon.ps[1] = Point(1015.25, 632.918);
+ polygon.ps[2] = Point(995.246, 632.918);
+ polygon.ps[3] = Point(995.246, 612.918);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef2
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 612.918);
+ polygon.ps[1] = Point(859.246, 632.918);
+ polygon.ps[2] = Point(839.246, 632.918);
+ polygon.ps[3] = Point(839.246, 612.918);
+ new ShapeRef(router, polygon, 2);
+
+ // shapeRef3
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 612.918);
+ polygon.ps[1] = Point(703.246, 632.918);
+ polygon.ps[2] = Point(683.246, 632.918);
+ polygon.ps[3] = Point(683.246, 612.918);
+ new ShapeRef(router, polygon, 3);
+
+ // shapeRef4
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 612.918);
+ polygon.ps[1] = Point(547.246, 632.918);
+ polygon.ps[2] = Point(527.246, 632.918);
+ polygon.ps[3] = Point(527.246, 612.918);
+ new ShapeRef(router, polygon, 4);
+
+ // shapeRef5
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 612.918);
+ polygon.ps[1] = Point(391.246, 632.918);
+ polygon.ps[2] = Point(371.246, 632.918);
+ polygon.ps[3] = Point(371.246, 612.918);
+ new ShapeRef(router, polygon, 5);
+
+ // shapeRef6
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 612.918);
+ polygon.ps[1] = Point(235.246, 632.918);
+ polygon.ps[2] = Point(215.246, 632.918);
+ polygon.ps[3] = Point(215.246, 612.918);
+ new ShapeRef(router, polygon, 6);
+
+ // shapeRef7
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 644.918);
+ polygon.ps[1] = Point(77.2456, 664.918);
+ polygon.ps[2] = Point(57.2456, 664.918);
+ polygon.ps[3] = Point(57.2456, 644.918);
+ new ShapeRef(router, polygon, 7);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1223.25, 656.918);
+ polygon.ps[1] = Point(1223.25, 696.918);
+ polygon.ps[2] = Point(1183.25, 696.918);
+ polygon.ps[3] = Point(1183.25, 656.918);
+ new ShapeRef(router, polygon, 8);
+
+ // shapeRef9
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1223.25, 538.918);
+ polygon.ps[1] = Point(1223.25, 578.918);
+ polygon.ps[2] = Point(1183.25, 578.918);
+ polygon.ps[3] = Point(1183.25, 538.918);
+ new ShapeRef(router, polygon, 9);
+
+ // shapeRef10
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1223.25, 427.955);
+ polygon.ps[1] = Point(1223.25, 467.955);
+ polygon.ps[2] = Point(1183.25, 467.955);
+ polygon.ps[3] = Point(1183.25, 427.955);
+ new ShapeRef(router, polygon, 10);
+
+ // shapeRef11
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1223.25, 312.918);
+ polygon.ps[1] = Point(1223.25, 352.918);
+ polygon.ps[2] = Point(1183.25, 352.918);
+ polygon.ps[3] = Point(1183.25, 312.918);
+ new ShapeRef(router, polygon, 11);
+
+ // shapeRef12
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1469.25, 730.918);
+ polygon.ps[1] = Point(1469.25, 770.918);
+ polygon.ps[2] = Point(1429.25, 770.918);
+ polygon.ps[3] = Point(1429.25, 730.918);
+ new ShapeRef(router, polygon, 12);
+
+ // shapeRef13
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1223.25, 730.918);
+ polygon.ps[1] = Point(1223.25, 770.918);
+ polygon.ps[2] = Point(1183.25, 770.918);
+ polygon.ps[3] = Point(1183.25, 730.918);
+ new ShapeRef(router, polygon, 13);
+
+ // shapeRef14
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1191.25, 730.918);
+ polygon.ps[1] = Point(1191.25, 770.918);
+ polygon.ps[2] = Point(1151.25, 770.918);
+ polygon.ps[3] = Point(1151.25, 730.918);
+ new ShapeRef(router, polygon, 14);
+
+ // shapeRef15
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1469.25, 656.918);
+ polygon.ps[1] = Point(1469.25, 696.918);
+ polygon.ps[2] = Point(1429.25, 696.918);
+ polygon.ps[3] = Point(1429.25, 656.918);
+ new ShapeRef(router, polygon, 15);
+
+ // shapeRef16
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1191.25, 656.918);
+ polygon.ps[1] = Point(1191.25, 696.918);
+ polygon.ps[2] = Point(1151.25, 696.918);
+ polygon.ps[3] = Point(1151.25, 656.918);
+ new ShapeRef(router, polygon, 16);
+
+ // shapeRef17
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(843.246, 730.918);
+ polygon.ps[1] = Point(843.246, 770.918);
+ polygon.ps[2] = Point(803.246, 770.918);
+ polygon.ps[3] = Point(803.246, 730.918);
+ new ShapeRef(router, polygon, 17);
+
+ // shapeRef18
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(693.933, 730.918);
+ polygon.ps[1] = Point(693.933, 770.918);
+ polygon.ps[2] = Point(653.933, 770.918);
+ polygon.ps[3] = Point(653.933, 730.918);
+ new ShapeRef(router, polygon, 18);
+
+ // shapeRef19
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 730.918);
+ polygon.ps[1] = Point(547.246, 770.918);
+ polygon.ps[2] = Point(507.246, 770.918);
+ polygon.ps[3] = Point(507.246, 730.918);
+ new ShapeRef(router, polygon, 19);
+
+ // shapeRef20
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 730.918);
+ polygon.ps[1] = Point(391.246, 770.918);
+ polygon.ps[2] = Point(351.246, 770.918);
+ polygon.ps[3] = Point(351.246, 730.918);
+ new ShapeRef(router, polygon, 20);
+
+ // shapeRef21
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 708.918);
+ polygon.ps[1] = Point(811.246, 728.918);
+ polygon.ps[2] = Point(791.246, 728.918);
+ polygon.ps[3] = Point(791.246, 708.918);
+ new ShapeRef(router, polygon, 21);
+
+ // shapeRef22
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1171.25, 708.918);
+ polygon.ps[1] = Point(1171.25, 728.918);
+ polygon.ps[2] = Point(1151.25, 728.918);
+ polygon.ps[3] = Point(1151.25, 708.918);
+ new ShapeRef(router, polygon, 22);
+
+ // shapeRef23
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1183.25, 708.918);
+ polygon.ps[1] = Point(1183.25, 728.918);
+ polygon.ps[2] = Point(1163.25, 728.918);
+ polygon.ps[3] = Point(1163.25, 708.918);
+ new ShapeRef(router, polygon, 23);
+
+ // shapeRef24
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(537.246, 708.918);
+ polygon.ps[1] = Point(537.246, 728.918);
+ polygon.ps[2] = Point(517.246, 728.918);
+ polygon.ps[3] = Point(517.246, 708.918);
+ new ShapeRef(router, polygon, 24);
+
+ // shapeRef25
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(381.246, 708.918);
+ polygon.ps[1] = Point(381.246, 728.918);
+ polygon.ps[2] = Point(361.246, 728.918);
+ polygon.ps[3] = Point(361.246, 708.918);
+ new ShapeRef(router, polygon, 25);
+
+ // shapeRef26
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1381.25, 666.918);
+ polygon.ps[1] = Point(1381.25, 686.918);
+ polygon.ps[2] = Point(1361.25, 686.918);
+ polygon.ps[3] = Point(1361.25, 666.918);
+ new ShapeRef(router, polygon, 26);
+
+ // shapeRef27
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 565.942);
+ polygon.ps[1] = Point(1303.25, 585.942);
+ polygon.ps[2] = Point(1283.25, 585.942);
+ polygon.ps[3] = Point(1283.25, 565.942);
+ new ShapeRef(router, polygon, 27);
+
+ // shapeRef28
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 644.918);
+ polygon.ps[1] = Point(1015.25, 664.918);
+ polygon.ps[2] = Point(995.246, 664.918);
+ polygon.ps[3] = Point(995.246, 644.918);
+ new ShapeRef(router, polygon, 28);
+
+ // shapeRef29
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 644.918);
+ polygon.ps[1] = Point(859.246, 664.918);
+ polygon.ps[2] = Point(839.246, 664.918);
+ polygon.ps[3] = Point(839.246, 644.918);
+ new ShapeRef(router, polygon, 29);
+
+ // shapeRef30
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 644.918);
+ polygon.ps[1] = Point(703.246, 664.918);
+ polygon.ps[2] = Point(683.246, 664.918);
+ polygon.ps[3] = Point(683.246, 644.918);
+ new ShapeRef(router, polygon, 30);
+
+ // shapeRef31
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 644.918);
+ polygon.ps[1] = Point(547.246, 664.918);
+ polygon.ps[2] = Point(527.246, 664.918);
+ polygon.ps[3] = Point(527.246, 644.918);
+ new ShapeRef(router, polygon, 31);
+
+ // shapeRef32
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 644.918);
+ polygon.ps[1] = Point(391.246, 664.918);
+ polygon.ps[2] = Point(371.246, 664.918);
+ polygon.ps[3] = Point(371.246, 644.918);
+ new ShapeRef(router, polygon, 32);
+
+ // shapeRef33
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 644.918);
+ polygon.ps[1] = Point(235.246, 664.918);
+ polygon.ps[2] = Point(215.246, 664.918);
+ polygon.ps[3] = Point(215.246, 644.918);
+ new ShapeRef(router, polygon, 33);
+
+ // shapeRef34
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 612.918);
+ polygon.ps[1] = Point(77.2456, 632.918);
+ polygon.ps[2] = Point(57.2456, 632.918);
+ polygon.ps[3] = Point(57.2456, 612.918);
+ new ShapeRef(router, polygon, 34);
+
+ // shapeRef35
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 504.918);
+ polygon.ps[1] = Point(1303.25, 524.918);
+ polygon.ps[2] = Point(1283.25, 524.918);
+ polygon.ps[3] = Point(1283.25, 504.918);
+ new ShapeRef(router, polygon, 35);
+
+ // shapeRef36
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 526.918);
+ polygon.ps[1] = Point(1015.25, 546.918);
+ polygon.ps[2] = Point(995.246, 546.918);
+ polygon.ps[3] = Point(995.246, 526.918);
+ new ShapeRef(router, polygon, 36);
+
+ // shapeRef37
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 526.918);
+ polygon.ps[1] = Point(859.246, 546.918);
+ polygon.ps[2] = Point(839.246, 546.918);
+ polygon.ps[3] = Point(839.246, 526.918);
+ new ShapeRef(router, polygon, 37);
+
+ // shapeRef38
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 526.918);
+ polygon.ps[1] = Point(703.246, 546.918);
+ polygon.ps[2] = Point(683.246, 546.918);
+ polygon.ps[3] = Point(683.246, 526.918);
+ new ShapeRef(router, polygon, 38);
+
+ // shapeRef39
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 526.918);
+ polygon.ps[1] = Point(547.246, 546.918);
+ polygon.ps[2] = Point(527.246, 546.918);
+ polygon.ps[3] = Point(527.246, 526.918);
+ new ShapeRef(router, polygon, 39);
+
+ // shapeRef40
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 526.918);
+ polygon.ps[1] = Point(391.246, 546.918);
+ polygon.ps[2] = Point(371.246, 546.918);
+ polygon.ps[3] = Point(371.246, 526.918);
+ new ShapeRef(router, polygon, 40);
+
+ // shapeRef41
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 526.918);
+ polygon.ps[1] = Point(235.246, 546.918);
+ polygon.ps[2] = Point(215.246, 546.918);
+ polygon.ps[3] = Point(215.246, 526.918);
+ new ShapeRef(router, polygon, 41);
+
+ // shapeRef42
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 526.918);
+ polygon.ps[1] = Point(77.2456, 546.918);
+ polygon.ps[2] = Point(57.2456, 546.918);
+ polygon.ps[3] = Point(57.2456, 526.918);
+ new ShapeRef(router, polygon, 42);
+
+ // shapeRef43
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 278.918);
+ polygon.ps[1] = Point(1303.25, 298.918);
+ polygon.ps[2] = Point(1283.25, 298.918);
+ polygon.ps[3] = Point(1283.25, 278.918);
+ new ShapeRef(router, polygon, 43);
+
+ // shapeRef44
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1093.25, 666.918);
+ polygon.ps[1] = Point(1093.25, 686.918);
+ polygon.ps[2] = Point(1073.25, 686.918);
+ polygon.ps[3] = Point(1073.25, 666.918);
+ new ShapeRef(router, polygon, 44);
+
+ // shapeRef45
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 408.918);
+ polygon.ps[1] = Point(1303.25, 428.918);
+ polygon.ps[2] = Point(1283.25, 428.918);
+ polygon.ps[3] = Point(1283.25, 408.918);
+ new ShapeRef(router, polygon, 45);
+
+ // shapeRef46
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 708.918);
+ polygon.ps[1] = Point(1303.25, 728.918);
+ polygon.ps[2] = Point(1283.25, 728.918);
+ polygon.ps[3] = Point(1283.25, 708.918);
+ new ShapeRef(router, polygon, 46);
+
+ // shapeRef47
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1459.25, 708.918);
+ polygon.ps[1] = Point(1459.25, 728.918);
+ polygon.ps[2] = Point(1439.25, 728.918);
+ polygon.ps[3] = Point(1439.25, 708.918);
+ new ShapeRef(router, polygon, 47);
+
+ // shapeRef48
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 708.918);
+ polygon.ps[1] = Point(655.246, 728.918);
+ polygon.ps[2] = Point(635.246, 728.918);
+ polygon.ps[3] = Point(635.246, 708.918);
+ new ShapeRef(router, polygon, 48);
+
+ // shapeRef49
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 708.918);
+ polygon.ps[1] = Point(859.246, 728.918);
+ polygon.ps[2] = Point(839.246, 728.918);
+ polygon.ps[3] = Point(839.246, 708.918);
+ new ShapeRef(router, polygon, 49);
+
+ // shapeRef50
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 22.9179);
+ polygon.ps[1] = Point(77.2456, 42.9179);
+ polygon.ps[2] = Point(57.2456, 42.9179);
+ polygon.ps[3] = Point(57.2456, 22.9179);
+ new ShapeRef(router, polygon, 50);
+
+ // shapeRef51
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 300.918);
+ polygon.ps[1] = Point(77.2456, 320.918);
+ polygon.ps[2] = Point(57.2456, 320.918);
+ polygon.ps[3] = Point(57.2456, 300.918);
+ new ShapeRef(router, polygon, 51);
+
+ // shapeRef52
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 278.918);
+ polygon.ps[1] = Point(1015.25, 298.918);
+ polygon.ps[2] = Point(995.246, 298.918);
+ polygon.ps[3] = Point(995.246, 278.918);
+ new ShapeRef(router, polygon, 52);
+
+ // shapeRef53
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 278.918);
+ polygon.ps[1] = Point(859.246, 298.918);
+ polygon.ps[2] = Point(839.246, 298.918);
+ polygon.ps[3] = Point(839.246, 278.918);
+ new ShapeRef(router, polygon, 53);
+
+ // shapeRef54
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 278.918);
+ polygon.ps[1] = Point(703.246, 298.918);
+ polygon.ps[2] = Point(683.246, 298.918);
+ polygon.ps[3] = Point(683.246, 278.918);
+ new ShapeRef(router, polygon, 54);
+
+ // shapeRef55
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 278.918);
+ polygon.ps[1] = Point(547.246, 298.918);
+ polygon.ps[2] = Point(527.246, 298.918);
+ polygon.ps[3] = Point(527.246, 278.918);
+ new ShapeRef(router, polygon, 55);
+
+ // shapeRef56
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 278.918);
+ polygon.ps[1] = Point(391.246, 298.918);
+ polygon.ps[2] = Point(371.246, 298.918);
+ polygon.ps[3] = Point(371.246, 278.918);
+ new ShapeRef(router, polygon, 56);
+
+ // shapeRef57
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 278.918);
+ polygon.ps[1] = Point(235.246, 298.918);
+ polygon.ps[2] = Point(215.246, 298.918);
+ polygon.ps[3] = Point(215.246, 278.918);
+ new ShapeRef(router, polygon, 57);
+
+ // shapeRef58
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1047.75, 767.422);
+ polygon.ps[1] = Point(1047.75, 802.422);
+ polygon.ps[2] = Point(910.746, 802.422);
+ polygon.ps[3] = Point(910.746, 767.422);
+ new ShapeRef(router, polygon, 58);
+
+ // shapeRef59
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(207.246, -128.082);
+ polygon.ps[1] = Point(207.246, -93.0821);
+ polygon.ps[2] = Point(-12.7544, -93.0821);
+ polygon.ps[3] = Point(-12.7544, -128.082);
+ new ShapeRef(router, polygon, 59);
+
+ // shapeRef60
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(590.455, 4.91795);
+ polygon.ps[1] = Point(590.455, 64.9179);
+ polygon.ps[2] = Point(312.455, 64.9179);
+ polygon.ps[3] = Point(312.455, 4.91795);
+ new ShapeRef(router, polygon, 60);
+
+ // shapeRef61
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(222.246, -101.082);
+ polygon.ps[1] = Point(222.246, -41.0821);
+ polygon.ps[2] = Point(-12.7544, -41.0821);
+ polygon.ps[3] = Point(-12.7544, -101.082);
+ new ShapeRef(router, polygon, 61);
+
+ // shapeRef62
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 708.918);
+ polygon.ps[1] = Point(1015.25, 728.918);
+ polygon.ps[2] = Point(995.246, 728.918);
+ polygon.ps[3] = Point(995.246, 708.918);
+ new ShapeRef(router, polygon, 62);
+
+ // shapeRef63
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 676.918);
+ polygon.ps[1] = Point(967.246, 696.918);
+ polygon.ps[2] = Point(947.246, 696.918);
+ polygon.ps[3] = Point(947.246, 676.918);
+ new ShapeRef(router, polygon, 63);
+
+ // shapeRef64
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 580.918);
+ polygon.ps[1] = Point(1015.25, 600.918);
+ polygon.ps[2] = Point(995.246, 600.918);
+ polygon.ps[3] = Point(995.246, 580.918);
+ new ShapeRef(router, polygon, 64);
+
+ // shapeRef65
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 612.918);
+ polygon.ps[1] = Point(967.246, 632.918);
+ polygon.ps[2] = Point(947.246, 632.918);
+ polygon.ps[3] = Point(947.246, 612.918);
+ new ShapeRef(router, polygon, 65);
+
+ // shapeRef66
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 580.918);
+ polygon.ps[1] = Point(967.246, 600.918);
+ polygon.ps[2] = Point(947.246, 600.918);
+ polygon.ps[3] = Point(947.246, 580.918);
+ new ShapeRef(router, polygon, 66);
+
+ // shapeRef67
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 504.918);
+ polygon.ps[1] = Point(967.246, 524.918);
+ polygon.ps[2] = Point(947.246, 524.918);
+ polygon.ps[3] = Point(947.246, 504.918);
+ new ShapeRef(router, polygon, 67);
+
+ // shapeRef68
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 472.918);
+ polygon.ps[1] = Point(967.246, 492.918);
+ polygon.ps[2] = Point(947.246, 492.918);
+ polygon.ps[3] = Point(947.246, 472.918);
+ new ShapeRef(router, polygon, 68);
+
+ // shapeRef69
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 408.918);
+ polygon.ps[1] = Point(1015.25, 428.918);
+ polygon.ps[2] = Point(995.246, 428.918);
+ polygon.ps[3] = Point(995.246, 408.918);
+ new ShapeRef(router, polygon, 69);
+
+ // shapeRef70
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 408.918);
+ polygon.ps[1] = Point(967.246, 428.918);
+ polygon.ps[2] = Point(947.246, 428.918);
+ polygon.ps[3] = Point(947.246, 408.918);
+ new ShapeRef(router, polygon, 70);
+
+ // shapeRef71
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 376.918);
+ polygon.ps[1] = Point(967.246, 396.918);
+ polygon.ps[2] = Point(947.246, 396.918);
+ polygon.ps[3] = Point(947.246, 376.918);
+ new ShapeRef(router, polygon, 71);
+
+ // shapeRef72
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1015.25, 246.918);
+ polygon.ps[1] = Point(1015.25, 266.918);
+ polygon.ps[2] = Point(995.246, 266.918);
+ polygon.ps[3] = Point(995.246, 246.918);
+ new ShapeRef(router, polygon, 72);
+
+ // shapeRef73
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 268.918);
+ polygon.ps[1] = Point(967.246, 288.918);
+ polygon.ps[2] = Point(947.246, 288.918);
+ polygon.ps[3] = Point(947.246, 268.918);
+ new ShapeRef(router, polygon, 73);
+
+ // shapeRef74
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 236.918);
+ polygon.ps[1] = Point(967.246, 256.918);
+ polygon.ps[2] = Point(947.246, 256.918);
+ polygon.ps[3] = Point(947.246, 236.918);
+ new ShapeRef(router, polygon, 74);
+
+ // shapeRef75
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 580.918);
+ polygon.ps[1] = Point(859.246, 600.918);
+ polygon.ps[2] = Point(839.246, 600.918);
+ polygon.ps[3] = Point(839.246, 580.918);
+ new ShapeRef(router, polygon, 75);
+
+ // shapeRef76
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 612.918);
+ polygon.ps[1] = Point(811.246, 632.918);
+ polygon.ps[2] = Point(791.246, 632.918);
+ polygon.ps[3] = Point(791.246, 612.918);
+ new ShapeRef(router, polygon, 76);
+
+ // shapeRef77
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 580.918);
+ polygon.ps[1] = Point(811.246, 600.918);
+ polygon.ps[2] = Point(791.246, 600.918);
+ polygon.ps[3] = Point(791.246, 580.918);
+ new ShapeRef(router, polygon, 77);
+
+ // shapeRef78
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 504.918);
+ polygon.ps[1] = Point(811.246, 524.918);
+ polygon.ps[2] = Point(791.246, 524.918);
+ polygon.ps[3] = Point(791.246, 504.918);
+ new ShapeRef(router, polygon, 78);
+
+ // shapeRef79
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 472.918);
+ polygon.ps[1] = Point(811.246, 492.918);
+ polygon.ps[2] = Point(791.246, 492.918);
+ polygon.ps[3] = Point(791.246, 472.918);
+ new ShapeRef(router, polygon, 79);
+
+ // shapeRef80
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 408.918);
+ polygon.ps[1] = Point(859.246, 428.918);
+ polygon.ps[2] = Point(839.246, 428.918);
+ polygon.ps[3] = Point(839.246, 408.918);
+ new ShapeRef(router, polygon, 80);
+
+ // shapeRef81
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 408.918);
+ polygon.ps[1] = Point(811.246, 428.918);
+ polygon.ps[2] = Point(791.246, 428.918);
+ polygon.ps[3] = Point(791.246, 408.918);
+ new ShapeRef(router, polygon, 81);
+
+ // shapeRef82
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 376.918);
+ polygon.ps[1] = Point(811.246, 396.918);
+ polygon.ps[2] = Point(791.246, 396.918);
+ polygon.ps[3] = Point(791.246, 376.918);
+ new ShapeRef(router, polygon, 82);
+
+ // shapeRef83
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(859.246, 246.918);
+ polygon.ps[1] = Point(859.246, 266.918);
+ polygon.ps[2] = Point(839.246, 266.918);
+ polygon.ps[3] = Point(839.246, 246.918);
+ new ShapeRef(router, polygon, 83);
+
+ // shapeRef84
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 268.918);
+ polygon.ps[1] = Point(811.246, 288.918);
+ polygon.ps[2] = Point(791.246, 288.918);
+ polygon.ps[3] = Point(791.246, 268.918);
+ new ShapeRef(router, polygon, 84);
+
+ // shapeRef85
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 236.918);
+ polygon.ps[1] = Point(811.246, 256.918);
+ polygon.ps[2] = Point(791.246, 256.918);
+ polygon.ps[3] = Point(791.246, 236.918);
+ new ShapeRef(router, polygon, 85);
+
+ // shapeRef86
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 580.918);
+ polygon.ps[1] = Point(703.246, 600.918);
+ polygon.ps[2] = Point(683.246, 600.918);
+ polygon.ps[3] = Point(683.246, 580.918);
+ new ShapeRef(router, polygon, 86);
+
+ // shapeRef87
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 612.918);
+ polygon.ps[1] = Point(655.246, 632.918);
+ polygon.ps[2] = Point(635.246, 632.918);
+ polygon.ps[3] = Point(635.246, 612.918);
+ new ShapeRef(router, polygon, 87);
+
+ // shapeRef88
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 580.918);
+ polygon.ps[1] = Point(655.246, 600.918);
+ polygon.ps[2] = Point(635.246, 600.918);
+ polygon.ps[3] = Point(635.246, 580.918);
+ new ShapeRef(router, polygon, 88);
+
+ // shapeRef89
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 504.918);
+ polygon.ps[1] = Point(655.246, 524.918);
+ polygon.ps[2] = Point(635.246, 524.918);
+ polygon.ps[3] = Point(635.246, 504.918);
+ new ShapeRef(router, polygon, 89);
+
+ // shapeRef90
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 472.918);
+ polygon.ps[1] = Point(655.246, 492.918);
+ polygon.ps[2] = Point(635.246, 492.918);
+ polygon.ps[3] = Point(635.246, 472.918);
+ new ShapeRef(router, polygon, 90);
+
+ // shapeRef91
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 408.918);
+ polygon.ps[1] = Point(703.246, 428.918);
+ polygon.ps[2] = Point(683.246, 428.918);
+ polygon.ps[3] = Point(683.246, 408.918);
+ new ShapeRef(router, polygon, 91);
+
+ // shapeRef92
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 408.918);
+ polygon.ps[1] = Point(655.246, 428.918);
+ polygon.ps[2] = Point(635.246, 428.918);
+ polygon.ps[3] = Point(635.246, 408.918);
+ new ShapeRef(router, polygon, 92);
+
+ // shapeRef93
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 376.918);
+ polygon.ps[1] = Point(655.246, 396.918);
+ polygon.ps[2] = Point(635.246, 396.918);
+ polygon.ps[3] = Point(635.246, 376.918);
+ new ShapeRef(router, polygon, 93);
+
+ // shapeRef94
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(703.246, 246.918);
+ polygon.ps[1] = Point(703.246, 266.918);
+ polygon.ps[2] = Point(683.246, 266.918);
+ polygon.ps[3] = Point(683.246, 246.918);
+ new ShapeRef(router, polygon, 94);
+
+ // shapeRef95
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 268.918);
+ polygon.ps[1] = Point(655.246, 288.918);
+ polygon.ps[2] = Point(635.246, 288.918);
+ polygon.ps[3] = Point(635.246, 268.918);
+ new ShapeRef(router, polygon, 95);
+
+ // shapeRef96
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 236.918);
+ polygon.ps[1] = Point(655.246, 256.918);
+ polygon.ps[2] = Point(635.246, 256.918);
+ polygon.ps[3] = Point(635.246, 236.918);
+ new ShapeRef(router, polygon, 96);
+
+ // shapeRef97
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 580.918);
+ polygon.ps[1] = Point(547.246, 600.918);
+ polygon.ps[2] = Point(527.246, 600.918);
+ polygon.ps[3] = Point(527.246, 580.918);
+ new ShapeRef(router, polygon, 97);
+
+ // shapeRef98
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 612.918);
+ polygon.ps[1] = Point(499.246, 632.918);
+ polygon.ps[2] = Point(479.246, 632.918);
+ polygon.ps[3] = Point(479.246, 612.918);
+ new ShapeRef(router, polygon, 98);
+
+ // shapeRef99
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 580.918);
+ polygon.ps[1] = Point(499.246, 600.918);
+ polygon.ps[2] = Point(479.246, 600.918);
+ polygon.ps[3] = Point(479.246, 580.918);
+ new ShapeRef(router, polygon, 99);
+
+ // shapeRef100
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 476.951);
+ polygon.ps[1] = Point(547.246, 496.951);
+ polygon.ps[2] = Point(527.246, 496.951);
+ polygon.ps[3] = Point(527.246, 476.951);
+ new ShapeRef(router, polygon, 100);
+
+ // shapeRef101
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 504.918);
+ polygon.ps[1] = Point(499.246, 524.918);
+ polygon.ps[2] = Point(479.246, 524.918);
+ polygon.ps[3] = Point(479.246, 504.918);
+ new ShapeRef(router, polygon, 101);
+
+ // shapeRef102
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 472.918);
+ polygon.ps[1] = Point(499.246, 492.918);
+ polygon.ps[2] = Point(479.246, 492.918);
+ polygon.ps[3] = Point(479.246, 472.918);
+ new ShapeRef(router, polygon, 102);
+
+ // shapeRef103
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 408.918);
+ polygon.ps[1] = Point(547.246, 428.918);
+ polygon.ps[2] = Point(527.246, 428.918);
+ polygon.ps[3] = Point(527.246, 408.918);
+ new ShapeRef(router, polygon, 103);
+
+ // shapeRef104
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 408.918);
+ polygon.ps[1] = Point(499.246, 428.918);
+ polygon.ps[2] = Point(479.246, 428.918);
+ polygon.ps[3] = Point(479.246, 408.918);
+ new ShapeRef(router, polygon, 104);
+
+ // shapeRef105
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 376.918);
+ polygon.ps[1] = Point(499.246, 396.918);
+ polygon.ps[2] = Point(479.246, 396.918);
+ polygon.ps[3] = Point(479.246, 376.918);
+ new ShapeRef(router, polygon, 105);
+
+ // shapeRef106
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 246.918);
+ polygon.ps[1] = Point(547.246, 266.918);
+ polygon.ps[2] = Point(527.246, 266.918);
+ polygon.ps[3] = Point(527.246, 246.918);
+ new ShapeRef(router, polygon, 106);
+
+ // shapeRef107
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 268.918);
+ polygon.ps[1] = Point(499.246, 288.918);
+ polygon.ps[2] = Point(479.246, 288.918);
+ polygon.ps[3] = Point(479.246, 268.918);
+ new ShapeRef(router, polygon, 107);
+
+ // shapeRef108
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 236.918);
+ polygon.ps[1] = Point(499.246, 256.918);
+ polygon.ps[2] = Point(479.246, 256.918);
+ polygon.ps[3] = Point(479.246, 236.918);
+ new ShapeRef(router, polygon, 108);
+
+ // shapeRef109
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 580.918);
+ polygon.ps[1] = Point(391.246, 600.918);
+ polygon.ps[2] = Point(371.246, 600.918);
+ polygon.ps[3] = Point(371.246, 580.918);
+ new ShapeRef(router, polygon, 109);
+
+ // shapeRef110
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 612.918);
+ polygon.ps[1] = Point(343.246, 632.918);
+ polygon.ps[2] = Point(323.246, 632.918);
+ polygon.ps[3] = Point(323.246, 612.918);
+ new ShapeRef(router, polygon, 110);
+
+ // shapeRef111
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 580.918);
+ polygon.ps[1] = Point(343.246, 600.918);
+ polygon.ps[2] = Point(323.246, 600.918);
+ polygon.ps[3] = Point(323.246, 580.918);
+ new ShapeRef(router, polygon, 111);
+
+ // shapeRef112
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 504.918);
+ polygon.ps[1] = Point(343.246, 524.918);
+ polygon.ps[2] = Point(323.246, 524.918);
+ polygon.ps[3] = Point(323.246, 504.918);
+ new ShapeRef(router, polygon, 112);
+
+ // shapeRef113
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 472.918);
+ polygon.ps[1] = Point(343.246, 492.918);
+ polygon.ps[2] = Point(323.246, 492.918);
+ polygon.ps[3] = Point(323.246, 472.918);
+ new ShapeRef(router, polygon, 113);
+
+ // shapeRef114
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 408.918);
+ polygon.ps[1] = Point(391.246, 428.918);
+ polygon.ps[2] = Point(371.246, 428.918);
+ polygon.ps[3] = Point(371.246, 408.918);
+ new ShapeRef(router, polygon, 114);
+
+ // shapeRef115
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 408.918);
+ polygon.ps[1] = Point(343.246, 428.918);
+ polygon.ps[2] = Point(323.246, 428.918);
+ polygon.ps[3] = Point(323.246, 408.918);
+ new ShapeRef(router, polygon, 115);
+
+ // shapeRef116
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 376.918);
+ polygon.ps[1] = Point(343.246, 396.918);
+ polygon.ps[2] = Point(323.246, 396.918);
+ polygon.ps[3] = Point(323.246, 376.918);
+ new ShapeRef(router, polygon, 116);
+
+ // shapeRef117
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 246.918);
+ polygon.ps[1] = Point(391.246, 266.918);
+ polygon.ps[2] = Point(371.246, 266.918);
+ polygon.ps[3] = Point(371.246, 246.918);
+ new ShapeRef(router, polygon, 117);
+
+ // shapeRef118
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 268.918);
+ polygon.ps[1] = Point(343.246, 288.918);
+ polygon.ps[2] = Point(323.246, 288.918);
+ polygon.ps[3] = Point(323.246, 268.918);
+ new ShapeRef(router, polygon, 118);
+
+ // shapeRef119
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 236.918);
+ polygon.ps[1] = Point(343.246, 256.918);
+ polygon.ps[2] = Point(323.246, 256.918);
+ polygon.ps[3] = Point(323.246, 236.918);
+ new ShapeRef(router, polygon, 119);
+
+ // shapeRef120
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 580.918);
+ polygon.ps[1] = Point(235.246, 600.918);
+ polygon.ps[2] = Point(215.246, 600.918);
+ polygon.ps[3] = Point(215.246, 580.918);
+ new ShapeRef(router, polygon, 120);
+
+ // shapeRef121
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 612.918);
+ polygon.ps[1] = Point(203.246, 632.918);
+ polygon.ps[2] = Point(183.246, 632.918);
+ polygon.ps[3] = Point(183.246, 612.918);
+ new ShapeRef(router, polygon, 121);
+
+ // shapeRef122
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 580.918);
+ polygon.ps[1] = Point(203.246, 600.918);
+ polygon.ps[2] = Point(183.246, 600.918);
+ polygon.ps[3] = Point(183.246, 580.918);
+ new ShapeRef(router, polygon, 122);
+
+ // shapeRef123
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 504.918);
+ polygon.ps[1] = Point(203.246, 524.918);
+ polygon.ps[2] = Point(183.246, 524.918);
+ polygon.ps[3] = Point(183.246, 504.918);
+ new ShapeRef(router, polygon, 123);
+
+ // shapeRef124
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 472.918);
+ polygon.ps[1] = Point(203.246, 492.918);
+ polygon.ps[2] = Point(183.246, 492.918);
+ polygon.ps[3] = Point(183.246, 472.918);
+ new ShapeRef(router, polygon, 124);
+
+ // shapeRef125
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 408.918);
+ polygon.ps[1] = Point(235.246, 428.918);
+ polygon.ps[2] = Point(215.246, 428.918);
+ polygon.ps[3] = Point(215.246, 408.918);
+ new ShapeRef(router, polygon, 125);
+
+ // shapeRef126
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 408.918);
+ polygon.ps[1] = Point(203.246, 428.918);
+ polygon.ps[2] = Point(183.246, 428.918);
+ polygon.ps[3] = Point(183.246, 408.918);
+ new ShapeRef(router, polygon, 126);
+
+ // shapeRef127
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 376.918);
+ polygon.ps[1] = Point(203.246, 396.918);
+ polygon.ps[2] = Point(183.246, 396.918);
+ polygon.ps[3] = Point(183.246, 376.918);
+ new ShapeRef(router, polygon, 127);
+
+ // shapeRef128
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 246.918);
+ polygon.ps[1] = Point(235.246, 266.918);
+ polygon.ps[2] = Point(215.246, 266.918);
+ polygon.ps[3] = Point(215.246, 246.918);
+ new ShapeRef(router, polygon, 128);
+
+ // shapeRef129
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 236.918);
+ polygon.ps[1] = Point(203.246, 256.918);
+ polygon.ps[2] = Point(183.246, 256.918);
+ polygon.ps[3] = Point(183.246, 236.918);
+ new ShapeRef(router, polygon, 129);
+
+ // shapeRef130
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 268.918);
+ polygon.ps[1] = Point(203.246, 288.918);
+ polygon.ps[2] = Point(183.246, 288.918);
+ polygon.ps[3] = Point(183.246, 268.918);
+ new ShapeRef(router, polygon, 130);
+
+ // shapeRef131
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 580.918);
+ polygon.ps[1] = Point(77.2456, 600.918);
+ polygon.ps[2] = Point(57.2456, 600.918);
+ polygon.ps[3] = Point(57.2456, 580.918);
+ new ShapeRef(router, polygon, 131);
+
+ // shapeRef132
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 612.918);
+ polygon.ps[1] = Point(27.2456, 632.918);
+ polygon.ps[2] = Point(7.24557, 632.918);
+ polygon.ps[3] = Point(7.24557, 612.918);
+ new ShapeRef(router, polygon, 132);
+
+ // shapeRef133
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 580.918);
+ polygon.ps[1] = Point(27.2456, 600.918);
+ polygon.ps[2] = Point(7.24557, 600.918);
+ polygon.ps[3] = Point(7.24557, 580.918);
+ new ShapeRef(router, polygon, 133);
+
+ // shapeRef134
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 504.918);
+ polygon.ps[1] = Point(27.2456, 524.918);
+ polygon.ps[2] = Point(7.24557, 524.918);
+ polygon.ps[3] = Point(7.24557, 504.918);
+ new ShapeRef(router, polygon, 134);
+
+ // shapeRef135
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 472.918);
+ polygon.ps[1] = Point(27.2456, 492.918);
+ polygon.ps[2] = Point(7.24557, 492.918);
+ polygon.ps[3] = Point(7.24557, 472.918);
+ new ShapeRef(router, polygon, 135);
+
+ // shapeRef136
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 408.918);
+ polygon.ps[1] = Point(77.2456, 428.918);
+ polygon.ps[2] = Point(57.2456, 428.918);
+ polygon.ps[3] = Point(57.2456, 408.918);
+ new ShapeRef(router, polygon, 136);
+
+ // shapeRef137
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 408.918);
+ polygon.ps[1] = Point(27.2456, 428.918);
+ polygon.ps[2] = Point(7.24557, 428.918);
+ polygon.ps[3] = Point(7.24557, 408.918);
+ new ShapeRef(router, polygon, 137);
+
+ // shapeRef138
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 376.918);
+ polygon.ps[1] = Point(27.2456, 396.918);
+ polygon.ps[2] = Point(7.24557, 396.918);
+ polygon.ps[3] = Point(7.24557, 376.918);
+ new ShapeRef(router, polygon, 138);
+
+ // shapeRef139
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 268.918);
+ polygon.ps[1] = Point(27.2456, 288.918);
+ polygon.ps[2] = Point(7.24557, 288.918);
+ polygon.ps[3] = Point(7.24557, 268.918);
+ new ShapeRef(router, polygon, 139);
+
+ // shapeRef140
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 236.918);
+ polygon.ps[1] = Point(27.2456, 256.918);
+ polygon.ps[2] = Point(7.24557, 256.918);
+ polygon.ps[3] = Point(7.24557, 236.918);
+ new ShapeRef(router, polygon, 140);
+
+ // shapeRef141
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(254.976, 160.918);
+ polygon.ps[1] = Point(254.976, 180.918);
+ polygon.ps[2] = Point(234.976, 180.918);
+ polygon.ps[3] = Point(234.976, 160.918);
+ new ShapeRef(router, polygon, 141);
+
+ // shapeRef142
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(155.246, 76.9179);
+ polygon.ps[1] = Point(155.246, 96.9179);
+ polygon.ps[2] = Point(135.246, 96.9179);
+ polygon.ps[3] = Point(135.246, 76.9179);
+ new ShapeRef(router, polygon, 142);
+
+ // shapeRef143
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(155.246, 44.9179);
+ polygon.ps[1] = Point(155.246, 64.9179);
+ polygon.ps[2] = Point(135.246, 64.9179);
+ polygon.ps[3] = Point(135.246, 44.9179);
+ new ShapeRef(router, polygon, 143);
+
+ // shapeRef144
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 160.918);
+ polygon.ps[1] = Point(27.2456, 180.918);
+ polygon.ps[2] = Point(7.24557, 180.918);
+ polygon.ps[3] = Point(7.24557, 160.918);
+ new ShapeRef(router, polygon, 144);
+
+ // shapeRef145
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 22.9179);
+ polygon.ps[1] = Point(27.2456, 42.9179);
+ polygon.ps[2] = Point(7.24557, 42.9179);
+ polygon.ps[3] = Point(7.24557, 22.9179);
+ new ShapeRef(router, polygon, 145);
+
+ // shapeRef146
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, -9.08205);
+ polygon.ps[1] = Point(27.2456, 10.9179);
+ polygon.ps[2] = Point(7.24557, 10.9179);
+ polygon.ps[3] = Point(7.24557, -9.08205);
+ new ShapeRef(router, polygon, 146);
+
+ // shapeRef147
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(329.219, -39.0821);
+ polygon.ps[1] = Point(329.219, -19.0821);
+ polygon.ps[2] = Point(309.219, -19.0821);
+ polygon.ps[3] = Point(309.219, -39.0821);
+ new ShapeRef(router, polygon, 147);
+
+ // shapeRef148
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(207.246, -39.0821);
+ polygon.ps[1] = Point(207.246, -19.0821);
+ polygon.ps[2] = Point(187.246, -19.0821);
+ polygon.ps[3] = Point(187.246, -39.0821);
+ new ShapeRef(router, polygon, 148);
+
+ // shapeRef149
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(601.954, 56.9179);
+ polygon.ps[1] = Point(601.954, 116.918);
+ polygon.ps[2] = Point(311.954, 116.918);
+ polygon.ps[3] = Point(311.954, 56.9179);
+ new ShapeRef(router, polygon, 149);
+
+ // shapeRef150
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 105.987);
+ polygon.ps[1] = Point(77.2456, 145.987);
+ polygon.ps[2] = Point(37.2456, 145.987);
+ polygon.ps[3] = Point(37.2456, 105.987);
+ new ShapeRef(router, polygon, 150);
+
+ // shapeRef151
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(339.219, -71.0821);
+ polygon.ps[1] = Point(339.219, -31.0821);
+ polygon.ps[2] = Point(299.219, -31.0821);
+ polygon.ps[3] = Point(299.219, -71.0821);
+ new ShapeRef(router, polygon, 151);
+
+ // shapeRef152
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(339.219, -27.0821);
+ polygon.ps[1] = Point(339.219, 12.9179);
+ polygon.ps[2] = Point(299.219, 12.9179);
+ polygon.ps[3] = Point(299.219, -27.0821);
+ new ShapeRef(router, polygon, 152);
+
+ // shapeRef153
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(217.246, 76.9179);
+ polygon.ps[1] = Point(217.246, 116.918);
+ polygon.ps[2] = Point(177.246, 116.918);
+ polygon.ps[3] = Point(177.246, 76.9179);
+ new ShapeRef(router, polygon, 153);
+
+ // shapeRef154
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(217.246, 140.918);
+ polygon.ps[1] = Point(217.246, 180.918);
+ polygon.ps[2] = Point(177.246, 180.918);
+ polygon.ps[3] = Point(177.246, 140.918);
+ new ShapeRef(router, polygon, 154);
+
+ // shapeRef155
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 140.918);
+ polygon.ps[1] = Point(77.2456, 180.918);
+ polygon.ps[2] = Point(37.2456, 180.918);
+ polygon.ps[3] = Point(37.2456, 140.918);
+ new ShapeRef(router, polygon, 155);
+
+ // shapeRef156
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 312.918);
+ polygon.ps[1] = Point(77.2456, 352.918);
+ polygon.ps[2] = Point(37.2456, 352.918);
+ polygon.ps[3] = Point(37.2456, 312.918);
+ new ShapeRef(router, polygon, 156);
+
+ // shapeRef157
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 427.955);
+ polygon.ps[1] = Point(77.2456, 467.955);
+ polygon.ps[2] = Point(37.2456, 467.955);
+ polygon.ps[3] = Point(37.2456, 427.955);
+ new ShapeRef(router, polygon, 157);
+
+ // shapeRef158
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 538.918);
+ polygon.ps[1] = Point(77.2456, 578.918);
+ polygon.ps[2] = Point(37.2456, 578.918);
+ polygon.ps[3] = Point(37.2456, 538.918);
+ new ShapeRef(router, polygon, 158);
+
+ // shapeRef159
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 656.918);
+ polygon.ps[1] = Point(77.2456, 696.918);
+ polygon.ps[2] = Point(37.2456, 696.918);
+ polygon.ps[3] = Point(37.2456, 656.918);
+ new ShapeRef(router, polygon, 159);
+
+ // shapeRef160
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(45.2456, 76.9179);
+ polygon.ps[1] = Point(45.2456, 116.918);
+ polygon.ps[2] = Point(5.24557, 116.918);
+ polygon.ps[3] = Point(5.24557, 76.9179);
+ new ShapeRef(router, polygon, 160);
+
+ // shapeRef161
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 312.918);
+ polygon.ps[1] = Point(235.246, 352.918);
+ polygon.ps[2] = Point(195.246, 352.918);
+ polygon.ps[3] = Point(195.246, 312.918);
+ new ShapeRef(router, polygon, 161);
+
+ // shapeRef162
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 427.955);
+ polygon.ps[1] = Point(235.246, 467.955);
+ polygon.ps[2] = Point(195.246, 467.955);
+ polygon.ps[3] = Point(195.246, 427.955);
+ new ShapeRef(router, polygon, 162);
+
+ // shapeRef163
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 538.918);
+ polygon.ps[1] = Point(235.246, 578.918);
+ polygon.ps[2] = Point(195.246, 578.918);
+ polygon.ps[3] = Point(195.246, 538.918);
+ new ShapeRef(router, polygon, 163);
+
+ // shapeRef164
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(235.246, 656.918);
+ polygon.ps[1] = Point(235.246, 696.918);
+ polygon.ps[2] = Point(195.246, 696.918);
+ polygon.ps[3] = Point(195.246, 656.918);
+ new ShapeRef(router, polygon, 164);
+
+ // shapeRef165
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 656.918);
+ polygon.ps[1] = Point(391.246, 696.918);
+ polygon.ps[2] = Point(351.246, 696.918);
+ polygon.ps[3] = Point(351.246, 656.918);
+ new ShapeRef(router, polygon, 165);
+
+ // shapeRef166
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 538.918);
+ polygon.ps[1] = Point(391.246, 578.918);
+ polygon.ps[2] = Point(351.246, 578.918);
+ polygon.ps[3] = Point(351.246, 538.918);
+ new ShapeRef(router, polygon, 166);
+
+ // shapeRef167
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 427.955);
+ polygon.ps[1] = Point(391.246, 467.955);
+ polygon.ps[2] = Point(351.246, 467.955);
+ polygon.ps[3] = Point(351.246, 427.955);
+ new ShapeRef(router, polygon, 167);
+
+ // shapeRef168
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(391.246, 312.918);
+ polygon.ps[1] = Point(391.246, 352.918);
+ polygon.ps[2] = Point(351.246, 352.918);
+ polygon.ps[3] = Point(351.246, 312.918);
+ new ShapeRef(router, polygon, 168);
+
+ // shapeRef169
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 312.918);
+ polygon.ps[1] = Point(547.246, 352.918);
+ polygon.ps[2] = Point(507.246, 352.918);
+ polygon.ps[3] = Point(507.246, 312.918);
+ new ShapeRef(router, polygon, 169);
+
+ // shapeRef170
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 427.955);
+ polygon.ps[1] = Point(547.246, 467.955);
+ polygon.ps[2] = Point(507.246, 467.955);
+ polygon.ps[3] = Point(507.246, 427.955);
+ new ShapeRef(router, polygon, 170);
+
+ // shapeRef171
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 538.918);
+ polygon.ps[1] = Point(547.246, 578.918);
+ polygon.ps[2] = Point(507.246, 578.918);
+ polygon.ps[3] = Point(507.246, 538.918);
+ new ShapeRef(router, polygon, 171);
+
+ // shapeRef172
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(547.246, 656.918);
+ polygon.ps[1] = Point(547.246, 696.918);
+ polygon.ps[2] = Point(507.246, 696.918);
+ polygon.ps[3] = Point(507.246, 656.918);
+ new ShapeRef(router, polygon, 172);
+
+ // shapeRef173
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(693.933, 656.918);
+ polygon.ps[1] = Point(693.933, 696.918);
+ polygon.ps[2] = Point(653.933, 696.918);
+ polygon.ps[3] = Point(653.933, 656.918);
+ new ShapeRef(router, polygon, 173);
+
+ // shapeRef174
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(693.933, 538.918);
+ polygon.ps[1] = Point(693.933, 578.918);
+ polygon.ps[2] = Point(653.933, 578.918);
+ polygon.ps[3] = Point(653.933, 538.918);
+ new ShapeRef(router, polygon, 174);
+
+ // shapeRef175
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(693.933, 427.955);
+ polygon.ps[1] = Point(693.933, 467.955);
+ polygon.ps[2] = Point(653.933, 467.955);
+ polygon.ps[3] = Point(653.933, 427.955);
+ new ShapeRef(router, polygon, 175);
+
+ // shapeRef176
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(693.933, 312.918);
+ polygon.ps[1] = Point(693.933, 352.918);
+ polygon.ps[2] = Point(653.933, 352.918);
+ polygon.ps[3] = Point(653.933, 312.918);
+ new ShapeRef(router, polygon, 176);
+
+ // shapeRef177
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(843.246, 312.918);
+ polygon.ps[1] = Point(843.246, 352.918);
+ polygon.ps[2] = Point(803.246, 352.918);
+ polygon.ps[3] = Point(803.246, 312.918);
+ new ShapeRef(router, polygon, 177);
+
+ // shapeRef178
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(843.246, 427.955);
+ polygon.ps[1] = Point(843.246, 467.955);
+ polygon.ps[2] = Point(803.246, 467.955);
+ polygon.ps[3] = Point(803.246, 427.955);
+ new ShapeRef(router, polygon, 178);
+
+ // shapeRef179
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(843.246, 538.918);
+ polygon.ps[1] = Point(843.246, 578.918);
+ polygon.ps[2] = Point(803.246, 578.918);
+ polygon.ps[3] = Point(803.246, 538.918);
+ new ShapeRef(router, polygon, 179);
+
+ // shapeRef180
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(843.246, 656.918);
+ polygon.ps[1] = Point(843.246, 696.918);
+ polygon.ps[2] = Point(803.246, 696.918);
+ polygon.ps[3] = Point(803.246, 656.918);
+ new ShapeRef(router, polygon, 180);
+
+ // shapeRef181
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(999.246, 730.918);
+ polygon.ps[1] = Point(999.246, 770.918);
+ polygon.ps[2] = Point(959.246, 770.918);
+ polygon.ps[3] = Point(959.246, 730.918);
+ new ShapeRef(router, polygon, 181);
+
+ // shapeRef182
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(999.246, 656.918);
+ polygon.ps[1] = Point(999.246, 696.918);
+ polygon.ps[2] = Point(959.246, 696.918);
+ polygon.ps[3] = Point(959.246, 656.918);
+ new ShapeRef(router, polygon, 182);
+
+ // shapeRef183
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(999.246, 538.918);
+ polygon.ps[1] = Point(999.246, 578.918);
+ polygon.ps[2] = Point(959.246, 578.918);
+ polygon.ps[3] = Point(959.246, 538.918);
+ new ShapeRef(router, polygon, 183);
+
+ // shapeRef184
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(999.246, 427.955);
+ polygon.ps[1] = Point(999.246, 467.955);
+ polygon.ps[2] = Point(959.246, 467.955);
+ polygon.ps[3] = Point(959.246, 427.955);
+ new ShapeRef(router, polygon, 184);
+
+ // shapeRef185
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(999.246, 312.918);
+ polygon.ps[1] = Point(999.246, 352.918);
+ polygon.ps[2] = Point(959.246, 352.918);
+ polygon.ps[3] = Point(959.246, 312.918);
+ new ShapeRef(router, polygon, 185);
+
+ // shapeRef186
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 300.918);
+ polygon.ps[1] = Point(27.2456, 320.918);
+ polygon.ps[2] = Point(7.24557, 320.918);
+ polygon.ps[3] = Point(7.24557, 300.918);
+ new ShapeRef(router, polygon, 186);
+
+ // shapeRef187
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 300.918);
+ polygon.ps[1] = Point(203.246, 320.918);
+ polygon.ps[2] = Point(183.246, 320.918);
+ polygon.ps[3] = Point(183.246, 300.918);
+ new ShapeRef(router, polygon, 187);
+
+ // shapeRef188
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 300.918);
+ polygon.ps[1] = Point(343.246, 320.918);
+ polygon.ps[2] = Point(323.246, 320.918);
+ polygon.ps[3] = Point(323.246, 300.918);
+ new ShapeRef(router, polygon, 188);
+
+ // shapeRef189
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 300.918);
+ polygon.ps[1] = Point(499.246, 320.918);
+ polygon.ps[2] = Point(479.246, 320.918);
+ polygon.ps[3] = Point(479.246, 300.918);
+ new ShapeRef(router, polygon, 189);
+
+ // shapeRef190
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 300.918);
+ polygon.ps[1] = Point(655.246, 320.918);
+ polygon.ps[2] = Point(635.246, 320.918);
+ polygon.ps[3] = Point(635.246, 300.918);
+ new ShapeRef(router, polygon, 190);
+
+ // shapeRef191
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 300.918);
+ polygon.ps[1] = Point(811.246, 320.918);
+ polygon.ps[2] = Point(791.246, 320.918);
+ polygon.ps[3] = Point(791.246, 300.918);
+ new ShapeRef(router, polygon, 191);
+
+ // shapeRef192
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 300.918);
+ polygon.ps[1] = Point(967.246, 320.918);
+ polygon.ps[2] = Point(947.246, 320.918);
+ polygon.ps[3] = Point(947.246, 300.918);
+ new ShapeRef(router, polygon, 192);
+
+ // shapeRef193
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 440.918);
+ polygon.ps[1] = Point(27.2456, 460.918);
+ polygon.ps[2] = Point(7.24557, 460.918);
+ polygon.ps[3] = Point(7.24557, 440.918);
+ new ShapeRef(router, polygon, 193);
+
+ // shapeRef194
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 440.918);
+ polygon.ps[1] = Point(203.246, 460.918);
+ polygon.ps[2] = Point(183.246, 460.918);
+ polygon.ps[3] = Point(183.246, 440.918);
+ new ShapeRef(router, polygon, 194);
+
+ // shapeRef195
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 440.918);
+ polygon.ps[1] = Point(343.246, 460.918);
+ polygon.ps[2] = Point(323.246, 460.918);
+ polygon.ps[3] = Point(323.246, 440.918);
+ new ShapeRef(router, polygon, 195);
+
+ // shapeRef196
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 440.918);
+ polygon.ps[1] = Point(499.246, 460.918);
+ polygon.ps[2] = Point(479.246, 460.918);
+ polygon.ps[3] = Point(479.246, 440.918);
+ new ShapeRef(router, polygon, 196);
+
+ // shapeRef197
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 440.918);
+ polygon.ps[1] = Point(811.246, 460.918);
+ polygon.ps[2] = Point(791.246, 460.918);
+ polygon.ps[3] = Point(791.246, 440.918);
+ new ShapeRef(router, polygon, 197);
+
+ // shapeRef198
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 440.918);
+ polygon.ps[1] = Point(967.246, 460.918);
+ polygon.ps[2] = Point(947.246, 460.918);
+ polygon.ps[3] = Point(947.246, 440.918);
+ new ShapeRef(router, polygon, 198);
+
+ // shapeRef199
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 440.918);
+ polygon.ps[1] = Point(655.246, 460.918);
+ polygon.ps[2] = Point(635.246, 460.918);
+ polygon.ps[3] = Point(635.246, 440.918);
+ new ShapeRef(router, polygon, 199);
+
+ // shapeRef200
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 548.918);
+ polygon.ps[1] = Point(27.2456, 568.918);
+ polygon.ps[2] = Point(7.24557, 568.918);
+ polygon.ps[3] = Point(7.24557, 548.918);
+ new ShapeRef(router, polygon, 200);
+
+ // shapeRef201
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 548.918);
+ polygon.ps[1] = Point(203.246, 568.918);
+ polygon.ps[2] = Point(183.246, 568.918);
+ polygon.ps[3] = Point(183.246, 548.918);
+ new ShapeRef(router, polygon, 201);
+
+ // shapeRef202
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 548.918);
+ polygon.ps[1] = Point(343.246, 568.918);
+ polygon.ps[2] = Point(323.246, 568.918);
+ polygon.ps[3] = Point(323.246, 548.918);
+ new ShapeRef(router, polygon, 202);
+
+ // shapeRef203
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 548.918);
+ polygon.ps[1] = Point(499.246, 568.918);
+ polygon.ps[2] = Point(479.246, 568.918);
+ polygon.ps[3] = Point(479.246, 548.918);
+ new ShapeRef(router, polygon, 203);
+
+ // shapeRef204
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 548.918);
+ polygon.ps[1] = Point(655.246, 568.918);
+ polygon.ps[2] = Point(635.246, 568.918);
+ polygon.ps[3] = Point(635.246, 548.918);
+ new ShapeRef(router, polygon, 204);
+
+ // shapeRef205
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 548.918);
+ polygon.ps[1] = Point(811.246, 568.918);
+ polygon.ps[2] = Point(791.246, 568.918);
+ polygon.ps[3] = Point(791.246, 548.918);
+ new ShapeRef(router, polygon, 205);
+
+ // shapeRef206
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 548.918);
+ polygon.ps[1] = Point(967.246, 568.918);
+ polygon.ps[2] = Point(947.246, 568.918);
+ polygon.ps[3] = Point(947.246, 548.918);
+ new ShapeRef(router, polygon, 206);
+
+ // shapeRef207
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(27.2456, 644.918);
+ polygon.ps[1] = Point(27.2456, 664.918);
+ polygon.ps[2] = Point(7.24557, 664.918);
+ polygon.ps[3] = Point(7.24557, 644.918);
+ new ShapeRef(router, polygon, 207);
+
+ // shapeRef208
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(203.246, 644.918);
+ polygon.ps[1] = Point(203.246, 664.918);
+ polygon.ps[2] = Point(183.246, 664.918);
+ polygon.ps[3] = Point(183.246, 644.918);
+ new ShapeRef(router, polygon, 208);
+
+ // shapeRef209
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(343.246, 644.918);
+ polygon.ps[1] = Point(343.246, 664.918);
+ polygon.ps[2] = Point(323.246, 664.918);
+ polygon.ps[3] = Point(323.246, 644.918);
+ new ShapeRef(router, polygon, 209);
+
+ // shapeRef210
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(499.246, 644.918);
+ polygon.ps[1] = Point(499.246, 664.918);
+ polygon.ps[2] = Point(479.246, 664.918);
+ polygon.ps[3] = Point(479.246, 644.918);
+ new ShapeRef(router, polygon, 210);
+
+ // shapeRef211
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(655.246, 644.918);
+ polygon.ps[1] = Point(655.246, 664.918);
+ polygon.ps[2] = Point(635.246, 664.918);
+ polygon.ps[3] = Point(635.246, 644.918);
+ new ShapeRef(router, polygon, 211);
+
+ // shapeRef212
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(811.246, 644.918);
+ polygon.ps[1] = Point(811.246, 664.918);
+ polygon.ps[2] = Point(791.246, 664.918);
+ polygon.ps[3] = Point(791.246, 644.918);
+ new ShapeRef(router, polygon, 212);
+
+ // shapeRef213
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 644.918);
+ polygon.ps[1] = Point(967.246, 664.918);
+ polygon.ps[2] = Point(947.246, 664.918);
+ polygon.ps[3] = Point(947.246, 644.918);
+ new ShapeRef(router, polygon, 213);
+
+ // shapeRef214
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1243.25, 268.918);
+ polygon.ps[1] = Point(1243.25, 288.918);
+ polygon.ps[2] = Point(1223.25, 288.918);
+ polygon.ps[3] = Point(1223.25, 268.918);
+ new ShapeRef(router, polygon, 214);
+
+ // shapeRef215
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1243.25, 408.918);
+ polygon.ps[1] = Point(1243.25, 428.918);
+ polygon.ps[2] = Point(1223.25, 428.918);
+ polygon.ps[3] = Point(1223.25, 408.918);
+ new ShapeRef(router, polygon, 215);
+
+ // shapeRef216
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1243.25, 504.918);
+ polygon.ps[1] = Point(1243.25, 524.918);
+ polygon.ps[2] = Point(1223.25, 524.918);
+ polygon.ps[3] = Point(1223.25, 504.918);
+ new ShapeRef(router, polygon, 216);
+
+ // shapeRef217
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1243.25, 612.918);
+ polygon.ps[1] = Point(1243.25, 632.918);
+ polygon.ps[2] = Point(1223.25, 632.918);
+ polygon.ps[3] = Point(1223.25, 612.918);
+ new ShapeRef(router, polygon, 217);
+
+ // shapeRef218
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 708.918);
+ polygon.ps[1] = Point(967.246, 728.918);
+ polygon.ps[2] = Point(947.246, 728.918);
+ polygon.ps[3] = Point(947.246, 708.918);
+ new ShapeRef(router, polygon, 218);
+
+ // shapeRef219
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(967.246, 740.918);
+ polygon.ps[1] = Point(967.246, 760.918);
+ polygon.ps[2] = Point(947.246, 760.918);
+ polygon.ps[3] = Point(947.246, 740.918);
+ new ShapeRef(router, polygon, 219);
+
+ // shapeRef220
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1243.25, 708.918);
+ polygon.ps[1] = Point(1243.25, 728.918);
+ polygon.ps[2] = Point(1223.25, 728.918);
+ polygon.ps[3] = Point(1223.25, 708.918);
+ new ShapeRef(router, polygon, 220);
+
+ // shapeRef221
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 246.918);
+ polygon.ps[1] = Point(1303.25, 266.918);
+ polygon.ps[2] = Point(1283.25, 266.918);
+ polygon.ps[3] = Point(1283.25, 246.918);
+ new ShapeRef(router, polygon, 221);
+
+ // shapeRef222
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1303.25, 634.918);
+ polygon.ps[1] = Point(1303.25, 654.918);
+ polygon.ps[2] = Point(1283.25, 654.918);
+ polygon.ps[3] = Point(1283.25, 634.918);
+ new ShapeRef(router, polygon, 222);
+
+ // shapeRef223
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 236.918);
+ polygon.ps[1] = Point(77.2456, 256.918);
+ polygon.ps[2] = Point(57.2456, 256.918);
+ polygon.ps[3] = Point(57.2456, 236.918);
+ new ShapeRef(router, polygon, 223);
+
+ // shapeRef224
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(77.2456, 268.918);
+ polygon.ps[1] = Point(77.2456, 288.918);
+ polygon.ps[2] = Point(57.2456, 288.918);
+ polygon.ps[3] = Point(57.2456, 268.918);
+ new ShapeRef(router, polygon, 224);
+
+ // shapeRef225
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1159.25, 602.918);
+ polygon.ps[1] = Point(1159.25, 642.918);
+ polygon.ps[2] = Point(1103.25, 642.918);
+ polygon.ps[3] = Point(1103.25, 602.918);
+ new ShapeRef(router, polygon, 225);
+
+ // shapeRef226
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(955.246, 602.918);
+ polygon.ps[1] = Point(955.246, 642.918);
+ polygon.ps[2] = Point(899.246, 642.918);
+ polygon.ps[3] = Point(899.246, 602.918);
+ new ShapeRef(router, polygon, 226);
+
+ // shapeRef227
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(799.246, 602.918);
+ polygon.ps[1] = Point(799.246, 642.918);
+ polygon.ps[2] = Point(743.246, 642.918);
+ polygon.ps[3] = Point(743.246, 602.918);
+ new ShapeRef(router, polygon, 227);
+
+ // shapeRef228
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(643.246, 602.918);
+ polygon.ps[1] = Point(643.246, 642.918);
+ polygon.ps[2] = Point(587.246, 642.918);
+ polygon.ps[3] = Point(587.246, 602.918);
+ new ShapeRef(router, polygon, 228);
+
+ // shapeRef229
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(487.246, 602.918);
+ polygon.ps[1] = Point(487.246, 642.918);
+ polygon.ps[2] = Point(431.246, 642.918);
+ polygon.ps[3] = Point(431.246, 602.918);
+ new ShapeRef(router, polygon, 229);
+
+ // shapeRef230
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 602.918);
+ polygon.ps[1] = Point(331.246, 642.918);
+ polygon.ps[2] = Point(275.246, 642.918);
+ polygon.ps[3] = Point(275.246, 602.918);
+ new ShapeRef(router, polygon, 230);
+
+ // shapeRef231
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 634.918);
+ polygon.ps[1] = Point(173.246, 674.918);
+ polygon.ps[2] = Point(117.246, 674.918);
+ polygon.ps[3] = Point(117.246, 634.918);
+ new ShapeRef(router, polygon, 231);
+
+ // shapeRef232
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 698.918);
+ polygon.ps[1] = Point(907.246, 738.918);
+ polygon.ps[2] = Point(851.246, 738.918);
+ polygon.ps[3] = Point(851.246, 698.918);
+ new ShapeRef(router, polygon, 232);
+
+ // shapeRef233
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1231.25, 698.918);
+ polygon.ps[1] = Point(1231.25, 738.918);
+ polygon.ps[2] = Point(1175.25, 738.918);
+ polygon.ps[3] = Point(1175.25, 698.918);
+ new ShapeRef(router, polygon, 233);
+
+ // shapeRef234
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1291.25, 698.918);
+ polygon.ps[1] = Point(1291.25, 738.918);
+ polygon.ps[2] = Point(1235.25, 738.918);
+ polygon.ps[3] = Point(1235.25, 698.918);
+ new ShapeRef(router, polygon, 234);
+
+ // shapeRef235
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(622.941, 698.918);
+ polygon.ps[1] = Point(622.941, 738.918);
+ polygon.ps[2] = Point(566.941, 738.918);
+ polygon.ps[3] = Point(566.941, 698.918);
+ new ShapeRef(router, polygon, 235);
+
+ // shapeRef236
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(479.455, 698.918);
+ polygon.ps[1] = Point(479.455, 738.918);
+ polygon.ps[2] = Point(423.455, 738.918);
+ polygon.ps[3] = Point(423.455, 698.918);
+ new ShapeRef(router, polygon, 236);
+
+ // shapeRef237
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1399.25, 602.918);
+ polygon.ps[1] = Point(1399.25, 642.918);
+ polygon.ps[2] = Point(1343.25, 642.918);
+ polygon.ps[3] = Point(1343.25, 602.918);
+ new ShapeRef(router, polygon, 237);
+
+ // shapeRef238
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1447.25, 555.942);
+ polygon.ps[1] = Point(1447.25, 595.942);
+ polygon.ps[2] = Point(1391.25, 595.942);
+ polygon.ps[3] = Point(1391.25, 555.942);
+ new ShapeRef(router, polygon, 238);
+
+ // shapeRef239
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1159.25, 634.918);
+ polygon.ps[1] = Point(1159.25, 674.918);
+ polygon.ps[2] = Point(1103.25, 674.918);
+ polygon.ps[3] = Point(1103.25, 634.918);
+ new ShapeRef(router, polygon, 239);
+
+ // shapeRef240
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(955.246, 634.918);
+ polygon.ps[1] = Point(955.246, 674.918);
+ polygon.ps[2] = Point(899.246, 674.918);
+ polygon.ps[3] = Point(899.246, 634.918);
+ new ShapeRef(router, polygon, 240);
+
+ // shapeRef241
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(799.246, 634.918);
+ polygon.ps[1] = Point(799.246, 674.918);
+ polygon.ps[2] = Point(743.246, 674.918);
+ polygon.ps[3] = Point(743.246, 634.918);
+ new ShapeRef(router, polygon, 241);
+
+ // shapeRef242
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(643.246, 634.918);
+ polygon.ps[1] = Point(643.246, 674.918);
+ polygon.ps[2] = Point(587.246, 674.918);
+ polygon.ps[3] = Point(587.246, 634.918);
+ new ShapeRef(router, polygon, 242);
+
+ // shapeRef243
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(487.246, 634.918);
+ polygon.ps[1] = Point(487.246, 674.918);
+ polygon.ps[2] = Point(431.246, 674.918);
+ polygon.ps[3] = Point(431.246, 634.918);
+ new ShapeRef(router, polygon, 243);
+
+ // shapeRef244
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 634.918);
+ polygon.ps[1] = Point(331.246, 674.918);
+ polygon.ps[2] = Point(275.246, 674.918);
+ polygon.ps[3] = Point(275.246, 634.918);
+ new ShapeRef(router, polygon, 244);
+
+ // shapeRef245
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 602.918);
+ polygon.ps[1] = Point(173.246, 642.918);
+ polygon.ps[2] = Point(117.246, 642.918);
+ polygon.ps[3] = Point(117.246, 602.918);
+ new ShapeRef(router, polygon, 245);
+
+ // shapeRef246
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1447.25, 494.918);
+ polygon.ps[1] = Point(1447.25, 534.918);
+ polygon.ps[2] = Point(1391.25, 534.918);
+ polygon.ps[3] = Point(1391.25, 494.918);
+ new ShapeRef(router, polygon, 246);
+
+ // shapeRef247
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1159.25, 516.918);
+ polygon.ps[1] = Point(1159.25, 556.918);
+ polygon.ps[2] = Point(1103.25, 556.918);
+ polygon.ps[3] = Point(1103.25, 516.918);
+ new ShapeRef(router, polygon, 247);
+
+ // shapeRef248
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(955.246, 516.918);
+ polygon.ps[1] = Point(955.246, 556.918);
+ polygon.ps[2] = Point(899.246, 556.918);
+ polygon.ps[3] = Point(899.246, 516.918);
+ new ShapeRef(router, polygon, 248);
+
+ // shapeRef249
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(799.246, 516.918);
+ polygon.ps[1] = Point(799.246, 556.918);
+ polygon.ps[2] = Point(743.246, 556.918);
+ polygon.ps[3] = Point(743.246, 516.918);
+ new ShapeRef(router, polygon, 249);
+
+ // shapeRef250
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(643.246, 516.918);
+ polygon.ps[1] = Point(643.246, 556.918);
+ polygon.ps[2] = Point(587.246, 556.918);
+ polygon.ps[3] = Point(587.246, 516.918);
+ new ShapeRef(router, polygon, 250);
+
+ // shapeRef251
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(487.246, 516.918);
+ polygon.ps[1] = Point(487.246, 556.918);
+ polygon.ps[2] = Point(431.246, 556.918);
+ polygon.ps[3] = Point(431.246, 516.918);
+ new ShapeRef(router, polygon, 251);
+
+ // shapeRef252
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 516.918);
+ polygon.ps[1] = Point(331.246, 556.918);
+ polygon.ps[2] = Point(275.246, 556.918);
+ polygon.ps[3] = Point(275.246, 516.918);
+ new ShapeRef(router, polygon, 252);
+
+ // shapeRef253
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 516.918);
+ polygon.ps[1] = Point(173.246, 556.918);
+ polygon.ps[2] = Point(117.246, 556.918);
+ polygon.ps[3] = Point(117.246, 516.918);
+ new ShapeRef(router, polygon, 253);
+
+ // shapeRef254
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1321.25, 214.918);
+ polygon.ps[1] = Point(1321.25, 254.918);
+ polygon.ps[2] = Point(1265.25, 254.918);
+ polygon.ps[3] = Point(1265.25, 214.918);
+ new ShapeRef(router, polygon, 254);
+
+ // shapeRef255
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1111.25, 602.918);
+ polygon.ps[1] = Point(1111.25, 642.918);
+ polygon.ps[2] = Point(1055.25, 642.918);
+ polygon.ps[3] = Point(1055.25, 602.918);
+ new ShapeRef(router, polygon, 255);
+
+ // shapeRef256
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1447.25, 398.918);
+ polygon.ps[1] = Point(1447.25, 438.918);
+ polygon.ps[2] = Point(1391.25, 438.918);
+ polygon.ps[3] = Point(1391.25, 398.918);
+ new ShapeRef(router, polygon, 256);
+
+ // shapeRef257
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1447.25, 698.918);
+ polygon.ps[1] = Point(1447.25, 738.918);
+ polygon.ps[2] = Point(1391.25, 738.918);
+ polygon.ps[3] = Point(1391.25, 698.918);
+ new ShapeRef(router, polygon, 257);
+
+ // shapeRef258
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1507.25, 698.918);
+ polygon.ps[1] = Point(1507.25, 738.918);
+ polygon.ps[2] = Point(1451.25, 738.918);
+ polygon.ps[3] = Point(1451.25, 698.918);
+ new ShapeRef(router, polygon, 258);
+
+ // shapeRef259
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 698.918);
+ polygon.ps[1] = Point(751.246, 738.918);
+ polygon.ps[2] = Point(695.246, 738.918);
+ polygon.ps[3] = Point(695.246, 698.918);
+ new ShapeRef(router, polygon, 259);
+
+ // shapeRef260
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(955.246, 698.918);
+ polygon.ps[1] = Point(955.246, 738.918);
+ polygon.ps[2] = Point(899.246, 738.918);
+ polygon.ps[3] = Point(899.246, 698.918);
+ new ShapeRef(router, polygon, 260);
+
+ // shapeRef261
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 12.9179);
+ polygon.ps[1] = Point(173.246, 52.9179);
+ polygon.ps[2] = Point(117.246, 52.9179);
+ polygon.ps[3] = Point(117.246, 12.9179);
+ new ShapeRef(router, polygon, 261);
+
+ // shapeRef262
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 290.918);
+ polygon.ps[1] = Point(173.246, 330.918);
+ polygon.ps[2] = Point(117.246, 330.918);
+ polygon.ps[3] = Point(117.246, 290.918);
+ new ShapeRef(router, polygon, 262);
+
+ // shapeRef263
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1033.25, 214.918);
+ polygon.ps[1] = Point(1033.25, 254.918);
+ polygon.ps[2] = Point(977.246, 254.918);
+ polygon.ps[3] = Point(977.246, 214.918);
+ new ShapeRef(router, polygon, 263);
+
+ // shapeRef264
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(877.246, 214.918);
+ polygon.ps[1] = Point(877.246, 254.918);
+ polygon.ps[2] = Point(821.246, 254.918);
+ polygon.ps[3] = Point(821.246, 214.918);
+ new ShapeRef(router, polygon, 264);
+
+ // shapeRef265
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(721.246, 214.918);
+ polygon.ps[1] = Point(721.246, 254.918);
+ polygon.ps[2] = Point(665.246, 254.918);
+ polygon.ps[3] = Point(665.246, 214.918);
+ new ShapeRef(router, polygon, 265);
+
+ // shapeRef266
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(565.246, 214.918);
+ polygon.ps[1] = Point(565.246, 254.918);
+ polygon.ps[2] = Point(509.246, 254.918);
+ polygon.ps[3] = Point(509.246, 214.918);
+ new ShapeRef(router, polygon, 266);
+
+ // shapeRef267
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(409.246, 214.918);
+ polygon.ps[1] = Point(409.246, 254.918);
+ polygon.ps[2] = Point(353.246, 254.918);
+ polygon.ps[3] = Point(353.246, 214.918);
+ new ShapeRef(router, polygon, 267);
+
+ // shapeRef268
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 268.918);
+ polygon.ps[1] = Point(331.246, 308.918);
+ polygon.ps[2] = Point(275.246, 308.918);
+ polygon.ps[3] = Point(275.246, 268.918);
+ new ShapeRef(router, polygon, 268);
+
+ // shapeRef269
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1159.25, 698.918);
+ polygon.ps[1] = Point(1159.25, 738.918);
+ polygon.ps[2] = Point(1103.25, 738.918);
+ polygon.ps[3] = Point(1103.25, 698.918);
+ new ShapeRef(router, polygon, 269);
+
+ // shapeRef270
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 666.918);
+ polygon.ps[1] = Point(1063.25, 706.918);
+ polygon.ps[2] = Point(1007.25, 706.918);
+ polygon.ps[3] = Point(1007.25, 666.918);
+ new ShapeRef(router, polygon, 270);
+
+ // shapeRef271
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1159.25, 570.918);
+ polygon.ps[1] = Point(1159.25, 610.918);
+ polygon.ps[2] = Point(1103.25, 610.918);
+ polygon.ps[3] = Point(1103.25, 570.918);
+ new ShapeRef(router, polygon, 271);
+
+ // shapeRef272
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 602.918);
+ polygon.ps[1] = Point(1063.25, 642.918);
+ polygon.ps[2] = Point(1007.25, 642.918);
+ polygon.ps[3] = Point(1007.25, 602.918);
+ new ShapeRef(router, polygon, 272);
+
+ // shapeRef273
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 570.918);
+ polygon.ps[1] = Point(1063.25, 610.918);
+ polygon.ps[2] = Point(1007.25, 610.918);
+ polygon.ps[3] = Point(1007.25, 570.918);
+ new ShapeRef(router, polygon, 273);
+
+ // shapeRef274
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 494.918);
+ polygon.ps[1] = Point(1063.25, 534.918);
+ polygon.ps[2] = Point(1007.25, 534.918);
+ polygon.ps[3] = Point(1007.25, 494.918);
+ new ShapeRef(router, polygon, 274);
+
+ // shapeRef275
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 462.918);
+ polygon.ps[1] = Point(1063.25, 502.918);
+ polygon.ps[2] = Point(1007.25, 502.918);
+ polygon.ps[3] = Point(1007.25, 462.918);
+ new ShapeRef(router, polygon, 275);
+
+ // shapeRef276
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1159.25, 398.918);
+ polygon.ps[1] = Point(1159.25, 438.918);
+ polygon.ps[2] = Point(1103.25, 438.918);
+ polygon.ps[3] = Point(1103.25, 398.918);
+ new ShapeRef(router, polygon, 276);
+
+ // shapeRef277
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 398.918);
+ polygon.ps[1] = Point(1063.25, 438.918);
+ polygon.ps[2] = Point(1007.25, 438.918);
+ polygon.ps[3] = Point(1007.25, 398.918);
+ new ShapeRef(router, polygon, 277);
+
+ // shapeRef278
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 366.918);
+ polygon.ps[1] = Point(1063.25, 406.918);
+ polygon.ps[2] = Point(1007.25, 406.918);
+ polygon.ps[3] = Point(1007.25, 366.918);
+ new ShapeRef(router, polygon, 278);
+
+ // shapeRef279
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1033.25, 182.918);
+ polygon.ps[1] = Point(1033.25, 222.918);
+ polygon.ps[2] = Point(977.246, 222.918);
+ polygon.ps[3] = Point(977.246, 182.918);
+ new ShapeRef(router, polygon, 279);
+
+ // shapeRef280
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(985.246, 172.918);
+ polygon.ps[1] = Point(985.246, 212.918);
+ polygon.ps[2] = Point(929.246, 212.918);
+ polygon.ps[3] = Point(929.246, 172.918);
+ new ShapeRef(router, polygon, 280);
+
+ // shapeRef281
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(985.246, 108.918);
+ polygon.ps[1] = Point(985.246, 148.918);
+ polygon.ps[2] = Point(929.246, 148.918);
+ polygon.ps[3] = Point(929.246, 108.918);
+ new ShapeRef(router, polygon, 281);
+
+ // shapeRef282
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(955.246, 570.918);
+ polygon.ps[1] = Point(955.246, 610.918);
+ polygon.ps[2] = Point(899.246, 610.918);
+ polygon.ps[3] = Point(899.246, 570.918);
+ new ShapeRef(router, polygon, 282);
+
+ // shapeRef283
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 602.918);
+ polygon.ps[1] = Point(907.246, 642.918);
+ polygon.ps[2] = Point(851.246, 642.918);
+ polygon.ps[3] = Point(851.246, 602.918);
+ new ShapeRef(router, polygon, 283);
+
+ // shapeRef284
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 570.918);
+ polygon.ps[1] = Point(907.246, 610.918);
+ polygon.ps[2] = Point(851.246, 610.918);
+ polygon.ps[3] = Point(851.246, 570.918);
+ new ShapeRef(router, polygon, 284);
+
+ // shapeRef285
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 494.918);
+ polygon.ps[1] = Point(907.246, 534.918);
+ polygon.ps[2] = Point(851.246, 534.918);
+ polygon.ps[3] = Point(851.246, 494.918);
+ new ShapeRef(router, polygon, 285);
+
+ // shapeRef286
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 462.918);
+ polygon.ps[1] = Point(907.246, 502.918);
+ polygon.ps[2] = Point(851.246, 502.918);
+ polygon.ps[3] = Point(851.246, 462.918);
+ new ShapeRef(router, polygon, 286);
+
+ // shapeRef287
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(955.246, 398.918);
+ polygon.ps[1] = Point(955.246, 438.918);
+ polygon.ps[2] = Point(899.246, 438.918);
+ polygon.ps[3] = Point(899.246, 398.918);
+ new ShapeRef(router, polygon, 287);
+
+ // shapeRef288
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 398.918);
+ polygon.ps[1] = Point(907.246, 438.918);
+ polygon.ps[2] = Point(851.246, 438.918);
+ polygon.ps[3] = Point(851.246, 398.918);
+ new ShapeRef(router, polygon, 288);
+
+ // shapeRef289
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 366.918);
+ polygon.ps[1] = Point(907.246, 406.918);
+ polygon.ps[2] = Point(851.246, 406.918);
+ polygon.ps[3] = Point(851.246, 366.918);
+ new ShapeRef(router, polygon, 289);
+
+ // shapeRef290
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(877.246, 182.918);
+ polygon.ps[1] = Point(877.246, 222.918);
+ polygon.ps[2] = Point(821.246, 222.918);
+ polygon.ps[3] = Point(821.246, 182.918);
+ new ShapeRef(router, polygon, 290);
+
+ // shapeRef291
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(829.246, 172.918);
+ polygon.ps[1] = Point(829.246, 212.918);
+ polygon.ps[2] = Point(773.246, 212.918);
+ polygon.ps[3] = Point(773.246, 172.918);
+ new ShapeRef(router, polygon, 291);
+
+ // shapeRef292
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(829.246, 108.918);
+ polygon.ps[1] = Point(829.246, 148.918);
+ polygon.ps[2] = Point(773.246, 148.918);
+ polygon.ps[3] = Point(773.246, 108.918);
+ new ShapeRef(router, polygon, 292);
+
+ // shapeRef293
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(799.246, 570.918);
+ polygon.ps[1] = Point(799.246, 610.918);
+ polygon.ps[2] = Point(743.246, 610.918);
+ polygon.ps[3] = Point(743.246, 570.918);
+ new ShapeRef(router, polygon, 293);
+
+ // shapeRef294
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 602.918);
+ polygon.ps[1] = Point(751.246, 642.918);
+ polygon.ps[2] = Point(695.246, 642.918);
+ polygon.ps[3] = Point(695.246, 602.918);
+ new ShapeRef(router, polygon, 294);
+
+ // shapeRef295
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 570.918);
+ polygon.ps[1] = Point(751.246, 610.918);
+ polygon.ps[2] = Point(695.246, 610.918);
+ polygon.ps[3] = Point(695.246, 570.918);
+ new ShapeRef(router, polygon, 295);
+
+ // shapeRef296
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 494.918);
+ polygon.ps[1] = Point(751.246, 534.918);
+ polygon.ps[2] = Point(695.246, 534.918);
+ polygon.ps[3] = Point(695.246, 494.918);
+ new ShapeRef(router, polygon, 296);
+
+ // shapeRef297
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 462.918);
+ polygon.ps[1] = Point(751.246, 502.918);
+ polygon.ps[2] = Point(695.246, 502.918);
+ polygon.ps[3] = Point(695.246, 462.918);
+ new ShapeRef(router, polygon, 297);
+
+ // shapeRef298
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(799.246, 398.918);
+ polygon.ps[1] = Point(799.246, 438.918);
+ polygon.ps[2] = Point(743.246, 438.918);
+ polygon.ps[3] = Point(743.246, 398.918);
+ new ShapeRef(router, polygon, 298);
+
+ // shapeRef299
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 398.918);
+ polygon.ps[1] = Point(751.246, 438.918);
+ polygon.ps[2] = Point(695.246, 438.918);
+ polygon.ps[3] = Point(695.246, 398.918);
+ new ShapeRef(router, polygon, 299);
+
+ // shapeRef300
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 366.918);
+ polygon.ps[1] = Point(751.246, 406.918);
+ polygon.ps[2] = Point(695.246, 406.918);
+ polygon.ps[3] = Point(695.246, 366.918);
+ new ShapeRef(router, polygon, 300);
+
+ // shapeRef301
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(721.246, 182.918);
+ polygon.ps[1] = Point(721.246, 222.918);
+ polygon.ps[2] = Point(665.246, 222.918);
+ polygon.ps[3] = Point(665.246, 182.918);
+ new ShapeRef(router, polygon, 301);
+
+ // shapeRef302
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(673.246, 172.918);
+ polygon.ps[1] = Point(673.246, 212.918);
+ polygon.ps[2] = Point(617.246, 212.918);
+ polygon.ps[3] = Point(617.246, 172.918);
+ new ShapeRef(router, polygon, 302);
+
+ // shapeRef303
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(673.246, 108.918);
+ polygon.ps[1] = Point(673.246, 148.918);
+ polygon.ps[2] = Point(617.246, 148.918);
+ polygon.ps[3] = Point(617.246, 108.918);
+ new ShapeRef(router, polygon, 303);
+
+ // shapeRef304
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(643.246, 570.918);
+ polygon.ps[1] = Point(643.246, 610.918);
+ polygon.ps[2] = Point(587.246, 610.918);
+ polygon.ps[3] = Point(587.246, 570.918);
+ new ShapeRef(router, polygon, 304);
+
+ // shapeRef305
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 602.918);
+ polygon.ps[1] = Point(595.246, 642.918);
+ polygon.ps[2] = Point(539.246, 642.918);
+ polygon.ps[3] = Point(539.246, 602.918);
+ new ShapeRef(router, polygon, 305);
+
+ // shapeRef306
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 570.918);
+ polygon.ps[1] = Point(595.246, 610.918);
+ polygon.ps[2] = Point(539.246, 610.918);
+ polygon.ps[3] = Point(539.246, 570.918);
+ new ShapeRef(router, polygon, 306);
+
+ // shapeRef307
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(643.246, 466.951);
+ polygon.ps[1] = Point(643.246, 506.951);
+ polygon.ps[2] = Point(587.246, 506.951);
+ polygon.ps[3] = Point(587.246, 466.951);
+ new ShapeRef(router, polygon, 307);
+
+ // shapeRef308
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 494.918);
+ polygon.ps[1] = Point(595.246, 534.918);
+ polygon.ps[2] = Point(539.246, 534.918);
+ polygon.ps[3] = Point(539.246, 494.918);
+ new ShapeRef(router, polygon, 308);
+
+ // shapeRef309
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 462.918);
+ polygon.ps[1] = Point(595.246, 502.918);
+ polygon.ps[2] = Point(539.246, 502.918);
+ polygon.ps[3] = Point(539.246, 462.918);
+ new ShapeRef(router, polygon, 309);
+
+ // shapeRef310
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(643.246, 398.918);
+ polygon.ps[1] = Point(643.246, 438.918);
+ polygon.ps[2] = Point(587.246, 438.918);
+ polygon.ps[3] = Point(587.246, 398.918);
+ new ShapeRef(router, polygon, 310);
+
+ // shapeRef311
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 398.918);
+ polygon.ps[1] = Point(595.246, 438.918);
+ polygon.ps[2] = Point(539.246, 438.918);
+ polygon.ps[3] = Point(539.246, 398.918);
+ new ShapeRef(router, polygon, 311);
+
+ // shapeRef312
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 366.918);
+ polygon.ps[1] = Point(595.246, 406.918);
+ polygon.ps[2] = Point(539.246, 406.918);
+ polygon.ps[3] = Point(539.246, 366.918);
+ new ShapeRef(router, polygon, 312);
+
+ // shapeRef313
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(565.246, 182.918);
+ polygon.ps[1] = Point(565.246, 222.918);
+ polygon.ps[2] = Point(509.246, 222.918);
+ polygon.ps[3] = Point(509.246, 182.918);
+ new ShapeRef(router, polygon, 313);
+
+ // shapeRef314
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(517.246, 172.918);
+ polygon.ps[1] = Point(517.246, 212.918);
+ polygon.ps[2] = Point(461.246, 212.918);
+ polygon.ps[3] = Point(461.246, 172.918);
+ new ShapeRef(router, polygon, 314);
+
+ // shapeRef315
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(517.246, 108.918);
+ polygon.ps[1] = Point(517.246, 148.918);
+ polygon.ps[2] = Point(461.246, 148.918);
+ polygon.ps[3] = Point(461.246, 108.918);
+ new ShapeRef(router, polygon, 315);
+
+ // shapeRef316
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(487.246, 570.918);
+ polygon.ps[1] = Point(487.246, 610.918);
+ polygon.ps[2] = Point(431.246, 610.918);
+ polygon.ps[3] = Point(431.246, 570.918);
+ new ShapeRef(router, polygon, 316);
+
+ // shapeRef317
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 602.918);
+ polygon.ps[1] = Point(439.246, 642.918);
+ polygon.ps[2] = Point(383.246, 642.918);
+ polygon.ps[3] = Point(383.246, 602.918);
+ new ShapeRef(router, polygon, 317);
+
+ // shapeRef318
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 570.918);
+ polygon.ps[1] = Point(439.246, 610.918);
+ polygon.ps[2] = Point(383.246, 610.918);
+ polygon.ps[3] = Point(383.246, 570.918);
+ new ShapeRef(router, polygon, 318);
+
+ // shapeRef319
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 494.918);
+ polygon.ps[1] = Point(439.246, 534.918);
+ polygon.ps[2] = Point(383.246, 534.918);
+ polygon.ps[3] = Point(383.246, 494.918);
+ new ShapeRef(router, polygon, 319);
+
+ // shapeRef320
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 462.918);
+ polygon.ps[1] = Point(439.246, 502.918);
+ polygon.ps[2] = Point(383.246, 502.918);
+ polygon.ps[3] = Point(383.246, 462.918);
+ new ShapeRef(router, polygon, 320);
+
+ // shapeRef321
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(487.246, 398.918);
+ polygon.ps[1] = Point(487.246, 438.918);
+ polygon.ps[2] = Point(431.246, 438.918);
+ polygon.ps[3] = Point(431.246, 398.918);
+ new ShapeRef(router, polygon, 321);
+
+ // shapeRef322
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 398.918);
+ polygon.ps[1] = Point(439.246, 438.918);
+ polygon.ps[2] = Point(383.246, 438.918);
+ polygon.ps[3] = Point(383.246, 398.918);
+ new ShapeRef(router, polygon, 322);
+
+ // shapeRef323
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 366.918);
+ polygon.ps[1] = Point(439.246, 406.918);
+ polygon.ps[2] = Point(383.246, 406.918);
+ polygon.ps[3] = Point(383.246, 366.918);
+ new ShapeRef(router, polygon, 323);
+
+ // shapeRef324
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(409.246, 182.918);
+ polygon.ps[1] = Point(409.246, 222.918);
+ polygon.ps[2] = Point(353.246, 222.918);
+ polygon.ps[3] = Point(353.246, 182.918);
+ new ShapeRef(router, polygon, 324);
+
+ // shapeRef325
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(361.246, 172.918);
+ polygon.ps[1] = Point(361.246, 212.918);
+ polygon.ps[2] = Point(305.246, 212.918);
+ polygon.ps[3] = Point(305.246, 172.918);
+ new ShapeRef(router, polygon, 325);
+
+ // shapeRef326
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(361.246, 108.918);
+ polygon.ps[1] = Point(361.246, 148.918);
+ polygon.ps[2] = Point(305.246, 148.918);
+ polygon.ps[3] = Point(305.246, 108.918);
+ new ShapeRef(router, polygon, 326);
+
+ // shapeRef327
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 570.918);
+ polygon.ps[1] = Point(331.246, 610.918);
+ polygon.ps[2] = Point(275.246, 610.918);
+ polygon.ps[3] = Point(275.246, 570.918);
+ new ShapeRef(router, polygon, 327);
+
+ // shapeRef328
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 602.918);
+ polygon.ps[1] = Point(283.246, 642.918);
+ polygon.ps[2] = Point(227.246, 642.918);
+ polygon.ps[3] = Point(227.246, 602.918);
+ new ShapeRef(router, polygon, 328);
+
+ // shapeRef329
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 570.918);
+ polygon.ps[1] = Point(283.246, 610.918);
+ polygon.ps[2] = Point(227.246, 610.918);
+ polygon.ps[3] = Point(227.246, 570.918);
+ new ShapeRef(router, polygon, 329);
+
+ // shapeRef330
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 494.918);
+ polygon.ps[1] = Point(283.246, 534.918);
+ polygon.ps[2] = Point(227.246, 534.918);
+ polygon.ps[3] = Point(227.246, 494.918);
+ new ShapeRef(router, polygon, 330);
+
+ // shapeRef331
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 462.918);
+ polygon.ps[1] = Point(283.246, 502.918);
+ polygon.ps[2] = Point(227.246, 502.918);
+ polygon.ps[3] = Point(227.246, 462.918);
+ new ShapeRef(router, polygon, 331);
+
+ // shapeRef332
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 398.918);
+ polygon.ps[1] = Point(331.246, 438.918);
+ polygon.ps[2] = Point(275.246, 438.918);
+ polygon.ps[3] = Point(275.246, 398.918);
+ new ShapeRef(router, polygon, 332);
+
+ // shapeRef333
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 398.918);
+ polygon.ps[1] = Point(283.246, 438.918);
+ polygon.ps[2] = Point(227.246, 438.918);
+ polygon.ps[3] = Point(227.246, 398.918);
+ new ShapeRef(router, polygon, 333);
+
+ // shapeRef334
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 366.918);
+ polygon.ps[1] = Point(283.246, 406.918);
+ polygon.ps[2] = Point(227.246, 406.918);
+ polygon.ps[3] = Point(227.246, 366.918);
+ new ShapeRef(router, polygon, 334);
+
+ // shapeRef335
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(331.246, 236.918);
+ polygon.ps[1] = Point(331.246, 276.918);
+ polygon.ps[2] = Point(275.246, 276.918);
+ polygon.ps[3] = Point(275.246, 236.918);
+ new ShapeRef(router, polygon, 335);
+
+ // shapeRef336
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(221.246, 108.918);
+ polygon.ps[1] = Point(221.246, 148.918);
+ polygon.ps[2] = Point(165.246, 148.918);
+ polygon.ps[3] = Point(165.246, 108.918);
+ new ShapeRef(router, polygon, 336);
+
+ // shapeRef337
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(221.246, 172.918);
+ polygon.ps[1] = Point(221.246, 212.918);
+ polygon.ps[2] = Point(165.246, 212.918);
+ polygon.ps[3] = Point(165.246, 172.918);
+ new ShapeRef(router, polygon, 337);
+
+ // shapeRef338
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 570.918);
+ polygon.ps[1] = Point(173.246, 610.918);
+ polygon.ps[2] = Point(117.246, 610.918);
+ polygon.ps[3] = Point(117.246, 570.918);
+ new ShapeRef(router, polygon, 338);
+
+ // shapeRef339
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 602.918);
+ polygon.ps[1] = Point(125.246, 642.918);
+ polygon.ps[2] = Point(69.2456, 642.918);
+ polygon.ps[3] = Point(69.2456, 602.918);
+ new ShapeRef(router, polygon, 339);
+
+ // shapeRef340
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 570.918);
+ polygon.ps[1] = Point(125.246, 610.918);
+ polygon.ps[2] = Point(69.2456, 610.918);
+ polygon.ps[3] = Point(69.2456, 570.918);
+ new ShapeRef(router, polygon, 340);
+
+ // shapeRef341
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 494.918);
+ polygon.ps[1] = Point(125.246, 534.918);
+ polygon.ps[2] = Point(69.2456, 534.918);
+ polygon.ps[3] = Point(69.2456, 494.918);
+ new ShapeRef(router, polygon, 341);
+
+ // shapeRef342
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 462.918);
+ polygon.ps[1] = Point(125.246, 502.918);
+ polygon.ps[2] = Point(69.2456, 502.918);
+ polygon.ps[3] = Point(69.2456, 462.918);
+ new ShapeRef(router, polygon, 342);
+
+ // shapeRef343
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 398.918);
+ polygon.ps[1] = Point(173.246, 438.918);
+ polygon.ps[2] = Point(117.246, 438.918);
+ polygon.ps[3] = Point(117.246, 398.918);
+ new ShapeRef(router, polygon, 343);
+
+ // shapeRef344
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 398.918);
+ polygon.ps[1] = Point(125.246, 438.918);
+ polygon.ps[2] = Point(69.2456, 438.918);
+ polygon.ps[3] = Point(69.2456, 398.918);
+ new ShapeRef(router, polygon, 344);
+
+ // shapeRef345
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 366.918);
+ polygon.ps[1] = Point(125.246, 406.918);
+ polygon.ps[2] = Point(69.2456, 406.918);
+ polygon.ps[3] = Point(69.2456, 366.918);
+ new ShapeRef(router, polygon, 345);
+
+ // shapeRef346
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(45.2456, 172.918);
+ polygon.ps[1] = Point(45.2456, 212.918);
+ polygon.ps[2] = Point(-10.7544, 212.918);
+ polygon.ps[3] = Point(-10.7544, 172.918);
+ new ShapeRef(router, polygon, 346);
+
+ // shapeRef347
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(45.2456, 108.918);
+ polygon.ps[1] = Point(45.2456, 148.918);
+ polygon.ps[2] = Point(-10.7544, 148.918);
+ polygon.ps[3] = Point(-10.7544, 108.918);
+ new ShapeRef(router, polygon, 347);
+
+ // shapeRef348
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(313.246, 150.918);
+ polygon.ps[1] = Point(313.246, 190.918);
+ polygon.ps[2] = Point(257.246, 190.918);
+ polygon.ps[3] = Point(257.246, 150.918);
+ new ShapeRef(router, polygon, 348);
+
+ // shapeRef349
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(265.246, 66.9179);
+ polygon.ps[1] = Point(265.246, 106.918);
+ polygon.ps[2] = Point(209.246, 106.918);
+ polygon.ps[3] = Point(209.246, 66.9179);
+ new ShapeRef(router, polygon, 349);
+
+ // shapeRef350
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(265.246, 34.9179);
+ polygon.ps[1] = Point(265.246, 74.9179);
+ polygon.ps[2] = Point(209.246, 74.9179);
+ polygon.ps[3] = Point(209.246, 34.9179);
+ new ShapeRef(router, polygon, 350);
+
+ // shapeRef351
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 150.918);
+ polygon.ps[1] = Point(125.246, 190.918);
+ polygon.ps[2] = Point(69.2456, 190.918);
+ polygon.ps[3] = Point(69.2456, 150.918);
+ new ShapeRef(router, polygon, 351);
+
+ // shapeRef352
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 12.9179);
+ polygon.ps[1] = Point(125.246, 52.9179);
+ polygon.ps[2] = Point(69.2456, 52.9179);
+ polygon.ps[3] = Point(69.2456, 12.9179);
+ new ShapeRef(router, polygon, 352);
+
+ // shapeRef353
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, -19.0821);
+ polygon.ps[1] = Point(125.246, 20.9179);
+ polygon.ps[2] = Point(69.2456, 20.9179);
+ polygon.ps[3] = Point(69.2456, -19.0821);
+ new ShapeRef(router, polygon, 353);
+
+ // shapeRef354
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(408.962, -49.0821);
+ polygon.ps[1] = Point(408.962, -9.08205);
+ polygon.ps[2] = Point(352.962, -9.08205);
+ polygon.ps[3] = Point(352.962, -49.0821);
+ new ShapeRef(router, polygon, 354);
+
+ // shapeRef355
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(307.219, -49.0821);
+ polygon.ps[1] = Point(307.219, -9.08205);
+ polygon.ps[2] = Point(251.219, -9.08205);
+ polygon.ps[3] = Point(251.219, -49.0821);
+ new ShapeRef(router, polygon, 355);
+
+ // shapeRef356
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 290.918);
+ polygon.ps[1] = Point(125.246, 330.918);
+ polygon.ps[2] = Point(69.2456, 330.918);
+ polygon.ps[3] = Point(69.2456, 290.918);
+ new ShapeRef(router, polygon, 356);
+
+ // shapeRef357
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(221.246, 204.918);
+ polygon.ps[1] = Point(221.246, 244.918);
+ polygon.ps[2] = Point(165.246, 244.918);
+ polygon.ps[3] = Point(165.246, 204.918);
+ new ShapeRef(router, polygon, 357);
+
+ // shapeRef358
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(361.246, 204.918);
+ polygon.ps[1] = Point(361.246, 244.918);
+ polygon.ps[2] = Point(305.246, 244.918);
+ polygon.ps[3] = Point(305.246, 204.918);
+ new ShapeRef(router, polygon, 358);
+
+ // shapeRef359
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(517.246, 204.918);
+ polygon.ps[1] = Point(517.246, 244.918);
+ polygon.ps[2] = Point(461.246, 244.918);
+ polygon.ps[3] = Point(461.246, 204.918);
+ new ShapeRef(router, polygon, 359);
+
+ // shapeRef360
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(673.246, 204.918);
+ polygon.ps[1] = Point(673.246, 244.918);
+ polygon.ps[2] = Point(617.246, 244.918);
+ polygon.ps[3] = Point(617.246, 204.918);
+ new ShapeRef(router, polygon, 360);
+
+ // shapeRef361
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(829.246, 204.918);
+ polygon.ps[1] = Point(829.246, 244.918);
+ polygon.ps[2] = Point(773.246, 244.918);
+ polygon.ps[3] = Point(773.246, 204.918);
+ new ShapeRef(router, polygon, 361);
+
+ // shapeRef362
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(985.246, 204.918);
+ polygon.ps[1] = Point(985.246, 244.918);
+ polygon.ps[2] = Point(929.246, 244.918);
+ polygon.ps[3] = Point(929.246, 204.918);
+ new ShapeRef(router, polygon, 362);
+
+ // shapeRef363
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(45.2456, 344.918);
+ polygon.ps[1] = Point(45.2456, 384.918);
+ polygon.ps[2] = Point(-10.7544, 384.918);
+ polygon.ps[3] = Point(-10.7544, 344.918);
+ new ShapeRef(router, polygon, 363);
+
+ // shapeRef364
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 430.918);
+ polygon.ps[1] = Point(283.246, 470.918);
+ polygon.ps[2] = Point(227.246, 470.918);
+ polygon.ps[3] = Point(227.246, 430.918);
+ new ShapeRef(router, polygon, 364);
+
+ // shapeRef365
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 430.918);
+ polygon.ps[1] = Point(439.246, 470.918);
+ polygon.ps[2] = Point(383.246, 470.918);
+ polygon.ps[3] = Point(383.246, 430.918);
+ new ShapeRef(router, polygon, 365);
+
+ // shapeRef366
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 430.918);
+ polygon.ps[1] = Point(595.246, 470.918);
+ polygon.ps[2] = Point(539.246, 470.918);
+ polygon.ps[3] = Point(539.246, 430.918);
+ new ShapeRef(router, polygon, 366);
+
+ // shapeRef367
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 430.918);
+ polygon.ps[1] = Point(907.246, 470.918);
+ polygon.ps[2] = Point(851.246, 470.918);
+ polygon.ps[3] = Point(851.246, 430.918);
+ new ShapeRef(router, polygon, 367);
+
+ // shapeRef368
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 430.918);
+ polygon.ps[1] = Point(1063.25, 470.918);
+ polygon.ps[2] = Point(1007.25, 470.918);
+ polygon.ps[3] = Point(1007.25, 430.918);
+ new ShapeRef(router, polygon, 368);
+
+ // shapeRef369
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 430.918);
+ polygon.ps[1] = Point(751.246, 470.918);
+ polygon.ps[2] = Point(695.246, 470.918);
+ polygon.ps[3] = Point(695.246, 430.918);
+ new ShapeRef(router, polygon, 369);
+
+ // shapeRef370
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 538.918);
+ polygon.ps[1] = Point(125.246, 578.918);
+ polygon.ps[2] = Point(69.2456, 578.918);
+ polygon.ps[3] = Point(69.2456, 538.918);
+ new ShapeRef(router, polygon, 370);
+
+ // shapeRef371
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 538.918);
+ polygon.ps[1] = Point(283.246, 578.918);
+ polygon.ps[2] = Point(227.246, 578.918);
+ polygon.ps[3] = Point(227.246, 538.918);
+ new ShapeRef(router, polygon, 371);
+
+ // shapeRef372
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 538.918);
+ polygon.ps[1] = Point(439.246, 578.918);
+ polygon.ps[2] = Point(383.246, 578.918);
+ polygon.ps[3] = Point(383.246, 538.918);
+ new ShapeRef(router, polygon, 372);
+
+ // shapeRef373
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 538.918);
+ polygon.ps[1] = Point(595.246, 578.918);
+ polygon.ps[2] = Point(539.246, 578.918);
+ polygon.ps[3] = Point(539.246, 538.918);
+ new ShapeRef(router, polygon, 373);
+
+ // shapeRef374
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 538.918);
+ polygon.ps[1] = Point(751.246, 578.918);
+ polygon.ps[2] = Point(695.246, 578.918);
+ polygon.ps[3] = Point(695.246, 538.918);
+ new ShapeRef(router, polygon, 374);
+
+ // shapeRef375
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 538.918);
+ polygon.ps[1] = Point(907.246, 578.918);
+ polygon.ps[2] = Point(851.246, 578.918);
+ polygon.ps[3] = Point(851.246, 538.918);
+ new ShapeRef(router, polygon, 375);
+
+ // shapeRef376
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 538.918);
+ polygon.ps[1] = Point(1063.25, 578.918);
+ polygon.ps[2] = Point(1007.25, 578.918);
+ polygon.ps[3] = Point(1007.25, 538.918);
+ new ShapeRef(router, polygon, 376);
+
+ // shapeRef377
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(125.246, 634.918);
+ polygon.ps[1] = Point(125.246, 674.918);
+ polygon.ps[2] = Point(69.2456, 674.918);
+ polygon.ps[3] = Point(69.2456, 634.918);
+ new ShapeRef(router, polygon, 377);
+
+ // shapeRef378
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(283.246, 634.918);
+ polygon.ps[1] = Point(283.246, 674.918);
+ polygon.ps[2] = Point(227.246, 674.918);
+ polygon.ps[3] = Point(227.246, 634.918);
+ new ShapeRef(router, polygon, 378);
+
+ // shapeRef379
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(439.246, 634.918);
+ polygon.ps[1] = Point(439.246, 674.918);
+ polygon.ps[2] = Point(383.246, 674.918);
+ polygon.ps[3] = Point(383.246, 634.918);
+ new ShapeRef(router, polygon, 379);
+
+ // shapeRef380
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(595.246, 634.918);
+ polygon.ps[1] = Point(595.246, 674.918);
+ polygon.ps[2] = Point(539.246, 674.918);
+ polygon.ps[3] = Point(539.246, 634.918);
+ new ShapeRef(router, polygon, 380);
+
+ // shapeRef381
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(751.246, 634.918);
+ polygon.ps[1] = Point(751.246, 674.918);
+ polygon.ps[2] = Point(695.246, 674.918);
+ polygon.ps[3] = Point(695.246, 634.918);
+ new ShapeRef(router, polygon, 381);
+
+ // shapeRef382
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(907.246, 634.918);
+ polygon.ps[1] = Point(907.246, 674.918);
+ polygon.ps[2] = Point(851.246, 674.918);
+ polygon.ps[3] = Point(851.246, 634.918);
+ new ShapeRef(router, polygon, 382);
+
+ // shapeRef383
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 634.918);
+ polygon.ps[1] = Point(1063.25, 674.918);
+ polygon.ps[2] = Point(1007.25, 674.918);
+ polygon.ps[3] = Point(1007.25, 634.918);
+ new ShapeRef(router, polygon, 383);
+
+ // shapeRef384
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1261.25, 172.918);
+ polygon.ps[1] = Point(1261.25, 212.918);
+ polygon.ps[2] = Point(1205.25, 212.918);
+ polygon.ps[3] = Point(1205.25, 172.918);
+ new ShapeRef(router, polygon, 384);
+
+ // shapeRef385
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1351.25, 398.918);
+ polygon.ps[1] = Point(1351.25, 438.918);
+ polygon.ps[2] = Point(1295.25, 438.918);
+ polygon.ps[3] = Point(1295.25, 398.918);
+ new ShapeRef(router, polygon, 385);
+
+ // shapeRef386
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1351.25, 494.918);
+ polygon.ps[1] = Point(1351.25, 534.918);
+ polygon.ps[2] = Point(1295.25, 534.918);
+ polygon.ps[3] = Point(1295.25, 494.918);
+ new ShapeRef(router, polygon, 386);
+
+ // shapeRef387
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1351.25, 602.918);
+ polygon.ps[1] = Point(1351.25, 642.918);
+ polygon.ps[2] = Point(1295.25, 642.918);
+ polygon.ps[3] = Point(1295.25, 602.918);
+ new ShapeRef(router, polygon, 387);
+
+ // shapeRef388
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 698.918);
+ polygon.ps[1] = Point(1063.25, 738.918);
+ polygon.ps[2] = Point(1007.25, 738.918);
+ polygon.ps[3] = Point(1007.25, 698.918);
+ new ShapeRef(router, polygon, 388);
+
+ // shapeRef389
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1063.25, 730.918);
+ polygon.ps[1] = Point(1063.25, 770.918);
+ polygon.ps[2] = Point(1007.25, 770.918);
+ polygon.ps[3] = Point(1007.25, 730.918);
+ new ShapeRef(router, polygon, 389);
+
+ // shapeRef390
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1351.25, 698.918);
+ polygon.ps[1] = Point(1351.25, 738.918);
+ polygon.ps[2] = Point(1295.25, 738.918);
+ polygon.ps[3] = Point(1295.25, 698.918);
+ new ShapeRef(router, polygon, 390);
+
+ // shapeRef391
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1321.25, 182.918);
+ polygon.ps[1] = Point(1321.25, 222.918);
+ polygon.ps[2] = Point(1265.25, 222.918);
+ polygon.ps[3] = Point(1265.25, 182.918);
+ new ShapeRef(router, polygon, 391);
+
+ // shapeRef392
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1447.25, 624.918);
+ polygon.ps[1] = Point(1447.25, 664.918);
+ polygon.ps[2] = Point(1391.25, 664.918);
+ polygon.ps[3] = Point(1391.25, 624.918);
+ new ShapeRef(router, polygon, 392);
+
+ // shapeRef393
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 226.918);
+ polygon.ps[1] = Point(173.246, 266.918);
+ polygon.ps[2] = Point(117.246, 266.918);
+ polygon.ps[3] = Point(117.246, 226.918);
+ new ShapeRef(router, polygon, 393);
+
+ // shapeRef394
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(173.246, 258.918);
+ polygon.ps[1] = Point(173.246, 298.918);
+ polygon.ps[2] = Point(117.246, 298.918);
+ polygon.ps[3] = Point(117.246, 258.918);
+ new ShapeRef(router, polygon, 394);
+
+ // shapeRef395
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(372.466, 14.9179);
+ polygon.ps[1] = Point(372.466, 54.9179);
+ polygon.ps[2] = Point(312.466, 54.9179);
+ polygon.ps[3] = Point(312.466, 14.9179);
+ new ShapeRef(router, polygon, 395);
+
+ // shapeRef396
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(47.2456, -91.0821);
+ polygon.ps[1] = Point(47.2456, -51.0821);
+ polygon.ps[2] = Point(-12.7544, -51.0821);
+ polygon.ps[3] = Point(-12.7544, -91.0821);
+ new ShapeRef(router, polygon, 396);
+
+ // shapeRef397
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(372.466, 66.9179);
+ polygon.ps[1] = Point(372.466, 106.918);
+ polygon.ps[2] = Point(312.466, 106.918);
+ polygon.ps[3] = Point(312.466, 66.9179);
+ new ShapeRef(router, polygon, 397);
+
+ // connRef398
+ connRef = new ConnRef(router, 398);
+ srcPt = ConnEnd(Point(982, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef399
+ connRef = new ConnRef(router, 399);
+ srcPt = ConnEnd(Point(840, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef400
+ connRef = new ConnRef(router, 400);
+ srcPt = ConnEnd(Point(699, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef401
+ connRef = new ConnRef(router, 401);
+ srcPt = ConnEnd(Point(557, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef402
+ connRef = new ConnRef(router, 402);
+ srcPt = ConnEnd(Point(415, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef403
+ connRef = new ConnRef(router, 403);
+ srcPt = ConnEnd(Point(273, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef404
+ connRef = new ConnRef(router, 404);
+ srcPt = ConnEnd(Point(132, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef405
+ connRef = new ConnRef(router, 405);
+ srcPt = ConnEnd(Point(1203.25, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1227, 632), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef406
+ connRef = new ConnRef(router, 406);
+ srcPt = ConnEnd(Point(1209, 586), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef407
+ connRef = new ConnRef(router, 407);
+ srcPt = ConnEnd(Point(1203.25, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1209, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef408
+ connRef = new ConnRef(router, 408);
+ srcPt = ConnEnd(Point(1203.25, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1159, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef409
+ connRef = new ConnRef(router, 409);
+ srcPt = ConnEnd(Point(1209, 566), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef410
+ connRef = new ConnRef(router, 410);
+ srcPt = ConnEnd(Point(1209, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef411
+ connRef = new ConnRef(router, 411);
+ srcPt = ConnEnd(Point(1159, 575), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef412
+ connRef = new ConnRef(router, 412);
+ srcPt = ConnEnd(Point(1209, 585), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef413
+ connRef = new ConnRef(router, 413);
+ srcPt = ConnEnd(Point(1209, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef414
+ connRef = new ConnRef(router, 414);
+ srcPt = ConnEnd(Point(1209, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef415
+ connRef = new ConnRef(router, 415);
+ srcPt = ConnEnd(Point(1159, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef416
+ connRef = new ConnRef(router, 416);
+ srcPt = ConnEnd(Point(1209, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef417
+ connRef = new ConnRef(router, 417);
+ srcPt = ConnEnd(Point(1159, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef418
+ connRef = new ConnRef(router, 418);
+ srcPt = ConnEnd(Point(1449.25, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1299, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef419
+ connRef = new ConnRef(router, 419);
+ srcPt = ConnEnd(Point(1171.25, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1059, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef420
+ connRef = new ConnRef(router, 420);
+ srcPt = ConnEnd(Point(1171.25, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1109, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef421
+ connRef = new ConnRef(router, 421);
+ srcPt = ConnEnd(Point(1050, 634), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1171.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef422
+ connRef = new ConnRef(router, 422);
+ srcPt = ConnEnd(Point(790, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef423
+ connRef = new ConnRef(router, 423);
+ srcPt = ConnEnd(Point(1059, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1171.25, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef424
+ connRef = new ConnRef(router, 424);
+ srcPt = ConnEnd(Point(1109, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1171.25, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef425
+ connRef = new ConnRef(router, 425);
+ srcPt = ConnEnd(Point(533, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef426
+ connRef = new ConnRef(router, 426);
+ srcPt = ConnEnd(Point(390, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef427
+ connRef = new ConnRef(router, 427);
+ srcPt = ConnEnd(Point(1247, 632), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1449.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef428
+ connRef = new ConnRef(router, 428);
+ srcPt = ConnEnd(Point(982, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef429
+ connRef = new ConnRef(router, 429);
+ srcPt = ConnEnd(Point(840, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef430
+ connRef = new ConnRef(router, 430);
+ srcPt = ConnEnd(Point(699, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef431
+ connRef = new ConnRef(router, 431);
+ srcPt = ConnEnd(Point(557, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef432
+ connRef = new ConnRef(router, 432);
+ srcPt = ConnEnd(Point(415, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef433
+ connRef = new ConnRef(router, 433);
+ srcPt = ConnEnd(Point(273, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef434
+ connRef = new ConnRef(router, 434);
+ srcPt = ConnEnd(Point(132, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef435
+ connRef = new ConnRef(router, 435);
+ srcPt = ConnEnd(Point(982, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef436
+ connRef = new ConnRef(router, 436);
+ srcPt = ConnEnd(Point(982, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef437
+ connRef = new ConnRef(router, 437);
+ srcPt = ConnEnd(Point(840, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef438
+ connRef = new ConnRef(router, 438);
+ srcPt = ConnEnd(Point(840, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef439
+ connRef = new ConnRef(router, 439);
+ srcPt = ConnEnd(Point(699, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef440
+ connRef = new ConnRef(router, 440);
+ srcPt = ConnEnd(Point(699, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef441
+ connRef = new ConnRef(router, 441);
+ srcPt = ConnEnd(Point(557, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef442
+ connRef = new ConnRef(router, 442);
+ srcPt = ConnEnd(Point(557, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef443
+ connRef = new ConnRef(router, 443);
+ srcPt = ConnEnd(Point(415, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef444
+ connRef = new ConnRef(router, 444);
+ srcPt = ConnEnd(Point(415, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef445
+ connRef = new ConnRef(router, 445);
+ srcPt = ConnEnd(Point(273, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef446
+ connRef = new ConnRef(router, 446);
+ srcPt = ConnEnd(Point(273, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef447
+ connRef = new ConnRef(router, 447);
+ srcPt = ConnEnd(Point(132, 496), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef448
+ connRef = new ConnRef(router, 448);
+ srcPt = ConnEnd(Point(132, 516), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef449
+ connRef = new ConnRef(router, 449);
+ srcPt = ConnEnd(Point(1219, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef450
+ connRef = new ConnRef(router, 450);
+ srcPt = ConnEnd(Point(1199, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef451
+ connRef = new ConnRef(router, 451);
+ srcPt = ConnEnd(Point(1199, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef452
+ connRef = new ConnRef(router, 452);
+ srcPt = ConnEnd(Point(1209, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef453
+ connRef = new ConnRef(router, 453);
+ srcPt = ConnEnd(Point(1299, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1449.25, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef454
+ connRef = new ConnRef(router, 454);
+ srcPt = ConnEnd(Point(649, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef455
+ connRef = new ConnRef(router, 455);
+ srcPt = ConnEnd(Point(840, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef456
+ connRef = new ConnRef(router, 456);
+ srcPt = ConnEnd(Point(132, 195), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef457
+ connRef = new ConnRef(router, 457);
+ srcPt = ConnEnd(Point(132, 338), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef458
+ connRef = new ConnRef(router, 458);
+ srcPt = ConnEnd(Point(992, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef459
+ connRef = new ConnRef(router, 459);
+ srcPt = ConnEnd(Point(850, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef460
+ connRef = new ConnRef(router, 460);
+ srcPt = ConnEnd(Point(709, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef461
+ connRef = new ConnRef(router, 461);
+ srcPt = ConnEnd(Point(567, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef462
+ connRef = new ConnRef(router, 462);
+ srcPt = ConnEnd(Point(425, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef463
+ connRef = new ConnRef(router, 463);
+ srcPt = ConnEnd(Point(273, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef464
+ connRef = new ConnRef(router, 464);
+ srcPt = ConnEnd(Point(982, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef465
+ connRef = new ConnRef(router, 465);
+ srcPt = ConnEnd(Point(932, 668), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef466
+ connRef = new ConnRef(router, 466);
+ srcPt = ConnEnd(Point(982, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef467
+ connRef = new ConnRef(router, 467);
+ srcPt = ConnEnd(Point(982, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef468
+ connRef = new ConnRef(router, 468);
+ srcPt = ConnEnd(Point(932, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef469
+ connRef = new ConnRef(router, 469);
+ srcPt = ConnEnd(Point(932, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef470
+ connRef = new ConnRef(router, 470);
+ srcPt = ConnEnd(Point(932, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef471
+ connRef = new ConnRef(router, 471);
+ srcPt = ConnEnd(Point(932, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef472
+ connRef = new ConnRef(router, 472);
+ srcPt = ConnEnd(Point(932, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef473
+ connRef = new ConnRef(router, 473);
+ srcPt = ConnEnd(Point(932, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef474
+ connRef = new ConnRef(router, 474);
+ srcPt = ConnEnd(Point(932, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef475
+ connRef = new ConnRef(router, 475);
+ srcPt = ConnEnd(Point(932, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef476
+ connRef = new ConnRef(router, 476);
+ srcPt = ConnEnd(Point(982, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef477
+ connRef = new ConnRef(router, 477);
+ srcPt = ConnEnd(Point(982, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef478
+ connRef = new ConnRef(router, 478);
+ srcPt = ConnEnd(Point(932, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef479
+ connRef = new ConnRef(router, 479);
+ srcPt = ConnEnd(Point(932, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef480
+ connRef = new ConnRef(router, 480);
+ srcPt = ConnEnd(Point(932, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef481
+ connRef = new ConnRef(router, 481);
+ srcPt = ConnEnd(Point(932, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef482
+ connRef = new ConnRef(router, 482);
+ srcPt = ConnEnd(Point(992, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef483
+ connRef = new ConnRef(router, 483);
+ srcPt = ConnEnd(Point(942, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef484
+ connRef = new ConnRef(router, 484);
+ srcPt = ConnEnd(Point(942, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef485
+ connRef = new ConnRef(router, 485);
+ srcPt = ConnEnd(Point(840, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef486
+ connRef = new ConnRef(router, 486);
+ srcPt = ConnEnd(Point(840, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef487
+ connRef = new ConnRef(router, 487);
+ srcPt = ConnEnd(Point(790, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef488
+ connRef = new ConnRef(router, 488);
+ srcPt = ConnEnd(Point(790, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef489
+ connRef = new ConnRef(router, 489);
+ srcPt = ConnEnd(Point(790, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef490
+ connRef = new ConnRef(router, 490);
+ srcPt = ConnEnd(Point(790, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef491
+ connRef = new ConnRef(router, 491);
+ srcPt = ConnEnd(Point(790, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef492
+ connRef = new ConnRef(router, 492);
+ srcPt = ConnEnd(Point(790, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef493
+ connRef = new ConnRef(router, 493);
+ srcPt = ConnEnd(Point(790, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef494
+ connRef = new ConnRef(router, 494);
+ srcPt = ConnEnd(Point(790, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef495
+ connRef = new ConnRef(router, 495);
+ srcPt = ConnEnd(Point(840, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef496
+ connRef = new ConnRef(router, 496);
+ srcPt = ConnEnd(Point(840, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef497
+ connRef = new ConnRef(router, 497);
+ srcPt = ConnEnd(Point(790, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef498
+ connRef = new ConnRef(router, 498);
+ srcPt = ConnEnd(Point(790, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef499
+ connRef = new ConnRef(router, 499);
+ srcPt = ConnEnd(Point(790, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef500
+ connRef = new ConnRef(router, 500);
+ srcPt = ConnEnd(Point(790, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef501
+ connRef = new ConnRef(router, 501);
+ srcPt = ConnEnd(Point(850, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef502
+ connRef = new ConnRef(router, 502);
+ srcPt = ConnEnd(Point(800, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef503
+ connRef = new ConnRef(router, 503);
+ srcPt = ConnEnd(Point(800, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef504
+ connRef = new ConnRef(router, 504);
+ srcPt = ConnEnd(Point(699, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef505
+ connRef = new ConnRef(router, 505);
+ srcPt = ConnEnd(Point(699, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef506
+ connRef = new ConnRef(router, 506);
+ srcPt = ConnEnd(Point(649, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef507
+ connRef = new ConnRef(router, 507);
+ srcPt = ConnEnd(Point(649, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef508
+ connRef = new ConnRef(router, 508);
+ srcPt = ConnEnd(Point(649, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef509
+ connRef = new ConnRef(router, 509);
+ srcPt = ConnEnd(Point(649, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef510
+ connRef = new ConnRef(router, 510);
+ srcPt = ConnEnd(Point(649, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef511
+ connRef = new ConnRef(router, 511);
+ srcPt = ConnEnd(Point(649, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef512
+ connRef = new ConnRef(router, 512);
+ srcPt = ConnEnd(Point(649, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef513
+ connRef = new ConnRef(router, 513);
+ srcPt = ConnEnd(Point(649, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef514
+ connRef = new ConnRef(router, 514);
+ srcPt = ConnEnd(Point(699, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef515
+ connRef = new ConnRef(router, 515);
+ srcPt = ConnEnd(Point(699, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef516
+ connRef = new ConnRef(router, 516);
+ srcPt = ConnEnd(Point(649, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef517
+ connRef = new ConnRef(router, 517);
+ srcPt = ConnEnd(Point(649, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef518
+ connRef = new ConnRef(router, 518);
+ srcPt = ConnEnd(Point(649, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef519
+ connRef = new ConnRef(router, 519);
+ srcPt = ConnEnd(Point(649, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef520
+ connRef = new ConnRef(router, 520);
+ srcPt = ConnEnd(Point(709, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef521
+ connRef = new ConnRef(router, 521);
+ srcPt = ConnEnd(Point(659, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef522
+ connRef = new ConnRef(router, 522);
+ srcPt = ConnEnd(Point(659, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef523
+ connRef = new ConnRef(router, 523);
+ srcPt = ConnEnd(Point(557, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef524
+ connRef = new ConnRef(router, 524);
+ srcPt = ConnEnd(Point(557, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef525
+ connRef = new ConnRef(router, 525);
+ srcPt = ConnEnd(Point(507, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef526
+ connRef = new ConnRef(router, 526);
+ srcPt = ConnEnd(Point(507, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef527
+ connRef = new ConnRef(router, 527);
+ srcPt = ConnEnd(Point(507, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef528
+ connRef = new ConnRef(router, 528);
+ srcPt = ConnEnd(Point(507, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef529
+ connRef = new ConnRef(router, 529);
+ srcPt = ConnEnd(Point(557, 477), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef530
+ connRef = new ConnRef(router, 530);
+ srcPt = ConnEnd(Point(557, 497), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef531
+ connRef = new ConnRef(router, 531);
+ srcPt = ConnEnd(Point(507, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef532
+ connRef = new ConnRef(router, 532);
+ srcPt = ConnEnd(Point(507, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef533
+ connRef = new ConnRef(router, 533);
+ srcPt = ConnEnd(Point(507, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef534
+ connRef = new ConnRef(router, 534);
+ srcPt = ConnEnd(Point(507, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef535
+ connRef = new ConnRef(router, 535);
+ srcPt = ConnEnd(Point(557, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef536
+ connRef = new ConnRef(router, 536);
+ srcPt = ConnEnd(Point(557, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef537
+ connRef = new ConnRef(router, 537);
+ srcPt = ConnEnd(Point(507, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef538
+ connRef = new ConnRef(router, 538);
+ srcPt = ConnEnd(Point(507, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef539
+ connRef = new ConnRef(router, 539);
+ srcPt = ConnEnd(Point(507, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef540
+ connRef = new ConnRef(router, 540);
+ srcPt = ConnEnd(Point(507, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef541
+ connRef = new ConnRef(router, 541);
+ srcPt = ConnEnd(Point(567, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef542
+ connRef = new ConnRef(router, 542);
+ srcPt = ConnEnd(Point(517, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef543
+ connRef = new ConnRef(router, 543);
+ srcPt = ConnEnd(Point(517, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef544
+ connRef = new ConnRef(router, 544);
+ srcPt = ConnEnd(Point(415, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef545
+ connRef = new ConnRef(router, 545);
+ srcPt = ConnEnd(Point(415, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef546
+ connRef = new ConnRef(router, 546);
+ srcPt = ConnEnd(Point(365, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef547
+ connRef = new ConnRef(router, 547);
+ srcPt = ConnEnd(Point(365, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef548
+ connRef = new ConnRef(router, 548);
+ srcPt = ConnEnd(Point(365, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef549
+ connRef = new ConnRef(router, 549);
+ srcPt = ConnEnd(Point(365, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef550
+ connRef = new ConnRef(router, 550);
+ srcPt = ConnEnd(Point(365, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef551
+ connRef = new ConnRef(router, 551);
+ srcPt = ConnEnd(Point(365, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef552
+ connRef = new ConnRef(router, 552);
+ srcPt = ConnEnd(Point(365, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef553
+ connRef = new ConnRef(router, 553);
+ srcPt = ConnEnd(Point(365, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef554
+ connRef = new ConnRef(router, 554);
+ srcPt = ConnEnd(Point(415, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef555
+ connRef = new ConnRef(router, 555);
+ srcPt = ConnEnd(Point(415, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef556
+ connRef = new ConnRef(router, 556);
+ srcPt = ConnEnd(Point(365, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef557
+ connRef = new ConnRef(router, 557);
+ srcPt = ConnEnd(Point(365, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef558
+ connRef = new ConnRef(router, 558);
+ srcPt = ConnEnd(Point(365, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef559
+ connRef = new ConnRef(router, 559);
+ srcPt = ConnEnd(Point(365, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef560
+ connRef = new ConnRef(router, 560);
+ srcPt = ConnEnd(Point(425, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef561
+ connRef = new ConnRef(router, 561);
+ srcPt = ConnEnd(Point(375, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef562
+ connRef = new ConnRef(router, 562);
+ srcPt = ConnEnd(Point(375, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef563
+ connRef = new ConnRef(router, 563);
+ srcPt = ConnEnd(Point(273, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef564
+ connRef = new ConnRef(router, 564);
+ srcPt = ConnEnd(Point(273, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef565
+ connRef = new ConnRef(router, 565);
+ srcPt = ConnEnd(Point(223, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef566
+ connRef = new ConnRef(router, 566);
+ srcPt = ConnEnd(Point(223, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef567
+ connRef = new ConnRef(router, 567);
+ srcPt = ConnEnd(Point(223, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef568
+ connRef = new ConnRef(router, 568);
+ srcPt = ConnEnd(Point(223, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef569
+ connRef = new ConnRef(router, 569);
+ srcPt = ConnEnd(Point(223, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef570
+ connRef = new ConnRef(router, 570);
+ srcPt = ConnEnd(Point(223, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef571
+ connRef = new ConnRef(router, 571);
+ srcPt = ConnEnd(Point(223, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef572
+ connRef = new ConnRef(router, 572);
+ srcPt = ConnEnd(Point(223, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef573
+ connRef = new ConnRef(router, 573);
+ srcPt = ConnEnd(Point(273, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef574
+ connRef = new ConnRef(router, 574);
+ srcPt = ConnEnd(Point(273, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef575
+ connRef = new ConnRef(router, 575);
+ srcPt = ConnEnd(Point(223, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef576
+ connRef = new ConnRef(router, 576);
+ srcPt = ConnEnd(Point(223, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef577
+ connRef = new ConnRef(router, 577);
+ srcPt = ConnEnd(Point(223, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef578
+ connRef = new ConnRef(router, 578);
+ srcPt = ConnEnd(Point(223, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef579
+ connRef = new ConnRef(router, 579);
+ srcPt = ConnEnd(Point(273, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef580
+ connRef = new ConnRef(router, 580);
+ srcPt = ConnEnd(Point(233, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef581
+ connRef = new ConnRef(router, 581);
+ srcPt = ConnEnd(Point(233, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef582
+ connRef = new ConnRef(router, 582);
+ srcPt = ConnEnd(Point(132, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef583
+ connRef = new ConnRef(router, 583);
+ srcPt = ConnEnd(Point(132, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef584
+ connRef = new ConnRef(router, 584);
+ srcPt = ConnEnd(Point(82, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef585
+ connRef = new ConnRef(router, 585);
+ srcPt = ConnEnd(Point(82, 596), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef586
+ connRef = new ConnRef(router, 586);
+ srcPt = ConnEnd(Point(82, 557), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef587
+ connRef = new ConnRef(router, 587);
+ srcPt = ConnEnd(Point(82, 577), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef588
+ connRef = new ConnRef(router, 588);
+ srcPt = ConnEnd(Point(82, 485), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef589
+ connRef = new ConnRef(router, 589);
+ srcPt = ConnEnd(Point(82, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef590
+ connRef = new ConnRef(router, 590);
+ srcPt = ConnEnd(Point(82, 466), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef591
+ connRef = new ConnRef(router, 591);
+ srcPt = ConnEnd(Point(82, 486), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef592
+ connRef = new ConnRef(router, 592);
+ srcPt = ConnEnd(Point(132, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef593
+ connRef = new ConnRef(router, 593);
+ srcPt = ConnEnd(Point(132, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef594
+ connRef = new ConnRef(router, 594);
+ srcPt = ConnEnd(Point(82, 394), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef595
+ connRef = new ConnRef(router, 595);
+ srcPt = ConnEnd(Point(82, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef596
+ connRef = new ConnRef(router, 596);
+ srcPt = ConnEnd(Point(82, 375), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef597
+ connRef = new ConnRef(router, 597);
+ srcPt = ConnEnd(Point(82, 395), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef598
+ connRef = new ConnRef(router, 598);
+ srcPt = ConnEnd(Point(72, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef599
+ connRef = new ConnRef(router, 599);
+ srcPt = ConnEnd(Point(72, 290), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef600
+ connRef = new ConnRef(router, 600);
+ srcPt = ConnEnd(Point(245, 207), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 96.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef601
+ connRef = new ConnRef(router, 601);
+ srcPt = ConnEnd(Point(245, 227), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef602
+ connRef = new ConnRef(router, 602);
+ srcPt = ConnEnd(Point(195, 217), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 96.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef603
+ connRef = new ConnRef(router, 603);
+ srcPt = ConnEnd(Point(195, 237), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef604
+ connRef = new ConnRef(router, 604);
+ srcPt = ConnEnd(Point(195, 198), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 96.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef605
+ connRef = new ConnRef(router, 605);
+ srcPt = ConnEnd(Point(195, 218), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef606
+ connRef = new ConnRef(router, 606);
+ srcPt = ConnEnd(Point(82, 214), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef607
+ connRef = new ConnRef(router, 607);
+ srcPt = ConnEnd(Point(82, 195), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef608
+ connRef = new ConnRef(router, 608);
+ srcPt = ConnEnd(Point(82, 176), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef609
+ connRef = new ConnRef(router, 609);
+ srcPt = ConnEnd(Point(319, 135), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(319.219, -51.0821), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef610
+ connRef = new ConnRef(router, 610);
+ srcPt = ConnEnd(Point(220, 135), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 125.987), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef611
+ connRef = new ConnRef(router, 611);
+ srcPt = ConnEnd(Point(220, 155), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(319.219, -7.08205), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef612
+ connRef = new ConnRef(router, 612);
+ srcPt = ConnEnd(Point(220, 155), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 96.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef613
+ connRef = new ConnRef(router, 613);
+ srcPt = ConnEnd(Point(220, 135), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(319.219, -51.0821), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef614
+ connRef = new ConnRef(router, 614);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 318), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef615
+ connRef = new ConnRef(router, 615);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(213, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef616
+ connRef = new ConnRef(router, 616);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(355, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef617
+ connRef = new ConnRef(router, 617);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(497, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef618
+ connRef = new ConnRef(router, 618);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(639, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef619
+ connRef = new ConnRef(router, 619);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(780, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef620
+ connRef = new ConnRef(router, 620);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(922, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef621
+ connRef = new ConnRef(router, 621);
+ srcPt = ConnEnd(Point(1149, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef622
+ connRef = new ConnRef(router, 622);
+ srcPt = ConnEnd(Point(1199, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef623
+ connRef = new ConnRef(router, 623);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 280), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef624
+ connRef = new ConnRef(router, 624);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 299), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef625
+ connRef = new ConnRef(router, 625);
+ srcPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 318), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef626
+ connRef = new ConnRef(router, 626);
+ srcPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 280), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef627
+ connRef = new ConnRef(router, 627);
+ srcPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 299), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef628
+ connRef = new ConnRef(router, 628);
+ srcPt = ConnEnd(Point(72, 423), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef629
+ connRef = new ConnRef(router, 629);
+ srcPt = ConnEnd(Point(92, 423), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef630
+ connRef = new ConnRef(router, 630);
+ srcPt = ConnEnd(Point(82, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef631
+ connRef = new ConnRef(router, 631);
+ srcPt = ConnEnd(Point(132, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef632
+ connRef = new ConnRef(router, 632);
+ srcPt = ConnEnd(Point(132, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef633
+ connRef = new ConnRef(router, 633);
+ srcPt = ConnEnd(Point(82, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef634
+ connRef = new ConnRef(router, 634);
+ srcPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(213, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef635
+ connRef = new ConnRef(router, 635);
+ srcPt = ConnEnd(Point(25.2456, 96.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 175), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef636
+ connRef = new ConnRef(router, 636);
+ srcPt = ConnEnd(Point(25.2456, 96.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 194), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef637
+ connRef = new ConnRef(router, 637);
+ srcPt = ConnEnd(Point(25.2456, 96.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 175), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef638
+ connRef = new ConnRef(router, 638);
+ srcPt = ConnEnd(Point(25.2456, 96.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 156), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef639
+ connRef = new ConnRef(router, 639);
+ srcPt = ConnEnd(Point(223, 413), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef640
+ connRef = new ConnRef(router, 640);
+ srcPt = ConnEnd(Point(223, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef641
+ connRef = new ConnRef(router, 641);
+ srcPt = ConnEnd(Point(273, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef642
+ connRef = new ConnRef(router, 642);
+ srcPt = ConnEnd(Point(273, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef643
+ connRef = new ConnRef(router, 643);
+ srcPt = ConnEnd(Point(223, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef644
+ connRef = new ConnRef(router, 644);
+ srcPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(355, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef645
+ connRef = new ConnRef(router, 645);
+ srcPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(497, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef646
+ connRef = new ConnRef(router, 646);
+ srcPt = ConnEnd(Point(415, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef647
+ connRef = new ConnRef(router, 647);
+ srcPt = ConnEnd(Point(415, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef648
+ connRef = new ConnRef(router, 648);
+ srcPt = ConnEnd(Point(365, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef649
+ connRef = new ConnRef(router, 649);
+ srcPt = ConnEnd(Point(365, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef650
+ connRef = new ConnRef(router, 650);
+ srcPt = ConnEnd(Point(365, 413), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef651
+ connRef = new ConnRef(router, 651);
+ srcPt = ConnEnd(Point(507, 413), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef652
+ connRef = new ConnRef(router, 652);
+ srcPt = ConnEnd(Point(507, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef653
+ connRef = new ConnRef(router, 653);
+ srcPt = ConnEnd(Point(557, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef654
+ connRef = new ConnRef(router, 654);
+ srcPt = ConnEnd(Point(557, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef655
+ connRef = new ConnRef(router, 655);
+ srcPt = ConnEnd(Point(507, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef656
+ connRef = new ConnRef(router, 656);
+ srcPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(639, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef657
+ connRef = new ConnRef(router, 657);
+ srcPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(780, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef658
+ connRef = new ConnRef(router, 658);
+ srcPt = ConnEnd(Point(699, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef659
+ connRef = new ConnRef(router, 659);
+ srcPt = ConnEnd(Point(699, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef660
+ connRef = new ConnRef(router, 660);
+ srcPt = ConnEnd(Point(649, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef661
+ connRef = new ConnRef(router, 661);
+ srcPt = ConnEnd(Point(649, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef662
+ connRef = new ConnRef(router, 662);
+ srcPt = ConnEnd(Point(649, 413), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef663
+ connRef = new ConnRef(router, 663);
+ srcPt = ConnEnd(Point(790, 413), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef664
+ connRef = new ConnRef(router, 664);
+ srcPt = ConnEnd(Point(790, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef665
+ connRef = new ConnRef(router, 665);
+ srcPt = ConnEnd(Point(840, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef666
+ connRef = new ConnRef(router, 666);
+ srcPt = ConnEnd(Point(840, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef667
+ connRef = new ConnRef(router, 667);
+ srcPt = ConnEnd(Point(790, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef668
+ connRef = new ConnRef(router, 668);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(922, 328), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef669
+ connRef = new ConnRef(router, 669);
+ srcPt = ConnEnd(Point(1149, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef670
+ connRef = new ConnRef(router, 670);
+ srcPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(932, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef671
+ connRef = new ConnRef(router, 671);
+ srcPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(932, 686), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef672
+ connRef = new ConnRef(router, 672);
+ srcPt = ConnEnd(Point(1199, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef673
+ connRef = new ConnRef(router, 673);
+ srcPt = ConnEnd(Point(982, 576), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef674
+ connRef = new ConnRef(router, 674);
+ srcPt = ConnEnd(Point(982, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef675
+ connRef = new ConnRef(router, 675);
+ srcPt = ConnEnd(Point(932, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef676
+ connRef = new ConnRef(router, 676);
+ srcPt = ConnEnd(Point(932, 504), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef677
+ connRef = new ConnRef(router, 677);
+ srcPt = ConnEnd(Point(932, 413), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef678
+ connRef = new ConnRef(router, 678);
+ srcPt = ConnEnd(Point(82, 338), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef679
+ connRef = new ConnRef(router, 679);
+ srcPt = ConnEnd(Point(233, 328), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef680
+ connRef = new ConnRef(router, 680);
+ srcPt = ConnEnd(Point(375, 328), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef681
+ connRef = new ConnRef(router, 681);
+ srcPt = ConnEnd(Point(517, 328), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef682
+ connRef = new ConnRef(router, 682);
+ srcPt = ConnEnd(Point(659, 328), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef683
+ connRef = new ConnRef(router, 683);
+ srcPt = ConnEnd(Point(800, 328), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef684
+ connRef = new ConnRef(router, 684);
+ srcPt = ConnEnd(Point(942, 328), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef685
+ connRef = new ConnRef(router, 685);
+ srcPt = ConnEnd(Point(223, 433), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef686
+ connRef = new ConnRef(router, 686);
+ srcPt = ConnEnd(Point(365, 433), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef687
+ connRef = new ConnRef(router, 687);
+ srcPt = ConnEnd(Point(507, 433), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef688
+ connRef = new ConnRef(router, 688);
+ srcPt = ConnEnd(Point(790, 433), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef689
+ connRef = new ConnRef(router, 689);
+ srcPt = ConnEnd(Point(932, 433), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef690
+ connRef = new ConnRef(router, 690);
+ srcPt = ConnEnd(Point(649, 433), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef691
+ connRef = new ConnRef(router, 691);
+ srcPt = ConnEnd(Point(82, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef692
+ connRef = new ConnRef(router, 692);
+ srcPt = ConnEnd(Point(223, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef693
+ connRef = new ConnRef(router, 693);
+ srcPt = ConnEnd(Point(365, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef694
+ connRef = new ConnRef(router, 694);
+ srcPt = ConnEnd(Point(507, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef695
+ connRef = new ConnRef(router, 695);
+ srcPt = ConnEnd(Point(649, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef696
+ connRef = new ConnRef(router, 696);
+ srcPt = ConnEnd(Point(790, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef697
+ connRef = new ConnRef(router, 697);
+ srcPt = ConnEnd(Point(932, 524), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef698
+ connRef = new ConnRef(router, 698);
+ srcPt = ConnEnd(Point(82, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef699
+ connRef = new ConnRef(router, 699);
+ srcPt = ConnEnd(Point(223, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef700
+ connRef = new ConnRef(router, 700);
+ srcPt = ConnEnd(Point(365, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef701
+ connRef = new ConnRef(router, 701);
+ srcPt = ConnEnd(Point(507, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef702
+ connRef = new ConnRef(router, 702);
+ srcPt = ConnEnd(Point(649, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef703
+ connRef = new ConnRef(router, 703);
+ srcPt = ConnEnd(Point(790, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef704
+ connRef = new ConnRef(router, 704);
+ srcPt = ConnEnd(Point(932, 615), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef705
+ connRef = new ConnRef(router, 705);
+ srcPt = ConnEnd(Point(1169, 309), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef706
+ connRef = new ConnRef(router, 706);
+ srcPt = ConnEnd(Point(1159, 414), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 447.955), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef707
+ connRef = new ConnRef(router, 707);
+ srcPt = ConnEnd(Point(1159, 505), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef708
+ connRef = new ConnRef(router, 708);
+ srcPt = ConnEnd(Point(1159, 595), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef709
+ connRef = new ConnRef(router, 709);
+ srcPt = ConnEnd(Point(932, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef710
+ connRef = new ConnRef(router, 710);
+ srcPt = ConnEnd(Point(932, 706), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(979.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef711
+ connRef = new ConnRef(router, 711);
+ srcPt = ConnEnd(Point(1159, 687), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef712
+ connRef = new ConnRef(router, 712);
+ srcPt = ConnEnd(Point(1219, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef713
+ connRef = new ConnRef(router, 713);
+ srcPt = ConnEnd(Point(1209, 605), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1203.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef714
+ connRef = new ConnRef(router, 714);
+ srcPt = ConnEnd(Point(132, 300), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef715
+ connRef = new ConnRef(router, 715);
+ srcPt = ConnEnd(Point(132, 319), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(57.2456, 332.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef716
+ connRef = new ConnRef(router, 716);
+ srcPt = ConnEnd(Point(1131.25, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef717
+ connRef = new ConnRef(router, 717);
+ srcPt = ConnEnd(Point(927.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef718
+ connRef = new ConnRef(router, 718);
+ srcPt = ConnEnd(Point(771.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef719
+ connRef = new ConnRef(router, 719);
+ srcPt = ConnEnd(Point(615.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef720
+ connRef = new ConnRef(router, 720);
+ srcPt = ConnEnd(Point(459.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef721
+ connRef = new ConnRef(router, 721);
+ srcPt = ConnEnd(Point(303.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef722
+ connRef = new ConnRef(router, 722);
+ srcPt = ConnEnd(Point(145.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef723
+ connRef = new ConnRef(router, 723);
+ srcPt = ConnEnd(Point(879.246, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef724
+ connRef = new ConnRef(router, 724);
+ srcPt = ConnEnd(Point(1203.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1161.25, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef725
+ connRef = new ConnRef(router, 725);
+ srcPt = ConnEnd(Point(1263.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1173.25, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef726
+ connRef = new ConnRef(router, 726);
+ srcPt = ConnEnd(Point(594.941, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(527.246, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef727
+ connRef = new ConnRef(router, 727);
+ srcPt = ConnEnd(Point(451.455, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(371.246, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef728
+ connRef = new ConnRef(router, 728);
+ srcPt = ConnEnd(Point(1371.25, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1371.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef729
+ connRef = new ConnRef(router, 729);
+ srcPt = ConnEnd(Point(1419.25, 575.942), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 575.942), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef730
+ connRef = new ConnRef(router, 730);
+ srcPt = ConnEnd(Point(1131.25, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef731
+ connRef = new ConnRef(router, 731);
+ srcPt = ConnEnd(Point(927.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef732
+ connRef = new ConnRef(router, 732);
+ srcPt = ConnEnd(Point(771.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef733
+ connRef = new ConnRef(router, 733);
+ srcPt = ConnEnd(Point(615.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef734
+ connRef = new ConnRef(router, 734);
+ srcPt = ConnEnd(Point(459.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef735
+ connRef = new ConnRef(router, 735);
+ srcPt = ConnEnd(Point(303.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef736
+ connRef = new ConnRef(router, 736);
+ srcPt = ConnEnd(Point(145.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef737
+ connRef = new ConnRef(router, 737);
+ srcPt = ConnEnd(Point(1419.25, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef738
+ connRef = new ConnRef(router, 738);
+ srcPt = ConnEnd(Point(1131.25, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef739
+ connRef = new ConnRef(router, 739);
+ srcPt = ConnEnd(Point(927.246, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef740
+ connRef = new ConnRef(router, 740);
+ srcPt = ConnEnd(Point(771.246, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef741
+ connRef = new ConnRef(router, 741);
+ srcPt = ConnEnd(Point(615.246, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef742
+ connRef = new ConnRef(router, 742);
+ srcPt = ConnEnd(Point(459.246, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef743
+ connRef = new ConnRef(router, 743);
+ srcPt = ConnEnd(Point(303.246, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef744
+ connRef = new ConnRef(router, 744);
+ srcPt = ConnEnd(Point(145.246, 536.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 536.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef745
+ connRef = new ConnRef(router, 745);
+ srcPt = ConnEnd(Point(1293.25, 234.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef746
+ connRef = new ConnRef(router, 746);
+ srcPt = ConnEnd(Point(1083.25, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1083.25, 676.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef747
+ connRef = new ConnRef(router, 747);
+ srcPt = ConnEnd(Point(1419.25, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef748
+ connRef = new ConnRef(router, 748);
+ srcPt = ConnEnd(Point(1419.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef749
+ connRef = new ConnRef(router, 749);
+ srcPt = ConnEnd(Point(1479.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1449.25, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef750
+ connRef = new ConnRef(router, 750);
+ srcPt = ConnEnd(Point(723.246, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef751
+ connRef = new ConnRef(router, 751);
+ srcPt = ConnEnd(Point(927.246, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef752
+ connRef = new ConnRef(router, 752);
+ srcPt = ConnEnd(Point(145.246, 32.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 32.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef753
+ connRef = new ConnRef(router, 753);
+ srcPt = ConnEnd(Point(145.246, 310.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef754
+ connRef = new ConnRef(router, 754);
+ srcPt = ConnEnd(Point(1005.25, 234.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef755
+ connRef = new ConnRef(router, 755);
+ srcPt = ConnEnd(Point(849.246, 234.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef756
+ connRef = new ConnRef(router, 756);
+ srcPt = ConnEnd(Point(693.246, 234.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef757
+ connRef = new ConnRef(router, 757);
+ srcPt = ConnEnd(Point(537.246, 234.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef758
+ connRef = new ConnRef(router, 758);
+ srcPt = ConnEnd(Point(381.246, 234.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef759
+ connRef = new ConnRef(router, 759);
+ srcPt = ConnEnd(Point(303.246, 288.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 288.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef760
+ connRef = new ConnRef(router, 760);
+ srcPt = ConnEnd(Point(1131.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef761
+ connRef = new ConnRef(router, 761);
+ srcPt = ConnEnd(Point(1035.25, 686.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 686.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef762
+ connRef = new ConnRef(router, 762);
+ srcPt = ConnEnd(Point(1131.25, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef763
+ connRef = new ConnRef(router, 763);
+ srcPt = ConnEnd(Point(1035.25, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef764
+ connRef = new ConnRef(router, 764);
+ srcPt = ConnEnd(Point(1035.25, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef765
+ connRef = new ConnRef(router, 765);
+ srcPt = ConnEnd(Point(1035.25, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef766
+ connRef = new ConnRef(router, 766);
+ srcPt = ConnEnd(Point(1035.25, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef767
+ connRef = new ConnRef(router, 767);
+ srcPt = ConnEnd(Point(1131.25, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef768
+ connRef = new ConnRef(router, 768);
+ srcPt = ConnEnd(Point(1035.25, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef769
+ connRef = new ConnRef(router, 769);
+ srcPt = ConnEnd(Point(1035.25, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef770
+ connRef = new ConnRef(router, 770);
+ srcPt = ConnEnd(Point(1005.25, 202.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1005.25, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef771
+ connRef = new ConnRef(router, 771);
+ srcPt = ConnEnd(Point(957.246, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef772
+ connRef = new ConnRef(router, 772);
+ srcPt = ConnEnd(Point(957.246, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef773
+ connRef = new ConnRef(router, 773);
+ srcPt = ConnEnd(Point(927.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef774
+ connRef = new ConnRef(router, 774);
+ srcPt = ConnEnd(Point(879.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef775
+ connRef = new ConnRef(router, 775);
+ srcPt = ConnEnd(Point(879.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef776
+ connRef = new ConnRef(router, 776);
+ srcPt = ConnEnd(Point(879.246, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef777
+ connRef = new ConnRef(router, 777);
+ srcPt = ConnEnd(Point(879.246, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef778
+ connRef = new ConnRef(router, 778);
+ srcPt = ConnEnd(Point(927.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef779
+ connRef = new ConnRef(router, 779);
+ srcPt = ConnEnd(Point(879.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef780
+ connRef = new ConnRef(router, 780);
+ srcPt = ConnEnd(Point(879.246, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef781
+ connRef = new ConnRef(router, 781);
+ srcPt = ConnEnd(Point(849.246, 202.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(849.246, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef782
+ connRef = new ConnRef(router, 782);
+ srcPt = ConnEnd(Point(801.246, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef783
+ connRef = new ConnRef(router, 783);
+ srcPt = ConnEnd(Point(801.246, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef784
+ connRef = new ConnRef(router, 784);
+ srcPt = ConnEnd(Point(771.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef785
+ connRef = new ConnRef(router, 785);
+ srcPt = ConnEnd(Point(723.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef786
+ connRef = new ConnRef(router, 786);
+ srcPt = ConnEnd(Point(723.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef787
+ connRef = new ConnRef(router, 787);
+ srcPt = ConnEnd(Point(723.246, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef788
+ connRef = new ConnRef(router, 788);
+ srcPt = ConnEnd(Point(723.246, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef789
+ connRef = new ConnRef(router, 789);
+ srcPt = ConnEnd(Point(771.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef790
+ connRef = new ConnRef(router, 790);
+ srcPt = ConnEnd(Point(723.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef791
+ connRef = new ConnRef(router, 791);
+ srcPt = ConnEnd(Point(723.246, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef792
+ connRef = new ConnRef(router, 792);
+ srcPt = ConnEnd(Point(693.246, 202.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(693.246, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef793
+ connRef = new ConnRef(router, 793);
+ srcPt = ConnEnd(Point(645.246, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef794
+ connRef = new ConnRef(router, 794);
+ srcPt = ConnEnd(Point(645.246, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef795
+ connRef = new ConnRef(router, 795);
+ srcPt = ConnEnd(Point(615.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef796
+ connRef = new ConnRef(router, 796);
+ srcPt = ConnEnd(Point(567.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef797
+ connRef = new ConnRef(router, 797);
+ srcPt = ConnEnd(Point(567.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef798
+ connRef = new ConnRef(router, 798);
+ srcPt = ConnEnd(Point(615.246, 486.951), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 486.951), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef799
+ connRef = new ConnRef(router, 799);
+ srcPt = ConnEnd(Point(567.246, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef800
+ connRef = new ConnRef(router, 800);
+ srcPt = ConnEnd(Point(567.246, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef801
+ connRef = new ConnRef(router, 801);
+ srcPt = ConnEnd(Point(615.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef802
+ connRef = new ConnRef(router, 802);
+ srcPt = ConnEnd(Point(567.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef803
+ connRef = new ConnRef(router, 803);
+ srcPt = ConnEnd(Point(567.246, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef804
+ connRef = new ConnRef(router, 804);
+ srcPt = ConnEnd(Point(537.246, 202.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(537.246, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef805
+ connRef = new ConnRef(router, 805);
+ srcPt = ConnEnd(Point(489.246, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef806
+ connRef = new ConnRef(router, 806);
+ srcPt = ConnEnd(Point(489.246, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef807
+ connRef = new ConnRef(router, 807);
+ srcPt = ConnEnd(Point(459.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef808
+ connRef = new ConnRef(router, 808);
+ srcPt = ConnEnd(Point(411.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef809
+ connRef = new ConnRef(router, 809);
+ srcPt = ConnEnd(Point(411.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef810
+ connRef = new ConnRef(router, 810);
+ srcPt = ConnEnd(Point(411.246, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef811
+ connRef = new ConnRef(router, 811);
+ srcPt = ConnEnd(Point(411.246, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef812
+ connRef = new ConnRef(router, 812);
+ srcPt = ConnEnd(Point(459.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef813
+ connRef = new ConnRef(router, 813);
+ srcPt = ConnEnd(Point(411.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef814
+ connRef = new ConnRef(router, 814);
+ srcPt = ConnEnd(Point(411.246, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef815
+ connRef = new ConnRef(router, 815);
+ srcPt = ConnEnd(Point(381.246, 202.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(381.246, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef816
+ connRef = new ConnRef(router, 816);
+ srcPt = ConnEnd(Point(333.246, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef817
+ connRef = new ConnRef(router, 817);
+ srcPt = ConnEnd(Point(333.246, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef818
+ connRef = new ConnRef(router, 818);
+ srcPt = ConnEnd(Point(303.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef819
+ connRef = new ConnRef(router, 819);
+ srcPt = ConnEnd(Point(255.246, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef820
+ connRef = new ConnRef(router, 820);
+ srcPt = ConnEnd(Point(255.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef821
+ connRef = new ConnRef(router, 821);
+ srcPt = ConnEnd(Point(255.246, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef822
+ connRef = new ConnRef(router, 822);
+ srcPt = ConnEnd(Point(255.246, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef823
+ connRef = new ConnRef(router, 823);
+ srcPt = ConnEnd(Point(303.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef824
+ connRef = new ConnRef(router, 824);
+ srcPt = ConnEnd(Point(255.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef825
+ connRef = new ConnRef(router, 825);
+ srcPt = ConnEnd(Point(255.246, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef826
+ connRef = new ConnRef(router, 826);
+ srcPt = ConnEnd(Point(303.246, 256.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(225.246, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef827
+ connRef = new ConnRef(router, 827);
+ srcPt = ConnEnd(Point(193.246, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef828
+ connRef = new ConnRef(router, 828);
+ srcPt = ConnEnd(Point(193.246, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef829
+ connRef = new ConnRef(router, 829);
+ srcPt = ConnEnd(Point(145.246, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef830
+ connRef = new ConnRef(router, 830);
+ srcPt = ConnEnd(Point(97.2456, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef831
+ connRef = new ConnRef(router, 831);
+ srcPt = ConnEnd(Point(97.2456, 590.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 590.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef832
+ connRef = new ConnRef(router, 832);
+ srcPt = ConnEnd(Point(97.2456, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef833
+ connRef = new ConnRef(router, 833);
+ srcPt = ConnEnd(Point(97.2456, 482.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 482.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef834
+ connRef = new ConnRef(router, 834);
+ srcPt = ConnEnd(Point(145.246, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef835
+ connRef = new ConnRef(router, 835);
+ srcPt = ConnEnd(Point(97.2456, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef836
+ connRef = new ConnRef(router, 836);
+ srcPt = ConnEnd(Point(97.2456, 386.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 386.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef837
+ connRef = new ConnRef(router, 837);
+ srcPt = ConnEnd(Point(17.2456, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef838
+ connRef = new ConnRef(router, 838);
+ srcPt = ConnEnd(Point(17.2456, 128.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef839
+ connRef = new ConnRef(router, 839);
+ srcPt = ConnEnd(Point(285.246, 170.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(244.976, 170.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef840
+ connRef = new ConnRef(router, 840);
+ srcPt = ConnEnd(Point(237.246, 86.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(145.246, 86.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef841
+ connRef = new ConnRef(router, 841);
+ srcPt = ConnEnd(Point(237.246, 54.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(145.246, 54.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef842
+ connRef = new ConnRef(router, 842);
+ srcPt = ConnEnd(Point(97.2456, 170.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 170.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef843
+ connRef = new ConnRef(router, 843);
+ srcPt = ConnEnd(Point(97.2456, 32.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 32.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef844
+ connRef = new ConnRef(router, 844);
+ srcPt = ConnEnd(Point(97.2456, 0.917947), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 0.917947), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef845
+ connRef = new ConnRef(router, 845);
+ srcPt = ConnEnd(Point(380.962, -29.0821), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(319.219, -29.0821), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef846
+ connRef = new ConnRef(router, 846);
+ srcPt = ConnEnd(Point(279.219, -29.0821), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(197.246, -29.0821), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef847
+ connRef = new ConnRef(router, 847);
+ srcPt = ConnEnd(Point(97.2456, 310.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef848
+ connRef = new ConnRef(router, 848);
+ srcPt = ConnEnd(Point(193.246, 224.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef849
+ connRef = new ConnRef(router, 849);
+ srcPt = ConnEnd(Point(333.246, 224.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef850
+ connRef = new ConnRef(router, 850);
+ srcPt = ConnEnd(Point(489.246, 224.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef851
+ connRef = new ConnRef(router, 851);
+ srcPt = ConnEnd(Point(645.246, 224.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef852
+ connRef = new ConnRef(router, 852);
+ srcPt = ConnEnd(Point(801.246, 224.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef853
+ connRef = new ConnRef(router, 853);
+ srcPt = ConnEnd(Point(957.246, 224.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 310.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef854
+ connRef = new ConnRef(router, 854);
+ srcPt = ConnEnd(Point(17.2456, 364.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef855
+ connRef = new ConnRef(router, 855);
+ srcPt = ConnEnd(Point(255.246, 450.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef856
+ connRef = new ConnRef(router, 856);
+ srcPt = ConnEnd(Point(411.246, 450.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef857
+ connRef = new ConnRef(router, 857);
+ srcPt = ConnEnd(Point(567.246, 450.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef858
+ connRef = new ConnRef(router, 858);
+ srcPt = ConnEnd(Point(879.246, 450.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef859
+ connRef = new ConnRef(router, 859);
+ srcPt = ConnEnd(Point(1035.25, 450.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef860
+ connRef = new ConnRef(router, 860);
+ srcPt = ConnEnd(Point(723.246, 450.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 450.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef861
+ connRef = new ConnRef(router, 861);
+ srcPt = ConnEnd(Point(97.2456, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef862
+ connRef = new ConnRef(router, 862);
+ srcPt = ConnEnd(Point(255.246, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef863
+ connRef = new ConnRef(router, 863);
+ srcPt = ConnEnd(Point(411.246, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef864
+ connRef = new ConnRef(router, 864);
+ srcPt = ConnEnd(Point(567.246, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef865
+ connRef = new ConnRef(router, 865);
+ srcPt = ConnEnd(Point(723.246, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef866
+ connRef = new ConnRef(router, 866);
+ srcPt = ConnEnd(Point(879.246, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef867
+ connRef = new ConnRef(router, 867);
+ srcPt = ConnEnd(Point(1035.25, 558.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 558.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef868
+ connRef = new ConnRef(router, 868);
+ srcPt = ConnEnd(Point(97.2456, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17.2456, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef869
+ connRef = new ConnRef(router, 869);
+ srcPt = ConnEnd(Point(255.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(193.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef870
+ connRef = new ConnRef(router, 870);
+ srcPt = ConnEnd(Point(411.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(333.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef871
+ connRef = new ConnRef(router, 871);
+ srcPt = ConnEnd(Point(567.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(489.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef872
+ connRef = new ConnRef(router, 872);
+ srcPt = ConnEnd(Point(723.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(645.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef873
+ connRef = new ConnRef(router, 873);
+ srcPt = ConnEnd(Point(879.246, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(801.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef874
+ connRef = new ConnRef(router, 874);
+ srcPt = ConnEnd(Point(1035.25, 654.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 654.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef875
+ connRef = new ConnRef(router, 875);
+ srcPt = ConnEnd(Point(1233.25, 192.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1233.25, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef876
+ connRef = new ConnRef(router, 876);
+ srcPt = ConnEnd(Point(1323.25, 418.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1233.25, 418.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef877
+ connRef = new ConnRef(router, 877);
+ srcPt = ConnEnd(Point(1323.25, 514.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1233.25, 514.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef878
+ connRef = new ConnRef(router, 878);
+ srcPt = ConnEnd(Point(1323.25, 622.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1233.25, 622.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef879
+ connRef = new ConnRef(router, 879);
+ srcPt = ConnEnd(Point(1035.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef880
+ connRef = new ConnRef(router, 880);
+ srcPt = ConnEnd(Point(1035.25, 750.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(957.246, 750.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef881
+ connRef = new ConnRef(router, 881);
+ srcPt = ConnEnd(Point(1323.25, 718.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1233.25, 718.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef882
+ connRef = new ConnRef(router, 882);
+ srcPt = ConnEnd(Point(1293.25, 202.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 256.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef883
+ connRef = new ConnRef(router, 883);
+ srcPt = ConnEnd(Point(1419.25, 644.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1293.25, 644.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef884
+ connRef = new ConnRef(router, 884);
+ srcPt = ConnEnd(Point(145.246, 246.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 246.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef885
+ connRef = new ConnRef(router, 885);
+ srcPt = ConnEnd(Point(145.246, 278.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(67.2456, 278.918), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef886
+ connRef = new ConnRef(router, 886);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(790, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef887
+ connRef = new ConnRef(router, 887);
+ srcPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(533, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef888
+ connRef = new ConnRef(router, 888);
+ srcPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(390, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef889
+ connRef = new ConnRef(router, 889);
+ srcPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1030, 634), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef890
+ connRef = new ConnRef(router, 890);
+ srcPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(649, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef891
+ connRef = new ConnRef(router, 891);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(840, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef892
+ connRef = new ConnRef(router, 892);
+ srcPt = ConnEnd(Point(57.2456, 125.987), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 175), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef893
+ connRef = new ConnRef(router, 893);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 318), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef894
+ connRef = new ConnRef(router, 894);
+ srcPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(132, 318), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef895
+ connRef = new ConnRef(router, 895);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(972, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef896
+ connRef = new ConnRef(router, 896);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(972, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef897
+ connRef = new ConnRef(router, 897);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(830, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef898
+ connRef = new ConnRef(router, 898);
+ srcPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(830, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef899
+ connRef = new ConnRef(router, 899);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(689, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef900
+ connRef = new ConnRef(router, 900);
+ srcPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(689, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef901
+ connRef = new ConnRef(router, 901);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(547, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef902
+ connRef = new ConnRef(router, 902);
+ srcPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(547, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef903
+ connRef = new ConnRef(router, 903);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(405, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef904
+ connRef = new ConnRef(router, 904);
+ srcPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(405, 319), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef905
+ connRef = new ConnRef(router, 905);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(273, 329), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef906
+ connRef = new ConnRef(router, 906);
+ srcPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(273, 329), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef907
+ connRef = new ConnRef(router, 907);
+ srcPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(982, 667), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef908
+ connRef = new ConnRef(router, 908);
+ srcPt = ConnEnd(Point(979.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(932, 648), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef909
+ connRef = new ConnRef(router, 909);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(972, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef910
+ connRef = new ConnRef(router, 910);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(972, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef911
+ connRef = new ConnRef(router, 911);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(922, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef912
+ connRef = new ConnRef(router, 912);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(922, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef913
+ connRef = new ConnRef(router, 913);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(922, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef914
+ connRef = new ConnRef(router, 914);
+ srcPt = ConnEnd(Point(823.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(922, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef915
+ connRef = new ConnRef(router, 915);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(830, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef916
+ connRef = new ConnRef(router, 916);
+ srcPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(830, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef917
+ connRef = new ConnRef(router, 917);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(780, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef918
+ connRef = new ConnRef(router, 918);
+ srcPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(780, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef919
+ connRef = new ConnRef(router, 919);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(780, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef920
+ connRef = new ConnRef(router, 920);
+ srcPt = ConnEnd(Point(673.933, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(780, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef921
+ connRef = new ConnRef(router, 921);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(689, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef922
+ connRef = new ConnRef(router, 922);
+ srcPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(689, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef923
+ connRef = new ConnRef(router, 923);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(639, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef924
+ connRef = new ConnRef(router, 924);
+ srcPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(639, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef925
+ connRef = new ConnRef(router, 925);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(639, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef926
+ connRef = new ConnRef(router, 926);
+ srcPt = ConnEnd(Point(527.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(639, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef927
+ connRef = new ConnRef(router, 927);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(547, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef928
+ connRef = new ConnRef(router, 928);
+ srcPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(547, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef929
+ connRef = new ConnRef(router, 929);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(497, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef930
+ connRef = new ConnRef(router, 930);
+ srcPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(497, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef931
+ connRef = new ConnRef(router, 931);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(497, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef932
+ connRef = new ConnRef(router, 932);
+ srcPt = ConnEnd(Point(371.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(497, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef933
+ connRef = new ConnRef(router, 933);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(405, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef934
+ connRef = new ConnRef(router, 934);
+ srcPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(405, 300), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef935
+ connRef = new ConnRef(router, 935);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(355, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef936
+ connRef = new ConnRef(router, 936);
+ srcPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(355, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef937
+ connRef = new ConnRef(router, 937);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(355, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef938
+ connRef = new ConnRef(router, 938);
+ srcPt = ConnEnd(Point(215.246, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(355, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef939
+ connRef = new ConnRef(router, 939);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(273, 310), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef940
+ connRef = new ConnRef(router, 940);
+ srcPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(273, 310), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef941
+ connRef = new ConnRef(router, 941);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(213, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef942
+ connRef = new ConnRef(router, 942);
+ srcPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(213, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef943
+ connRef = new ConnRef(router, 943);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(213, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef944
+ connRef = new ConnRef(router, 944);
+ srcPt = ConnEnd(Point(57.2456, 676.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(213, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef945
+ connRef = new ConnRef(router, 945);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(92, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef946
+ connRef = new ConnRef(router, 946);
+ srcPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(92, 309), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef947
+ connRef = new ConnRef(router, 947);
+ srcPt = ConnEnd(Point(197.246, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(92, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef948
+ connRef = new ConnRef(router, 948);
+ srcPt = ConnEnd(Point(57.2456, 160.918), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(92, 290), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef949
+ connRef = new ConnRef(router, 949);
+ srcPt = ConnEnd(Point(57.2456, 125.987), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 194), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef950
+ connRef = new ConnRef(router, 950);
+ srcPt = ConnEnd(Point(57.2456, 125.987), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 175), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef951
+ connRef = new ConnRef(router, 951);
+ srcPt = ConnEnd(Point(57.2456, 125.987), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(82, 156), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef952
+ connRef = new ConnRef(router, 952);
+ srcPt = ConnEnd(Point(319.219, -7.08205), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(319, 155), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef953
+ connRef = new ConnRef(router, 953);
+ srcPt = ConnEnd(Point(197.246, 96.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(317.466, 34.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef954
+ connRef = new ConnRef(router, 954);
+ srcPt = ConnEnd(Point(57.2456, 125.987), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(-7.75443, -71.0821), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef955
+ connRef = new ConnRef(router, 955);
+ srcPt = ConnEnd(Point(197.246, 96.9179), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(317.466, 86.9179), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/performance01");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/reallyslowrouting.cpp b/src/3rdparty/adaptagrams/libavoid/tests/reallyslowrouting.cpp
new file mode 100644
index 0000000..26785d7
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/reallyslowrouting.cpp
@@ -0,0 +1,7099 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+ router->setOrthogonalNudgeDistance(4);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(703.246, 408.918);
+ poly91.ps[1] = Point(703.246, 428.918);
+ poly91.ps[2] = Point(683.246, 428.918);
+ poly91.ps[3] = Point(683.246, 408.918);
+ ShapeRef *shapeRef91 = new ShapeRef(router, poly91, 91);
+ router->addShape(shapeRef91);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(811.246, 268.918);
+ poly84.ps[1] = Point(811.246, 288.918);
+ poly84.ps[2] = Point(791.246, 288.918);
+ poly84.ps[3] = Point(791.246, 268.918);
+ ShapeRef *shapeRef84 = new ShapeRef(router, poly84, 84);
+ router->addShape(shapeRef84);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(859.246, 580.918);
+ poly75.ps[1] = Point(859.246, 600.918);
+ poly75.ps[2] = Point(839.246, 600.918);
+ poly75.ps[3] = Point(839.246, 580.918);
+ ShapeRef *shapeRef75 = new ShapeRef(router, poly75, 75);
+ router->addShape(shapeRef75);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(235.246, 580.918);
+ poly120.ps[1] = Point(235.246, 600.918);
+ poly120.ps[2] = Point(215.246, 600.918);
+ poly120.ps[3] = Point(215.246, 580.918);
+ ShapeRef *shapeRef120 = new ShapeRef(router, poly120, 120);
+ router->addShape(shapeRef120);
+
+ Polygon poly157(4);
+ poly157.ps[0] = Point(77.2456, 427.955);
+ poly157.ps[1] = Point(77.2456, 467.955);
+ poly157.ps[2] = Point(37.2456, 467.955);
+ poly157.ps[3] = Point(37.2456, 427.955);
+ ShapeRef *shapeRef157 = new ShapeRef(router, poly157, 157);
+ router->addShape(shapeRef157);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(27.2456, 376.918);
+ poly138.ps[1] = Point(27.2456, 396.918);
+ poly138.ps[2] = Point(7.24557, 396.918);
+ poly138.ps[3] = Point(7.24557, 376.918);
+ ShapeRef *shapeRef138 = new ShapeRef(router, poly138, 138);
+ router->addShape(shapeRef138);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(235.246, 612.918);
+ poly6.ps[1] = Point(235.246, 632.918);
+ poly6.ps[2] = Point(215.246, 632.918);
+ poly6.ps[3] = Point(215.246, 612.918);
+ ShapeRef *shapeRef6 = new ShapeRef(router, poly6, 6);
+ router->addShape(shapeRef6);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(391.246, 246.918);
+ poly117.ps[1] = Point(391.246, 266.918);
+ poly117.ps[2] = Point(371.246, 266.918);
+ poly117.ps[3] = Point(371.246, 246.918);
+ ShapeRef *shapeRef117 = new ShapeRef(router, poly117, 117);
+ router->addShape(shapeRef117);
+
+ Polygon poly177(4);
+ poly177.ps[0] = Point(843.246, 312.918);
+ poly177.ps[1] = Point(843.246, 352.918);
+ poly177.ps[2] = Point(803.246, 352.918);
+ poly177.ps[3] = Point(803.246, 312.918);
+ ShapeRef *shapeRef177 = new ShapeRef(router, poly177, 177);
+ router->addShape(shapeRef177);
+
+ Polygon poly178(4);
+ poly178.ps[0] = Point(843.246, 427.955);
+ poly178.ps[1] = Point(843.246, 467.955);
+ poly178.ps[2] = Point(803.246, 467.955);
+ poly178.ps[3] = Point(803.246, 427.955);
+ ShapeRef *shapeRef178 = new ShapeRef(router, poly178, 178);
+ router->addShape(shapeRef178);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(547.246, 644.918);
+ poly31.ps[1] = Point(547.246, 664.918);
+ poly31.ps[2] = Point(527.246, 664.918);
+ poly31.ps[3] = Point(527.246, 644.918);
+ ShapeRef *shapeRef31 = new ShapeRef(router, poly31, 31);
+ router->addShape(shapeRef31);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(203.246, 472.918);
+ poly124.ps[1] = Point(203.246, 492.918);
+ poly124.ps[2] = Point(183.246, 492.918);
+ poly124.ps[3] = Point(183.246, 472.918);
+ ShapeRef *shapeRef124 = new ShapeRef(router, poly124, 124);
+ router->addShape(shapeRef124);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(703.246, 526.918);
+ poly38.ps[1] = Point(703.246, 546.918);
+ poly38.ps[2] = Point(683.246, 546.918);
+ poly38.ps[3] = Point(683.246, 526.918);
+ ShapeRef *shapeRef38 = new ShapeRef(router, poly38, 38);
+ router->addShape(shapeRef38);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(967.246, 268.918);
+ poly73.ps[1] = Point(967.246, 288.918);
+ poly73.ps[2] = Point(947.246, 288.918);
+ poly73.ps[3] = Point(947.246, 268.918);
+ ShapeRef *shapeRef73 = new ShapeRef(router, poly73, 73);
+ router->addShape(shapeRef73);
+
+ Polygon poly165(4);
+ poly165.ps[0] = Point(391.246, 656.918);
+ poly165.ps[1] = Point(391.246, 696.918);
+ poly165.ps[2] = Point(351.246, 696.918);
+ poly165.ps[3] = Point(351.246, 656.918);
+ ShapeRef *shapeRef165 = new ShapeRef(router, poly165, 165);
+ router->addShape(shapeRef165);
+
+ Polygon poly166(4);
+ poly166.ps[0] = Point(391.246, 538.918);
+ poly166.ps[1] = Point(391.246, 578.918);
+ poly166.ps[2] = Point(351.246, 578.918);
+ poly166.ps[3] = Point(351.246, 538.918);
+ ShapeRef *shapeRef166 = new ShapeRef(router, poly166, 166);
+ router->addShape(shapeRef166);
+
+ Polygon poly153(4);
+ poly153.ps[0] = Point(217.246, 76.9179);
+ poly153.ps[1] = Point(217.246, 116.918);
+ poly153.ps[2] = Point(177.246, 116.918);
+ poly153.ps[3] = Point(177.246, 76.9179);
+ ShapeRef *shapeRef153 = new ShapeRef(router, poly153, 153);
+ router->addShape(shapeRef153);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(843.246, 730.918);
+ poly17.ps[1] = Point(843.246, 770.918);
+ poly17.ps[2] = Point(803.246, 770.918);
+ poly17.ps[3] = Point(803.246, 730.918);
+ ShapeRef *shapeRef17 = new ShapeRef(router, poly17, 17);
+ router->addShape(shapeRef17);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(655.246, 708.918);
+ poly48.ps[1] = Point(655.246, 728.918);
+ poly48.ps[2] = Point(635.246, 728.918);
+ poly48.ps[3] = Point(635.246, 708.918);
+ ShapeRef *shapeRef48 = new ShapeRef(router, poly48, 48);
+ router->addShape(shapeRef48);
+
+ Polygon poly290(4);
+ poly290.ps[0] = Point(877.246, 182.918);
+ poly290.ps[1] = Point(877.246, 222.918);
+ poly290.ps[2] = Point(821.246, 222.918);
+ poly290.ps[3] = Point(821.246, 182.918);
+ ShapeRef *shapeRef290 = new ShapeRef(router, poly290, 290);
+ router->addShape(shapeRef290);
+
+ Polygon poly291(4);
+ poly291.ps[0] = Point(829.246, 172.918);
+ poly291.ps[1] = Point(829.246, 212.918);
+ poly291.ps[2] = Point(773.246, 212.918);
+ poly291.ps[3] = Point(773.246, 172.918);
+ ShapeRef *shapeRef291 = new ShapeRef(router, poly291, 291);
+ router->addShape(shapeRef291);
+
+ Polygon poly292(4);
+ poly292.ps[0] = Point(829.246, 108.918);
+ poly292.ps[1] = Point(829.246, 148.918);
+ poly292.ps[2] = Point(773.246, 148.918);
+ poly292.ps[3] = Point(773.246, 108.918);
+ ShapeRef *shapeRef292 = new ShapeRef(router, poly292, 292);
+ router->addShape(shapeRef292);
+
+ Polygon poly293(4);
+ poly293.ps[0] = Point(799.246, 570.918);
+ poly293.ps[1] = Point(799.246, 610.918);
+ poly293.ps[2] = Point(743.246, 610.918);
+ poly293.ps[3] = Point(743.246, 570.918);
+ ShapeRef *shapeRef293 = new ShapeRef(router, poly293, 293);
+ router->addShape(shapeRef293);
+
+ Polygon poly294(4);
+ poly294.ps[0] = Point(751.246, 602.918);
+ poly294.ps[1] = Point(751.246, 642.918);
+ poly294.ps[2] = Point(695.246, 642.918);
+ poly294.ps[3] = Point(695.246, 602.918);
+ ShapeRef *shapeRef294 = new ShapeRef(router, poly294, 294);
+ router->addShape(shapeRef294);
+
+ Polygon poly295(4);
+ poly295.ps[0] = Point(751.246, 570.918);
+ poly295.ps[1] = Point(751.246, 610.918);
+ poly295.ps[2] = Point(695.246, 610.918);
+ poly295.ps[3] = Point(695.246, 570.918);
+ ShapeRef *shapeRef295 = new ShapeRef(router, poly295, 295);
+ router->addShape(shapeRef295);
+
+ Polygon poly296(4);
+ poly296.ps[0] = Point(751.246, 494.918);
+ poly296.ps[1] = Point(751.246, 534.918);
+ poly296.ps[2] = Point(695.246, 534.918);
+ poly296.ps[3] = Point(695.246, 494.918);
+ ShapeRef *shapeRef296 = new ShapeRef(router, poly296, 296);
+ router->addShape(shapeRef296);
+
+ Polygon poly297(4);
+ poly297.ps[0] = Point(751.246, 462.918);
+ poly297.ps[1] = Point(751.246, 502.918);
+ poly297.ps[2] = Point(695.246, 502.918);
+ poly297.ps[3] = Point(695.246, 462.918);
+ ShapeRef *shapeRef297 = new ShapeRef(router, poly297, 297);
+ router->addShape(shapeRef297);
+
+ Polygon poly298(4);
+ poly298.ps[0] = Point(799.246, 398.918);
+ poly298.ps[1] = Point(799.246, 438.918);
+ poly298.ps[2] = Point(743.246, 438.918);
+ poly298.ps[3] = Point(743.246, 398.918);
+ ShapeRef *shapeRef298 = new ShapeRef(router, poly298, 298);
+ router->addShape(shapeRef298);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(499.246, 580.918);
+ poly99.ps[1] = Point(499.246, 600.918);
+ poly99.ps[2] = Point(479.246, 600.918);
+ poly99.ps[3] = Point(479.246, 580.918);
+ ShapeRef *shapeRef99 = new ShapeRef(router, poly99, 99);
+ router->addShape(shapeRef99);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(811.246, 236.918);
+ poly85.ps[1] = Point(811.246, 256.918);
+ poly85.ps[2] = Point(791.246, 256.918);
+ poly85.ps[3] = Point(791.246, 236.918);
+ ShapeRef *shapeRef85 = new ShapeRef(router, poly85, 85);
+ router->addShape(shapeRef85);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(537.246, 708.918);
+ poly24.ps[1] = Point(537.246, 728.918);
+ poly24.ps[2] = Point(517.246, 728.918);
+ poly24.ps[3] = Point(517.246, 708.918);
+ ShapeRef *shapeRef24 = new ShapeRef(router, poly24, 24);
+ router->addShape(shapeRef24);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(1015.25, 246.918);
+ poly72.ps[1] = Point(1015.25, 266.918);
+ poly72.ps[2] = Point(995.246, 266.918);
+ poly72.ps[3] = Point(995.246, 246.918);
+ ShapeRef *shapeRef72 = new ShapeRef(router, poly72, 72);
+ router->addShape(shapeRef72);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(391.246, 730.918);
+ poly20.ps[1] = Point(391.246, 770.918);
+ poly20.ps[2] = Point(351.246, 770.918);
+ poly20.ps[3] = Point(351.246, 730.918);
+ ShapeRef *shapeRef20 = new ShapeRef(router, poly20, 20);
+ router->addShape(shapeRef20);
+
+ Polygon poly254(4);
+ poly254.ps[0] = Point(1321.25, 214.918);
+ poly254.ps[1] = Point(1321.25, 254.918);
+ poly254.ps[2] = Point(1265.25, 254.918);
+ poly254.ps[3] = Point(1265.25, 214.918);
+ ShapeRef *shapeRef254 = new ShapeRef(router, poly254, 254);
+ router->addShape(shapeRef254);
+
+ Polygon poly255(4);
+ poly255.ps[0] = Point(1111.25, 602.918);
+ poly255.ps[1] = Point(1111.25, 642.918);
+ poly255.ps[2] = Point(1055.25, 642.918);
+ poly255.ps[3] = Point(1055.25, 602.918);
+ ShapeRef *shapeRef255 = new ShapeRef(router, poly255, 255);
+ router->addShape(shapeRef255);
+
+ Polygon poly256(4);
+ poly256.ps[0] = Point(1447.25, 398.918);
+ poly256.ps[1] = Point(1447.25, 438.918);
+ poly256.ps[2] = Point(1391.25, 438.918);
+ poly256.ps[3] = Point(1391.25, 398.918);
+ ShapeRef *shapeRef256 = new ShapeRef(router, poly256, 256);
+ router->addShape(shapeRef256);
+
+ Polygon poly257(4);
+ poly257.ps[0] = Point(1447.25, 698.918);
+ poly257.ps[1] = Point(1447.25, 738.918);
+ poly257.ps[2] = Point(1391.25, 738.918);
+ poly257.ps[3] = Point(1391.25, 698.918);
+ ShapeRef *shapeRef257 = new ShapeRef(router, poly257, 257);
+ router->addShape(shapeRef257);
+
+ Polygon poly258(4);
+ poly258.ps[0] = Point(1507.25, 698.918);
+ poly258.ps[1] = Point(1507.25, 738.918);
+ poly258.ps[2] = Point(1451.25, 738.918);
+ poly258.ps[3] = Point(1451.25, 698.918);
+ ShapeRef *shapeRef258 = new ShapeRef(router, poly258, 258);
+ router->addShape(shapeRef258);
+
+ Polygon poly259(4);
+ poly259.ps[0] = Point(751.246, 698.918);
+ poly259.ps[1] = Point(751.246, 738.918);
+ poly259.ps[2] = Point(695.246, 738.918);
+ poly259.ps[3] = Point(695.246, 698.918);
+ ShapeRef *shapeRef259 = new ShapeRef(router, poly259, 259);
+ router->addShape(shapeRef259);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(655.246, 612.918);
+ poly87.ps[1] = Point(655.246, 632.918);
+ poly87.ps[2] = Point(635.246, 632.918);
+ poly87.ps[3] = Point(635.246, 612.918);
+ ShapeRef *shapeRef87 = new ShapeRef(router, poly87, 87);
+ router->addShape(shapeRef87);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(27.2456, 504.918);
+ poly134.ps[1] = Point(27.2456, 524.918);
+ poly134.ps[2] = Point(7.24557, 524.918);
+ poly134.ps[3] = Point(7.24557, 504.918);
+ ShapeRef *shapeRef134 = new ShapeRef(router, poly134, 134);
+ router->addShape(shapeRef134);
+
+ Polygon poly201(4);
+ poly201.ps[0] = Point(203.246, 548.918);
+ poly201.ps[1] = Point(203.246, 568.918);
+ poly201.ps[2] = Point(183.246, 568.918);
+ poly201.ps[3] = Point(183.246, 548.918);
+ ShapeRef *shapeRef201 = new ShapeRef(router, poly201, 201);
+ router->addShape(shapeRef201);
+
+ Polygon poly202(4);
+ poly202.ps[0] = Point(343.246, 548.918);
+ poly202.ps[1] = Point(343.246, 568.918);
+ poly202.ps[2] = Point(323.246, 568.918);
+ poly202.ps[3] = Point(323.246, 548.918);
+ ShapeRef *shapeRef202 = new ShapeRef(router, poly202, 202);
+ router->addShape(shapeRef202);
+
+ Polygon poly203(4);
+ poly203.ps[0] = Point(499.246, 548.918);
+ poly203.ps[1] = Point(499.246, 568.918);
+ poly203.ps[2] = Point(479.246, 568.918);
+ poly203.ps[3] = Point(479.246, 548.918);
+ ShapeRef *shapeRef203 = new ShapeRef(router, poly203, 203);
+ router->addShape(shapeRef203);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(391.246, 644.918);
+ poly32.ps[1] = Point(391.246, 664.918);
+ poly32.ps[2] = Point(371.246, 664.918);
+ poly32.ps[3] = Point(371.246, 644.918);
+ ShapeRef *shapeRef32 = new ShapeRef(router, poly32, 32);
+ router->addShape(shapeRef32);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(381.246, 708.918);
+ poly25.ps[1] = Point(381.246, 728.918);
+ poly25.ps[2] = Point(361.246, 728.918);
+ poly25.ps[3] = Point(361.246, 708.918);
+ ShapeRef *shapeRef25 = new ShapeRef(router, poly25, 25);
+ router->addShape(shapeRef25);
+
+ Polygon poly210(4);
+ poly210.ps[0] = Point(499.246, 644.918);
+ poly210.ps[1] = Point(499.246, 664.918);
+ poly210.ps[2] = Point(479.246, 664.918);
+ poly210.ps[3] = Point(479.246, 644.918);
+ ShapeRef *shapeRef210 = new ShapeRef(router, poly210, 210);
+ router->addShape(shapeRef210);
+
+ Polygon poly211(4);
+ poly211.ps[0] = Point(655.246, 644.918);
+ poly211.ps[1] = Point(655.246, 664.918);
+ poly211.ps[2] = Point(635.246, 664.918);
+ poly211.ps[3] = Point(635.246, 644.918);
+ ShapeRef *shapeRef211 = new ShapeRef(router, poly211, 211);
+ router->addShape(shapeRef211);
+
+ Polygon poly212(4);
+ poly212.ps[0] = Point(811.246, 644.918);
+ poly212.ps[1] = Point(811.246, 664.918);
+ poly212.ps[2] = Point(791.246, 664.918);
+ poly212.ps[3] = Point(791.246, 644.918);
+ ShapeRef *shapeRef212 = new ShapeRef(router, poly212, 212);
+ router->addShape(shapeRef212);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(499.246, 612.918);
+ poly98.ps[1] = Point(499.246, 632.918);
+ poly98.ps[2] = Point(479.246, 632.918);
+ poly98.ps[3] = Point(479.246, 612.918);
+ ShapeRef *shapeRef98 = new ShapeRef(router, poly98, 98);
+ router->addShape(shapeRef98);
+
+ Polygon poly310(4);
+ poly310.ps[0] = Point(643.246, 398.918);
+ poly310.ps[1] = Point(643.246, 438.918);
+ poly310.ps[2] = Point(587.246, 438.918);
+ poly310.ps[3] = Point(587.246, 398.918);
+ ShapeRef *shapeRef310 = new ShapeRef(router, poly310, 310);
+ router->addShape(shapeRef310);
+
+ Polygon poly311(4);
+ poly311.ps[0] = Point(595.246, 398.918);
+ poly311.ps[1] = Point(595.246, 438.918);
+ poly311.ps[2] = Point(539.246, 438.918);
+ poly311.ps[3] = Point(539.246, 398.918);
+ ShapeRef *shapeRef311 = new ShapeRef(router, poly311, 311);
+ router->addShape(shapeRef311);
+
+ Polygon poly312(4);
+ poly312.ps[0] = Point(595.246, 366.918);
+ poly312.ps[1] = Point(595.246, 406.918);
+ poly312.ps[2] = Point(539.246, 406.918);
+ poly312.ps[3] = Point(539.246, 366.918);
+ ShapeRef *shapeRef312 = new ShapeRef(router, poly312, 312);
+ router->addShape(shapeRef312);
+
+ Polygon poly313(4);
+ poly313.ps[0] = Point(565.246, 182.918);
+ poly313.ps[1] = Point(565.246, 222.918);
+ poly313.ps[2] = Point(509.246, 222.918);
+ poly313.ps[3] = Point(509.246, 182.918);
+ ShapeRef *shapeRef313 = new ShapeRef(router, poly313, 313);
+ router->addShape(shapeRef313);
+
+ Polygon poly314(4);
+ poly314.ps[0] = Point(517.246, 172.918);
+ poly314.ps[1] = Point(517.246, 212.918);
+ poly314.ps[2] = Point(461.246, 212.918);
+ poly314.ps[3] = Point(461.246, 172.918);
+ ShapeRef *shapeRef314 = new ShapeRef(router, poly314, 314);
+ router->addShape(shapeRef314);
+
+ Polygon poly315(4);
+ poly315.ps[0] = Point(517.246, 108.918);
+ poly315.ps[1] = Point(517.246, 148.918);
+ poly315.ps[2] = Point(461.246, 148.918);
+ poly315.ps[3] = Point(461.246, 108.918);
+ ShapeRef *shapeRef315 = new ShapeRef(router, poly315, 315);
+ router->addShape(shapeRef315);
+
+ Polygon poly316(4);
+ poly316.ps[0] = Point(487.246, 570.918);
+ poly316.ps[1] = Point(487.246, 610.918);
+ poly316.ps[2] = Point(431.246, 610.918);
+ poly316.ps[3] = Point(431.246, 570.918);
+ ShapeRef *shapeRef316 = new ShapeRef(router, poly316, 316);
+ router->addShape(shapeRef316);
+
+ Polygon poly317(4);
+ poly317.ps[0] = Point(439.246, 602.918);
+ poly317.ps[1] = Point(439.246, 642.918);
+ poly317.ps[2] = Point(383.246, 642.918);
+ poly317.ps[3] = Point(383.246, 602.918);
+ ShapeRef *shapeRef317 = new ShapeRef(router, poly317, 317);
+ router->addShape(shapeRef317);
+
+ Polygon poly318(4);
+ poly318.ps[0] = Point(439.246, 570.918);
+ poly318.ps[1] = Point(439.246, 610.918);
+ poly318.ps[2] = Point(383.246, 610.918);
+ poly318.ps[3] = Point(383.246, 570.918);
+ ShapeRef *shapeRef318 = new ShapeRef(router, poly318, 318);
+ router->addShape(shapeRef318);
+
+ Polygon poly319(4);
+ poly319.ps[0] = Point(439.246, 494.918);
+ poly319.ps[1] = Point(439.246, 534.918);
+ poly319.ps[2] = Point(383.246, 534.918);
+ poly319.ps[3] = Point(383.246, 494.918);
+ ShapeRef *shapeRef319 = new ShapeRef(router, poly319, 319);
+ router->addShape(shapeRef319);
+
+ Polygon poly320(4);
+ poly320.ps[0] = Point(439.246, 462.918);
+ poly320.ps[1] = Point(439.246, 502.918);
+ poly320.ps[2] = Point(383.246, 502.918);
+ poly320.ps[3] = Point(383.246, 462.918);
+ ShapeRef *shapeRef320 = new ShapeRef(router, poly320, 320);
+ router->addShape(shapeRef320);
+
+ Polygon poly321(4);
+ poly321.ps[0] = Point(487.246, 398.918);
+ poly321.ps[1] = Point(487.246, 438.918);
+ poly321.ps[2] = Point(431.246, 438.918);
+ poly321.ps[3] = Point(431.246, 398.918);
+ ShapeRef *shapeRef321 = new ShapeRef(router, poly321, 321);
+ router->addShape(shapeRef321);
+
+ Polygon poly322(4);
+ poly322.ps[0] = Point(439.246, 398.918);
+ poly322.ps[1] = Point(439.246, 438.918);
+ poly322.ps[2] = Point(383.246, 438.918);
+ poly322.ps[3] = Point(383.246, 398.918);
+ ShapeRef *shapeRef322 = new ShapeRef(router, poly322, 322);
+ router->addShape(shapeRef322);
+
+ Polygon poly323(4);
+ poly323.ps[0] = Point(439.246, 366.918);
+ poly323.ps[1] = Point(439.246, 406.918);
+ poly323.ps[2] = Point(383.246, 406.918);
+ poly323.ps[3] = Point(383.246, 366.918);
+ ShapeRef *shapeRef323 = new ShapeRef(router, poly323, 323);
+ router->addShape(shapeRef323);
+
+ Polygon poly324(4);
+ poly324.ps[0] = Point(409.246, 182.918);
+ poly324.ps[1] = Point(409.246, 222.918);
+ poly324.ps[2] = Point(353.246, 222.918);
+ poly324.ps[3] = Point(353.246, 182.918);
+ ShapeRef *shapeRef324 = new ShapeRef(router, poly324, 324);
+ router->addShape(shapeRef324);
+
+ Polygon poly325(4);
+ poly325.ps[0] = Point(361.246, 172.918);
+ poly325.ps[1] = Point(361.246, 212.918);
+ poly325.ps[2] = Point(305.246, 212.918);
+ poly325.ps[3] = Point(305.246, 172.918);
+ ShapeRef *shapeRef325 = new ShapeRef(router, poly325, 325);
+ router->addShape(shapeRef325);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(655.246, 236.918);
+ poly96.ps[1] = Point(655.246, 256.918);
+ poly96.ps[2] = Point(635.246, 256.918);
+ poly96.ps[3] = Point(635.246, 236.918);
+ ShapeRef *shapeRef96 = new ShapeRef(router, poly96, 96);
+ router->addShape(shapeRef96);
+
+ Polygon poly144(4);
+ poly144.ps[0] = Point(27.2456, 160.918);
+ poly144.ps[1] = Point(27.2456, 180.918);
+ poly144.ps[2] = Point(7.24557, 180.918);
+ poly144.ps[3] = Point(7.24557, 160.918);
+ ShapeRef *shapeRef144 = new ShapeRef(router, poly144, 144);
+ router->addShape(shapeRef144);
+
+ Polygon poly192(4);
+ poly192.ps[0] = Point(967.246, 300.918);
+ poly192.ps[1] = Point(967.246, 320.918);
+ poly192.ps[2] = Point(947.246, 320.918);
+ poly192.ps[3] = Point(947.246, 300.918);
+ ShapeRef *shapeRef192 = new ShapeRef(router, poly192, 192);
+ router->addShape(shapeRef192);
+
+ Polygon poly193(4);
+ poly193.ps[0] = Point(27.2456, 440.918);
+ poly193.ps[1] = Point(27.2456, 460.918);
+ poly193.ps[2] = Point(7.24557, 460.918);
+ poly193.ps[3] = Point(7.24557, 440.918);
+ ShapeRef *shapeRef193 = new ShapeRef(router, poly193, 193);
+ router->addShape(shapeRef193);
+
+ Polygon poly173(4);
+ poly173.ps[0] = Point(693.933, 656.918);
+ poly173.ps[1] = Point(693.933, 696.918);
+ poly173.ps[2] = Point(653.933, 696.918);
+ poly173.ps[3] = Point(653.933, 656.918);
+ ShapeRef *shapeRef173 = new ShapeRef(router, poly173, 173);
+ router->addShape(shapeRef173);
+
+ Polygon poly174(4);
+ poly174.ps[0] = Point(693.933, 538.918);
+ poly174.ps[1] = Point(693.933, 578.918);
+ poly174.ps[2] = Point(653.933, 578.918);
+ poly174.ps[3] = Point(653.933, 538.918);
+ ShapeRef *shapeRef174 = new ShapeRef(router, poly174, 174);
+ router->addShape(shapeRef174);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(343.246, 268.918);
+ poly118.ps[1] = Point(343.246, 288.918);
+ poly118.ps[2] = Point(323.246, 288.918);
+ poly118.ps[3] = Point(323.246, 268.918);
+ ShapeRef *shapeRef118 = new ShapeRef(router, poly118, 118);
+ router->addShape(shapeRef118);
+
+ Polygon poly183(4);
+ poly183.ps[0] = Point(999.246, 538.918);
+ poly183.ps[1] = Point(999.246, 578.918);
+ poly183.ps[2] = Point(959.246, 578.918);
+ poly183.ps[3] = Point(959.246, 538.918);
+ ShapeRef *shapeRef183 = new ShapeRef(router, poly183, 183);
+ router->addShape(shapeRef183);
+
+ Polygon poly184(4);
+ poly184.ps[0] = Point(999.246, 427.955);
+ poly184.ps[1] = Point(999.246, 467.955);
+ poly184.ps[2] = Point(959.246, 467.955);
+ poly184.ps[3] = Point(959.246, 427.955);
+ ShapeRef *shapeRef184 = new ShapeRef(router, poly184, 184);
+ router->addShape(shapeRef184);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(235.246, 408.918);
+ poly125.ps[1] = Point(235.246, 428.918);
+ poly125.ps[2] = Point(215.246, 428.918);
+ poly125.ps[3] = Point(215.246, 408.918);
+ ShapeRef *shapeRef125 = new ShapeRef(router, poly125, 125);
+ router->addShape(shapeRef125);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(499.246, 504.918);
+ poly101.ps[1] = Point(499.246, 524.918);
+ poly101.ps[2] = Point(479.246, 524.918);
+ poly101.ps[3] = Point(479.246, 504.918);
+ ShapeRef *shapeRef101 = new ShapeRef(router, poly101, 101);
+ router->addShape(shapeRef101);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(27.2456, 268.918);
+ poly139.ps[1] = Point(27.2456, 288.918);
+ poly139.ps[2] = Point(7.24557, 288.918);
+ poly139.ps[3] = Point(7.24557, 268.918);
+ ShapeRef *shapeRef139 = new ShapeRef(router, poly139, 139);
+ router->addShape(shapeRef139);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(859.246, 612.918);
+ poly2.ps[1] = Point(859.246, 632.918);
+ poly2.ps[2] = Point(839.246, 632.918);
+ poly2.ps[3] = Point(839.246, 612.918);
+ ShapeRef *shapeRef2 = new ShapeRef(router, poly2, 2);
+ router->addShape(shapeRef2);
+
+ Polygon poly1(4);
+ poly1.ps[0] = Point(1015.25, 612.918);
+ poly1.ps[1] = Point(1015.25, 632.918);
+ poly1.ps[2] = Point(995.246, 632.918);
+ poly1.ps[3] = Point(995.246, 612.918);
+ ShapeRef *shapeRef1 = new ShapeRef(router, poly1, 1);
+ router->addShape(shapeRef1);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(499.246, 376.918);
+ poly105.ps[1] = Point(499.246, 396.918);
+ poly105.ps[2] = Point(479.246, 396.918);
+ poly105.ps[3] = Point(479.246, 376.918);
+ ShapeRef *shapeRef105 = new ShapeRef(router, poly105, 105);
+ router->addShape(shapeRef105);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(859.246, 644.918);
+ poly29.ps[1] = Point(859.246, 664.918);
+ poly29.ps[2] = Point(839.246, 664.918);
+ poly29.ps[3] = Point(839.246, 644.918);
+ ShapeRef *shapeRef29 = new ShapeRef(router, poly29, 29);
+ router->addShape(shapeRef29);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(235.246, 246.918);
+ poly128.ps[1] = Point(235.246, 266.918);
+ poly128.ps[2] = Point(215.246, 266.918);
+ poly128.ps[3] = Point(215.246, 246.918);
+ ShapeRef *shapeRef128 = new ShapeRef(router, poly128, 128);
+ router->addShape(shapeRef128);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(1303.25, 408.918);
+ poly45.ps[1] = Point(1303.25, 428.918);
+ poly45.ps[2] = Point(1283.25, 428.918);
+ poly45.ps[3] = Point(1283.25, 408.918);
+ ShapeRef *shapeRef45 = new ShapeRef(router, poly45, 45);
+ router->addShape(shapeRef45);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(1191.25, 656.918);
+ poly16.ps[1] = Point(1191.25, 696.918);
+ poly16.ps[2] = Point(1151.25, 696.918);
+ poly16.ps[3] = Point(1151.25, 656.918);
+ ShapeRef *shapeRef16 = new ShapeRef(router, poly16, 16);
+ router->addShape(shapeRef16);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(655.246, 580.918);
+ poly88.ps[1] = Point(655.246, 600.918);
+ poly88.ps[2] = Point(635.246, 600.918);
+ poly88.ps[3] = Point(635.246, 580.918);
+ ShapeRef *shapeRef88 = new ShapeRef(router, poly88, 88);
+ router->addShape(shapeRef88);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(203.246, 236.918);
+ poly129.ps[1] = Point(203.246, 256.918);
+ poly129.ps[2] = Point(183.246, 256.918);
+ poly129.ps[3] = Point(183.246, 236.918);
+ ShapeRef *shapeRef129 = new ShapeRef(router, poly129, 129);
+ router->addShape(shapeRef129);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(499.246, 268.918);
+ poly107.ps[1] = Point(499.246, 288.918);
+ poly107.ps[2] = Point(479.246, 288.918);
+ poly107.ps[3] = Point(479.246, 268.918);
+ ShapeRef *shapeRef107 = new ShapeRef(router, poly107, 107);
+ router->addShape(shapeRef107);
+
+ Polygon poly160(4);
+ poly160.ps[0] = Point(45.2456, 76.9179);
+ poly160.ps[1] = Point(45.2456, 116.918);
+ poly160.ps[2] = Point(5.24557, 116.918);
+ poly160.ps[3] = Point(5.24557, 76.9179);
+ ShapeRef *shapeRef160 = new ShapeRef(router, poly160, 160);
+ router->addShape(shapeRef160);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(343.246, 376.918);
+ poly116.ps[1] = Point(343.246, 396.918);
+ poly116.ps[2] = Point(323.246, 396.918);
+ poly116.ps[3] = Point(323.246, 376.918);
+ ShapeRef *shapeRef116 = new ShapeRef(router, poly116, 116);
+ router->addShape(shapeRef116);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(203.246, 376.918);
+ poly127.ps[1] = Point(203.246, 396.918);
+ poly127.ps[2] = Point(183.246, 396.918);
+ poly127.ps[3] = Point(183.246, 376.918);
+ ShapeRef *shapeRef127 = new ShapeRef(router, poly127, 127);
+ router->addShape(shapeRef127);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(235.246, 278.918);
+ poly57.ps[1] = Point(235.246, 298.918);
+ poly57.ps[2] = Point(215.246, 298.918);
+ poly57.ps[3] = Point(215.246, 278.918);
+ ShapeRef *shapeRef57 = new ShapeRef(router, poly57, 57);
+ router->addShape(shapeRef57);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(859.246, 526.918);
+ poly37.ps[1] = Point(859.246, 546.918);
+ poly37.ps[2] = Point(839.246, 546.918);
+ poly37.ps[3] = Point(839.246, 526.918);
+ ShapeRef *shapeRef37 = new ShapeRef(router, poly37, 37);
+ router->addShape(shapeRef37);
+
+ Polygon poly167(4);
+ poly167.ps[0] = Point(391.246, 427.955);
+ poly167.ps[1] = Point(391.246, 467.955);
+ poly167.ps[2] = Point(351.246, 467.955);
+ poly167.ps[3] = Point(351.246, 427.955);
+ ShapeRef *shapeRef167 = new ShapeRef(router, poly167, 167);
+ router->addShape(shapeRef167);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(811.246, 580.918);
+ poly77.ps[1] = Point(811.246, 600.918);
+ poly77.ps[2] = Point(791.246, 600.918);
+ poly77.ps[3] = Point(791.246, 580.918);
+ ShapeRef *shapeRef77 = new ShapeRef(router, poly77, 77);
+ router->addShape(shapeRef77);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(343.246, 408.918);
+ poly115.ps[1] = Point(343.246, 428.918);
+ poly115.ps[2] = Point(323.246, 428.918);
+ poly115.ps[3] = Point(323.246, 408.918);
+ ShapeRef *shapeRef115 = new ShapeRef(router, poly115, 115);
+ router->addShape(shapeRef115);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(547.246, 580.918);
+ poly97.ps[1] = Point(547.246, 600.918);
+ poly97.ps[2] = Point(527.246, 600.918);
+ poly97.ps[3] = Point(527.246, 580.918);
+ ShapeRef *shapeRef97 = new ShapeRef(router, poly97, 97);
+ router->addShape(shapeRef97);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(1015.25, 644.918);
+ poly28.ps[1] = Point(1015.25, 664.918);
+ poly28.ps[2] = Point(995.246, 664.918);
+ poly28.ps[3] = Point(995.246, 644.918);
+ ShapeRef *shapeRef28 = new ShapeRef(router, poly28, 28);
+ router->addShape(shapeRef28);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(203.246, 408.918);
+ poly126.ps[1] = Point(203.246, 428.918);
+ poly126.ps[2] = Point(183.246, 428.918);
+ poly126.ps[3] = Point(183.246, 408.918);
+ ShapeRef *shapeRef126 = new ShapeRef(router, poly126, 126);
+ router->addShape(shapeRef126);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(499.246, 236.918);
+ poly108.ps[1] = Point(499.246, 256.918);
+ poly108.ps[2] = Point(479.246, 256.918);
+ poly108.ps[3] = Point(479.246, 236.918);
+ ShapeRef *shapeRef108 = new ShapeRef(router, poly108, 108);
+ router->addShape(shapeRef108);
+
+ Polygon poly161(4);
+ poly161.ps[0] = Point(235.246, 312.918);
+ poly161.ps[1] = Point(235.246, 352.918);
+ poly161.ps[2] = Point(195.246, 352.918);
+ poly161.ps[3] = Point(195.246, 312.918);
+ ShapeRef *shapeRef161 = new ShapeRef(router, poly161, 161);
+ router->addShape(shapeRef161);
+
+ Polygon poly146(4);
+ poly146.ps[0] = Point(27.2456, -9.08205);
+ poly146.ps[1] = Point(27.2456, 10.9179);
+ poly146.ps[2] = Point(7.24557, 10.9179);
+ poly146.ps[3] = Point(7.24557, -9.08205);
+ ShapeRef *shapeRef146 = new ShapeRef(router, poly146, 146);
+ router->addShape(shapeRef146);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(391.246, 408.918);
+ poly114.ps[1] = Point(391.246, 428.918);
+ poly114.ps[2] = Point(371.246, 428.918);
+ poly114.ps[3] = Point(371.246, 408.918);
+ ShapeRef *shapeRef114 = new ShapeRef(router, poly114, 114);
+ router->addShape(shapeRef114);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(1015.25, 580.918);
+ poly64.ps[1] = Point(1015.25, 600.918);
+ poly64.ps[2] = Point(995.246, 600.918);
+ poly64.ps[3] = Point(995.246, 580.918);
+ ShapeRef *shapeRef64 = new ShapeRef(router, poly64, 64);
+ router->addShape(shapeRef64);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(1223.25, 312.918);
+ poly11.ps[1] = Point(1223.25, 352.918);
+ poly11.ps[2] = Point(1183.25, 352.918);
+ poly11.ps[3] = Point(1183.25, 312.918);
+ ShapeRef *shapeRef11 = new ShapeRef(router, poly11, 11);
+ router->addShape(shapeRef11);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(967.246, 504.918);
+ poly67.ps[1] = Point(967.246, 524.918);
+ poly67.ps[2] = Point(947.246, 524.918);
+ poly67.ps[3] = Point(947.246, 504.918);
+ ShapeRef *shapeRef67 = new ShapeRef(router, poly67, 67);
+ router->addShape(shapeRef67);
+
+ Polygon poly158(4);
+ poly158.ps[0] = Point(77.2456, 538.918);
+ poly158.ps[1] = Point(77.2456, 578.918);
+ poly158.ps[2] = Point(37.2456, 578.918);
+ poly158.ps[3] = Point(37.2456, 538.918);
+ ShapeRef *shapeRef158 = new ShapeRef(router, poly158, 158);
+ router->addShape(shapeRef158);
+
+ Polygon poly159(4);
+ poly159.ps[0] = Point(77.2456, 656.918);
+ poly159.ps[1] = Point(77.2456, 696.918);
+ poly159.ps[2] = Point(37.2456, 696.918);
+ poly159.ps[3] = Point(37.2456, 656.918);
+ ShapeRef *shapeRef159 = new ShapeRef(router, poly159, 159);
+ router->addShape(shapeRef159);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(703.246, 246.918);
+ poly94.ps[1] = Point(703.246, 266.918);
+ poly94.ps[2] = Point(683.246, 266.918);
+ poly94.ps[3] = Point(683.246, 246.918);
+ ShapeRef *shapeRef94 = new ShapeRef(router, poly94, 94);
+ router->addShape(shapeRef94);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(499.246, 472.918);
+ poly102.ps[1] = Point(499.246, 492.918);
+ poly102.ps[2] = Point(479.246, 492.918);
+ poly102.ps[3] = Point(479.246, 472.918);
+ ShapeRef *shapeRef102 = new ShapeRef(router, poly102, 102);
+ router->addShape(shapeRef102);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(77.2456, 526.918);
+ poly42.ps[1] = Point(77.2456, 546.918);
+ poly42.ps[2] = Point(57.2456, 546.918);
+ poly42.ps[3] = Point(57.2456, 526.918);
+ ShapeRef *shapeRef42 = new ShapeRef(router, poly42, 42);
+ router->addShape(shapeRef42);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(77.2456, 580.918);
+ poly131.ps[1] = Point(77.2456, 600.918);
+ poly131.ps[2] = Point(57.2456, 600.918);
+ poly131.ps[3] = Point(57.2456, 580.918);
+ ShapeRef *shapeRef131 = new ShapeRef(router, poly131, 131);
+ router->addShape(shapeRef131);
+
+ Polygon poly149(4);
+ poly149.ps[0] = Point(601.954, 56.9179);
+ poly149.ps[1] = Point(601.954, 116.918);
+ poly149.ps[2] = Point(311.954, 116.918);
+ poly149.ps[3] = Point(311.954, 56.9179);
+ ShapeRef *shapeRef149 = new ShapeRef(router, poly149, 149);
+ router->addShape(shapeRef149);
+
+ Polygon poly150(4);
+ poly150.ps[0] = Point(77.2456, 105.987);
+ poly150.ps[1] = Point(77.2456, 145.987);
+ poly150.ps[2] = Point(37.2456, 145.987);
+ poly150.ps[3] = Point(37.2456, 105.987);
+ ShapeRef *shapeRef150 = new ShapeRef(router, poly150, 150);
+ router->addShape(shapeRef150);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(967.246, 236.918);
+ poly74.ps[1] = Point(967.246, 256.918);
+ poly74.ps[2] = Point(947.246, 256.918);
+ poly74.ps[3] = Point(947.246, 236.918);
+ ShapeRef *shapeRef74 = new ShapeRef(router, poly74, 74);
+ router->addShape(shapeRef74);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(77.2456, 612.918);
+ poly34.ps[1] = Point(77.2456, 632.918);
+ poly34.ps[2] = Point(57.2456, 632.918);
+ poly34.ps[3] = Point(57.2456, 612.918);
+ ShapeRef *shapeRef34 = new ShapeRef(router, poly34, 34);
+ router->addShape(shapeRef34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(1303.25, 504.918);
+ poly35.ps[1] = Point(1303.25, 524.918);
+ poly35.ps[2] = Point(1283.25, 524.918);
+ poly35.ps[3] = Point(1283.25, 504.918);
+ ShapeRef *shapeRef35 = new ShapeRef(router, poly35, 35);
+ router->addShape(shapeRef35);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(1381.25, 666.918);
+ poly26.ps[1] = Point(1381.25, 686.918);
+ poly26.ps[2] = Point(1361.25, 686.918);
+ poly26.ps[3] = Point(1361.25, 666.918);
+ ShapeRef *shapeRef26 = new ShapeRef(router, poly26, 26);
+ router->addShape(shapeRef26);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(1015.25, 526.918);
+ poly36.ps[1] = Point(1015.25, 546.918);
+ poly36.ps[2] = Point(995.246, 546.918);
+ poly36.ps[3] = Point(995.246, 526.918);
+ ShapeRef *shapeRef36 = new ShapeRef(router, poly36, 36);
+ router->addShape(shapeRef36);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(343.246, 612.918);
+ poly110.ps[1] = Point(343.246, 632.918);
+ poly110.ps[2] = Point(323.246, 632.918);
+ poly110.ps[3] = Point(323.246, 612.918);
+ ShapeRef *shapeRef110 = new ShapeRef(router, poly110, 110);
+ router->addShape(shapeRef110);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(703.246, 612.918);
+ poly3.ps[1] = Point(703.246, 632.918);
+ poly3.ps[2] = Point(683.246, 632.918);
+ poly3.ps[3] = Point(683.246, 612.918);
+ ShapeRef *shapeRef3 = new ShapeRef(router, poly3, 3);
+ router->addShape(shapeRef3);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(343.246, 472.918);
+ poly113.ps[1] = Point(343.246, 492.918);
+ poly113.ps[2] = Point(323.246, 492.918);
+ poly113.ps[3] = Point(323.246, 472.918);
+ ShapeRef *shapeRef113 = new ShapeRef(router, poly113, 113);
+ router->addShape(shapeRef113);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(27.2456, 408.918);
+ poly137.ps[1] = Point(27.2456, 428.918);
+ poly137.ps[2] = Point(7.24557, 428.918);
+ poly137.ps[3] = Point(7.24557, 408.918);
+ ShapeRef *shapeRef137 = new ShapeRef(router, poly137, 137);
+ router->addShape(shapeRef137);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(1303.25, 708.918);
+ poly46.ps[1] = Point(1303.25, 728.918);
+ poly46.ps[2] = Point(1283.25, 728.918);
+ poly46.ps[3] = Point(1283.25, 708.918);
+ ShapeRef *shapeRef46 = new ShapeRef(router, poly46, 46);
+ router->addShape(shapeRef46);
+
+ Polygon poly164(4);
+ poly164.ps[0] = Point(235.246, 656.918);
+ poly164.ps[1] = Point(235.246, 696.918);
+ poly164.ps[2] = Point(195.246, 696.918);
+ poly164.ps[3] = Point(195.246, 656.918);
+ ShapeRef *shapeRef164 = new ShapeRef(router, poly164, 164);
+ router->addShape(shapeRef164);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(967.246, 472.918);
+ poly68.ps[1] = Point(967.246, 492.918);
+ poly68.ps[2] = Point(947.246, 492.918);
+ poly68.ps[3] = Point(947.246, 472.918);
+ ShapeRef *shapeRef68 = new ShapeRef(router, poly68, 68);
+ router->addShape(shapeRef68);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(1171.25, 708.918);
+ poly22.ps[1] = Point(1171.25, 728.918);
+ poly22.ps[2] = Point(1151.25, 728.918);
+ poly22.ps[3] = Point(1151.25, 708.918);
+ ShapeRef *shapeRef22 = new ShapeRef(router, poly22, 22);
+ router->addShape(shapeRef22);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(811.246, 708.918);
+ poly21.ps[1] = Point(811.246, 728.918);
+ poly21.ps[2] = Point(791.246, 728.918);
+ poly21.ps[3] = Point(791.246, 708.918);
+ ShapeRef *shapeRef21 = new ShapeRef(router, poly21, 21);
+ router->addShape(shapeRef21);
+
+ Polygon poly162(4);
+ poly162.ps[0] = Point(235.246, 427.955);
+ poly162.ps[1] = Point(235.246, 467.955);
+ poly162.ps[2] = Point(195.246, 467.955);
+ poly162.ps[3] = Point(195.246, 427.955);
+ ShapeRef *shapeRef162 = new ShapeRef(router, poly162, 162);
+ router->addShape(shapeRef162);
+
+ Polygon poly163(4);
+ poly163.ps[0] = Point(235.246, 538.918);
+ poly163.ps[1] = Point(235.246, 578.918);
+ poly163.ps[2] = Point(195.246, 578.918);
+ poly163.ps[3] = Point(195.246, 538.918);
+ ShapeRef *shapeRef163 = new ShapeRef(router, poly163, 163);
+ router->addShape(shapeRef163);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(27.2456, 472.918);
+ poly135.ps[1] = Point(27.2456, 492.918);
+ poly135.ps[2] = Point(7.24557, 492.918);
+ poly135.ps[3] = Point(7.24557, 472.918);
+ ShapeRef *shapeRef135 = new ShapeRef(router, poly135, 135);
+ router->addShape(shapeRef135);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(1223.25, 730.918);
+ poly13.ps[1] = Point(1223.25, 770.918);
+ poly13.ps[2] = Point(1183.25, 770.918);
+ poly13.ps[3] = Point(1183.25, 730.918);
+ ShapeRef *shapeRef13 = new ShapeRef(router, poly13, 13);
+ router->addShape(shapeRef13);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(655.246, 376.918);
+ poly93.ps[1] = Point(655.246, 396.918);
+ poly93.ps[2] = Point(635.246, 396.918);
+ poly93.ps[3] = Point(635.246, 376.918);
+ ShapeRef *shapeRef93 = new ShapeRef(router, poly93, 93);
+ router->addShape(shapeRef93);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(859.246, 408.918);
+ poly80.ps[1] = Point(859.246, 428.918);
+ poly80.ps[2] = Point(839.246, 428.918);
+ poly80.ps[3] = Point(839.246, 408.918);
+ ShapeRef *shapeRef80 = new ShapeRef(router, poly80, 80);
+ router->addShape(shapeRef80);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(655.246, 408.918);
+ poly92.ps[1] = Point(655.246, 428.918);
+ poly92.ps[2] = Point(635.246, 428.918);
+ poly92.ps[3] = Point(635.246, 408.918);
+ ShapeRef *shapeRef92 = new ShapeRef(router, poly92, 92);
+ router->addShape(shapeRef92);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(207.246, -128.082);
+ poly59.ps[1] = Point(207.246, -93.0821);
+ poly59.ps[2] = Point(-12.7544, -93.0821);
+ poly59.ps[3] = Point(-12.7544, -128.082);
+ ShapeRef *shapeRef59 = new ShapeRef(router, poly59, 59);
+ router->addShape(shapeRef59);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(1303.25, 278.918);
+ poly43.ps[1] = Point(1303.25, 298.918);
+ poly43.ps[2] = Point(1283.25, 298.918);
+ poly43.ps[3] = Point(1283.25, 278.918);
+ ShapeRef *shapeRef43 = new ShapeRef(router, poly43, 43);
+ router->addShape(shapeRef43);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(547.246, 246.918);
+ poly106.ps[1] = Point(547.246, 266.918);
+ poly106.ps[2] = Point(527.246, 266.918);
+ poly106.ps[3] = Point(527.246, 246.918);
+ ShapeRef *shapeRef106 = new ShapeRef(router, poly106, 106);
+ router->addShape(shapeRef106);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(811.246, 472.918);
+ poly79.ps[1] = Point(811.246, 492.918);
+ poly79.ps[2] = Point(791.246, 492.918);
+ poly79.ps[3] = Point(791.246, 472.918);
+ ShapeRef *shapeRef79 = new ShapeRef(router, poly79, 79);
+ router->addShape(shapeRef79);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(703.246, 580.918);
+ poly86.ps[1] = Point(703.246, 600.918);
+ poly86.ps[2] = Point(683.246, 600.918);
+ poly86.ps[3] = Point(683.246, 580.918);
+ ShapeRef *shapeRef86 = new ShapeRef(router, poly86, 86);
+ router->addShape(shapeRef86);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(343.246, 504.918);
+ poly112.ps[1] = Point(343.246, 524.918);
+ poly112.ps[2] = Point(323.246, 524.918);
+ poly112.ps[3] = Point(323.246, 504.918);
+ ShapeRef *shapeRef112 = new ShapeRef(router, poly112, 112);
+ router->addShape(shapeRef112);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(811.246, 376.918);
+ poly82.ps[1] = Point(811.246, 396.918);
+ poly82.ps[2] = Point(791.246, 396.918);
+ poly82.ps[3] = Point(791.246, 376.918);
+ ShapeRef *shapeRef82 = new ShapeRef(router, poly82, 82);
+ router->addShape(shapeRef82);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(254.976, 160.918);
+ poly141.ps[1] = Point(254.976, 180.918);
+ poly141.ps[2] = Point(234.976, 180.918);
+ poly141.ps[3] = Point(234.976, 160.918);
+ ShapeRef *shapeRef141 = new ShapeRef(router, poly141, 141);
+ router->addShape(shapeRef141);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(1469.25, 656.918);
+ poly15.ps[1] = Point(1469.25, 696.918);
+ poly15.ps[2] = Point(1429.25, 696.918);
+ poly15.ps[3] = Point(1429.25, 656.918);
+ ShapeRef *shapeRef15 = new ShapeRef(router, poly15, 15);
+ router->addShape(shapeRef15);
+
+ Polygon poly152(4);
+ poly152.ps[0] = Point(339.219, -27.0821);
+ poly152.ps[1] = Point(339.219, 12.9179);
+ poly152.ps[2] = Point(299.219, 12.9179);
+ poly152.ps[3] = Point(299.219, -27.0821);
+ ShapeRef *shapeRef152 = new ShapeRef(router, poly152, 152);
+ router->addShape(shapeRef152);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(1223.25, 538.918);
+ poly9.ps[1] = Point(1223.25, 578.918);
+ poly9.ps[2] = Point(1183.25, 578.918);
+ poly9.ps[3] = Point(1183.25, 538.918);
+ ShapeRef *shapeRef9 = new ShapeRef(router, poly9, 9);
+ router->addShape(shapeRef9);
+
+ Polygon poly148(4);
+ poly148.ps[0] = Point(207.246, -39.0821);
+ poly148.ps[1] = Point(207.246, -19.0821);
+ poly148.ps[2] = Point(187.246, -19.0821);
+ poly148.ps[3] = Point(187.246, -39.0821);
+ ShapeRef *shapeRef148 = new ShapeRef(router, poly148, 148);
+ router->addShape(shapeRef148);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(27.2456, 236.918);
+ poly140.ps[1] = Point(27.2456, 256.918);
+ poly140.ps[2] = Point(7.24557, 256.918);
+ poly140.ps[3] = Point(7.24557, 236.918);
+ ShapeRef *shapeRef140 = new ShapeRef(router, poly140, 140);
+ router->addShape(shapeRef140);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(693.933, 730.918);
+ poly18.ps[1] = Point(693.933, 770.918);
+ poly18.ps[2] = Point(653.933, 770.918);
+ poly18.ps[3] = Point(653.933, 730.918);
+ ShapeRef *shapeRef18 = new ShapeRef(router, poly18, 18);
+ router->addShape(shapeRef18);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(391.246, 526.918);
+ poly40.ps[1] = Point(391.246, 546.918);
+ poly40.ps[2] = Point(371.246, 546.918);
+ poly40.ps[3] = Point(371.246, 526.918);
+ ShapeRef *shapeRef40 = new ShapeRef(router, poly40, 40);
+ router->addShape(shapeRef40);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(203.246, 580.918);
+ poly122.ps[1] = Point(203.246, 600.918);
+ poly122.ps[2] = Point(183.246, 600.918);
+ poly122.ps[3] = Point(183.246, 580.918);
+ ShapeRef *shapeRef122 = new ShapeRef(router, poly122, 122);
+ router->addShape(shapeRef122);
+
+ Polygon poly175(4);
+ poly175.ps[0] = Point(693.933, 427.955);
+ poly175.ps[1] = Point(693.933, 467.955);
+ poly175.ps[2] = Point(653.933, 467.955);
+ poly175.ps[3] = Point(653.933, 427.955);
+ ShapeRef *shapeRef175 = new ShapeRef(router, poly175, 175);
+ router->addShape(shapeRef175);
+
+ Polygon poly176(4);
+ poly176.ps[0] = Point(693.933, 312.918);
+ poly176.ps[1] = Point(693.933, 352.918);
+ poly176.ps[2] = Point(653.933, 352.918);
+ poly176.ps[3] = Point(653.933, 312.918);
+ ShapeRef *shapeRef176 = new ShapeRef(router, poly176, 176);
+ router->addShape(shapeRef176);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(27.2456, 612.918);
+ poly132.ps[1] = Point(27.2456, 632.918);
+ poly132.ps[2] = Point(7.24557, 632.918);
+ poly132.ps[3] = Point(7.24557, 612.918);
+ ShapeRef *shapeRef132 = new ShapeRef(router, poly132, 132);
+ router->addShape(shapeRef132);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(1093.25, 666.918);
+ poly44.ps[1] = Point(1093.25, 686.918);
+ poly44.ps[2] = Point(1073.25, 686.918);
+ poly44.ps[3] = Point(1073.25, 666.918);
+ ShapeRef *shapeRef44 = new ShapeRef(router, poly44, 44);
+ router->addShape(shapeRef44);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(1015.25, 708.918);
+ poly62.ps[1] = Point(1015.25, 728.918);
+ poly62.ps[2] = Point(995.246, 728.918);
+ poly62.ps[3] = Point(995.246, 708.918);
+ ShapeRef *shapeRef62 = new ShapeRef(router, poly62, 62);
+ router->addShape(shapeRef62);
+
+ Polygon poly151(4);
+ poly151.ps[0] = Point(339.219, -71.0821);
+ poly151.ps[1] = Point(339.219, -31.0821);
+ poly151.ps[2] = Point(299.219, -31.0821);
+ poly151.ps[3] = Point(299.219, -71.0821);
+ ShapeRef *shapeRef151 = new ShapeRef(router, poly151, 151);
+ router->addShape(shapeRef151);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(967.246, 408.918);
+ poly70.ps[1] = Point(967.246, 428.918);
+ poly70.ps[2] = Point(947.246, 428.918);
+ poly70.ps[3] = Point(947.246, 408.918);
+ ShapeRef *shapeRef70 = new ShapeRef(router, poly70, 70);
+ router->addShape(shapeRef70);
+
+ Polygon poly168(4);
+ poly168.ps[0] = Point(391.246, 312.918);
+ poly168.ps[1] = Point(391.246, 352.918);
+ poly168.ps[2] = Point(351.246, 352.918);
+ poly168.ps[3] = Point(351.246, 312.918);
+ ShapeRef *shapeRef168 = new ShapeRef(router, poly168, 168);
+ router->addShape(shapeRef168);
+
+ Polygon poly169(4);
+ poly169.ps[0] = Point(547.246, 312.918);
+ poly169.ps[1] = Point(547.246, 352.918);
+ poly169.ps[2] = Point(507.246, 352.918);
+ poly169.ps[3] = Point(507.246, 312.918);
+ ShapeRef *shapeRef169 = new ShapeRef(router, poly169, 169);
+ router->addShape(shapeRef169);
+
+ Polygon poly189(4);
+ poly189.ps[0] = Point(499.246, 300.918);
+ poly189.ps[1] = Point(499.246, 320.918);
+ poly189.ps[2] = Point(479.246, 320.918);
+ poly189.ps[3] = Point(479.246, 300.918);
+ ShapeRef *shapeRef189 = new ShapeRef(router, poly189, 189);
+ router->addShape(shapeRef189);
+
+ Polygon poly190(4);
+ poly190.ps[0] = Point(655.246, 300.918);
+ poly190.ps[1] = Point(655.246, 320.918);
+ poly190.ps[2] = Point(635.246, 320.918);
+ poly190.ps[3] = Point(635.246, 300.918);
+ ShapeRef *shapeRef190 = new ShapeRef(router, poly190, 190);
+ router->addShape(shapeRef190);
+
+ Polygon poly191(4);
+ poly191.ps[0] = Point(811.246, 300.918);
+ poly191.ps[1] = Point(811.246, 320.918);
+ poly191.ps[2] = Point(791.246, 320.918);
+ poly191.ps[3] = Point(791.246, 300.918);
+ ShapeRef *shapeRef191 = new ShapeRef(router, poly191, 191);
+ router->addShape(shapeRef191);
+
+ Polygon poly207(4);
+ poly207.ps[0] = Point(27.2456, 644.918);
+ poly207.ps[1] = Point(27.2456, 664.918);
+ poly207.ps[2] = Point(7.24557, 664.918);
+ poly207.ps[3] = Point(7.24557, 644.918);
+ ShapeRef *shapeRef207 = new ShapeRef(router, poly207, 207);
+ router->addShape(shapeRef207);
+
+ Polygon poly208(4);
+ poly208.ps[0] = Point(203.246, 644.918);
+ poly208.ps[1] = Point(203.246, 664.918);
+ poly208.ps[2] = Point(183.246, 664.918);
+ poly208.ps[3] = Point(183.246, 644.918);
+ ShapeRef *shapeRef208 = new ShapeRef(router, poly208, 208);
+ router->addShape(shapeRef208);
+
+ Polygon poly209(4);
+ poly209.ps[0] = Point(343.246, 644.918);
+ poly209.ps[1] = Point(343.246, 664.918);
+ poly209.ps[2] = Point(323.246, 664.918);
+ poly209.ps[3] = Point(323.246, 644.918);
+ ShapeRef *shapeRef209 = new ShapeRef(router, poly209, 209);
+ router->addShape(shapeRef209);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(1223.25, 427.955);
+ poly10.ps[1] = Point(1223.25, 467.955);
+ poly10.ps[2] = Point(1183.25, 467.955);
+ poly10.ps[3] = Point(1183.25, 427.955);
+ ShapeRef *shapeRef10 = new ShapeRef(router, poly10, 10);
+ router->addShape(shapeRef10);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(703.246, 644.918);
+ poly30.ps[1] = Point(703.246, 664.918);
+ poly30.ps[2] = Point(683.246, 664.918);
+ poly30.ps[3] = Point(683.246, 644.918);
+ ShapeRef *shapeRef30 = new ShapeRef(router, poly30, 30);
+ router->addShape(shapeRef30);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(343.246, 236.918);
+ poly119.ps[1] = Point(343.246, 256.918);
+ poly119.ps[2] = Point(323.246, 256.918);
+ poly119.ps[3] = Point(323.246, 236.918);
+ ShapeRef *shapeRef119 = new ShapeRef(router, poly119, 119);
+ router->addShape(shapeRef119);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(1469.25, 730.918);
+ poly12.ps[1] = Point(1469.25, 770.918);
+ poly12.ps[2] = Point(1429.25, 770.918);
+ poly12.ps[3] = Point(1429.25, 730.918);
+ ShapeRef *shapeRef12 = new ShapeRef(router, poly12, 12);
+ router->addShape(shapeRef12);
+
+ Polygon poly154(4);
+ poly154.ps[0] = Point(217.246, 140.918);
+ poly154.ps[1] = Point(217.246, 180.918);
+ poly154.ps[2] = Point(177.246, 180.918);
+ poly154.ps[3] = Point(177.246, 140.918);
+ ShapeRef *shapeRef154 = new ShapeRef(router, poly154, 154);
+ router->addShape(shapeRef154);
+
+ Polygon poly155(4);
+ poly155.ps[0] = Point(77.2456, 140.918);
+ poly155.ps[1] = Point(77.2456, 180.918);
+ poly155.ps[2] = Point(37.2456, 180.918);
+ poly155.ps[3] = Point(37.2456, 140.918);
+ ShapeRef *shapeRef155 = new ShapeRef(router, poly155, 155);
+ router->addShape(shapeRef155);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(547.246, 526.918);
+ poly39.ps[1] = Point(547.246, 546.918);
+ poly39.ps[2] = Point(527.246, 546.918);
+ poly39.ps[3] = Point(527.246, 526.918);
+ ShapeRef *shapeRef39 = new ShapeRef(router, poly39, 39);
+ router->addShape(shapeRef39);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(155.246, 76.9179);
+ poly142.ps[1] = Point(155.246, 96.9179);
+ poly142.ps[2] = Point(135.246, 96.9179);
+ poly142.ps[3] = Point(135.246, 76.9179);
+ ShapeRef *shapeRef142 = new ShapeRef(router, poly142, 142);
+ router->addShape(shapeRef142);
+
+ Polygon poly143(4);
+ poly143.ps[0] = Point(155.246, 44.9179);
+ poly143.ps[1] = Point(155.246, 64.9179);
+ poly143.ps[2] = Point(135.246, 64.9179);
+ poly143.ps[3] = Point(135.246, 44.9179);
+ ShapeRef *shapeRef143 = new ShapeRef(router, poly143, 143);
+ router->addShape(shapeRef143);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(811.246, 612.918);
+ poly76.ps[1] = Point(811.246, 632.918);
+ poly76.ps[2] = Point(791.246, 632.918);
+ poly76.ps[3] = Point(791.246, 612.918);
+ ShapeRef *shapeRef76 = new ShapeRef(router, poly76, 76);
+ router->addShape(shapeRef76);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(547.246, 278.918);
+ poly55.ps[1] = Point(547.246, 298.918);
+ poly55.ps[2] = Point(527.246, 298.918);
+ poly55.ps[3] = Point(527.246, 278.918);
+ ShapeRef *shapeRef55 = new ShapeRef(router, poly55, 55);
+ router->addShape(shapeRef55);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(27.2456, 580.918);
+ poly133.ps[1] = Point(27.2456, 600.918);
+ poly133.ps[2] = Point(7.24557, 600.918);
+ poly133.ps[3] = Point(7.24557, 580.918);
+ ShapeRef *shapeRef133 = new ShapeRef(router, poly133, 133);
+ router->addShape(shapeRef133);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(203.246, 504.918);
+ poly123.ps[1] = Point(203.246, 524.918);
+ poly123.ps[2] = Point(183.246, 524.918);
+ poly123.ps[3] = Point(183.246, 504.918);
+ ShapeRef *shapeRef123 = new ShapeRef(router, poly123, 123);
+ router->addShape(shapeRef123);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(811.246, 408.918);
+ poly81.ps[1] = Point(811.246, 428.918);
+ poly81.ps[2] = Point(791.246, 428.918);
+ poly81.ps[3] = Point(791.246, 408.918);
+ ShapeRef *shapeRef81 = new ShapeRef(router, poly81, 81);
+ router->addShape(shapeRef81);
+
+ Polygon poly170(4);
+ poly170.ps[0] = Point(547.246, 427.955);
+ poly170.ps[1] = Point(547.246, 467.955);
+ poly170.ps[2] = Point(507.246, 467.955);
+ poly170.ps[3] = Point(507.246, 427.955);
+ ShapeRef *shapeRef170 = new ShapeRef(router, poly170, 170);
+ router->addShape(shapeRef170);
+
+ Polygon poly145(4);
+ poly145.ps[0] = Point(27.2456, 22.9179);
+ poly145.ps[1] = Point(27.2456, 42.9179);
+ poly145.ps[2] = Point(7.24557, 42.9179);
+ poly145.ps[3] = Point(7.24557, 22.9179);
+ ShapeRef *shapeRef145 = new ShapeRef(router, poly145, 145);
+ router->addShape(shapeRef145);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(1191.25, 730.918);
+ poly14.ps[1] = Point(1191.25, 770.918);
+ poly14.ps[2] = Point(1151.25, 770.918);
+ poly14.ps[3] = Point(1151.25, 730.918);
+ ShapeRef *shapeRef14 = new ShapeRef(router, poly14, 14);
+ router->addShape(shapeRef14);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(343.246, 580.918);
+ poly111.ps[1] = Point(343.246, 600.918);
+ poly111.ps[2] = Point(323.246, 600.918);
+ poly111.ps[3] = Point(323.246, 580.918);
+ ShapeRef *shapeRef111 = new ShapeRef(router, poly111, 111);
+ router->addShape(shapeRef111);
+
+ Polygon poly299(4);
+ poly299.ps[0] = Point(751.246, 398.918);
+ poly299.ps[1] = Point(751.246, 438.918);
+ poly299.ps[2] = Point(695.246, 438.918);
+ poly299.ps[3] = Point(695.246, 398.918);
+ ShapeRef *shapeRef299 = new ShapeRef(router, poly299, 299);
+ router->addShape(shapeRef299);
+
+ Polygon poly300(4);
+ poly300.ps[0] = Point(751.246, 366.918);
+ poly300.ps[1] = Point(751.246, 406.918);
+ poly300.ps[2] = Point(695.246, 406.918);
+ poly300.ps[3] = Point(695.246, 366.918);
+ ShapeRef *shapeRef300 = new ShapeRef(router, poly300, 300);
+ router->addShape(shapeRef300);
+
+ Polygon poly301(4);
+ poly301.ps[0] = Point(721.246, 182.918);
+ poly301.ps[1] = Point(721.246, 222.918);
+ poly301.ps[2] = Point(665.246, 222.918);
+ poly301.ps[3] = Point(665.246, 182.918);
+ ShapeRef *shapeRef301 = new ShapeRef(router, poly301, 301);
+ router->addShape(shapeRef301);
+
+ Polygon poly302(4);
+ poly302.ps[0] = Point(673.246, 172.918);
+ poly302.ps[1] = Point(673.246, 212.918);
+ poly302.ps[2] = Point(617.246, 212.918);
+ poly302.ps[3] = Point(617.246, 172.918);
+ ShapeRef *shapeRef302 = new ShapeRef(router, poly302, 302);
+ router->addShape(shapeRef302);
+
+ Polygon poly303(4);
+ poly303.ps[0] = Point(673.246, 108.918);
+ poly303.ps[1] = Point(673.246, 148.918);
+ poly303.ps[2] = Point(617.246, 148.918);
+ poly303.ps[3] = Point(617.246, 108.918);
+ ShapeRef *shapeRef303 = new ShapeRef(router, poly303, 303);
+ router->addShape(shapeRef303);
+
+ Polygon poly304(4);
+ poly304.ps[0] = Point(643.246, 570.918);
+ poly304.ps[1] = Point(643.246, 610.918);
+ poly304.ps[2] = Point(587.246, 610.918);
+ poly304.ps[3] = Point(587.246, 570.918);
+ ShapeRef *shapeRef304 = new ShapeRef(router, poly304, 304);
+ router->addShape(shapeRef304);
+
+ Polygon poly305(4);
+ poly305.ps[0] = Point(595.246, 602.918);
+ poly305.ps[1] = Point(595.246, 642.918);
+ poly305.ps[2] = Point(539.246, 642.918);
+ poly305.ps[3] = Point(539.246, 602.918);
+ ShapeRef *shapeRef305 = new ShapeRef(router, poly305, 305);
+ router->addShape(shapeRef305);
+
+ Polygon poly306(4);
+ poly306.ps[0] = Point(595.246, 570.918);
+ poly306.ps[1] = Point(595.246, 610.918);
+ poly306.ps[2] = Point(539.246, 610.918);
+ poly306.ps[3] = Point(539.246, 570.918);
+ ShapeRef *shapeRef306 = new ShapeRef(router, poly306, 306);
+ router->addShape(shapeRef306);
+
+ Polygon poly307(4);
+ poly307.ps[0] = Point(643.246, 466.951);
+ poly307.ps[1] = Point(643.246, 506.951);
+ poly307.ps[2] = Point(587.246, 506.951);
+ poly307.ps[3] = Point(587.246, 466.951);
+ ShapeRef *shapeRef307 = new ShapeRef(router, poly307, 307);
+ router->addShape(shapeRef307);
+
+ Polygon poly308(4);
+ poly308.ps[0] = Point(595.246, 494.918);
+ poly308.ps[1] = Point(595.246, 534.918);
+ poly308.ps[2] = Point(539.246, 534.918);
+ poly308.ps[3] = Point(539.246, 494.918);
+ ShapeRef *shapeRef308 = new ShapeRef(router, poly308, 308);
+ router->addShape(shapeRef308);
+
+ Polygon poly309(4);
+ poly309.ps[0] = Point(595.246, 462.918);
+ poly309.ps[1] = Point(595.246, 502.918);
+ poly309.ps[2] = Point(539.246, 502.918);
+ poly309.ps[3] = Point(539.246, 462.918);
+ ShapeRef *shapeRef309 = new ShapeRef(router, poly309, 309);
+ router->addShape(shapeRef309);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(77.2456, 300.918);
+ poly51.ps[1] = Point(77.2456, 320.918);
+ poly51.ps[2] = Point(57.2456, 320.918);
+ poly51.ps[3] = Point(57.2456, 300.918);
+ ShapeRef *shapeRef51 = new ShapeRef(router, poly51, 51);
+ router->addShape(shapeRef51);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(859.246, 708.918);
+ poly49.ps[1] = Point(859.246, 728.918);
+ poly49.ps[2] = Point(839.246, 728.918);
+ poly49.ps[3] = Point(839.246, 708.918);
+ ShapeRef *shapeRef49 = new ShapeRef(router, poly49, 49);
+ router->addShape(shapeRef49);
+
+ Polygon poly267(4);
+ poly267.ps[0] = Point(409.246, 214.918);
+ poly267.ps[1] = Point(409.246, 254.918);
+ poly267.ps[2] = Point(353.246, 254.918);
+ poly267.ps[3] = Point(353.246, 214.918);
+ ShapeRef *shapeRef267 = new ShapeRef(router, poly267, 267);
+ router->addShape(shapeRef267);
+
+ Polygon poly268(4);
+ poly268.ps[0] = Point(331.246, 268.918);
+ poly268.ps[1] = Point(331.246, 308.918);
+ poly268.ps[2] = Point(275.246, 308.918);
+ poly268.ps[3] = Point(275.246, 268.918);
+ ShapeRef *shapeRef268 = new ShapeRef(router, poly268, 268);
+ router->addShape(shapeRef268);
+
+ Polygon poly269(4);
+ poly269.ps[0] = Point(1159.25, 698.918);
+ poly269.ps[1] = Point(1159.25, 738.918);
+ poly269.ps[2] = Point(1103.25, 738.918);
+ poly269.ps[3] = Point(1103.25, 698.918);
+ ShapeRef *shapeRef269 = new ShapeRef(router, poly269, 269);
+ router->addShape(shapeRef269);
+
+ Polygon poly270(4);
+ poly270.ps[0] = Point(1063.25, 666.918);
+ poly270.ps[1] = Point(1063.25, 706.918);
+ poly270.ps[2] = Point(1007.25, 706.918);
+ poly270.ps[3] = Point(1007.25, 666.918);
+ ShapeRef *shapeRef270 = new ShapeRef(router, poly270, 270);
+ router->addShape(shapeRef270);
+
+ Polygon poly271(4);
+ poly271.ps[0] = Point(1159.25, 570.918);
+ poly271.ps[1] = Point(1159.25, 610.918);
+ poly271.ps[2] = Point(1103.25, 610.918);
+ poly271.ps[3] = Point(1103.25, 570.918);
+ ShapeRef *shapeRef271 = new ShapeRef(router, poly271, 271);
+ router->addShape(shapeRef271);
+
+ Polygon poly272(4);
+ poly272.ps[0] = Point(1063.25, 602.918);
+ poly272.ps[1] = Point(1063.25, 642.918);
+ poly272.ps[2] = Point(1007.25, 642.918);
+ poly272.ps[3] = Point(1007.25, 602.918);
+ ShapeRef *shapeRef272 = new ShapeRef(router, poly272, 272);
+ router->addShape(shapeRef272);
+
+ Polygon poly273(4);
+ poly273.ps[0] = Point(1063.25, 570.918);
+ poly273.ps[1] = Point(1063.25, 610.918);
+ poly273.ps[2] = Point(1007.25, 610.918);
+ poly273.ps[3] = Point(1007.25, 570.918);
+ ShapeRef *shapeRef273 = new ShapeRef(router, poly273, 273);
+ router->addShape(shapeRef273);
+
+ Polygon poly199(4);
+ poly199.ps[0] = Point(655.246, 440.918);
+ poly199.ps[1] = Point(655.246, 460.918);
+ poly199.ps[2] = Point(635.246, 460.918);
+ poly199.ps[3] = Point(635.246, 440.918);
+ ShapeRef *shapeRef199 = new ShapeRef(router, poly199, 199);
+ router->addShape(shapeRef199);
+
+ Polygon poly200(4);
+ poly200.ps[0] = Point(27.2456, 548.918);
+ poly200.ps[1] = Point(27.2456, 568.918);
+ poly200.ps[2] = Point(7.24557, 568.918);
+ poly200.ps[3] = Point(7.24557, 548.918);
+ ShapeRef *shapeRef200 = new ShapeRef(router, poly200, 200);
+ router->addShape(shapeRef200);
+
+ Polygon poly227(4);
+ poly227.ps[0] = Point(799.246, 602.918);
+ poly227.ps[1] = Point(799.246, 642.918);
+ poly227.ps[2] = Point(743.246, 642.918);
+ poly227.ps[3] = Point(743.246, 602.918);
+ ShapeRef *shapeRef227 = new ShapeRef(router, poly227, 227);
+ router->addShape(shapeRef227);
+
+ Polygon poly228(4);
+ poly228.ps[0] = Point(643.246, 602.918);
+ poly228.ps[1] = Point(643.246, 642.918);
+ poly228.ps[2] = Point(587.246, 642.918);
+ poly228.ps[3] = Point(587.246, 602.918);
+ ShapeRef *shapeRef228 = new ShapeRef(router, poly228, 228);
+ router->addShape(shapeRef228);
+
+ Polygon poly229(4);
+ poly229.ps[0] = Point(487.246, 602.918);
+ poly229.ps[1] = Point(487.246, 642.918);
+ poly229.ps[2] = Point(431.246, 642.918);
+ poly229.ps[3] = Point(431.246, 602.918);
+ ShapeRef *shapeRef229 = new ShapeRef(router, poly229, 229);
+ router->addShape(shapeRef229);
+
+ Polygon poly230(4);
+ poly230.ps[0] = Point(331.246, 602.918);
+ poly230.ps[1] = Point(331.246, 642.918);
+ poly230.ps[2] = Point(275.246, 642.918);
+ poly230.ps[3] = Point(275.246, 602.918);
+ ShapeRef *shapeRef230 = new ShapeRef(router, poly230, 230);
+ router->addShape(shapeRef230);
+
+ Polygon poly185(4);
+ poly185.ps[0] = Point(999.246, 312.918);
+ poly185.ps[1] = Point(999.246, 352.918);
+ poly185.ps[2] = Point(959.246, 352.918);
+ poly185.ps[3] = Point(959.246, 312.918);
+ ShapeRef *shapeRef185 = new ShapeRef(router, poly185, 185);
+ router->addShape(shapeRef185);
+
+ Polygon poly186(4);
+ poly186.ps[0] = Point(27.2456, 300.918);
+ poly186.ps[1] = Point(27.2456, 320.918);
+ poly186.ps[2] = Point(7.24557, 320.918);
+ poly186.ps[3] = Point(7.24557, 300.918);
+ ShapeRef *shapeRef186 = new ShapeRef(router, poly186, 186);
+ router->addShape(shapeRef186);
+
+ Polygon poly204(4);
+ poly204.ps[0] = Point(655.246, 548.918);
+ poly204.ps[1] = Point(655.246, 568.918);
+ poly204.ps[2] = Point(635.246, 568.918);
+ poly204.ps[3] = Point(635.246, 548.918);
+ ShapeRef *shapeRef204 = new ShapeRef(router, poly204, 204);
+ router->addShape(shapeRef204);
+
+ Polygon poly205(4);
+ poly205.ps[0] = Point(811.246, 548.918);
+ poly205.ps[1] = Point(811.246, 568.918);
+ poly205.ps[2] = Point(791.246, 568.918);
+ poly205.ps[3] = Point(791.246, 548.918);
+ ShapeRef *shapeRef205 = new ShapeRef(router, poly205, 205);
+ router->addShape(shapeRef205);
+
+ Polygon poly206(4);
+ poly206.ps[0] = Point(967.246, 548.918);
+ poly206.ps[1] = Point(967.246, 568.918);
+ poly206.ps[2] = Point(947.246, 568.918);
+ poly206.ps[3] = Point(947.246, 548.918);
+ ShapeRef *shapeRef206 = new ShapeRef(router, poly206, 206);
+ router->addShape(shapeRef206);
+
+ Polygon poly237(4);
+ poly237.ps[0] = Point(1399.25, 602.918);
+ poly237.ps[1] = Point(1399.25, 642.918);
+ poly237.ps[2] = Point(1343.25, 642.918);
+ poly237.ps[3] = Point(1343.25, 602.918);
+ ShapeRef *shapeRef237 = new ShapeRef(router, poly237, 237);
+ router->addShape(shapeRef237);
+
+ Polygon poly238(4);
+ poly238.ps[0] = Point(1447.25, 555.942);
+ poly238.ps[1] = Point(1447.25, 595.942);
+ poly238.ps[2] = Point(1391.25, 595.942);
+ poly238.ps[3] = Point(1391.25, 555.942);
+ ShapeRef *shapeRef238 = new ShapeRef(router, poly238, 238);
+ router->addShape(shapeRef238);
+
+ Polygon poly239(4);
+ poly239.ps[0] = Point(1159.25, 634.918);
+ poly239.ps[1] = Point(1159.25, 674.918);
+ poly239.ps[2] = Point(1103.25, 674.918);
+ poly239.ps[3] = Point(1103.25, 634.918);
+ ShapeRef *shapeRef239 = new ShapeRef(router, poly239, 239);
+ router->addShape(shapeRef239);
+
+ Polygon poly240(4);
+ poly240.ps[0] = Point(955.246, 634.918);
+ poly240.ps[1] = Point(955.246, 674.918);
+ poly240.ps[2] = Point(899.246, 674.918);
+ poly240.ps[3] = Point(899.246, 634.918);
+ ShapeRef *shapeRef240 = new ShapeRef(router, poly240, 240);
+ router->addShape(shapeRef240);
+
+ Polygon poly241(4);
+ poly241.ps[0] = Point(799.246, 634.918);
+ poly241.ps[1] = Point(799.246, 674.918);
+ poly241.ps[2] = Point(743.246, 674.918);
+ poly241.ps[3] = Point(743.246, 634.918);
+ ShapeRef *shapeRef241 = new ShapeRef(router, poly241, 241);
+ router->addShape(shapeRef241);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(967.246, 376.918);
+ poly71.ps[1] = Point(967.246, 396.918);
+ poly71.ps[2] = Point(947.246, 396.918);
+ poly71.ps[3] = Point(947.246, 376.918);
+ ShapeRef *shapeRef71 = new ShapeRef(router, poly71, 71);
+ router->addShape(shapeRef71);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(77.2456, 22.9179);
+ poly50.ps[1] = Point(77.2456, 42.9179);
+ poly50.ps[2] = Point(57.2456, 42.9179);
+ poly50.ps[3] = Point(57.2456, 22.9179);
+ ShapeRef *shapeRef50 = new ShapeRef(router, poly50, 50);
+ router->addShape(shapeRef50);
+
+ Polygon poly358(4);
+ poly358.ps[0] = Point(361.246, 204.918);
+ poly358.ps[1] = Point(361.246, 244.918);
+ poly358.ps[2] = Point(305.246, 244.918);
+ poly358.ps[3] = Point(305.246, 204.918);
+ ShapeRef *shapeRef358 = new ShapeRef(router, poly358, 358);
+ router->addShape(shapeRef358);
+
+ Polygon poly359(4);
+ poly359.ps[0] = Point(517.246, 204.918);
+ poly359.ps[1] = Point(517.246, 244.918);
+ poly359.ps[2] = Point(461.246, 244.918);
+ poly359.ps[3] = Point(461.246, 204.918);
+ ShapeRef *shapeRef359 = new ShapeRef(router, poly359, 359);
+ router->addShape(shapeRef359);
+
+ Polygon poly360(4);
+ poly360.ps[0] = Point(673.246, 204.918);
+ poly360.ps[1] = Point(673.246, 244.918);
+ poly360.ps[2] = Point(617.246, 244.918);
+ poly360.ps[3] = Point(617.246, 204.918);
+ ShapeRef *shapeRef360 = new ShapeRef(router, poly360, 360);
+ router->addShape(shapeRef360);
+
+ Polygon poly361(4);
+ poly361.ps[0] = Point(829.246, 204.918);
+ poly361.ps[1] = Point(829.246, 244.918);
+ poly361.ps[2] = Point(773.246, 244.918);
+ poly361.ps[3] = Point(773.246, 204.918);
+ ShapeRef *shapeRef361 = new ShapeRef(router, poly361, 361);
+ router->addShape(shapeRef361);
+
+ Polygon poly362(4);
+ poly362.ps[0] = Point(985.246, 204.918);
+ poly362.ps[1] = Point(985.246, 244.918);
+ poly362.ps[2] = Point(929.246, 244.918);
+ poly362.ps[3] = Point(929.246, 204.918);
+ ShapeRef *shapeRef362 = new ShapeRef(router, poly362, 362);
+ router->addShape(shapeRef362);
+
+ Polygon poly363(4);
+ poly363.ps[0] = Point(45.2456, 344.918);
+ poly363.ps[1] = Point(45.2456, 384.918);
+ poly363.ps[2] = Point(-10.7544, 384.918);
+ poly363.ps[3] = Point(-10.7544, 344.918);
+ ShapeRef *shapeRef363 = new ShapeRef(router, poly363, 363);
+ router->addShape(shapeRef363);
+
+ Polygon poly364(4);
+ poly364.ps[0] = Point(283.246, 430.918);
+ poly364.ps[1] = Point(283.246, 470.918);
+ poly364.ps[2] = Point(227.246, 470.918);
+ poly364.ps[3] = Point(227.246, 430.918);
+ ShapeRef *shapeRef364 = new ShapeRef(router, poly364, 364);
+ router->addShape(shapeRef364);
+
+ Polygon poly365(4);
+ poly365.ps[0] = Point(439.246, 430.918);
+ poly365.ps[1] = Point(439.246, 470.918);
+ poly365.ps[2] = Point(383.246, 470.918);
+ poly365.ps[3] = Point(383.246, 430.918);
+ ShapeRef *shapeRef365 = new ShapeRef(router, poly365, 365);
+ router->addShape(shapeRef365);
+
+ Polygon poly366(4);
+ poly366.ps[0] = Point(595.246, 430.918);
+ poly366.ps[1] = Point(595.246, 470.918);
+ poly366.ps[2] = Point(539.246, 470.918);
+ poly366.ps[3] = Point(539.246, 430.918);
+ ShapeRef *shapeRef366 = new ShapeRef(router, poly366, 366);
+ router->addShape(shapeRef366);
+
+ Polygon poly367(4);
+ poly367.ps[0] = Point(907.246, 430.918);
+ poly367.ps[1] = Point(907.246, 470.918);
+ poly367.ps[2] = Point(851.246, 470.918);
+ poly367.ps[3] = Point(851.246, 430.918);
+ ShapeRef *shapeRef367 = new ShapeRef(router, poly367, 367);
+ router->addShape(shapeRef367);
+
+ Polygon poly368(4);
+ poly368.ps[0] = Point(1063.25, 430.918);
+ poly368.ps[1] = Point(1063.25, 470.918);
+ poly368.ps[2] = Point(1007.25, 470.918);
+ poly368.ps[3] = Point(1007.25, 430.918);
+ ShapeRef *shapeRef368 = new ShapeRef(router, poly368, 368);
+ router->addShape(shapeRef368);
+
+ Polygon poly369(4);
+ poly369.ps[0] = Point(751.246, 430.918);
+ poly369.ps[1] = Point(751.246, 470.918);
+ poly369.ps[2] = Point(695.246, 470.918);
+ poly369.ps[3] = Point(695.246, 430.918);
+ ShapeRef *shapeRef369 = new ShapeRef(router, poly369, 369);
+ router->addShape(shapeRef369);
+
+ Polygon poly370(4);
+ poly370.ps[0] = Point(125.246, 538.918);
+ poly370.ps[1] = Point(125.246, 578.918);
+ poly370.ps[2] = Point(69.2456, 578.918);
+ poly370.ps[3] = Point(69.2456, 538.918);
+ ShapeRef *shapeRef370 = new ShapeRef(router, poly370, 370);
+ router->addShape(shapeRef370);
+
+ Polygon poly371(4);
+ poly371.ps[0] = Point(283.246, 538.918);
+ poly371.ps[1] = Point(283.246, 578.918);
+ poly371.ps[2] = Point(227.246, 578.918);
+ poly371.ps[3] = Point(227.246, 538.918);
+ ShapeRef *shapeRef371 = new ShapeRef(router, poly371, 371);
+ router->addShape(shapeRef371);
+
+ Polygon poly372(4);
+ poly372.ps[0] = Point(439.246, 538.918);
+ poly372.ps[1] = Point(439.246, 578.918);
+ poly372.ps[2] = Point(383.246, 578.918);
+ poly372.ps[3] = Point(383.246, 538.918);
+ ShapeRef *shapeRef372 = new ShapeRef(router, poly372, 372);
+ router->addShape(shapeRef372);
+
+ Polygon poly373(4);
+ poly373.ps[0] = Point(595.246, 538.918);
+ poly373.ps[1] = Point(595.246, 578.918);
+ poly373.ps[2] = Point(539.246, 578.918);
+ poly373.ps[3] = Point(539.246, 538.918);
+ ShapeRef *shapeRef373 = new ShapeRef(router, poly373, 373);
+ router->addShape(shapeRef373);
+
+ Polygon poly374(4);
+ poly374.ps[0] = Point(751.246, 538.918);
+ poly374.ps[1] = Point(751.246, 578.918);
+ poly374.ps[2] = Point(695.246, 578.918);
+ poly374.ps[3] = Point(695.246, 538.918);
+ ShapeRef *shapeRef374 = new ShapeRef(router, poly374, 374);
+ router->addShape(shapeRef374);
+
+ Polygon poly375(4);
+ poly375.ps[0] = Point(907.246, 538.918);
+ poly375.ps[1] = Point(907.246, 578.918);
+ poly375.ps[2] = Point(851.246, 578.918);
+ poly375.ps[3] = Point(851.246, 538.918);
+ ShapeRef *shapeRef375 = new ShapeRef(router, poly375, 375);
+ router->addShape(shapeRef375);
+
+ Polygon poly376(4);
+ poly376.ps[0] = Point(1063.25, 538.918);
+ poly376.ps[1] = Point(1063.25, 578.918);
+ poly376.ps[2] = Point(1007.25, 578.918);
+ poly376.ps[3] = Point(1007.25, 538.918);
+ ShapeRef *shapeRef376 = new ShapeRef(router, poly376, 376);
+ router->addShape(shapeRef376);
+
+ Polygon poly377(4);
+ poly377.ps[0] = Point(125.246, 634.918);
+ poly377.ps[1] = Point(125.246, 674.918);
+ poly377.ps[2] = Point(69.2456, 674.918);
+ poly377.ps[3] = Point(69.2456, 634.918);
+ ShapeRef *shapeRef377 = new ShapeRef(router, poly377, 377);
+ router->addShape(shapeRef377);
+
+ Polygon poly378(4);
+ poly378.ps[0] = Point(283.246, 634.918);
+ poly378.ps[1] = Point(283.246, 674.918);
+ poly378.ps[2] = Point(227.246, 674.918);
+ poly378.ps[3] = Point(227.246, 634.918);
+ ShapeRef *shapeRef378 = new ShapeRef(router, poly378, 378);
+ router->addShape(shapeRef378);
+
+ Polygon poly379(4);
+ poly379.ps[0] = Point(439.246, 634.918);
+ poly379.ps[1] = Point(439.246, 674.918);
+ poly379.ps[2] = Point(383.246, 674.918);
+ poly379.ps[3] = Point(383.246, 634.918);
+ ShapeRef *shapeRef379 = new ShapeRef(router, poly379, 379);
+ router->addShape(shapeRef379);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(1015.25, 278.918);
+ poly52.ps[1] = Point(1015.25, 298.918);
+ poly52.ps[2] = Point(995.246, 298.918);
+ poly52.ps[3] = Point(995.246, 278.918);
+ ShapeRef *shapeRef52 = new ShapeRef(router, poly52, 52);
+ router->addShape(shapeRef52);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(547.246, 730.918);
+ poly19.ps[1] = Point(547.246, 770.918);
+ poly19.ps[2] = Point(507.246, 770.918);
+ poly19.ps[3] = Point(507.246, 730.918);
+ ShapeRef *shapeRef19 = new ShapeRef(router, poly19, 19);
+ router->addShape(shapeRef19);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(655.246, 504.918);
+ poly89.ps[1] = Point(655.246, 524.918);
+ poly89.ps[2] = Point(635.246, 524.918);
+ poly89.ps[3] = Point(635.246, 504.918);
+ ShapeRef *shapeRef89 = new ShapeRef(router, poly89, 89);
+ router->addShape(shapeRef89);
+
+ Polygon poly194(4);
+ poly194.ps[0] = Point(203.246, 440.918);
+ poly194.ps[1] = Point(203.246, 460.918);
+ poly194.ps[2] = Point(183.246, 460.918);
+ poly194.ps[3] = Point(183.246, 440.918);
+ ShapeRef *shapeRef194 = new ShapeRef(router, poly194, 194);
+ router->addShape(shapeRef194);
+
+ Polygon poly195(4);
+ poly195.ps[0] = Point(343.246, 440.918);
+ poly195.ps[1] = Point(343.246, 460.918);
+ poly195.ps[2] = Point(323.246, 460.918);
+ poly195.ps[3] = Point(323.246, 440.918);
+ ShapeRef *shapeRef195 = new ShapeRef(router, poly195, 195);
+ router->addShape(shapeRef195);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(391.246, 612.918);
+ poly5.ps[1] = Point(391.246, 632.918);
+ poly5.ps[2] = Point(371.246, 632.918);
+ poly5.ps[3] = Point(371.246, 612.918);
+ ShapeRef *shapeRef5 = new ShapeRef(router, poly5, 5);
+ router->addShape(shapeRef5);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(1303.25, 565.942);
+ poly27.ps[1] = Point(1303.25, 585.942);
+ poly27.ps[2] = Point(1283.25, 585.942);
+ poly27.ps[3] = Point(1283.25, 565.942);
+ ShapeRef *shapeRef27 = new ShapeRef(router, poly27, 27);
+ router->addShape(shapeRef27);
+
+ Polygon poly147(4);
+ poly147.ps[0] = Point(329.219, -39.0821);
+ poly147.ps[1] = Point(329.219, -19.0821);
+ poly147.ps[2] = Point(309.219, -19.0821);
+ poly147.ps[3] = Point(309.219, -39.0821);
+ ShapeRef *shapeRef147 = new ShapeRef(router, poly147, 147);
+ router->addShape(shapeRef147);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(203.246, 268.918);
+ poly130.ps[1] = Point(203.246, 288.918);
+ poly130.ps[2] = Point(183.246, 288.918);
+ poly130.ps[3] = Point(183.246, 268.918);
+ ShapeRef *shapeRef130 = new ShapeRef(router, poly130, 130);
+ router->addShape(shapeRef130);
+
+ Polygon poly216(4);
+ poly216.ps[0] = Point(1243.25, 504.918);
+ poly216.ps[1] = Point(1243.25, 524.918);
+ poly216.ps[2] = Point(1223.25, 524.918);
+ poly216.ps[3] = Point(1223.25, 504.918);
+ ShapeRef *shapeRef216 = new ShapeRef(router, poly216, 216);
+ router->addShape(shapeRef216);
+
+ Polygon poly217(4);
+ poly217.ps[0] = Point(1243.25, 612.918);
+ poly217.ps[1] = Point(1243.25, 632.918);
+ poly217.ps[2] = Point(1223.25, 632.918);
+ poly217.ps[3] = Point(1223.25, 612.918);
+ ShapeRef *shapeRef217 = new ShapeRef(router, poly217, 217);
+ router->addShape(shapeRef217);
+
+ Polygon poly218(4);
+ poly218.ps[0] = Point(967.246, 708.918);
+ poly218.ps[1] = Point(967.246, 728.918);
+ poly218.ps[2] = Point(947.246, 728.918);
+ poly218.ps[3] = Point(947.246, 708.918);
+ ShapeRef *shapeRef218 = new ShapeRef(router, poly218, 218);
+ router->addShape(shapeRef218);
+
+ Polygon poly219(4);
+ poly219.ps[0] = Point(967.246, 740.918);
+ poly219.ps[1] = Point(967.246, 760.918);
+ poly219.ps[2] = Point(947.246, 760.918);
+ poly219.ps[3] = Point(947.246, 740.918);
+ ShapeRef *shapeRef219 = new ShapeRef(router, poly219, 219);
+ router->addShape(shapeRef219);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(235.246, 526.918);
+ poly41.ps[1] = Point(235.246, 546.918);
+ poly41.ps[2] = Point(215.246, 546.918);
+ poly41.ps[3] = Point(215.246, 526.918);
+ ShapeRef *shapeRef41 = new ShapeRef(router, poly41, 41);
+ router->addShape(shapeRef41);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(391.246, 580.918);
+ poly109.ps[1] = Point(391.246, 600.918);
+ poly109.ps[2] = Point(371.246, 600.918);
+ poly109.ps[3] = Point(371.246, 580.918);
+ ShapeRef *shapeRef109 = new ShapeRef(router, poly109, 109);
+ router->addShape(shapeRef109);
+
+ Polygon poly213(4);
+ poly213.ps[0] = Point(967.246, 644.918);
+ poly213.ps[1] = Point(967.246, 664.918);
+ poly213.ps[2] = Point(947.246, 664.918);
+ poly213.ps[3] = Point(947.246, 644.918);
+ ShapeRef *shapeRef213 = new ShapeRef(router, poly213, 213);
+ router->addShape(shapeRef213);
+
+ Polygon poly214(4);
+ poly214.ps[0] = Point(1243.25, 268.918);
+ poly214.ps[1] = Point(1243.25, 288.918);
+ poly214.ps[2] = Point(1223.25, 288.918);
+ poly214.ps[3] = Point(1223.25, 268.918);
+ ShapeRef *shapeRef214 = new ShapeRef(router, poly214, 214);
+ router->addShape(shapeRef214);
+
+ Polygon poly215(4);
+ poly215.ps[0] = Point(1243.25, 408.918);
+ poly215.ps[1] = Point(1243.25, 428.918);
+ poly215.ps[2] = Point(1223.25, 428.918);
+ poly215.ps[3] = Point(1223.25, 408.918);
+ ShapeRef *shapeRef215 = new ShapeRef(router, poly215, 215);
+ router->addShape(shapeRef215);
+
+ Polygon poly196(4);
+ poly196.ps[0] = Point(499.246, 440.918);
+ poly196.ps[1] = Point(499.246, 460.918);
+ poly196.ps[2] = Point(479.246, 460.918);
+ poly196.ps[3] = Point(479.246, 440.918);
+ ShapeRef *shapeRef196 = new ShapeRef(router, poly196, 196);
+ router->addShape(shapeRef196);
+
+ Polygon poly197(4);
+ poly197.ps[0] = Point(811.246, 440.918);
+ poly197.ps[1] = Point(811.246, 460.918);
+ poly197.ps[2] = Point(791.246, 460.918);
+ poly197.ps[3] = Point(791.246, 440.918);
+ ShapeRef *shapeRef197 = new ShapeRef(router, poly197, 197);
+ router->addShape(shapeRef197);
+
+ Polygon poly198(4);
+ poly198.ps[0] = Point(967.246, 440.918);
+ poly198.ps[1] = Point(967.246, 460.918);
+ poly198.ps[2] = Point(947.246, 460.918);
+ poly198.ps[3] = Point(947.246, 440.918);
+ ShapeRef *shapeRef198 = new ShapeRef(router, poly198, 198);
+ router->addShape(shapeRef198);
+
+ Polygon poly181(4);
+ poly181.ps[0] = Point(999.246, 730.918);
+ poly181.ps[1] = Point(999.246, 770.918);
+ poly181.ps[2] = Point(959.246, 770.918);
+ poly181.ps[3] = Point(959.246, 730.918);
+ ShapeRef *shapeRef181 = new ShapeRef(router, poly181, 181);
+ router->addShape(shapeRef181);
+
+ Polygon poly182(4);
+ poly182.ps[0] = Point(999.246, 656.918);
+ poly182.ps[1] = Point(999.246, 696.918);
+ poly182.ps[2] = Point(959.246, 696.918);
+ poly182.ps[3] = Point(959.246, 656.918);
+ ShapeRef *shapeRef182 = new ShapeRef(router, poly182, 182);
+ router->addShape(shapeRef182);
+
+ Polygon poly223(4);
+ poly223.ps[0] = Point(77.2456, 236.918);
+ poly223.ps[1] = Point(77.2456, 256.918);
+ poly223.ps[2] = Point(57.2456, 256.918);
+ poly223.ps[3] = Point(57.2456, 236.918);
+ ShapeRef *shapeRef223 = new ShapeRef(router, poly223, 223);
+ router->addShape(shapeRef223);
+
+ Polygon poly224(4);
+ poly224.ps[0] = Point(77.2456, 268.918);
+ poly224.ps[1] = Point(77.2456, 288.918);
+ poly224.ps[2] = Point(57.2456, 288.918);
+ poly224.ps[3] = Point(57.2456, 268.918);
+ ShapeRef *shapeRef224 = new ShapeRef(router, poly224, 224);
+ router->addShape(shapeRef224);
+
+ Polygon poly225(4);
+ poly225.ps[0] = Point(1159.25, 602.918);
+ poly225.ps[1] = Point(1159.25, 642.918);
+ poly225.ps[2] = Point(1103.25, 642.918);
+ poly225.ps[3] = Point(1103.25, 602.918);
+ ShapeRef *shapeRef225 = new ShapeRef(router, poly225, 225);
+ router->addShape(shapeRef225);
+
+ Polygon poly226(4);
+ poly226.ps[0] = Point(955.246, 602.918);
+ poly226.ps[1] = Point(955.246, 642.918);
+ poly226.ps[2] = Point(899.246, 642.918);
+ poly226.ps[3] = Point(899.246, 602.918);
+ ShapeRef *shapeRef226 = new ShapeRef(router, poly226, 226);
+ router->addShape(shapeRef226);
+
+ Polygon poly326(4);
+ poly326.ps[0] = Point(361.246, 108.918);
+ poly326.ps[1] = Point(361.246, 148.918);
+ poly326.ps[2] = Point(305.246, 148.918);
+ poly326.ps[3] = Point(305.246, 108.918);
+ ShapeRef *shapeRef326 = new ShapeRef(router, poly326, 326);
+ router->addShape(shapeRef326);
+
+ Polygon poly327(4);
+ poly327.ps[0] = Point(331.246, 570.918);
+ poly327.ps[1] = Point(331.246, 610.918);
+ poly327.ps[2] = Point(275.246, 610.918);
+ poly327.ps[3] = Point(275.246, 570.918);
+ ShapeRef *shapeRef327 = new ShapeRef(router, poly327, 327);
+ router->addShape(shapeRef327);
+
+ Polygon poly328(4);
+ poly328.ps[0] = Point(283.246, 602.918);
+ poly328.ps[1] = Point(283.246, 642.918);
+ poly328.ps[2] = Point(227.246, 642.918);
+ poly328.ps[3] = Point(227.246, 602.918);
+ ShapeRef *shapeRef328 = new ShapeRef(router, poly328, 328);
+ router->addShape(shapeRef328);
+
+ Polygon poly329(4);
+ poly329.ps[0] = Point(283.246, 570.918);
+ poly329.ps[1] = Point(283.246, 610.918);
+ poly329.ps[2] = Point(227.246, 610.918);
+ poly329.ps[3] = Point(227.246, 570.918);
+ ShapeRef *shapeRef329 = new ShapeRef(router, poly329, 329);
+ router->addShape(shapeRef329);
+
+ Polygon poly330(4);
+ poly330.ps[0] = Point(283.246, 494.918);
+ poly330.ps[1] = Point(283.246, 534.918);
+ poly330.ps[2] = Point(227.246, 534.918);
+ poly330.ps[3] = Point(227.246, 494.918);
+ ShapeRef *shapeRef330 = new ShapeRef(router, poly330, 330);
+ router->addShape(shapeRef330);
+
+ Polygon poly331(4);
+ poly331.ps[0] = Point(283.246, 462.918);
+ poly331.ps[1] = Point(283.246, 502.918);
+ poly331.ps[2] = Point(227.246, 502.918);
+ poly331.ps[3] = Point(227.246, 462.918);
+ ShapeRef *shapeRef331 = new ShapeRef(router, poly331, 331);
+ router->addShape(shapeRef331);
+
+ Polygon poly332(4);
+ poly332.ps[0] = Point(331.246, 398.918);
+ poly332.ps[1] = Point(331.246, 438.918);
+ poly332.ps[2] = Point(275.246, 438.918);
+ poly332.ps[3] = Point(275.246, 398.918);
+ ShapeRef *shapeRef332 = new ShapeRef(router, poly332, 332);
+ router->addShape(shapeRef332);
+
+ Polygon poly333(4);
+ poly333.ps[0] = Point(283.246, 398.918);
+ poly333.ps[1] = Point(283.246, 438.918);
+ poly333.ps[2] = Point(227.246, 438.918);
+ poly333.ps[3] = Point(227.246, 398.918);
+ ShapeRef *shapeRef333 = new ShapeRef(router, poly333, 333);
+ router->addShape(shapeRef333);
+
+ Polygon poly334(4);
+ poly334.ps[0] = Point(283.246, 366.918);
+ poly334.ps[1] = Point(283.246, 406.918);
+ poly334.ps[2] = Point(227.246, 406.918);
+ poly334.ps[3] = Point(227.246, 366.918);
+ ShapeRef *shapeRef334 = new ShapeRef(router, poly334, 334);
+ router->addShape(shapeRef334);
+
+ Polygon poly335(4);
+ poly335.ps[0] = Point(331.246, 236.918);
+ poly335.ps[1] = Point(331.246, 276.918);
+ poly335.ps[2] = Point(275.246, 276.918);
+ poly335.ps[3] = Point(275.246, 236.918);
+ ShapeRef *shapeRef335 = new ShapeRef(router, poly335, 335);
+ router->addShape(shapeRef335);
+
+ Polygon poly336(4);
+ poly336.ps[0] = Point(221.246, 108.918);
+ poly336.ps[1] = Point(221.246, 148.918);
+ poly336.ps[2] = Point(165.246, 148.918);
+ poly336.ps[3] = Point(165.246, 108.918);
+ ShapeRef *shapeRef336 = new ShapeRef(router, poly336, 336);
+ router->addShape(shapeRef336);
+
+ Polygon poly337(4);
+ poly337.ps[0] = Point(221.246, 172.918);
+ poly337.ps[1] = Point(221.246, 212.918);
+ poly337.ps[2] = Point(165.246, 212.918);
+ poly337.ps[3] = Point(165.246, 172.918);
+ ShapeRef *shapeRef337 = new ShapeRef(router, poly337, 337);
+ router->addShape(shapeRef337);
+
+ Polygon poly338(4);
+ poly338.ps[0] = Point(173.246, 570.918);
+ poly338.ps[1] = Point(173.246, 610.918);
+ poly338.ps[2] = Point(117.246, 610.918);
+ poly338.ps[3] = Point(117.246, 570.918);
+ ShapeRef *shapeRef338 = new ShapeRef(router, poly338, 338);
+ router->addShape(shapeRef338);
+
+ Polygon poly339(4);
+ poly339.ps[0] = Point(125.246, 602.918);
+ poly339.ps[1] = Point(125.246, 642.918);
+ poly339.ps[2] = Point(69.2456, 642.918);
+ poly339.ps[3] = Point(69.2456, 602.918);
+ ShapeRef *shapeRef339 = new ShapeRef(router, poly339, 339);
+ router->addShape(shapeRef339);
+
+ Polygon poly340(4);
+ poly340.ps[0] = Point(125.246, 570.918);
+ poly340.ps[1] = Point(125.246, 610.918);
+ poly340.ps[2] = Point(69.2456, 610.918);
+ poly340.ps[3] = Point(69.2456, 570.918);
+ ShapeRef *shapeRef340 = new ShapeRef(router, poly340, 340);
+ router->addShape(shapeRef340);
+
+ Polygon poly341(4);
+ poly341.ps[0] = Point(125.246, 494.918);
+ poly341.ps[1] = Point(125.246, 534.918);
+ poly341.ps[2] = Point(69.2456, 534.918);
+ poly341.ps[3] = Point(69.2456, 494.918);
+ ShapeRef *shapeRef341 = new ShapeRef(router, poly341, 341);
+ router->addShape(shapeRef341);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(1459.25, 708.918);
+ poly47.ps[1] = Point(1459.25, 728.918);
+ poly47.ps[2] = Point(1439.25, 728.918);
+ poly47.ps[3] = Point(1439.25, 708.918);
+ ShapeRef *shapeRef47 = new ShapeRef(router, poly47, 47);
+ router->addShape(shapeRef47);
+
+ Polygon poly342(4);
+ poly342.ps[0] = Point(125.246, 462.918);
+ poly342.ps[1] = Point(125.246, 502.918);
+ poly342.ps[2] = Point(69.2456, 502.918);
+ poly342.ps[3] = Point(69.2456, 462.918);
+ ShapeRef *shapeRef342 = new ShapeRef(router, poly342, 342);
+ router->addShape(shapeRef342);
+
+ Polygon poly343(4);
+ poly343.ps[0] = Point(173.246, 398.918);
+ poly343.ps[1] = Point(173.246, 438.918);
+ poly343.ps[2] = Point(117.246, 438.918);
+ poly343.ps[3] = Point(117.246, 398.918);
+ ShapeRef *shapeRef343 = new ShapeRef(router, poly343, 343);
+ router->addShape(shapeRef343);
+
+ Polygon poly344(4);
+ poly344.ps[0] = Point(125.246, 398.918);
+ poly344.ps[1] = Point(125.246, 438.918);
+ poly344.ps[2] = Point(69.2456, 438.918);
+ poly344.ps[3] = Point(69.2456, 398.918);
+ ShapeRef *shapeRef344 = new ShapeRef(router, poly344, 344);
+ router->addShape(shapeRef344);
+
+ Polygon poly345(4);
+ poly345.ps[0] = Point(125.246, 366.918);
+ poly345.ps[1] = Point(125.246, 406.918);
+ poly345.ps[2] = Point(69.2456, 406.918);
+ poly345.ps[3] = Point(69.2456, 366.918);
+ ShapeRef *shapeRef345 = new ShapeRef(router, poly345, 345);
+ router->addShape(shapeRef345);
+
+ Polygon poly346(4);
+ poly346.ps[0] = Point(45.2456, 172.918);
+ poly346.ps[1] = Point(45.2456, 212.918);
+ poly346.ps[2] = Point(-10.7544, 212.918);
+ poly346.ps[3] = Point(-10.7544, 172.918);
+ ShapeRef *shapeRef346 = new ShapeRef(router, poly346, 346);
+ router->addShape(shapeRef346);
+
+ Polygon poly347(4);
+ poly347.ps[0] = Point(45.2456, 108.918);
+ poly347.ps[1] = Point(45.2456, 148.918);
+ poly347.ps[2] = Point(-10.7544, 148.918);
+ poly347.ps[3] = Point(-10.7544, 108.918);
+ ShapeRef *shapeRef347 = new ShapeRef(router, poly347, 347);
+ router->addShape(shapeRef347);
+
+ Polygon poly348(4);
+ poly348.ps[0] = Point(313.246, 150.918);
+ poly348.ps[1] = Point(313.246, 190.918);
+ poly348.ps[2] = Point(257.246, 190.918);
+ poly348.ps[3] = Point(257.246, 150.918);
+ ShapeRef *shapeRef348 = new ShapeRef(router, poly348, 348);
+ router->addShape(shapeRef348);
+
+ Polygon poly349(4);
+ poly349.ps[0] = Point(265.246, 66.9179);
+ poly349.ps[1] = Point(265.246, 106.918);
+ poly349.ps[2] = Point(209.246, 106.918);
+ poly349.ps[3] = Point(209.246, 66.9179);
+ ShapeRef *shapeRef349 = new ShapeRef(router, poly349, 349);
+ router->addShape(shapeRef349);
+
+ Polygon poly350(4);
+ poly350.ps[0] = Point(265.246, 34.9179);
+ poly350.ps[1] = Point(265.246, 74.9179);
+ poly350.ps[2] = Point(209.246, 74.9179);
+ poly350.ps[3] = Point(209.246, 34.9179);
+ ShapeRef *shapeRef350 = new ShapeRef(router, poly350, 350);
+ router->addShape(shapeRef350);
+
+ Polygon poly351(4);
+ poly351.ps[0] = Point(125.246, 150.918);
+ poly351.ps[1] = Point(125.246, 190.918);
+ poly351.ps[2] = Point(69.2456, 190.918);
+ poly351.ps[3] = Point(69.2456, 150.918);
+ ShapeRef *shapeRef351 = new ShapeRef(router, poly351, 351);
+ router->addShape(shapeRef351);
+
+ Polygon poly352(4);
+ poly352.ps[0] = Point(125.246, 12.9179);
+ poly352.ps[1] = Point(125.246, 52.9179);
+ poly352.ps[2] = Point(69.2456, 52.9179);
+ poly352.ps[3] = Point(69.2456, 12.9179);
+ ShapeRef *shapeRef352 = new ShapeRef(router, poly352, 352);
+ router->addShape(shapeRef352);
+
+ Polygon poly353(4);
+ poly353.ps[0] = Point(125.246, -19.0821);
+ poly353.ps[1] = Point(125.246, 20.9179);
+ poly353.ps[2] = Point(69.2456, 20.9179);
+ poly353.ps[3] = Point(69.2456, -19.0821);
+ ShapeRef *shapeRef353 = new ShapeRef(router, poly353, 353);
+ router->addShape(shapeRef353);
+
+ Polygon poly354(4);
+ poly354.ps[0] = Point(408.962, -49.0821);
+ poly354.ps[1] = Point(408.962, -9.08205);
+ poly354.ps[2] = Point(352.962, -9.08205);
+ poly354.ps[3] = Point(352.962, -49.0821);
+ ShapeRef *shapeRef354 = new ShapeRef(router, poly354, 354);
+ router->addShape(shapeRef354);
+
+ Polygon poly355(4);
+ poly355.ps[0] = Point(307.219, -49.0821);
+ poly355.ps[1] = Point(307.219, -9.08205);
+ poly355.ps[2] = Point(251.219, -9.08205);
+ poly355.ps[3] = Point(251.219, -49.0821);
+ ShapeRef *shapeRef355 = new ShapeRef(router, poly355, 355);
+ router->addShape(shapeRef355);
+
+ Polygon poly356(4);
+ poly356.ps[0] = Point(125.246, 290.918);
+ poly356.ps[1] = Point(125.246, 330.918);
+ poly356.ps[2] = Point(69.2456, 330.918);
+ poly356.ps[3] = Point(69.2456, 290.918);
+ ShapeRef *shapeRef356 = new ShapeRef(router, poly356, 356);
+ router->addShape(shapeRef356);
+
+ Polygon poly357(4);
+ poly357.ps[0] = Point(221.246, 204.918);
+ poly357.ps[1] = Point(221.246, 244.918);
+ poly357.ps[2] = Point(165.246, 244.918);
+ poly357.ps[3] = Point(165.246, 204.918);
+ ShapeRef *shapeRef357 = new ShapeRef(router, poly357, 357);
+ router->addShape(shapeRef357);
+
+ Polygon poly260(4);
+ poly260.ps[0] = Point(955.246, 698.918);
+ poly260.ps[1] = Point(955.246, 738.918);
+ poly260.ps[2] = Point(899.246, 738.918);
+ poly260.ps[3] = Point(899.246, 698.918);
+ ShapeRef *shapeRef260 = new ShapeRef(router, poly260, 260);
+ router->addShape(shapeRef260);
+
+ Polygon poly261(4);
+ poly261.ps[0] = Point(173.246, 12.9179);
+ poly261.ps[1] = Point(173.246, 52.9179);
+ poly261.ps[2] = Point(117.246, 52.9179);
+ poly261.ps[3] = Point(117.246, 12.9179);
+ ShapeRef *shapeRef261 = new ShapeRef(router, poly261, 261);
+ router->addShape(shapeRef261);
+
+ Polygon poly262(4);
+ poly262.ps[0] = Point(173.246, 290.918);
+ poly262.ps[1] = Point(173.246, 330.918);
+ poly262.ps[2] = Point(117.246, 330.918);
+ poly262.ps[3] = Point(117.246, 290.918);
+ ShapeRef *shapeRef262 = new ShapeRef(router, poly262, 262);
+ router->addShape(shapeRef262);
+
+ Polygon poly263(4);
+ poly263.ps[0] = Point(1033.25, 214.918);
+ poly263.ps[1] = Point(1033.25, 254.918);
+ poly263.ps[2] = Point(977.246, 254.918);
+ poly263.ps[3] = Point(977.246, 214.918);
+ ShapeRef *shapeRef263 = new ShapeRef(router, poly263, 263);
+ router->addShape(shapeRef263);
+
+ Polygon poly264(4);
+ poly264.ps[0] = Point(877.246, 214.918);
+ poly264.ps[1] = Point(877.246, 254.918);
+ poly264.ps[2] = Point(821.246, 254.918);
+ poly264.ps[3] = Point(821.246, 214.918);
+ ShapeRef *shapeRef264 = new ShapeRef(router, poly264, 264);
+ router->addShape(shapeRef264);
+
+ Polygon poly265(4);
+ poly265.ps[0] = Point(721.246, 214.918);
+ poly265.ps[1] = Point(721.246, 254.918);
+ poly265.ps[2] = Point(665.246, 254.918);
+ poly265.ps[3] = Point(665.246, 214.918);
+ ShapeRef *shapeRef265 = new ShapeRef(router, poly265, 265);
+ router->addShape(shapeRef265);
+
+ Polygon poly266(4);
+ poly266.ps[0] = Point(565.246, 214.918);
+ poly266.ps[1] = Point(565.246, 254.918);
+ poly266.ps[2] = Point(509.246, 254.918);
+ poly266.ps[3] = Point(509.246, 214.918);
+ ShapeRef *shapeRef266 = new ShapeRef(router, poly266, 266);
+ router->addShape(shapeRef266);
+
+ Polygon poly179(4);
+ poly179.ps[0] = Point(843.246, 538.918);
+ poly179.ps[1] = Point(843.246, 578.918);
+ poly179.ps[2] = Point(803.246, 578.918);
+ poly179.ps[3] = Point(803.246, 538.918);
+ ShapeRef *shapeRef179 = new ShapeRef(router, poly179, 179);
+ router->addShape(shapeRef179);
+
+ Polygon poly180(4);
+ poly180.ps[0] = Point(843.246, 656.918);
+ poly180.ps[1] = Point(843.246, 696.918);
+ poly180.ps[2] = Point(803.246, 696.918);
+ poly180.ps[3] = Point(803.246, 656.918);
+ ShapeRef *shapeRef180 = new ShapeRef(router, poly180, 180);
+ router->addShape(shapeRef180);
+
+ Polygon poly274(4);
+ poly274.ps[0] = Point(1063.25, 494.918);
+ poly274.ps[1] = Point(1063.25, 534.918);
+ poly274.ps[2] = Point(1007.25, 534.918);
+ poly274.ps[3] = Point(1007.25, 494.918);
+ ShapeRef *shapeRef274 = new ShapeRef(router, poly274, 274);
+ router->addShape(shapeRef274);
+
+ Polygon poly275(4);
+ poly275.ps[0] = Point(1063.25, 462.918);
+ poly275.ps[1] = Point(1063.25, 502.918);
+ poly275.ps[2] = Point(1007.25, 502.918);
+ poly275.ps[3] = Point(1007.25, 462.918);
+ ShapeRef *shapeRef275 = new ShapeRef(router, poly275, 275);
+ router->addShape(shapeRef275);
+
+ Polygon poly276(4);
+ poly276.ps[0] = Point(1159.25, 398.918);
+ poly276.ps[1] = Point(1159.25, 438.918);
+ poly276.ps[2] = Point(1103.25, 438.918);
+ poly276.ps[3] = Point(1103.25, 398.918);
+ ShapeRef *shapeRef276 = new ShapeRef(router, poly276, 276);
+ router->addShape(shapeRef276);
+
+ Polygon poly277(4);
+ poly277.ps[0] = Point(1063.25, 398.918);
+ poly277.ps[1] = Point(1063.25, 438.918);
+ poly277.ps[2] = Point(1007.25, 438.918);
+ poly277.ps[3] = Point(1007.25, 398.918);
+ ShapeRef *shapeRef277 = new ShapeRef(router, poly277, 277);
+ router->addShape(shapeRef277);
+
+ Polygon poly278(4);
+ poly278.ps[0] = Point(1063.25, 366.918);
+ poly278.ps[1] = Point(1063.25, 406.918);
+ poly278.ps[2] = Point(1007.25, 406.918);
+ poly278.ps[3] = Point(1007.25, 366.918);
+ ShapeRef *shapeRef278 = new ShapeRef(router, poly278, 278);
+ router->addShape(shapeRef278);
+
+ Polygon poly279(4);
+ poly279.ps[0] = Point(1033.25, 182.918);
+ poly279.ps[1] = Point(1033.25, 222.918);
+ poly279.ps[2] = Point(977.246, 222.918);
+ poly279.ps[3] = Point(977.246, 182.918);
+ ShapeRef *shapeRef279 = new ShapeRef(router, poly279, 279);
+ router->addShape(shapeRef279);
+
+ Polygon poly280(4);
+ poly280.ps[0] = Point(985.246, 172.918);
+ poly280.ps[1] = Point(985.246, 212.918);
+ poly280.ps[2] = Point(929.246, 212.918);
+ poly280.ps[3] = Point(929.246, 172.918);
+ ShapeRef *shapeRef280 = new ShapeRef(router, poly280, 280);
+ router->addShape(shapeRef280);
+
+ Polygon poly281(4);
+ poly281.ps[0] = Point(985.246, 108.918);
+ poly281.ps[1] = Point(985.246, 148.918);
+ poly281.ps[2] = Point(929.246, 148.918);
+ poly281.ps[3] = Point(929.246, 108.918);
+ ShapeRef *shapeRef281 = new ShapeRef(router, poly281, 281);
+ router->addShape(shapeRef281);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(967.246, 612.918);
+ poly65.ps[1] = Point(967.246, 632.918);
+ poly65.ps[2] = Point(947.246, 632.918);
+ poly65.ps[3] = Point(947.246, 612.918);
+ ShapeRef *shapeRef65 = new ShapeRef(router, poly65, 65);
+ router->addShape(shapeRef65);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(859.246, 278.918);
+ poly53.ps[1] = Point(859.246, 298.918);
+ poly53.ps[2] = Point(839.246, 298.918);
+ poly53.ps[3] = Point(839.246, 278.918);
+ ShapeRef *shapeRef53 = new ShapeRef(router, poly53, 53);
+ router->addShape(shapeRef53);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(967.246, 580.918);
+ poly66.ps[1] = Point(967.246, 600.918);
+ poly66.ps[2] = Point(947.246, 600.918);
+ poly66.ps[3] = Point(947.246, 580.918);
+ ShapeRef *shapeRef66 = new ShapeRef(router, poly66, 66);
+ router->addShape(shapeRef66);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(703.246, 278.918);
+ poly54.ps[1] = Point(703.246, 298.918);
+ poly54.ps[2] = Point(683.246, 298.918);
+ poly54.ps[3] = Point(683.246, 278.918);
+ ShapeRef *shapeRef54 = new ShapeRef(router, poly54, 54);
+ router->addShape(shapeRef54);
+
+ Polygon poly171(4);
+ poly171.ps[0] = Point(547.246, 538.918);
+ poly171.ps[1] = Point(547.246, 578.918);
+ poly171.ps[2] = Point(507.246, 578.918);
+ poly171.ps[3] = Point(507.246, 538.918);
+ ShapeRef *shapeRef171 = new ShapeRef(router, poly171, 171);
+ router->addShape(shapeRef171);
+
+ Polygon poly172(4);
+ poly172.ps[0] = Point(547.246, 656.918);
+ poly172.ps[1] = Point(547.246, 696.918);
+ poly172.ps[2] = Point(507.246, 696.918);
+ poly172.ps[3] = Point(507.246, 656.918);
+ ShapeRef *shapeRef172 = new ShapeRef(router, poly172, 172);
+ router->addShape(shapeRef172);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(811.246, 504.918);
+ poly78.ps[1] = Point(811.246, 524.918);
+ poly78.ps[2] = Point(791.246, 524.918);
+ poly78.ps[3] = Point(791.246, 504.918);
+ ShapeRef *shapeRef78 = new ShapeRef(router, poly78, 78);
+ router->addShape(shapeRef78);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(655.246, 268.918);
+ poly95.ps[1] = Point(655.246, 288.918);
+ poly95.ps[2] = Point(635.246, 288.918);
+ poly95.ps[3] = Point(635.246, 268.918);
+ ShapeRef *shapeRef95 = new ShapeRef(router, poly95, 95);
+ router->addShape(shapeRef95);
+
+ Polygon poly156(4);
+ poly156.ps[0] = Point(77.2456, 312.918);
+ poly156.ps[1] = Point(77.2456, 352.918);
+ poly156.ps[2] = Point(37.2456, 352.918);
+ poly156.ps[3] = Point(37.2456, 312.918);
+ ShapeRef *shapeRef156 = new ShapeRef(router, poly156, 156);
+ router->addShape(shapeRef156);
+
+ Polygon poly187(4);
+ poly187.ps[0] = Point(203.246, 300.918);
+ poly187.ps[1] = Point(203.246, 320.918);
+ poly187.ps[2] = Point(183.246, 320.918);
+ poly187.ps[3] = Point(183.246, 300.918);
+ ShapeRef *shapeRef187 = new ShapeRef(router, poly187, 187);
+ router->addShape(shapeRef187);
+
+ Polygon poly188(4);
+ poly188.ps[0] = Point(343.246, 300.918);
+ poly188.ps[1] = Point(343.246, 320.918);
+ poly188.ps[2] = Point(323.246, 320.918);
+ poly188.ps[3] = Point(323.246, 300.918);
+ ShapeRef *shapeRef188 = new ShapeRef(router, poly188, 188);
+ router->addShape(shapeRef188);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(547.246, 476.951);
+ poly100.ps[1] = Point(547.246, 496.951);
+ poly100.ps[2] = Point(527.246, 496.951);
+ poly100.ps[3] = Point(527.246, 476.951);
+ ShapeRef *shapeRef100 = new ShapeRef(router, poly100, 100);
+ router->addShape(shapeRef100);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(391.246, 278.918);
+ poly56.ps[1] = Point(391.246, 298.918);
+ poly56.ps[2] = Point(371.246, 298.918);
+ poly56.ps[3] = Point(371.246, 278.918);
+ ShapeRef *shapeRef56 = new ShapeRef(router, poly56, 56);
+ router->addShape(shapeRef56);
+
+ Polygon poly220(4);
+ poly220.ps[0] = Point(1243.25, 708.918);
+ poly220.ps[1] = Point(1243.25, 728.918);
+ poly220.ps[2] = Point(1223.25, 728.918);
+ poly220.ps[3] = Point(1223.25, 708.918);
+ ShapeRef *shapeRef220 = new ShapeRef(router, poly220, 220);
+ router->addShape(shapeRef220);
+
+ Polygon poly221(4);
+ poly221.ps[0] = Point(1303.25, 246.918);
+ poly221.ps[1] = Point(1303.25, 266.918);
+ poly221.ps[2] = Point(1283.25, 266.918);
+ poly221.ps[3] = Point(1283.25, 246.918);
+ ShapeRef *shapeRef221 = new ShapeRef(router, poly221, 221);
+ router->addShape(shapeRef221);
+
+ Polygon poly222(4);
+ poly222.ps[0] = Point(1303.25, 634.918);
+ poly222.ps[1] = Point(1303.25, 654.918);
+ poly222.ps[2] = Point(1283.25, 654.918);
+ poly222.ps[3] = Point(1283.25, 634.918);
+ ShapeRef *shapeRef222 = new ShapeRef(router, poly222, 222);
+ router->addShape(shapeRef222);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(859.246, 246.918);
+ poly83.ps[1] = Point(859.246, 266.918);
+ poly83.ps[2] = Point(839.246, 266.918);
+ poly83.ps[3] = Point(839.246, 246.918);
+ ShapeRef *shapeRef83 = new ShapeRef(router, poly83, 83);
+ router->addShape(shapeRef83);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(77.2456, 408.918);
+ poly136.ps[1] = Point(77.2456, 428.918);
+ poly136.ps[2] = Point(57.2456, 428.918);
+ poly136.ps[3] = Point(57.2456, 408.918);
+ ShapeRef *shapeRef136 = new ShapeRef(router, poly136, 136);
+ router->addShape(shapeRef136);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(590.455, 4.91795);
+ poly60.ps[1] = Point(590.455, 64.9179);
+ poly60.ps[2] = Point(312.455, 64.9179);
+ poly60.ps[3] = Point(312.455, 4.91795);
+ ShapeRef *shapeRef60 = new ShapeRef(router, poly60, 60);
+ router->addShape(shapeRef60);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(499.246, 408.918);
+ poly104.ps[1] = Point(499.246, 428.918);
+ poly104.ps[2] = Point(479.246, 428.918);
+ poly104.ps[3] = Point(479.246, 408.918);
+ ShapeRef *shapeRef104 = new ShapeRef(router, poly104, 104);
+ router->addShape(shapeRef104);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(1223.25, 656.918);
+ poly8.ps[1] = Point(1223.25, 696.918);
+ poly8.ps[2] = Point(1183.25, 696.918);
+ poly8.ps[3] = Point(1183.25, 656.918);
+ ShapeRef *shapeRef8 = new ShapeRef(router, poly8, 8);
+ router->addShape(shapeRef8);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(203.246, 612.918);
+ poly121.ps[1] = Point(203.246, 632.918);
+ poly121.ps[2] = Point(183.246, 632.918);
+ poly121.ps[3] = Point(183.246, 612.918);
+ ShapeRef *shapeRef121 = new ShapeRef(router, poly121, 121);
+ router->addShape(shapeRef121);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(222.246, -101.082);
+ poly61.ps[1] = Point(222.246, -41.0821);
+ poly61.ps[2] = Point(-12.7544, -41.0821);
+ poly61.ps[3] = Point(-12.7544, -101.082);
+ ShapeRef *shapeRef61 = new ShapeRef(router, poly61, 61);
+ router->addShape(shapeRef61);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(1047.75, 767.422);
+ poly58.ps[1] = Point(1047.75, 802.422);
+ poly58.ps[2] = Point(910.746, 802.422);
+ poly58.ps[3] = Point(910.746, 767.422);
+ ShapeRef *shapeRef58 = new ShapeRef(router, poly58, 58);
+ router->addShape(shapeRef58);
+
+ Polygon poly248(4);
+ poly248.ps[0] = Point(955.246, 516.918);
+ poly248.ps[1] = Point(955.246, 556.918);
+ poly248.ps[2] = Point(899.246, 556.918);
+ poly248.ps[3] = Point(899.246, 516.918);
+ ShapeRef *shapeRef248 = new ShapeRef(router, poly248, 248);
+ router->addShape(shapeRef248);
+
+ Polygon poly249(4);
+ poly249.ps[0] = Point(799.246, 516.918);
+ poly249.ps[1] = Point(799.246, 556.918);
+ poly249.ps[2] = Point(743.246, 556.918);
+ poly249.ps[3] = Point(743.246, 516.918);
+ ShapeRef *shapeRef249 = new ShapeRef(router, poly249, 249);
+ router->addShape(shapeRef249);
+
+ Polygon poly250(4);
+ poly250.ps[0] = Point(643.246, 516.918);
+ poly250.ps[1] = Point(643.246, 556.918);
+ poly250.ps[2] = Point(587.246, 556.918);
+ poly250.ps[3] = Point(587.246, 516.918);
+ ShapeRef *shapeRef250 = new ShapeRef(router, poly250, 250);
+ router->addShape(shapeRef250);
+
+ Polygon poly251(4);
+ poly251.ps[0] = Point(487.246, 516.918);
+ poly251.ps[1] = Point(487.246, 556.918);
+ poly251.ps[2] = Point(431.246, 556.918);
+ poly251.ps[3] = Point(431.246, 516.918);
+ ShapeRef *shapeRef251 = new ShapeRef(router, poly251, 251);
+ router->addShape(shapeRef251);
+
+ Polygon poly252(4);
+ poly252.ps[0] = Point(331.246, 516.918);
+ poly252.ps[1] = Point(331.246, 556.918);
+ poly252.ps[2] = Point(275.246, 556.918);
+ poly252.ps[3] = Point(275.246, 516.918);
+ ShapeRef *shapeRef252 = new ShapeRef(router, poly252, 252);
+ router->addShape(shapeRef252);
+
+ Polygon poly253(4);
+ poly253.ps[0] = Point(173.246, 516.918);
+ poly253.ps[1] = Point(173.246, 556.918);
+ poly253.ps[2] = Point(117.246, 556.918);
+ poly253.ps[3] = Point(117.246, 516.918);
+ ShapeRef *shapeRef253 = new ShapeRef(router, poly253, 253);
+ router->addShape(shapeRef253);
+
+ Polygon poly231(4);
+ poly231.ps[0] = Point(173.246, 634.918);
+ poly231.ps[1] = Point(173.246, 674.918);
+ poly231.ps[2] = Point(117.246, 674.918);
+ poly231.ps[3] = Point(117.246, 634.918);
+ ShapeRef *shapeRef231 = new ShapeRef(router, poly231, 231);
+ router->addShape(shapeRef231);
+
+ Polygon poly232(4);
+ poly232.ps[0] = Point(907.246, 698.918);
+ poly232.ps[1] = Point(907.246, 738.918);
+ poly232.ps[2] = Point(851.246, 738.918);
+ poly232.ps[3] = Point(851.246, 698.918);
+ ShapeRef *shapeRef232 = new ShapeRef(router, poly232, 232);
+ router->addShape(shapeRef232);
+
+ Polygon poly233(4);
+ poly233.ps[0] = Point(1231.25, 698.918);
+ poly233.ps[1] = Point(1231.25, 738.918);
+ poly233.ps[2] = Point(1175.25, 738.918);
+ poly233.ps[3] = Point(1175.25, 698.918);
+ ShapeRef *shapeRef233 = new ShapeRef(router, poly233, 233);
+ router->addShape(shapeRef233);
+
+ Polygon poly234(4);
+ poly234.ps[0] = Point(1291.25, 698.918);
+ poly234.ps[1] = Point(1291.25, 738.918);
+ poly234.ps[2] = Point(1235.25, 738.918);
+ poly234.ps[3] = Point(1235.25, 698.918);
+ ShapeRef *shapeRef234 = new ShapeRef(router, poly234, 234);
+ router->addShape(shapeRef234);
+
+ Polygon poly235(4);
+ poly235.ps[0] = Point(622.941, 698.918);
+ poly235.ps[1] = Point(622.941, 738.918);
+ poly235.ps[2] = Point(566.941, 738.918);
+ poly235.ps[3] = Point(566.941, 698.918);
+ ShapeRef *shapeRef235 = new ShapeRef(router, poly235, 235);
+ router->addShape(shapeRef235);
+
+ Polygon poly236(4);
+ poly236.ps[0] = Point(479.455, 698.918);
+ poly236.ps[1] = Point(479.455, 738.918);
+ poly236.ps[2] = Point(423.455, 738.918);
+ poly236.ps[3] = Point(423.455, 698.918);
+ ShapeRef *shapeRef236 = new ShapeRef(router, poly236, 236);
+ router->addShape(shapeRef236);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(547.246, 408.918);
+ poly103.ps[1] = Point(547.246, 428.918);
+ poly103.ps[2] = Point(527.246, 428.918);
+ poly103.ps[3] = Point(527.246, 408.918);
+ ShapeRef *shapeRef103 = new ShapeRef(router, poly103, 103);
+ router->addShape(shapeRef103);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(1015.25, 408.918);
+ poly69.ps[1] = Point(1015.25, 428.918);
+ poly69.ps[2] = Point(995.246, 428.918);
+ poly69.ps[3] = Point(995.246, 408.918);
+ ShapeRef *shapeRef69 = new ShapeRef(router, poly69, 69);
+ router->addShape(shapeRef69);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(547.246, 612.918);
+ poly4.ps[1] = Point(547.246, 632.918);
+ poly4.ps[2] = Point(527.246, 632.918);
+ poly4.ps[3] = Point(527.246, 612.918);
+ ShapeRef *shapeRef4 = new ShapeRef(router, poly4, 4);
+ router->addShape(shapeRef4);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(77.2456, 644.918);
+ poly7.ps[1] = Point(77.2456, 664.918);
+ poly7.ps[2] = Point(57.2456, 664.918);
+ poly7.ps[3] = Point(57.2456, 644.918);
+ ShapeRef *shapeRef7 = new ShapeRef(router, poly7, 7);
+ router->addShape(shapeRef7);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(235.246, 644.918);
+ poly33.ps[1] = Point(235.246, 664.918);
+ poly33.ps[2] = Point(215.246, 664.918);
+ poly33.ps[3] = Point(215.246, 644.918);
+ ShapeRef *shapeRef33 = new ShapeRef(router, poly33, 33);
+ router->addShape(shapeRef33);
+
+ Polygon poly380(4);
+ poly380.ps[0] = Point(595.246, 634.918);
+ poly380.ps[1] = Point(595.246, 674.918);
+ poly380.ps[2] = Point(539.246, 674.918);
+ poly380.ps[3] = Point(539.246, 634.918);
+ ShapeRef *shapeRef380 = new ShapeRef(router, poly380, 380);
+ router->addShape(shapeRef380);
+
+ Polygon poly381(4);
+ poly381.ps[0] = Point(751.246, 634.918);
+ poly381.ps[1] = Point(751.246, 674.918);
+ poly381.ps[2] = Point(695.246, 674.918);
+ poly381.ps[3] = Point(695.246, 634.918);
+ ShapeRef *shapeRef381 = new ShapeRef(router, poly381, 381);
+ router->addShape(shapeRef381);
+
+ Polygon poly382(4);
+ poly382.ps[0] = Point(907.246, 634.918);
+ poly382.ps[1] = Point(907.246, 674.918);
+ poly382.ps[2] = Point(851.246, 674.918);
+ poly382.ps[3] = Point(851.246, 634.918);
+ ShapeRef *shapeRef382 = new ShapeRef(router, poly382, 382);
+ router->addShape(shapeRef382);
+
+ Polygon poly383(4);
+ poly383.ps[0] = Point(1063.25, 634.918);
+ poly383.ps[1] = Point(1063.25, 674.918);
+ poly383.ps[2] = Point(1007.25, 674.918);
+ poly383.ps[3] = Point(1007.25, 634.918);
+ ShapeRef *shapeRef383 = new ShapeRef(router, poly383, 383);
+ router->addShape(shapeRef383);
+
+ Polygon poly384(4);
+ poly384.ps[0] = Point(1261.25, 172.918);
+ poly384.ps[1] = Point(1261.25, 212.918);
+ poly384.ps[2] = Point(1205.25, 212.918);
+ poly384.ps[3] = Point(1205.25, 172.918);
+ ShapeRef *shapeRef384 = new ShapeRef(router, poly384, 384);
+ router->addShape(shapeRef384);
+
+ Polygon poly385(4);
+ poly385.ps[0] = Point(1351.25, 398.918);
+ poly385.ps[1] = Point(1351.25, 438.918);
+ poly385.ps[2] = Point(1295.25, 438.918);
+ poly385.ps[3] = Point(1295.25, 398.918);
+ ShapeRef *shapeRef385 = new ShapeRef(router, poly385, 385);
+ router->addShape(shapeRef385);
+
+ Polygon poly386(4);
+ poly386.ps[0] = Point(1351.25, 494.918);
+ poly386.ps[1] = Point(1351.25, 534.918);
+ poly386.ps[2] = Point(1295.25, 534.918);
+ poly386.ps[3] = Point(1295.25, 494.918);
+ ShapeRef *shapeRef386 = new ShapeRef(router, poly386, 386);
+ router->addShape(shapeRef386);
+
+ Polygon poly387(4);
+ poly387.ps[0] = Point(1351.25, 602.918);
+ poly387.ps[1] = Point(1351.25, 642.918);
+ poly387.ps[2] = Point(1295.25, 642.918);
+ poly387.ps[3] = Point(1295.25, 602.918);
+ ShapeRef *shapeRef387 = new ShapeRef(router, poly387, 387);
+ router->addShape(shapeRef387);
+
+ Polygon poly388(4);
+ poly388.ps[0] = Point(1063.25, 698.918);
+ poly388.ps[1] = Point(1063.25, 738.918);
+ poly388.ps[2] = Point(1007.25, 738.918);
+ poly388.ps[3] = Point(1007.25, 698.918);
+ ShapeRef *shapeRef388 = new ShapeRef(router, poly388, 388);
+ router->addShape(shapeRef388);
+
+ Polygon poly389(4);
+ poly389.ps[0] = Point(1063.25, 730.918);
+ poly389.ps[1] = Point(1063.25, 770.918);
+ poly389.ps[2] = Point(1007.25, 770.918);
+ poly389.ps[3] = Point(1007.25, 730.918);
+ ShapeRef *shapeRef389 = new ShapeRef(router, poly389, 389);
+ router->addShape(shapeRef389);
+
+ Polygon poly390(4);
+ poly390.ps[0] = Point(1351.25, 698.918);
+ poly390.ps[1] = Point(1351.25, 738.918);
+ poly390.ps[2] = Point(1295.25, 738.918);
+ poly390.ps[3] = Point(1295.25, 698.918);
+ ShapeRef *shapeRef390 = new ShapeRef(router, poly390, 390);
+ router->addShape(shapeRef390);
+
+ Polygon poly391(4);
+ poly391.ps[0] = Point(1321.25, 182.918);
+ poly391.ps[1] = Point(1321.25, 222.918);
+ poly391.ps[2] = Point(1265.25, 222.918);
+ poly391.ps[3] = Point(1265.25, 182.918);
+ ShapeRef *shapeRef391 = new ShapeRef(router, poly391, 391);
+ router->addShape(shapeRef391);
+
+ Polygon poly392(4);
+ poly392.ps[0] = Point(1447.25, 624.918);
+ poly392.ps[1] = Point(1447.25, 664.918);
+ poly392.ps[2] = Point(1391.25, 664.918);
+ poly392.ps[3] = Point(1391.25, 624.918);
+ ShapeRef *shapeRef392 = new ShapeRef(router, poly392, 392);
+ router->addShape(shapeRef392);
+
+ Polygon poly393(4);
+ poly393.ps[0] = Point(173.246, 226.918);
+ poly393.ps[1] = Point(173.246, 266.918);
+ poly393.ps[2] = Point(117.246, 266.918);
+ poly393.ps[3] = Point(117.246, 226.918);
+ ShapeRef *shapeRef393 = new ShapeRef(router, poly393, 393);
+ router->addShape(shapeRef393);
+
+ Polygon poly394(4);
+ poly394.ps[0] = Point(173.246, 258.918);
+ poly394.ps[1] = Point(173.246, 298.918);
+ poly394.ps[2] = Point(117.246, 298.918);
+ poly394.ps[3] = Point(117.246, 258.918);
+ ShapeRef *shapeRef394 = new ShapeRef(router, poly394, 394);
+ router->addShape(shapeRef394);
+
+ Polygon poly395(4);
+ poly395.ps[0] = Point(372.466, 14.9179);
+ poly395.ps[1] = Point(372.466, 54.9179);
+ poly395.ps[2] = Point(312.466, 54.9179);
+ poly395.ps[3] = Point(312.466, 14.9179);
+ ShapeRef *shapeRef395 = new ShapeRef(router, poly395, 395);
+ router->addShape(shapeRef395);
+
+ Polygon poly396(4);
+ poly396.ps[0] = Point(47.2456, -91.0821);
+ poly396.ps[1] = Point(47.2456, -51.0821);
+ poly396.ps[2] = Point(-12.7544, -51.0821);
+ poly396.ps[3] = Point(-12.7544, -91.0821);
+ ShapeRef *shapeRef396 = new ShapeRef(router, poly396, 396);
+ router->addShape(shapeRef396);
+
+ Polygon poly397(4);
+ poly397.ps[0] = Point(372.466, 66.9179);
+ poly397.ps[1] = Point(372.466, 106.918);
+ poly397.ps[2] = Point(312.466, 106.918);
+ poly397.ps[3] = Point(312.466, 66.9179);
+ ShapeRef *shapeRef397 = new ShapeRef(router, poly397, 397);
+ router->addShape(shapeRef397);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(967.246, 676.918);
+ poly63.ps[1] = Point(967.246, 696.918);
+ poly63.ps[2] = Point(947.246, 696.918);
+ poly63.ps[3] = Point(947.246, 676.918);
+ ShapeRef *shapeRef63 = new ShapeRef(router, poly63, 63);
+ router->addShape(shapeRef63);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(655.246, 472.918);
+ poly90.ps[1] = Point(655.246, 492.918);
+ poly90.ps[2] = Point(635.246, 492.918);
+ poly90.ps[3] = Point(635.246, 472.918);
+ ShapeRef *shapeRef90 = new ShapeRef(router, poly90, 90);
+ router->addShape(shapeRef90);
+
+ Polygon poly282(4);
+ poly282.ps[0] = Point(955.246, 570.918);
+ poly282.ps[1] = Point(955.246, 610.918);
+ poly282.ps[2] = Point(899.246, 610.918);
+ poly282.ps[3] = Point(899.246, 570.918);
+ ShapeRef *shapeRef282 = new ShapeRef(router, poly282, 282);
+ router->addShape(shapeRef282);
+
+ Polygon poly283(4);
+ poly283.ps[0] = Point(907.246, 602.918);
+ poly283.ps[1] = Point(907.246, 642.918);
+ poly283.ps[2] = Point(851.246, 642.918);
+ poly283.ps[3] = Point(851.246, 602.918);
+ ShapeRef *shapeRef283 = new ShapeRef(router, poly283, 283);
+ router->addShape(shapeRef283);
+
+ Polygon poly284(4);
+ poly284.ps[0] = Point(907.246, 570.918);
+ poly284.ps[1] = Point(907.246, 610.918);
+ poly284.ps[2] = Point(851.246, 610.918);
+ poly284.ps[3] = Point(851.246, 570.918);
+ ShapeRef *shapeRef284 = new ShapeRef(router, poly284, 284);
+ router->addShape(shapeRef284);
+
+ Polygon poly285(4);
+ poly285.ps[0] = Point(907.246, 494.918);
+ poly285.ps[1] = Point(907.246, 534.918);
+ poly285.ps[2] = Point(851.246, 534.918);
+ poly285.ps[3] = Point(851.246, 494.918);
+ ShapeRef *shapeRef285 = new ShapeRef(router, poly285, 285);
+ router->addShape(shapeRef285);
+
+ Polygon poly286(4);
+ poly286.ps[0] = Point(907.246, 462.918);
+ poly286.ps[1] = Point(907.246, 502.918);
+ poly286.ps[2] = Point(851.246, 502.918);
+ poly286.ps[3] = Point(851.246, 462.918);
+ ShapeRef *shapeRef286 = new ShapeRef(router, poly286, 286);
+ router->addShape(shapeRef286);
+
+ Polygon poly287(4);
+ poly287.ps[0] = Point(955.246, 398.918);
+ poly287.ps[1] = Point(955.246, 438.918);
+ poly287.ps[2] = Point(899.246, 438.918);
+ poly287.ps[3] = Point(899.246, 398.918);
+ ShapeRef *shapeRef287 = new ShapeRef(router, poly287, 287);
+ router->addShape(shapeRef287);
+
+ Polygon poly288(4);
+ poly288.ps[0] = Point(907.246, 398.918);
+ poly288.ps[1] = Point(907.246, 438.918);
+ poly288.ps[2] = Point(851.246, 438.918);
+ poly288.ps[3] = Point(851.246, 398.918);
+ ShapeRef *shapeRef288 = new ShapeRef(router, poly288, 288);
+ router->addShape(shapeRef288);
+
+ Polygon poly289(4);
+ poly289.ps[0] = Point(907.246, 366.918);
+ poly289.ps[1] = Point(907.246, 406.918);
+ poly289.ps[2] = Point(851.246, 406.918);
+ poly289.ps[3] = Point(851.246, 366.918);
+ ShapeRef *shapeRef289 = new ShapeRef(router, poly289, 289);
+ router->addShape(shapeRef289);
+
+ Polygon poly242(4);
+ poly242.ps[0] = Point(643.246, 634.918);
+ poly242.ps[1] = Point(643.246, 674.918);
+ poly242.ps[2] = Point(587.246, 674.918);
+ poly242.ps[3] = Point(587.246, 634.918);
+ ShapeRef *shapeRef242 = new ShapeRef(router, poly242, 242);
+ router->addShape(shapeRef242);
+
+ Polygon poly243(4);
+ poly243.ps[0] = Point(487.246, 634.918);
+ poly243.ps[1] = Point(487.246, 674.918);
+ poly243.ps[2] = Point(431.246, 674.918);
+ poly243.ps[3] = Point(431.246, 634.918);
+ ShapeRef *shapeRef243 = new ShapeRef(router, poly243, 243);
+ router->addShape(shapeRef243);
+
+ Polygon poly244(4);
+ poly244.ps[0] = Point(331.246, 634.918);
+ poly244.ps[1] = Point(331.246, 674.918);
+ poly244.ps[2] = Point(275.246, 674.918);
+ poly244.ps[3] = Point(275.246, 634.918);
+ ShapeRef *shapeRef244 = new ShapeRef(router, poly244, 244);
+ router->addShape(shapeRef244);
+
+ Polygon poly245(4);
+ poly245.ps[0] = Point(173.246, 602.918);
+ poly245.ps[1] = Point(173.246, 642.918);
+ poly245.ps[2] = Point(117.246, 642.918);
+ poly245.ps[3] = Point(117.246, 602.918);
+ ShapeRef *shapeRef245 = new ShapeRef(router, poly245, 245);
+ router->addShape(shapeRef245);
+
+ Polygon poly246(4);
+ poly246.ps[0] = Point(1447.25, 494.918);
+ poly246.ps[1] = Point(1447.25, 534.918);
+ poly246.ps[2] = Point(1391.25, 534.918);
+ poly246.ps[3] = Point(1391.25, 494.918);
+ ShapeRef *shapeRef246 = new ShapeRef(router, poly246, 246);
+ router->addShape(shapeRef246);
+
+ Polygon poly247(4);
+ poly247.ps[0] = Point(1159.25, 516.918);
+ poly247.ps[1] = Point(1159.25, 556.918);
+ poly247.ps[2] = Point(1103.25, 556.918);
+ poly247.ps[3] = Point(1103.25, 516.918);
+ ShapeRef *shapeRef247 = new ShapeRef(router, poly247, 247);
+ router->addShape(shapeRef247);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(1183.25, 708.918);
+ poly23.ps[1] = Point(1183.25, 728.918);
+ poly23.ps[2] = Point(1163.25, 728.918);
+ poly23.ps[3] = Point(1163.25, 708.918);
+ ShapeRef *shapeRef23 = new ShapeRef(router, poly23, 23);
+ router->addShape(shapeRef23);
+
+ ConnRef *connRef715 = new ConnRef(router, 715);
+ ConnEnd srcPt715(Point(132, 319), 15);
+ connRef715->setSourceEndpoint(srcPt715);
+ ConnEnd dstPt715(Point(57.2456, 332.918), 15);
+ connRef715->setDestEndpoint(dstPt715);
+ connRef715->setRoutingType((ConnType)2);
+
+ ConnRef *connRef716 = new ConnRef(router, 716);
+ ConnEnd srcPt716(Point(1131.25, 622.918), 15);
+ connRef716->setSourceEndpoint(srcPt716);
+ ConnEnd dstPt716(Point(1005.25, 622.918), 15);
+ connRef716->setDestEndpoint(dstPt716);
+ connRef716->setRoutingType((ConnType)2);
+
+ ConnRef *connRef717 = new ConnRef(router, 717);
+ ConnEnd srcPt717(Point(927.246, 622.918), 15);
+ connRef717->setSourceEndpoint(srcPt717);
+ ConnEnd dstPt717(Point(849.246, 622.918), 15);
+ connRef717->setDestEndpoint(dstPt717);
+ connRef717->setRoutingType((ConnType)2);
+
+ ConnRef *connRef718 = new ConnRef(router, 718);
+ ConnEnd srcPt718(Point(771.246, 622.918), 15);
+ connRef718->setSourceEndpoint(srcPt718);
+ ConnEnd dstPt718(Point(693.246, 622.918), 15);
+ connRef718->setDestEndpoint(dstPt718);
+ connRef718->setRoutingType((ConnType)2);
+
+ ConnRef *connRef719 = new ConnRef(router, 719);
+ ConnEnd srcPt719(Point(615.246, 622.918), 15);
+ connRef719->setSourceEndpoint(srcPt719);
+ ConnEnd dstPt719(Point(537.246, 622.918), 15);
+ connRef719->setDestEndpoint(dstPt719);
+ connRef719->setRoutingType((ConnType)2);
+
+ ConnRef *connRef720 = new ConnRef(router, 720);
+ ConnEnd srcPt720(Point(459.246, 622.918), 15);
+ connRef720->setSourceEndpoint(srcPt720);
+ ConnEnd dstPt720(Point(381.246, 622.918), 15);
+ connRef720->setDestEndpoint(dstPt720);
+ connRef720->setRoutingType((ConnType)2);
+
+ ConnRef *connRef721 = new ConnRef(router, 721);
+ ConnEnd srcPt721(Point(303.246, 622.918), 15);
+ connRef721->setSourceEndpoint(srcPt721);
+ ConnEnd dstPt721(Point(225.246, 622.918), 15);
+ connRef721->setDestEndpoint(dstPt721);
+ connRef721->setRoutingType((ConnType)2);
+
+ ConnRef *connRef722 = new ConnRef(router, 722);
+ ConnEnd srcPt722(Point(145.246, 654.918), 15);
+ connRef722->setSourceEndpoint(srcPt722);
+ ConnEnd dstPt722(Point(67.2456, 654.918), 15);
+ connRef722->setDestEndpoint(dstPt722);
+ connRef722->setRoutingType((ConnType)2);
+
+ ConnRef *connRef723 = new ConnRef(router, 723);
+ ConnEnd srcPt723(Point(879.246, 718.918), 15);
+ connRef723->setSourceEndpoint(srcPt723);
+ ConnEnd dstPt723(Point(801.246, 718.918), 15);
+ connRef723->setDestEndpoint(dstPt723);
+ connRef723->setRoutingType((ConnType)2);
+
+ ConnRef *connRef724 = new ConnRef(router, 724);
+ ConnEnd srcPt724(Point(1203.25, 718.918), 15);
+ connRef724->setSourceEndpoint(srcPt724);
+ ConnEnd dstPt724(Point(1161.25, 718.918), 15);
+ connRef724->setDestEndpoint(dstPt724);
+ connRef724->setRoutingType((ConnType)2);
+
+ ConnRef *connRef725 = new ConnRef(router, 725);
+ ConnEnd srcPt725(Point(1263.25, 718.918), 15);
+ connRef725->setSourceEndpoint(srcPt725);
+ ConnEnd dstPt725(Point(1173.25, 718.918), 15);
+ connRef725->setDestEndpoint(dstPt725);
+ connRef725->setRoutingType((ConnType)2);
+
+ ConnRef *connRef726 = new ConnRef(router, 726);
+ ConnEnd srcPt726(Point(594.941, 718.918), 15);
+ connRef726->setSourceEndpoint(srcPt726);
+ ConnEnd dstPt726(Point(527.246, 718.918), 15);
+ connRef726->setDestEndpoint(dstPt726);
+ connRef726->setRoutingType((ConnType)2);
+
+ ConnRef *connRef727 = new ConnRef(router, 727);
+ ConnEnd srcPt727(Point(451.455, 718.918), 15);
+ connRef727->setSourceEndpoint(srcPt727);
+ ConnEnd dstPt727(Point(371.246, 718.918), 15);
+ connRef727->setDestEndpoint(dstPt727);
+ connRef727->setRoutingType((ConnType)2);
+
+ ConnRef *connRef728 = new ConnRef(router, 728);
+ ConnEnd srcPt728(Point(1371.25, 622.918), 15);
+ connRef728->setSourceEndpoint(srcPt728);
+ ConnEnd dstPt728(Point(1371.25, 676.918), 15);
+ connRef728->setDestEndpoint(dstPt728);
+ connRef728->setRoutingType((ConnType)2);
+
+ ConnRef *connRef729 = new ConnRef(router, 729);
+ ConnEnd srcPt729(Point(1419.25, 575.942), 15);
+ connRef729->setSourceEndpoint(srcPt729);
+ ConnEnd dstPt729(Point(1293.25, 575.942), 15);
+ connRef729->setDestEndpoint(dstPt729);
+ connRef729->setRoutingType((ConnType)2);
+
+ ConnRef *connRef730 = new ConnRef(router, 730);
+ ConnEnd srcPt730(Point(1131.25, 654.918), 15);
+ connRef730->setSourceEndpoint(srcPt730);
+ ConnEnd dstPt730(Point(1005.25, 654.918), 15);
+ connRef730->setDestEndpoint(dstPt730);
+ connRef730->setRoutingType((ConnType)2);
+
+ ConnRef *connRef731 = new ConnRef(router, 731);
+ ConnEnd srcPt731(Point(927.246, 654.918), 15);
+ connRef731->setSourceEndpoint(srcPt731);
+ ConnEnd dstPt731(Point(849.246, 654.918), 15);
+ connRef731->setDestEndpoint(dstPt731);
+ connRef731->setRoutingType((ConnType)2);
+
+ ConnRef *connRef732 = new ConnRef(router, 732);
+ ConnEnd srcPt732(Point(771.246, 654.918), 15);
+ connRef732->setSourceEndpoint(srcPt732);
+ ConnEnd dstPt732(Point(693.246, 654.918), 15);
+ connRef732->setDestEndpoint(dstPt732);
+ connRef732->setRoutingType((ConnType)2);
+
+ ConnRef *connRef733 = new ConnRef(router, 733);
+ ConnEnd srcPt733(Point(615.246, 654.918), 15);
+ connRef733->setSourceEndpoint(srcPt733);
+ ConnEnd dstPt733(Point(537.246, 654.918), 15);
+ connRef733->setDestEndpoint(dstPt733);
+ connRef733->setRoutingType((ConnType)2);
+
+ ConnRef *connRef734 = new ConnRef(router, 734);
+ ConnEnd srcPt734(Point(459.246, 654.918), 15);
+ connRef734->setSourceEndpoint(srcPt734);
+ ConnEnd dstPt734(Point(381.246, 654.918), 15);
+ connRef734->setDestEndpoint(dstPt734);
+ connRef734->setRoutingType((ConnType)2);
+
+ ConnRef *connRef735 = new ConnRef(router, 735);
+ ConnEnd srcPt735(Point(303.246, 654.918), 15);
+ connRef735->setSourceEndpoint(srcPt735);
+ ConnEnd dstPt735(Point(225.246, 654.918), 15);
+ connRef735->setDestEndpoint(dstPt735);
+ connRef735->setRoutingType((ConnType)2);
+
+ ConnRef *connRef736 = new ConnRef(router, 736);
+ ConnEnd srcPt736(Point(145.246, 622.918), 15);
+ connRef736->setSourceEndpoint(srcPt736);
+ ConnEnd dstPt736(Point(67.2456, 622.918), 15);
+ connRef736->setDestEndpoint(dstPt736);
+ connRef736->setRoutingType((ConnType)2);
+
+ ConnRef *connRef737 = new ConnRef(router, 737);
+ ConnEnd srcPt737(Point(1419.25, 514.918), 15);
+ connRef737->setSourceEndpoint(srcPt737);
+ ConnEnd dstPt737(Point(1293.25, 514.918), 15);
+ connRef737->setDestEndpoint(dstPt737);
+ connRef737->setRoutingType((ConnType)2);
+
+ ConnRef *connRef738 = new ConnRef(router, 738);
+ ConnEnd srcPt738(Point(1131.25, 536.918), 15);
+ connRef738->setSourceEndpoint(srcPt738);
+ ConnEnd dstPt738(Point(1005.25, 536.918), 15);
+ connRef738->setDestEndpoint(dstPt738);
+ connRef738->setRoutingType((ConnType)2);
+
+ ConnRef *connRef739 = new ConnRef(router, 739);
+ ConnEnd srcPt739(Point(927.246, 536.918), 15);
+ connRef739->setSourceEndpoint(srcPt739);
+ ConnEnd dstPt739(Point(849.246, 536.918), 15);
+ connRef739->setDestEndpoint(dstPt739);
+ connRef739->setRoutingType((ConnType)2);
+
+ ConnRef *connRef740 = new ConnRef(router, 740);
+ ConnEnd srcPt740(Point(771.246, 536.918), 15);
+ connRef740->setSourceEndpoint(srcPt740);
+ ConnEnd dstPt740(Point(693.246, 536.918), 15);
+ connRef740->setDestEndpoint(dstPt740);
+ connRef740->setRoutingType((ConnType)2);
+
+ ConnRef *connRef741 = new ConnRef(router, 741);
+ ConnEnd srcPt741(Point(615.246, 536.918), 15);
+ connRef741->setSourceEndpoint(srcPt741);
+ ConnEnd dstPt741(Point(537.246, 536.918), 15);
+ connRef741->setDestEndpoint(dstPt741);
+ connRef741->setRoutingType((ConnType)2);
+
+ ConnRef *connRef742 = new ConnRef(router, 742);
+ ConnEnd srcPt742(Point(459.246, 536.918), 15);
+ connRef742->setSourceEndpoint(srcPt742);
+ ConnEnd dstPt742(Point(381.246, 536.918), 15);
+ connRef742->setDestEndpoint(dstPt742);
+ connRef742->setRoutingType((ConnType)2);
+
+ ConnRef *connRef743 = new ConnRef(router, 743);
+ ConnEnd srcPt743(Point(303.246, 536.918), 15);
+ connRef743->setSourceEndpoint(srcPt743);
+ ConnEnd dstPt743(Point(225.246, 536.918), 15);
+ connRef743->setDestEndpoint(dstPt743);
+ connRef743->setRoutingType((ConnType)2);
+
+ ConnRef *connRef744 = new ConnRef(router, 744);
+ ConnEnd srcPt744(Point(145.246, 536.918), 15);
+ connRef744->setSourceEndpoint(srcPt744);
+ ConnEnd dstPt744(Point(67.2456, 536.918), 15);
+ connRef744->setDestEndpoint(dstPt744);
+ connRef744->setRoutingType((ConnType)2);
+
+ ConnRef *connRef745 = new ConnRef(router, 745);
+ ConnEnd srcPt745(Point(1293.25, 234.918), 15);
+ connRef745->setSourceEndpoint(srcPt745);
+ ConnEnd dstPt745(Point(1293.25, 288.918), 15);
+ connRef745->setDestEndpoint(dstPt745);
+ connRef745->setRoutingType((ConnType)2);
+
+ ConnRef *connRef746 = new ConnRef(router, 746);
+ ConnEnd srcPt746(Point(1083.25, 622.918), 15);
+ connRef746->setSourceEndpoint(srcPt746);
+ ConnEnd dstPt746(Point(1083.25, 676.918), 15);
+ connRef746->setDestEndpoint(dstPt746);
+ connRef746->setRoutingType((ConnType)2);
+
+ ConnRef *connRef747 = new ConnRef(router, 747);
+ ConnEnd srcPt747(Point(1419.25, 418.918), 15);
+ connRef747->setSourceEndpoint(srcPt747);
+ ConnEnd dstPt747(Point(1293.25, 418.918), 15);
+ connRef747->setDestEndpoint(dstPt747);
+ connRef747->setRoutingType((ConnType)2);
+
+ ConnRef *connRef748 = new ConnRef(router, 748);
+ ConnEnd srcPt748(Point(1419.25, 718.918), 15);
+ connRef748->setSourceEndpoint(srcPt748);
+ ConnEnd dstPt748(Point(1293.25, 718.918), 15);
+ connRef748->setDestEndpoint(dstPt748);
+ connRef748->setRoutingType((ConnType)2);
+
+ ConnRef *connRef749 = new ConnRef(router, 749);
+ ConnEnd srcPt749(Point(1479.25, 718.918), 15);
+ connRef749->setSourceEndpoint(srcPt749);
+ ConnEnd dstPt749(Point(1449.25, 718.918), 15);
+ connRef749->setDestEndpoint(dstPt749);
+ connRef749->setRoutingType((ConnType)2);
+
+ ConnRef *connRef750 = new ConnRef(router, 750);
+ ConnEnd srcPt750(Point(723.246, 718.918), 15);
+ connRef750->setSourceEndpoint(srcPt750);
+ ConnEnd dstPt750(Point(645.246, 718.918), 15);
+ connRef750->setDestEndpoint(dstPt750);
+ connRef750->setRoutingType((ConnType)2);
+
+ ConnRef *connRef751 = new ConnRef(router, 751);
+ ConnEnd srcPt751(Point(927.246, 718.918), 15);
+ connRef751->setSourceEndpoint(srcPt751);
+ ConnEnd dstPt751(Point(849.246, 718.918), 15);
+ connRef751->setDestEndpoint(dstPt751);
+ connRef751->setRoutingType((ConnType)2);
+
+ ConnRef *connRef752 = new ConnRef(router, 752);
+ ConnEnd srcPt752(Point(145.246, 32.9179), 15);
+ connRef752->setSourceEndpoint(srcPt752);
+ ConnEnd dstPt752(Point(67.2456, 32.9179), 15);
+ connRef752->setDestEndpoint(dstPt752);
+ connRef752->setRoutingType((ConnType)2);
+
+ ConnRef *connRef753 = new ConnRef(router, 753);
+ ConnEnd srcPt753(Point(145.246, 310.918), 15);
+ connRef753->setSourceEndpoint(srcPt753);
+ ConnEnd dstPt753(Point(67.2456, 310.918), 15);
+ connRef753->setDestEndpoint(dstPt753);
+ connRef753->setRoutingType((ConnType)2);
+
+ ConnRef *connRef754 = new ConnRef(router, 754);
+ ConnEnd srcPt754(Point(1005.25, 234.918), 15);
+ connRef754->setSourceEndpoint(srcPt754);
+ ConnEnd dstPt754(Point(1005.25, 288.918), 15);
+ connRef754->setDestEndpoint(dstPt754);
+ connRef754->setRoutingType((ConnType)2);
+
+ ConnRef *connRef755 = new ConnRef(router, 755);
+ ConnEnd srcPt755(Point(849.246, 234.918), 15);
+ connRef755->setSourceEndpoint(srcPt755);
+ ConnEnd dstPt755(Point(849.246, 288.918), 15);
+ connRef755->setDestEndpoint(dstPt755);
+ connRef755->setRoutingType((ConnType)2);
+
+ ConnRef *connRef756 = new ConnRef(router, 756);
+ ConnEnd srcPt756(Point(693.246, 234.918), 15);
+ connRef756->setSourceEndpoint(srcPt756);
+ ConnEnd dstPt756(Point(693.246, 288.918), 15);
+ connRef756->setDestEndpoint(dstPt756);
+ connRef756->setRoutingType((ConnType)2);
+
+ ConnRef *connRef757 = new ConnRef(router, 757);
+ ConnEnd srcPt757(Point(537.246, 234.918), 15);
+ connRef757->setSourceEndpoint(srcPt757);
+ ConnEnd dstPt757(Point(537.246, 288.918), 15);
+ connRef757->setDestEndpoint(dstPt757);
+ connRef757->setRoutingType((ConnType)2);
+
+ ConnRef *connRef758 = new ConnRef(router, 758);
+ ConnEnd srcPt758(Point(381.246, 234.918), 15);
+ connRef758->setSourceEndpoint(srcPt758);
+ ConnEnd dstPt758(Point(381.246, 288.918), 15);
+ connRef758->setDestEndpoint(dstPt758);
+ connRef758->setRoutingType((ConnType)2);
+
+ ConnRef *connRef759 = new ConnRef(router, 759);
+ ConnEnd srcPt759(Point(303.246, 288.918), 15);
+ connRef759->setSourceEndpoint(srcPt759);
+ ConnEnd dstPt759(Point(225.246, 288.918), 15);
+ connRef759->setDestEndpoint(dstPt759);
+ connRef759->setRoutingType((ConnType)2);
+
+ ConnRef *connRef760 = new ConnRef(router, 760);
+ ConnEnd srcPt760(Point(1131.25, 718.918), 15);
+ connRef760->setSourceEndpoint(srcPt760);
+ ConnEnd dstPt760(Point(1005.25, 718.918), 15);
+ connRef760->setDestEndpoint(dstPt760);
+ connRef760->setRoutingType((ConnType)2);
+
+ ConnRef *connRef761 = new ConnRef(router, 761);
+ ConnEnd srcPt761(Point(1035.25, 686.918), 15);
+ connRef761->setSourceEndpoint(srcPt761);
+ ConnEnd dstPt761(Point(957.246, 686.918), 15);
+ connRef761->setDestEndpoint(dstPt761);
+ connRef761->setRoutingType((ConnType)2);
+
+ ConnRef *connRef762 = new ConnRef(router, 762);
+ ConnEnd srcPt762(Point(1131.25, 590.918), 15);
+ connRef762->setSourceEndpoint(srcPt762);
+ ConnEnd dstPt762(Point(1005.25, 590.918), 15);
+ connRef762->setDestEndpoint(dstPt762);
+ connRef762->setRoutingType((ConnType)2);
+
+ ConnRef *connRef763 = new ConnRef(router, 763);
+ ConnEnd srcPt763(Point(1035.25, 622.918), 15);
+ connRef763->setSourceEndpoint(srcPt763);
+ ConnEnd dstPt763(Point(957.246, 622.918), 15);
+ connRef763->setDestEndpoint(dstPt763);
+ connRef763->setRoutingType((ConnType)2);
+
+ ConnRef *connRef764 = new ConnRef(router, 764);
+ ConnEnd srcPt764(Point(1035.25, 590.918), 15);
+ connRef764->setSourceEndpoint(srcPt764);
+ ConnEnd dstPt764(Point(957.246, 590.918), 15);
+ connRef764->setDestEndpoint(dstPt764);
+ connRef764->setRoutingType((ConnType)2);
+
+ ConnRef *connRef765 = new ConnRef(router, 765);
+ ConnEnd srcPt765(Point(1035.25, 514.918), 15);
+ connRef765->setSourceEndpoint(srcPt765);
+ ConnEnd dstPt765(Point(957.246, 514.918), 15);
+ connRef765->setDestEndpoint(dstPt765);
+ connRef765->setRoutingType((ConnType)2);
+
+ ConnRef *connRef766 = new ConnRef(router, 766);
+ ConnEnd srcPt766(Point(1035.25, 482.918), 15);
+ connRef766->setSourceEndpoint(srcPt766);
+ ConnEnd dstPt766(Point(957.246, 482.918), 15);
+ connRef766->setDestEndpoint(dstPt766);
+ connRef766->setRoutingType((ConnType)2);
+
+ ConnRef *connRef767 = new ConnRef(router, 767);
+ ConnEnd srcPt767(Point(1131.25, 418.918), 15);
+ connRef767->setSourceEndpoint(srcPt767);
+ ConnEnd dstPt767(Point(1005.25, 418.918), 15);
+ connRef767->setDestEndpoint(dstPt767);
+ connRef767->setRoutingType((ConnType)2);
+
+ ConnRef *connRef768 = new ConnRef(router, 768);
+ ConnEnd srcPt768(Point(1035.25, 418.918), 15);
+ connRef768->setSourceEndpoint(srcPt768);
+ ConnEnd dstPt768(Point(957.246, 418.918), 15);
+ connRef768->setDestEndpoint(dstPt768);
+ connRef768->setRoutingType((ConnType)2);
+
+ ConnRef *connRef769 = new ConnRef(router, 769);
+ ConnEnd srcPt769(Point(1035.25, 386.918), 15);
+ connRef769->setSourceEndpoint(srcPt769);
+ ConnEnd dstPt769(Point(957.246, 386.918), 15);
+ connRef769->setDestEndpoint(dstPt769);
+ connRef769->setRoutingType((ConnType)2);
+
+ ConnRef *connRef770 = new ConnRef(router, 770);
+ ConnEnd srcPt770(Point(1005.25, 202.918), 15);
+ connRef770->setSourceEndpoint(srcPt770);
+ ConnEnd dstPt770(Point(1005.25, 256.918), 15);
+ connRef770->setDestEndpoint(dstPt770);
+ connRef770->setRoutingType((ConnType)2);
+
+ ConnRef *connRef771 = new ConnRef(router, 771);
+ ConnEnd srcPt771(Point(957.246, 192.918), 15);
+ connRef771->setSourceEndpoint(srcPt771);
+ ConnEnd dstPt771(Point(957.246, 278.918), 15);
+ connRef771->setDestEndpoint(dstPt771);
+ connRef771->setRoutingType((ConnType)2);
+
+ ConnRef *connRef772 = new ConnRef(router, 772);
+ ConnEnd srcPt772(Point(957.246, 128.918), 15);
+ connRef772->setSourceEndpoint(srcPt772);
+ ConnEnd dstPt772(Point(957.246, 246.918), 15);
+ connRef772->setDestEndpoint(dstPt772);
+ connRef772->setRoutingType((ConnType)2);
+
+ ConnRef *connRef773 = new ConnRef(router, 773);
+ ConnEnd srcPt773(Point(927.246, 590.918), 15);
+ connRef773->setSourceEndpoint(srcPt773);
+ ConnEnd dstPt773(Point(849.246, 590.918), 15);
+ connRef773->setDestEndpoint(dstPt773);
+ connRef773->setRoutingType((ConnType)2);
+
+ ConnRef *connRef774 = new ConnRef(router, 774);
+ ConnEnd srcPt774(Point(879.246, 622.918), 15);
+ connRef774->setSourceEndpoint(srcPt774);
+ ConnEnd dstPt774(Point(801.246, 622.918), 15);
+ connRef774->setDestEndpoint(dstPt774);
+ connRef774->setRoutingType((ConnType)2);
+
+ ConnRef *connRef775 = new ConnRef(router, 775);
+ ConnEnd srcPt775(Point(879.246, 590.918), 15);
+ connRef775->setSourceEndpoint(srcPt775);
+ ConnEnd dstPt775(Point(801.246, 590.918), 15);
+ connRef775->setDestEndpoint(dstPt775);
+ connRef775->setRoutingType((ConnType)2);
+
+ ConnRef *connRef776 = new ConnRef(router, 776);
+ ConnEnd srcPt776(Point(879.246, 514.918), 15);
+ connRef776->setSourceEndpoint(srcPt776);
+ ConnEnd dstPt776(Point(801.246, 514.918), 15);
+ connRef776->setDestEndpoint(dstPt776);
+ connRef776->setRoutingType((ConnType)2);
+
+ ConnRef *connRef777 = new ConnRef(router, 777);
+ ConnEnd srcPt777(Point(879.246, 482.918), 15);
+ connRef777->setSourceEndpoint(srcPt777);
+ ConnEnd dstPt777(Point(801.246, 482.918), 15);
+ connRef777->setDestEndpoint(dstPt777);
+ connRef777->setRoutingType((ConnType)2);
+
+ ConnRef *connRef778 = new ConnRef(router, 778);
+ ConnEnd srcPt778(Point(927.246, 418.918), 15);
+ connRef778->setSourceEndpoint(srcPt778);
+ ConnEnd dstPt778(Point(849.246, 418.918), 15);
+ connRef778->setDestEndpoint(dstPt778);
+ connRef778->setRoutingType((ConnType)2);
+
+ ConnRef *connRef779 = new ConnRef(router, 779);
+ ConnEnd srcPt779(Point(879.246, 418.918), 15);
+ connRef779->setSourceEndpoint(srcPt779);
+ ConnEnd dstPt779(Point(801.246, 418.918), 15);
+ connRef779->setDestEndpoint(dstPt779);
+ connRef779->setRoutingType((ConnType)2);
+
+ ConnRef *connRef780 = new ConnRef(router, 780);
+ ConnEnd srcPt780(Point(879.246, 386.918), 15);
+ connRef780->setSourceEndpoint(srcPt780);
+ ConnEnd dstPt780(Point(801.246, 386.918), 15);
+ connRef780->setDestEndpoint(dstPt780);
+ connRef780->setRoutingType((ConnType)2);
+
+ ConnRef *connRef781 = new ConnRef(router, 781);
+ ConnEnd srcPt781(Point(849.246, 202.918), 15);
+ connRef781->setSourceEndpoint(srcPt781);
+ ConnEnd dstPt781(Point(849.246, 256.918), 15);
+ connRef781->setDestEndpoint(dstPt781);
+ connRef781->setRoutingType((ConnType)2);
+
+ ConnRef *connRef782 = new ConnRef(router, 782);
+ ConnEnd srcPt782(Point(801.246, 192.918), 15);
+ connRef782->setSourceEndpoint(srcPt782);
+ ConnEnd dstPt782(Point(801.246, 278.918), 15);
+ connRef782->setDestEndpoint(dstPt782);
+ connRef782->setRoutingType((ConnType)2);
+
+ ConnRef *connRef783 = new ConnRef(router, 783);
+ ConnEnd srcPt783(Point(801.246, 128.918), 15);
+ connRef783->setSourceEndpoint(srcPt783);
+ ConnEnd dstPt783(Point(801.246, 246.918), 15);
+ connRef783->setDestEndpoint(dstPt783);
+ connRef783->setRoutingType((ConnType)2);
+
+ ConnRef *connRef784 = new ConnRef(router, 784);
+ ConnEnd srcPt784(Point(771.246, 590.918), 15);
+ connRef784->setSourceEndpoint(srcPt784);
+ ConnEnd dstPt784(Point(693.246, 590.918), 15);
+ connRef784->setDestEndpoint(dstPt784);
+ connRef784->setRoutingType((ConnType)2);
+
+ ConnRef *connRef785 = new ConnRef(router, 785);
+ ConnEnd srcPt785(Point(723.246, 622.918), 15);
+ connRef785->setSourceEndpoint(srcPt785);
+ ConnEnd dstPt785(Point(645.246, 622.918), 15);
+ connRef785->setDestEndpoint(dstPt785);
+ connRef785->setRoutingType((ConnType)2);
+
+ ConnRef *connRef786 = new ConnRef(router, 786);
+ ConnEnd srcPt786(Point(723.246, 590.918), 15);
+ connRef786->setSourceEndpoint(srcPt786);
+ ConnEnd dstPt786(Point(645.246, 590.918), 15);
+ connRef786->setDestEndpoint(dstPt786);
+ connRef786->setRoutingType((ConnType)2);
+
+ ConnRef *connRef787 = new ConnRef(router, 787);
+ ConnEnd srcPt787(Point(723.246, 514.918), 15);
+ connRef787->setSourceEndpoint(srcPt787);
+ ConnEnd dstPt787(Point(645.246, 514.918), 15);
+ connRef787->setDestEndpoint(dstPt787);
+ connRef787->setRoutingType((ConnType)2);
+
+ ConnRef *connRef788 = new ConnRef(router, 788);
+ ConnEnd srcPt788(Point(723.246, 482.918), 15);
+ connRef788->setSourceEndpoint(srcPt788);
+ ConnEnd dstPt788(Point(645.246, 482.918), 15);
+ connRef788->setDestEndpoint(dstPt788);
+ connRef788->setRoutingType((ConnType)2);
+
+ ConnRef *connRef789 = new ConnRef(router, 789);
+ ConnEnd srcPt789(Point(771.246, 418.918), 15);
+ connRef789->setSourceEndpoint(srcPt789);
+ ConnEnd dstPt789(Point(693.246, 418.918), 15);
+ connRef789->setDestEndpoint(dstPt789);
+ connRef789->setRoutingType((ConnType)2);
+
+ ConnRef *connRef790 = new ConnRef(router, 790);
+ ConnEnd srcPt790(Point(723.246, 418.918), 15);
+ connRef790->setSourceEndpoint(srcPt790);
+ ConnEnd dstPt790(Point(645.246, 418.918), 15);
+ connRef790->setDestEndpoint(dstPt790);
+ connRef790->setRoutingType((ConnType)2);
+
+ ConnRef *connRef791 = new ConnRef(router, 791);
+ ConnEnd srcPt791(Point(723.246, 386.918), 15);
+ connRef791->setSourceEndpoint(srcPt791);
+ ConnEnd dstPt791(Point(645.246, 386.918), 15);
+ connRef791->setDestEndpoint(dstPt791);
+ connRef791->setRoutingType((ConnType)2);
+
+ ConnRef *connRef792 = new ConnRef(router, 792);
+ ConnEnd srcPt792(Point(693.246, 202.918), 15);
+ connRef792->setSourceEndpoint(srcPt792);
+ ConnEnd dstPt792(Point(693.246, 256.918), 15);
+ connRef792->setDestEndpoint(dstPt792);
+ connRef792->setRoutingType((ConnType)2);
+
+ ConnRef *connRef793 = new ConnRef(router, 793);
+ ConnEnd srcPt793(Point(645.246, 192.918), 15);
+ connRef793->setSourceEndpoint(srcPt793);
+ ConnEnd dstPt793(Point(645.246, 278.918), 15);
+ connRef793->setDestEndpoint(dstPt793);
+ connRef793->setRoutingType((ConnType)2);
+
+ ConnRef *connRef794 = new ConnRef(router, 794);
+ ConnEnd srcPt794(Point(645.246, 128.918), 15);
+ connRef794->setSourceEndpoint(srcPt794);
+ ConnEnd dstPt794(Point(645.246, 246.918), 15);
+ connRef794->setDestEndpoint(dstPt794);
+ connRef794->setRoutingType((ConnType)2);
+
+ ConnRef *connRef795 = new ConnRef(router, 795);
+ ConnEnd srcPt795(Point(615.246, 590.918), 15);
+ connRef795->setSourceEndpoint(srcPt795);
+ ConnEnd dstPt795(Point(537.246, 590.918), 15);
+ connRef795->setDestEndpoint(dstPt795);
+ connRef795->setRoutingType((ConnType)2);
+
+ ConnRef *connRef796 = new ConnRef(router, 796);
+ ConnEnd srcPt796(Point(567.246, 622.918), 15);
+ connRef796->setSourceEndpoint(srcPt796);
+ ConnEnd dstPt796(Point(489.246, 622.918), 15);
+ connRef796->setDestEndpoint(dstPt796);
+ connRef796->setRoutingType((ConnType)2);
+
+ ConnRef *connRef797 = new ConnRef(router, 797);
+ ConnEnd srcPt797(Point(567.246, 590.918), 15);
+ connRef797->setSourceEndpoint(srcPt797);
+ ConnEnd dstPt797(Point(489.246, 590.918), 15);
+ connRef797->setDestEndpoint(dstPt797);
+ connRef797->setRoutingType((ConnType)2);
+
+ ConnRef *connRef798 = new ConnRef(router, 798);
+ ConnEnd srcPt798(Point(615.246, 486.951), 15);
+ connRef798->setSourceEndpoint(srcPt798);
+ ConnEnd dstPt798(Point(537.246, 486.951), 15);
+ connRef798->setDestEndpoint(dstPt798);
+ connRef798->setRoutingType((ConnType)2);
+
+ ConnRef *connRef799 = new ConnRef(router, 799);
+ ConnEnd srcPt799(Point(567.246, 514.918), 15);
+ connRef799->setSourceEndpoint(srcPt799);
+ ConnEnd dstPt799(Point(489.246, 514.918), 15);
+ connRef799->setDestEndpoint(dstPt799);
+ connRef799->setRoutingType((ConnType)2);
+
+ ConnRef *connRef800 = new ConnRef(router, 800);
+ ConnEnd srcPt800(Point(567.246, 482.918), 15);
+ connRef800->setSourceEndpoint(srcPt800);
+ ConnEnd dstPt800(Point(489.246, 482.918), 15);
+ connRef800->setDestEndpoint(dstPt800);
+ connRef800->setRoutingType((ConnType)2);
+
+ ConnRef *connRef801 = new ConnRef(router, 801);
+ ConnEnd srcPt801(Point(615.246, 418.918), 15);
+ connRef801->setSourceEndpoint(srcPt801);
+ ConnEnd dstPt801(Point(537.246, 418.918), 15);
+ connRef801->setDestEndpoint(dstPt801);
+ connRef801->setRoutingType((ConnType)2);
+
+ ConnRef *connRef802 = new ConnRef(router, 802);
+ ConnEnd srcPt802(Point(567.246, 418.918), 15);
+ connRef802->setSourceEndpoint(srcPt802);
+ ConnEnd dstPt802(Point(489.246, 418.918), 15);
+ connRef802->setDestEndpoint(dstPt802);
+ connRef802->setRoutingType((ConnType)2);
+
+ ConnRef *connRef803 = new ConnRef(router, 803);
+ ConnEnd srcPt803(Point(567.246, 386.918), 15);
+ connRef803->setSourceEndpoint(srcPt803);
+ ConnEnd dstPt803(Point(489.246, 386.918), 15);
+ connRef803->setDestEndpoint(dstPt803);
+ connRef803->setRoutingType((ConnType)2);
+
+ ConnRef *connRef804 = new ConnRef(router, 804);
+ ConnEnd srcPt804(Point(537.246, 202.918), 15);
+ connRef804->setSourceEndpoint(srcPt804);
+ ConnEnd dstPt804(Point(537.246, 256.918), 15);
+ connRef804->setDestEndpoint(dstPt804);
+ connRef804->setRoutingType((ConnType)2);
+
+ ConnRef *connRef805 = new ConnRef(router, 805);
+ ConnEnd srcPt805(Point(489.246, 192.918), 15);
+ connRef805->setSourceEndpoint(srcPt805);
+ ConnEnd dstPt805(Point(489.246, 278.918), 15);
+ connRef805->setDestEndpoint(dstPt805);
+ connRef805->setRoutingType((ConnType)2);
+
+ ConnRef *connRef806 = new ConnRef(router, 806);
+ ConnEnd srcPt806(Point(489.246, 128.918), 15);
+ connRef806->setSourceEndpoint(srcPt806);
+ ConnEnd dstPt806(Point(489.246, 246.918), 15);
+ connRef806->setDestEndpoint(dstPt806);
+ connRef806->setRoutingType((ConnType)2);
+
+ ConnRef *connRef807 = new ConnRef(router, 807);
+ ConnEnd srcPt807(Point(459.246, 590.918), 15);
+ connRef807->setSourceEndpoint(srcPt807);
+ ConnEnd dstPt807(Point(381.246, 590.918), 15);
+ connRef807->setDestEndpoint(dstPt807);
+ connRef807->setRoutingType((ConnType)2);
+
+ ConnRef *connRef808 = new ConnRef(router, 808);
+ ConnEnd srcPt808(Point(411.246, 622.918), 15);
+ connRef808->setSourceEndpoint(srcPt808);
+ ConnEnd dstPt808(Point(333.246, 622.918), 15);
+ connRef808->setDestEndpoint(dstPt808);
+ connRef808->setRoutingType((ConnType)2);
+
+ ConnRef *connRef809 = new ConnRef(router, 809);
+ ConnEnd srcPt809(Point(411.246, 590.918), 15);
+ connRef809->setSourceEndpoint(srcPt809);
+ ConnEnd dstPt809(Point(333.246, 590.918), 15);
+ connRef809->setDestEndpoint(dstPt809);
+ connRef809->setRoutingType((ConnType)2);
+
+ ConnRef *connRef810 = new ConnRef(router, 810);
+ ConnEnd srcPt810(Point(411.246, 514.918), 15);
+ connRef810->setSourceEndpoint(srcPt810);
+ ConnEnd dstPt810(Point(333.246, 514.918), 15);
+ connRef810->setDestEndpoint(dstPt810);
+ connRef810->setRoutingType((ConnType)2);
+
+ ConnRef *connRef811 = new ConnRef(router, 811);
+ ConnEnd srcPt811(Point(411.246, 482.918), 15);
+ connRef811->setSourceEndpoint(srcPt811);
+ ConnEnd dstPt811(Point(333.246, 482.918), 15);
+ connRef811->setDestEndpoint(dstPt811);
+ connRef811->setRoutingType((ConnType)2);
+
+ ConnRef *connRef812 = new ConnRef(router, 812);
+ ConnEnd srcPt812(Point(459.246, 418.918), 15);
+ connRef812->setSourceEndpoint(srcPt812);
+ ConnEnd dstPt812(Point(381.246, 418.918), 15);
+ connRef812->setDestEndpoint(dstPt812);
+ connRef812->setRoutingType((ConnType)2);
+
+ ConnRef *connRef813 = new ConnRef(router, 813);
+ ConnEnd srcPt813(Point(411.246, 418.918), 15);
+ connRef813->setSourceEndpoint(srcPt813);
+ ConnEnd dstPt813(Point(333.246, 418.918), 15);
+ connRef813->setDestEndpoint(dstPt813);
+ connRef813->setRoutingType((ConnType)2);
+
+ ConnRef *connRef814 = new ConnRef(router, 814);
+ ConnEnd srcPt814(Point(411.246, 386.918), 15);
+ connRef814->setSourceEndpoint(srcPt814);
+ ConnEnd dstPt814(Point(333.246, 386.918), 15);
+ connRef814->setDestEndpoint(dstPt814);
+ connRef814->setRoutingType((ConnType)2);
+
+ ConnRef *connRef815 = new ConnRef(router, 815);
+ ConnEnd srcPt815(Point(381.246, 202.918), 15);
+ connRef815->setSourceEndpoint(srcPt815);
+ ConnEnd dstPt815(Point(381.246, 256.918), 15);
+ connRef815->setDestEndpoint(dstPt815);
+ connRef815->setRoutingType((ConnType)2);
+
+ ConnRef *connRef816 = new ConnRef(router, 816);
+ ConnEnd srcPt816(Point(333.246, 192.918), 15);
+ connRef816->setSourceEndpoint(srcPt816);
+ ConnEnd dstPt816(Point(333.246, 278.918), 15);
+ connRef816->setDestEndpoint(dstPt816);
+ connRef816->setRoutingType((ConnType)2);
+
+ ConnRef *connRef817 = new ConnRef(router, 817);
+ ConnEnd srcPt817(Point(333.246, 128.918), 15);
+ connRef817->setSourceEndpoint(srcPt817);
+ ConnEnd dstPt817(Point(333.246, 246.918), 15);
+ connRef817->setDestEndpoint(dstPt817);
+ connRef817->setRoutingType((ConnType)2);
+
+ ConnRef *connRef818 = new ConnRef(router, 818);
+ ConnEnd srcPt818(Point(303.246, 590.918), 15);
+ connRef818->setSourceEndpoint(srcPt818);
+ ConnEnd dstPt818(Point(225.246, 590.918), 15);
+ connRef818->setDestEndpoint(dstPt818);
+ connRef818->setRoutingType((ConnType)2);
+
+ ConnRef *connRef819 = new ConnRef(router, 819);
+ ConnEnd srcPt819(Point(255.246, 622.918), 15);
+ connRef819->setSourceEndpoint(srcPt819);
+ ConnEnd dstPt819(Point(193.246, 622.918), 15);
+ connRef819->setDestEndpoint(dstPt819);
+ connRef819->setRoutingType((ConnType)2);
+
+ ConnRef *connRef820 = new ConnRef(router, 820);
+ ConnEnd srcPt820(Point(255.246, 590.918), 15);
+ connRef820->setSourceEndpoint(srcPt820);
+ ConnEnd dstPt820(Point(193.246, 590.918), 15);
+ connRef820->setDestEndpoint(dstPt820);
+ connRef820->setRoutingType((ConnType)2);
+
+ ConnRef *connRef821 = new ConnRef(router, 821);
+ ConnEnd srcPt821(Point(255.246, 514.918), 15);
+ connRef821->setSourceEndpoint(srcPt821);
+ ConnEnd dstPt821(Point(193.246, 514.918), 15);
+ connRef821->setDestEndpoint(dstPt821);
+ connRef821->setRoutingType((ConnType)2);
+
+ ConnRef *connRef822 = new ConnRef(router, 822);
+ ConnEnd srcPt822(Point(255.246, 482.918), 15);
+ connRef822->setSourceEndpoint(srcPt822);
+ ConnEnd dstPt822(Point(193.246, 482.918), 15);
+ connRef822->setDestEndpoint(dstPt822);
+ connRef822->setRoutingType((ConnType)2);
+
+ ConnRef *connRef823 = new ConnRef(router, 823);
+ ConnEnd srcPt823(Point(303.246, 418.918), 15);
+ connRef823->setSourceEndpoint(srcPt823);
+ ConnEnd dstPt823(Point(225.246, 418.918), 15);
+ connRef823->setDestEndpoint(dstPt823);
+ connRef823->setRoutingType((ConnType)2);
+
+ ConnRef *connRef824 = new ConnRef(router, 824);
+ ConnEnd srcPt824(Point(255.246, 418.918), 15);
+ connRef824->setSourceEndpoint(srcPt824);
+ ConnEnd dstPt824(Point(193.246, 418.918), 15);
+ connRef824->setDestEndpoint(dstPt824);
+ connRef824->setRoutingType((ConnType)2);
+
+ ConnRef *connRef825 = new ConnRef(router, 825);
+ ConnEnd srcPt825(Point(255.246, 386.918), 15);
+ connRef825->setSourceEndpoint(srcPt825);
+ ConnEnd dstPt825(Point(193.246, 386.918), 15);
+ connRef825->setDestEndpoint(dstPt825);
+ connRef825->setRoutingType((ConnType)2);
+
+ ConnRef *connRef826 = new ConnRef(router, 826);
+ ConnEnd srcPt826(Point(303.246, 256.918), 15);
+ connRef826->setSourceEndpoint(srcPt826);
+ ConnEnd dstPt826(Point(225.246, 256.918), 15);
+ connRef826->setDestEndpoint(dstPt826);
+ connRef826->setRoutingType((ConnType)2);
+
+ ConnRef *connRef827 = new ConnRef(router, 827);
+ ConnEnd srcPt827(Point(193.246, 128.918), 15);
+ connRef827->setSourceEndpoint(srcPt827);
+ ConnEnd dstPt827(Point(193.246, 246.918), 15);
+ connRef827->setDestEndpoint(dstPt827);
+ connRef827->setRoutingType((ConnType)2);
+
+ ConnRef *connRef828 = new ConnRef(router, 828);
+ ConnEnd srcPt828(Point(193.246, 192.918), 15);
+ connRef828->setSourceEndpoint(srcPt828);
+ ConnEnd dstPt828(Point(193.246, 278.918), 15);
+ connRef828->setDestEndpoint(dstPt828);
+ connRef828->setRoutingType((ConnType)2);
+
+ ConnRef *connRef829 = new ConnRef(router, 829);
+ ConnEnd srcPt829(Point(145.246, 590.918), 15);
+ connRef829->setSourceEndpoint(srcPt829);
+ ConnEnd dstPt829(Point(67.2456, 590.918), 15);
+ connRef829->setDestEndpoint(dstPt829);
+ connRef829->setRoutingType((ConnType)2);
+
+ ConnRef *connRef830 = new ConnRef(router, 830);
+ ConnEnd srcPt830(Point(97.2456, 622.918), 15);
+ connRef830->setSourceEndpoint(srcPt830);
+ ConnEnd dstPt830(Point(17.2456, 622.918), 15);
+ connRef830->setDestEndpoint(dstPt830);
+ connRef830->setRoutingType((ConnType)2);
+
+ ConnRef *connRef831 = new ConnRef(router, 831);
+ ConnEnd srcPt831(Point(97.2456, 590.918), 15);
+ connRef831->setSourceEndpoint(srcPt831);
+ ConnEnd dstPt831(Point(17.2456, 590.918), 15);
+ connRef831->setDestEndpoint(dstPt831);
+ connRef831->setRoutingType((ConnType)2);
+
+ ConnRef *connRef832 = new ConnRef(router, 832);
+ ConnEnd srcPt832(Point(97.2456, 514.918), 15);
+ connRef832->setSourceEndpoint(srcPt832);
+ ConnEnd dstPt832(Point(17.2456, 514.918), 15);
+ connRef832->setDestEndpoint(dstPt832);
+ connRef832->setRoutingType((ConnType)2);
+
+ ConnRef *connRef833 = new ConnRef(router, 833);
+ ConnEnd srcPt833(Point(97.2456, 482.918), 15);
+ connRef833->setSourceEndpoint(srcPt833);
+ ConnEnd dstPt833(Point(17.2456, 482.918), 15);
+ connRef833->setDestEndpoint(dstPt833);
+ connRef833->setRoutingType((ConnType)2);
+
+ ConnRef *connRef834 = new ConnRef(router, 834);
+ ConnEnd srcPt834(Point(145.246, 418.918), 15);
+ connRef834->setSourceEndpoint(srcPt834);
+ ConnEnd dstPt834(Point(67.2456, 418.918), 15);
+ connRef834->setDestEndpoint(dstPt834);
+ connRef834->setRoutingType((ConnType)2);
+
+ ConnRef *connRef835 = new ConnRef(router, 835);
+ ConnEnd srcPt835(Point(97.2456, 418.918), 15);
+ connRef835->setSourceEndpoint(srcPt835);
+ ConnEnd dstPt835(Point(17.2456, 418.918), 15);
+ connRef835->setDestEndpoint(dstPt835);
+ connRef835->setRoutingType((ConnType)2);
+
+ ConnRef *connRef836 = new ConnRef(router, 836);
+ ConnEnd srcPt836(Point(97.2456, 386.918), 15);
+ connRef836->setSourceEndpoint(srcPt836);
+ ConnEnd dstPt836(Point(17.2456, 386.918), 15);
+ connRef836->setDestEndpoint(dstPt836);
+ connRef836->setRoutingType((ConnType)2);
+
+ ConnRef *connRef837 = new ConnRef(router, 837);
+ ConnEnd srcPt837(Point(17.2456, 192.918), 15);
+ connRef837->setSourceEndpoint(srcPt837);
+ ConnEnd dstPt837(Point(17.2456, 278.918), 15);
+ connRef837->setDestEndpoint(dstPt837);
+ connRef837->setRoutingType((ConnType)2);
+
+ ConnRef *connRef838 = new ConnRef(router, 838);
+ ConnEnd srcPt838(Point(17.2456, 128.918), 15);
+ connRef838->setSourceEndpoint(srcPt838);
+ ConnEnd dstPt838(Point(17.2456, 246.918), 15);
+ connRef838->setDestEndpoint(dstPt838);
+ connRef838->setRoutingType((ConnType)2);
+
+ ConnRef *connRef839 = new ConnRef(router, 839);
+ ConnEnd srcPt839(Point(285.246, 170.918), 15);
+ connRef839->setSourceEndpoint(srcPt839);
+ ConnEnd dstPt839(Point(244.976, 170.918), 15);
+ connRef839->setDestEndpoint(dstPt839);
+ connRef839->setRoutingType((ConnType)2);
+
+ ConnRef *connRef840 = new ConnRef(router, 840);
+ ConnEnd srcPt840(Point(237.246, 86.9179), 15);
+ connRef840->setSourceEndpoint(srcPt840);
+ ConnEnd dstPt840(Point(145.246, 86.9179), 15);
+ connRef840->setDestEndpoint(dstPt840);
+ connRef840->setRoutingType((ConnType)2);
+
+ ConnRef *connRef841 = new ConnRef(router, 841);
+ ConnEnd srcPt841(Point(237.246, 54.9179), 15);
+ connRef841->setSourceEndpoint(srcPt841);
+ ConnEnd dstPt841(Point(145.246, 54.9179), 15);
+ connRef841->setDestEndpoint(dstPt841);
+ connRef841->setRoutingType((ConnType)2);
+
+ ConnRef *connRef842 = new ConnRef(router, 842);
+ ConnEnd srcPt842(Point(97.2456, 170.918), 15);
+ connRef842->setSourceEndpoint(srcPt842);
+ ConnEnd dstPt842(Point(17.2456, 170.918), 15);
+ connRef842->setDestEndpoint(dstPt842);
+ connRef842->setRoutingType((ConnType)2);
+
+ ConnRef *connRef843 = new ConnRef(router, 843);
+ ConnEnd srcPt843(Point(97.2456, 32.9179), 15);
+ connRef843->setSourceEndpoint(srcPt843);
+ ConnEnd dstPt843(Point(17.2456, 32.9179), 15);
+ connRef843->setDestEndpoint(dstPt843);
+ connRef843->setRoutingType((ConnType)2);
+
+ ConnRef *connRef844 = new ConnRef(router, 844);
+ ConnEnd srcPt844(Point(97.2456, 0.917947), 15);
+ connRef844->setSourceEndpoint(srcPt844);
+ ConnEnd dstPt844(Point(17.2456, 0.917947), 15);
+ connRef844->setDestEndpoint(dstPt844);
+ connRef844->setRoutingType((ConnType)2);
+
+ ConnRef *connRef845 = new ConnRef(router, 845);
+ ConnEnd srcPt845(Point(380.962, -29.0821), 15);
+ connRef845->setSourceEndpoint(srcPt845);
+ ConnEnd dstPt845(Point(319.219, -29.0821), 15);
+ connRef845->setDestEndpoint(dstPt845);
+ connRef845->setRoutingType((ConnType)2);
+
+ ConnRef *connRef846 = new ConnRef(router, 846);
+ ConnEnd srcPt846(Point(279.219, -29.0821), 15);
+ connRef846->setSourceEndpoint(srcPt846);
+ ConnEnd dstPt846(Point(197.246, -29.0821), 15);
+ connRef846->setDestEndpoint(dstPt846);
+ connRef846->setRoutingType((ConnType)2);
+
+ ConnRef *connRef847 = new ConnRef(router, 847);
+ ConnEnd srcPt847(Point(97.2456, 310.918), 15);
+ connRef847->setSourceEndpoint(srcPt847);
+ ConnEnd dstPt847(Point(17.2456, 310.918), 15);
+ connRef847->setDestEndpoint(dstPt847);
+ connRef847->setRoutingType((ConnType)2);
+
+ ConnRef *connRef848 = new ConnRef(router, 848);
+ ConnEnd srcPt848(Point(193.246, 224.918), 15);
+ connRef848->setSourceEndpoint(srcPt848);
+ ConnEnd dstPt848(Point(193.246, 310.918), 15);
+ connRef848->setDestEndpoint(dstPt848);
+ connRef848->setRoutingType((ConnType)2);
+
+ ConnRef *connRef849 = new ConnRef(router, 849);
+ ConnEnd srcPt849(Point(333.246, 224.918), 15);
+ connRef849->setSourceEndpoint(srcPt849);
+ ConnEnd dstPt849(Point(333.246, 310.918), 15);
+ connRef849->setDestEndpoint(dstPt849);
+ connRef849->setRoutingType((ConnType)2);
+
+ ConnRef *connRef850 = new ConnRef(router, 850);
+ ConnEnd srcPt850(Point(489.246, 224.918), 15);
+ connRef850->setSourceEndpoint(srcPt850);
+ ConnEnd dstPt850(Point(489.246, 310.918), 15);
+ connRef850->setDestEndpoint(dstPt850);
+ connRef850->setRoutingType((ConnType)2);
+
+ ConnRef *connRef851 = new ConnRef(router, 851);
+ ConnEnd srcPt851(Point(645.246, 224.918), 15);
+ connRef851->setSourceEndpoint(srcPt851);
+ ConnEnd dstPt851(Point(645.246, 310.918), 15);
+ connRef851->setDestEndpoint(dstPt851);
+ connRef851->setRoutingType((ConnType)2);
+
+ ConnRef *connRef852 = new ConnRef(router, 852);
+ ConnEnd srcPt852(Point(801.246, 224.918), 15);
+ connRef852->setSourceEndpoint(srcPt852);
+ ConnEnd dstPt852(Point(801.246, 310.918), 15);
+ connRef852->setDestEndpoint(dstPt852);
+ connRef852->setRoutingType((ConnType)2);
+
+ ConnRef *connRef853 = new ConnRef(router, 853);
+ ConnEnd srcPt853(Point(957.246, 224.918), 15);
+ connRef853->setSourceEndpoint(srcPt853);
+ ConnEnd dstPt853(Point(957.246, 310.918), 15);
+ connRef853->setDestEndpoint(dstPt853);
+ connRef853->setRoutingType((ConnType)2);
+
+ ConnRef *connRef854 = new ConnRef(router, 854);
+ ConnEnd srcPt854(Point(17.2456, 364.918), 15);
+ connRef854->setSourceEndpoint(srcPt854);
+ ConnEnd dstPt854(Point(17.2456, 450.918), 15);
+ connRef854->setDestEndpoint(dstPt854);
+ connRef854->setRoutingType((ConnType)2);
+
+ ConnRef *connRef855 = new ConnRef(router, 855);
+ ConnEnd srcPt855(Point(255.246, 450.918), 15);
+ connRef855->setSourceEndpoint(srcPt855);
+ ConnEnd dstPt855(Point(193.246, 450.918), 15);
+ connRef855->setDestEndpoint(dstPt855);
+ connRef855->setRoutingType((ConnType)2);
+
+ ConnRef *connRef856 = new ConnRef(router, 856);
+ ConnEnd srcPt856(Point(411.246, 450.918), 15);
+ connRef856->setSourceEndpoint(srcPt856);
+ ConnEnd dstPt856(Point(333.246, 450.918), 15);
+ connRef856->setDestEndpoint(dstPt856);
+ connRef856->setRoutingType((ConnType)2);
+
+ ConnRef *connRef857 = new ConnRef(router, 857);
+ ConnEnd srcPt857(Point(567.246, 450.918), 15);
+ connRef857->setSourceEndpoint(srcPt857);
+ ConnEnd dstPt857(Point(489.246, 450.918), 15);
+ connRef857->setDestEndpoint(dstPt857);
+ connRef857->setRoutingType((ConnType)2);
+
+ ConnRef *connRef858 = new ConnRef(router, 858);
+ ConnEnd srcPt858(Point(879.246, 450.918), 15);
+ connRef858->setSourceEndpoint(srcPt858);
+ ConnEnd dstPt858(Point(801.246, 450.918), 15);
+ connRef858->setDestEndpoint(dstPt858);
+ connRef858->setRoutingType((ConnType)2);
+
+ ConnRef *connRef859 = new ConnRef(router, 859);
+ ConnEnd srcPt859(Point(1035.25, 450.918), 15);
+ connRef859->setSourceEndpoint(srcPt859);
+ ConnEnd dstPt859(Point(957.246, 450.918), 15);
+ connRef859->setDestEndpoint(dstPt859);
+ connRef859->setRoutingType((ConnType)2);
+
+ ConnRef *connRef860 = new ConnRef(router, 860);
+ ConnEnd srcPt860(Point(723.246, 450.918), 15);
+ connRef860->setSourceEndpoint(srcPt860);
+ ConnEnd dstPt860(Point(645.246, 450.918), 15);
+ connRef860->setDestEndpoint(dstPt860);
+ connRef860->setRoutingType((ConnType)2);
+
+ ConnRef *connRef861 = new ConnRef(router, 861);
+ ConnEnd srcPt861(Point(97.2456, 558.918), 15);
+ connRef861->setSourceEndpoint(srcPt861);
+ ConnEnd dstPt861(Point(17.2456, 558.918), 15);
+ connRef861->setDestEndpoint(dstPt861);
+ connRef861->setRoutingType((ConnType)2);
+
+ ConnRef *connRef862 = new ConnRef(router, 862);
+ ConnEnd srcPt862(Point(255.246, 558.918), 15);
+ connRef862->setSourceEndpoint(srcPt862);
+ ConnEnd dstPt862(Point(193.246, 558.918), 15);
+ connRef862->setDestEndpoint(dstPt862);
+ connRef862->setRoutingType((ConnType)2);
+
+ ConnRef *connRef863 = new ConnRef(router, 863);
+ ConnEnd srcPt863(Point(411.246, 558.918), 15);
+ connRef863->setSourceEndpoint(srcPt863);
+ ConnEnd dstPt863(Point(333.246, 558.918), 15);
+ connRef863->setDestEndpoint(dstPt863);
+ connRef863->setRoutingType((ConnType)2);
+
+ ConnRef *connRef864 = new ConnRef(router, 864);
+ ConnEnd srcPt864(Point(567.246, 558.918), 15);
+ connRef864->setSourceEndpoint(srcPt864);
+ ConnEnd dstPt864(Point(489.246, 558.918), 15);
+ connRef864->setDestEndpoint(dstPt864);
+ connRef864->setRoutingType((ConnType)2);
+
+ ConnRef *connRef865 = new ConnRef(router, 865);
+ ConnEnd srcPt865(Point(723.246, 558.918), 15);
+ connRef865->setSourceEndpoint(srcPt865);
+ ConnEnd dstPt865(Point(645.246, 558.918), 15);
+ connRef865->setDestEndpoint(dstPt865);
+ connRef865->setRoutingType((ConnType)2);
+
+ ConnRef *connRef866 = new ConnRef(router, 866);
+ ConnEnd srcPt866(Point(879.246, 558.918), 15);
+ connRef866->setSourceEndpoint(srcPt866);
+ ConnEnd dstPt866(Point(801.246, 558.918), 15);
+ connRef866->setDestEndpoint(dstPt866);
+ connRef866->setRoutingType((ConnType)2);
+
+ ConnRef *connRef867 = new ConnRef(router, 867);
+ ConnEnd srcPt867(Point(1035.25, 558.918), 15);
+ connRef867->setSourceEndpoint(srcPt867);
+ ConnEnd dstPt867(Point(957.246, 558.918), 15);
+ connRef867->setDestEndpoint(dstPt867);
+ connRef867->setRoutingType((ConnType)2);
+
+ ConnRef *connRef868 = new ConnRef(router, 868);
+ ConnEnd srcPt868(Point(97.2456, 654.918), 15);
+ connRef868->setSourceEndpoint(srcPt868);
+ ConnEnd dstPt868(Point(17.2456, 654.918), 15);
+ connRef868->setDestEndpoint(dstPt868);
+ connRef868->setRoutingType((ConnType)2);
+
+ ConnRef *connRef869 = new ConnRef(router, 869);
+ ConnEnd srcPt869(Point(255.246, 654.918), 15);
+ connRef869->setSourceEndpoint(srcPt869);
+ ConnEnd dstPt869(Point(193.246, 654.918), 15);
+ connRef869->setDestEndpoint(dstPt869);
+ connRef869->setRoutingType((ConnType)2);
+
+ ConnRef *connRef870 = new ConnRef(router, 870);
+ ConnEnd srcPt870(Point(411.246, 654.918), 15);
+ connRef870->setSourceEndpoint(srcPt870);
+ ConnEnd dstPt870(Point(333.246, 654.918), 15);
+ connRef870->setDestEndpoint(dstPt870);
+ connRef870->setRoutingType((ConnType)2);
+
+ ConnRef *connRef871 = new ConnRef(router, 871);
+ ConnEnd srcPt871(Point(567.246, 654.918), 15);
+ connRef871->setSourceEndpoint(srcPt871);
+ ConnEnd dstPt871(Point(489.246, 654.918), 15);
+ connRef871->setDestEndpoint(dstPt871);
+ connRef871->setRoutingType((ConnType)2);
+
+ ConnRef *connRef872 = new ConnRef(router, 872);
+ ConnEnd srcPt872(Point(723.246, 654.918), 15);
+ connRef872->setSourceEndpoint(srcPt872);
+ ConnEnd dstPt872(Point(645.246, 654.918), 15);
+ connRef872->setDestEndpoint(dstPt872);
+ connRef872->setRoutingType((ConnType)2);
+
+ ConnRef *connRef873 = new ConnRef(router, 873);
+ ConnEnd srcPt873(Point(879.246, 654.918), 15);
+ connRef873->setSourceEndpoint(srcPt873);
+ ConnEnd dstPt873(Point(801.246, 654.918), 15);
+ connRef873->setDestEndpoint(dstPt873);
+ connRef873->setRoutingType((ConnType)2);
+
+ ConnRef *connRef874 = new ConnRef(router, 874);
+ ConnEnd srcPt874(Point(1035.25, 654.918), 15);
+ connRef874->setSourceEndpoint(srcPt874);
+ ConnEnd dstPt874(Point(957.246, 654.918), 15);
+ connRef874->setDestEndpoint(dstPt874);
+ connRef874->setRoutingType((ConnType)2);
+
+ ConnRef *connRef875 = new ConnRef(router, 875);
+ ConnEnd srcPt875(Point(1233.25, 192.918), 15);
+ connRef875->setSourceEndpoint(srcPt875);
+ ConnEnd dstPt875(Point(1233.25, 278.918), 15);
+ connRef875->setDestEndpoint(dstPt875);
+ connRef875->setRoutingType((ConnType)2);
+
+ ConnRef *connRef876 = new ConnRef(router, 876);
+ ConnEnd srcPt876(Point(1323.25, 418.918), 15);
+ connRef876->setSourceEndpoint(srcPt876);
+ ConnEnd dstPt876(Point(1233.25, 418.918), 15);
+ connRef876->setDestEndpoint(dstPt876);
+ connRef876->setRoutingType((ConnType)2);
+
+ ConnRef *connRef877 = new ConnRef(router, 877);
+ ConnEnd srcPt877(Point(1323.25, 514.918), 15);
+ connRef877->setSourceEndpoint(srcPt877);
+ ConnEnd dstPt877(Point(1233.25, 514.918), 15);
+ connRef877->setDestEndpoint(dstPt877);
+ connRef877->setRoutingType((ConnType)2);
+
+ ConnRef *connRef878 = new ConnRef(router, 878);
+ ConnEnd srcPt878(Point(1323.25, 622.918), 15);
+ connRef878->setSourceEndpoint(srcPt878);
+ ConnEnd dstPt878(Point(1233.25, 622.918), 15);
+ connRef878->setDestEndpoint(dstPt878);
+ connRef878->setRoutingType((ConnType)2);
+
+ ConnRef *connRef879 = new ConnRef(router, 879);
+ ConnEnd srcPt879(Point(1035.25, 718.918), 15);
+ connRef879->setSourceEndpoint(srcPt879);
+ ConnEnd dstPt879(Point(957.246, 718.918), 15);
+ connRef879->setDestEndpoint(dstPt879);
+ connRef879->setRoutingType((ConnType)2);
+
+ ConnRef *connRef880 = new ConnRef(router, 880);
+ ConnEnd srcPt880(Point(1035.25, 750.918), 15);
+ connRef880->setSourceEndpoint(srcPt880);
+ ConnEnd dstPt880(Point(957.246, 750.918), 15);
+ connRef880->setDestEndpoint(dstPt880);
+ connRef880->setRoutingType((ConnType)2);
+
+ ConnRef *connRef881 = new ConnRef(router, 881);
+ ConnEnd srcPt881(Point(1323.25, 718.918), 15);
+ connRef881->setSourceEndpoint(srcPt881);
+ ConnEnd dstPt881(Point(1233.25, 718.918), 15);
+ connRef881->setDestEndpoint(dstPt881);
+ connRef881->setRoutingType((ConnType)2);
+
+ ConnRef *connRef882 = new ConnRef(router, 882);
+ ConnEnd srcPt882(Point(1293.25, 202.918), 15);
+ connRef882->setSourceEndpoint(srcPt882);
+ ConnEnd dstPt882(Point(1293.25, 256.918), 15);
+ connRef882->setDestEndpoint(dstPt882);
+ connRef882->setRoutingType((ConnType)2);
+
+ ConnRef *connRef883 = new ConnRef(router, 883);
+ ConnEnd srcPt883(Point(1419.25, 644.918), 15);
+ connRef883->setSourceEndpoint(srcPt883);
+ ConnEnd dstPt883(Point(1293.25, 644.918), 15);
+ connRef883->setDestEndpoint(dstPt883);
+ connRef883->setRoutingType((ConnType)2);
+
+ ConnRef *connRef884 = new ConnRef(router, 884);
+ ConnEnd srcPt884(Point(145.246, 246.918), 15);
+ connRef884->setSourceEndpoint(srcPt884);
+ ConnEnd dstPt884(Point(67.2456, 246.918), 15);
+ connRef884->setDestEndpoint(dstPt884);
+ connRef884->setRoutingType((ConnType)2);
+
+ ConnRef *connRef885 = new ConnRef(router, 885);
+ ConnEnd srcPt885(Point(145.246, 278.918), 15);
+ connRef885->setSourceEndpoint(srcPt885);
+ ConnEnd dstPt885(Point(67.2456, 278.918), 15);
+ connRef885->setDestEndpoint(dstPt885);
+ connRef885->setRoutingType((ConnType)2);
+
+ ConnRef *connRef886 = new ConnRef(router, 886);
+ ConnEnd srcPt886(Point(823.246, 676.918), 15);
+ connRef886->setSourceEndpoint(srcPt886);
+ ConnEnd dstPt886(Point(790, 667), 15);
+ connRef886->setDestEndpoint(dstPt886);
+ connRef886->setRoutingType((ConnType)2);
+
+ ConnRef *connRef887 = new ConnRef(router, 887);
+ ConnEnd srcPt887(Point(527.246, 676.918), 15);
+ connRef887->setSourceEndpoint(srcPt887);
+ ConnEnd dstPt887(Point(533, 667), 15);
+ connRef887->setDestEndpoint(dstPt887);
+ connRef887->setRoutingType((ConnType)2);
+
+ ConnRef *connRef888 = new ConnRef(router, 888);
+ ConnEnd srcPt888(Point(371.246, 676.918), 15);
+ connRef888->setSourceEndpoint(srcPt888);
+ ConnEnd dstPt888(Point(390, 667), 15);
+ connRef888->setDestEndpoint(dstPt888);
+ connRef888->setRoutingType((ConnType)2);
+
+ ConnRef *connRef889 = new ConnRef(router, 889);
+ ConnEnd srcPt889(Point(979.246, 676.918), 15);
+ connRef889->setSourceEndpoint(srcPt889);
+ ConnEnd dstPt889(Point(1030, 634), 15);
+ connRef889->setDestEndpoint(dstPt889);
+ connRef889->setRoutingType((ConnType)2);
+
+ ConnRef *connRef890 = new ConnRef(router, 890);
+ ConnEnd srcPt890(Point(673.933, 676.918), 15);
+ connRef890->setSourceEndpoint(srcPt890);
+ ConnEnd dstPt890(Point(649, 667), 15);
+ connRef890->setDestEndpoint(dstPt890);
+ connRef890->setRoutingType((ConnType)2);
+
+ ConnRef *connRef891 = new ConnRef(router, 891);
+ ConnEnd srcPt891(Point(823.246, 676.918), 15);
+ connRef891->setSourceEndpoint(srcPt891);
+ ConnEnd dstPt891(Point(840, 667), 15);
+ connRef891->setDestEndpoint(dstPt891);
+ connRef891->setRoutingType((ConnType)2);
+
+ ConnRef *connRef892 = new ConnRef(router, 892);
+ ConnEnd srcPt892(Point(57.2456, 125.987), 15);
+ connRef892->setSourceEndpoint(srcPt892);
+ ConnEnd dstPt892(Point(132, 175), 15);
+ connRef892->setDestEndpoint(dstPt892);
+ connRef892->setRoutingType((ConnType)2);
+
+ ConnRef *connRef893 = new ConnRef(router, 893);
+ ConnEnd srcPt893(Point(197.246, 160.918), 15);
+ connRef893->setSourceEndpoint(srcPt893);
+ ConnEnd dstPt893(Point(132, 318), 15);
+ connRef893->setDestEndpoint(dstPt893);
+ connRef893->setRoutingType((ConnType)2);
+
+ ConnRef *connRef894 = new ConnRef(router, 894);
+ ConnEnd srcPt894(Point(57.2456, 160.918), 15);
+ connRef894->setSourceEndpoint(srcPt894);
+ ConnEnd dstPt894(Point(132, 318), 15);
+ connRef894->setDestEndpoint(dstPt894);
+ connRef894->setRoutingType((ConnType)2);
+
+ ConnRef *connRef895 = new ConnRef(router, 895);
+ ConnEnd srcPt895(Point(197.246, 160.918), 15);
+ connRef895->setSourceEndpoint(srcPt895);
+ ConnEnd dstPt895(Point(972, 319), 15);
+ connRef895->setDestEndpoint(dstPt895);
+ connRef895->setRoutingType((ConnType)2);
+
+ ConnRef *connRef896 = new ConnRef(router, 896);
+ ConnEnd srcPt896(Point(823.246, 676.918), 15);
+ connRef896->setSourceEndpoint(srcPt896);
+ ConnEnd dstPt896(Point(972, 319), 15);
+ connRef896->setDestEndpoint(dstPt896);
+ connRef896->setRoutingType((ConnType)2);
+
+ ConnRef *connRef897 = new ConnRef(router, 897);
+ ConnEnd srcPt897(Point(197.246, 160.918), 15);
+ connRef897->setSourceEndpoint(srcPt897);
+ ConnEnd dstPt897(Point(830, 319), 15);
+ connRef897->setDestEndpoint(dstPt897);
+ connRef897->setRoutingType((ConnType)2);
+
+ ConnRef *connRef898 = new ConnRef(router, 898);
+ ConnEnd srcPt898(Point(673.933, 676.918), 15);
+ connRef898->setSourceEndpoint(srcPt898);
+ ConnEnd dstPt898(Point(830, 319), 15);
+ connRef898->setDestEndpoint(dstPt898);
+ connRef898->setRoutingType((ConnType)2);
+
+ ConnRef *connRef899 = new ConnRef(router, 899);
+ ConnEnd srcPt899(Point(197.246, 160.918), 15);
+ connRef899->setSourceEndpoint(srcPt899);
+ ConnEnd dstPt899(Point(689, 319), 15);
+ connRef899->setDestEndpoint(dstPt899);
+ connRef899->setRoutingType((ConnType)2);
+
+ ConnRef *connRef900 = new ConnRef(router, 900);
+ ConnEnd srcPt900(Point(527.246, 676.918), 15);
+ connRef900->setSourceEndpoint(srcPt900);
+ ConnEnd dstPt900(Point(689, 319), 15);
+ connRef900->setDestEndpoint(dstPt900);
+ connRef900->setRoutingType((ConnType)2);
+
+ ConnRef *connRef901 = new ConnRef(router, 901);
+ ConnEnd srcPt901(Point(197.246, 160.918), 15);
+ connRef901->setSourceEndpoint(srcPt901);
+ ConnEnd dstPt901(Point(547, 319), 15);
+ connRef901->setDestEndpoint(dstPt901);
+ connRef901->setRoutingType((ConnType)2);
+
+ ConnRef *connRef902 = new ConnRef(router, 902);
+ ConnEnd srcPt902(Point(371.246, 676.918), 15);
+ connRef902->setSourceEndpoint(srcPt902);
+ ConnEnd dstPt902(Point(547, 319), 15);
+ connRef902->setDestEndpoint(dstPt902);
+ connRef902->setRoutingType((ConnType)2);
+
+ ConnRef *connRef903 = new ConnRef(router, 903);
+ ConnEnd srcPt903(Point(197.246, 160.918), 15);
+ connRef903->setSourceEndpoint(srcPt903);
+ ConnEnd dstPt903(Point(405, 319), 15);
+ connRef903->setDestEndpoint(dstPt903);
+ connRef903->setRoutingType((ConnType)2);
+
+ ConnRef *connRef904 = new ConnRef(router, 904);
+ ConnEnd srcPt904(Point(215.246, 676.918), 15);
+ connRef904->setSourceEndpoint(srcPt904);
+ ConnEnd dstPt904(Point(405, 319), 15);
+ connRef904->setDestEndpoint(dstPt904);
+ connRef904->setRoutingType((ConnType)2);
+
+ ConnRef *connRef905 = new ConnRef(router, 905);
+ ConnEnd srcPt905(Point(197.246, 160.918), 15);
+ connRef905->setSourceEndpoint(srcPt905);
+ ConnEnd dstPt905(Point(273, 329), 15);
+ connRef905->setDestEndpoint(dstPt905);
+ connRef905->setRoutingType((ConnType)2);
+
+ ConnRef *connRef906 = new ConnRef(router, 906);
+ ConnEnd srcPt906(Point(57.2456, 676.918), 15);
+ connRef906->setSourceEndpoint(srcPt906);
+ ConnEnd dstPt906(Point(273, 329), 15);
+ connRef906->setDestEndpoint(dstPt906);
+ connRef906->setRoutingType((ConnType)2);
+
+ ConnRef *connRef907 = new ConnRef(router, 907);
+ ConnEnd srcPt907(Point(979.246, 676.918), 15);
+ connRef907->setSourceEndpoint(srcPt907);
+ ConnEnd dstPt907(Point(982, 667), 15);
+ connRef907->setDestEndpoint(dstPt907);
+ connRef907->setRoutingType((ConnType)2);
+
+ ConnRef *connRef908 = new ConnRef(router, 908);
+ ConnEnd srcPt908(Point(979.246, 676.918), 15);
+ connRef908->setSourceEndpoint(srcPt908);
+ ConnEnd dstPt908(Point(932, 648), 15);
+ connRef908->setDestEndpoint(dstPt908);
+ connRef908->setRoutingType((ConnType)2);
+
+ ConnRef *connRef909 = new ConnRef(router, 909);
+ ConnEnd srcPt909(Point(197.246, 160.918), 15);
+ connRef909->setSourceEndpoint(srcPt909);
+ ConnEnd dstPt909(Point(972, 300), 15);
+ connRef909->setDestEndpoint(dstPt909);
+ connRef909->setRoutingType((ConnType)2);
+
+ ConnRef *connRef910 = new ConnRef(router, 910);
+ ConnEnd srcPt910(Point(823.246, 676.918), 15);
+ connRef910->setSourceEndpoint(srcPt910);
+ ConnEnd dstPt910(Point(972, 300), 15);
+ connRef910->setDestEndpoint(dstPt910);
+ connRef910->setRoutingType((ConnType)2);
+
+ ConnRef *connRef911 = new ConnRef(router, 911);
+ ConnEnd srcPt911(Point(197.246, 160.918), 15);
+ connRef911->setSourceEndpoint(srcPt911);
+ ConnEnd dstPt911(Point(922, 309), 15);
+ connRef911->setDestEndpoint(dstPt911);
+ connRef911->setRoutingType((ConnType)2);
+
+ ConnRef *connRef912 = new ConnRef(router, 912);
+ ConnEnd srcPt912(Point(823.246, 676.918), 15);
+ connRef912->setSourceEndpoint(srcPt912);
+ ConnEnd dstPt912(Point(922, 309), 15);
+ connRef912->setDestEndpoint(dstPt912);
+ connRef912->setRoutingType((ConnType)2);
+
+ ConnRef *connRef913 = new ConnRef(router, 913);
+ ConnEnd srcPt913(Point(197.246, 160.918), 15);
+ connRef913->setSourceEndpoint(srcPt913);
+ ConnEnd dstPt913(Point(922, 290), 15);
+ connRef913->setDestEndpoint(dstPt913);
+ connRef913->setRoutingType((ConnType)2);
+
+ ConnRef *connRef914 = new ConnRef(router, 914);
+ ConnEnd srcPt914(Point(823.246, 676.918), 15);
+ connRef914->setSourceEndpoint(srcPt914);
+ ConnEnd dstPt914(Point(922, 290), 15);
+ connRef914->setDestEndpoint(dstPt914);
+ connRef914->setRoutingType((ConnType)2);
+
+ ConnRef *connRef915 = new ConnRef(router, 915);
+ ConnEnd srcPt915(Point(197.246, 160.918), 15);
+ connRef915->setSourceEndpoint(srcPt915);
+ ConnEnd dstPt915(Point(830, 300), 15);
+ connRef915->setDestEndpoint(dstPt915);
+ connRef915->setRoutingType((ConnType)2);
+
+ ConnRef *connRef916 = new ConnRef(router, 916);
+ ConnEnd srcPt916(Point(673.933, 676.918), 15);
+ connRef916->setSourceEndpoint(srcPt916);
+ ConnEnd dstPt916(Point(830, 300), 15);
+ connRef916->setDestEndpoint(dstPt916);
+ connRef916->setRoutingType((ConnType)2);
+
+ ConnRef *connRef917 = new ConnRef(router, 917);
+ ConnEnd srcPt917(Point(197.246, 160.918), 15);
+ connRef917->setSourceEndpoint(srcPt917);
+ ConnEnd dstPt917(Point(780, 309), 15);
+ connRef917->setDestEndpoint(dstPt917);
+ connRef917->setRoutingType((ConnType)2);
+
+ ConnRef *connRef918 = new ConnRef(router, 918);
+ ConnEnd srcPt918(Point(673.933, 676.918), 15);
+ connRef918->setSourceEndpoint(srcPt918);
+ ConnEnd dstPt918(Point(780, 309), 15);
+ connRef918->setDestEndpoint(dstPt918);
+ connRef918->setRoutingType((ConnType)2);
+
+ ConnRef *connRef919 = new ConnRef(router, 919);
+ ConnEnd srcPt919(Point(197.246, 160.918), 15);
+ connRef919->setSourceEndpoint(srcPt919);
+ ConnEnd dstPt919(Point(780, 290), 15);
+ connRef919->setDestEndpoint(dstPt919);
+ connRef919->setRoutingType((ConnType)2);
+
+ ConnRef *connRef920 = new ConnRef(router, 920);
+ ConnEnd srcPt920(Point(673.933, 676.918), 15);
+ connRef920->setSourceEndpoint(srcPt920);
+ ConnEnd dstPt920(Point(780, 290), 15);
+ connRef920->setDestEndpoint(dstPt920);
+ connRef920->setRoutingType((ConnType)2);
+
+ ConnRef *connRef921 = new ConnRef(router, 921);
+ ConnEnd srcPt921(Point(197.246, 160.918), 15);
+ connRef921->setSourceEndpoint(srcPt921);
+ ConnEnd dstPt921(Point(689, 300), 15);
+ connRef921->setDestEndpoint(dstPt921);
+ connRef921->setRoutingType((ConnType)2);
+
+ ConnRef *connRef922 = new ConnRef(router, 922);
+ ConnEnd srcPt922(Point(527.246, 676.918), 15);
+ connRef922->setSourceEndpoint(srcPt922);
+ ConnEnd dstPt922(Point(689, 300), 15);
+ connRef922->setDestEndpoint(dstPt922);
+ connRef922->setRoutingType((ConnType)2);
+
+ ConnRef *connRef923 = new ConnRef(router, 923);
+ ConnEnd srcPt923(Point(197.246, 160.918), 15);
+ connRef923->setSourceEndpoint(srcPt923);
+ ConnEnd dstPt923(Point(639, 309), 15);
+ connRef923->setDestEndpoint(dstPt923);
+ connRef923->setRoutingType((ConnType)2);
+
+ ConnRef *connRef924 = new ConnRef(router, 924);
+ ConnEnd srcPt924(Point(527.246, 676.918), 15);
+ connRef924->setSourceEndpoint(srcPt924);
+ ConnEnd dstPt924(Point(639, 309), 15);
+ connRef924->setDestEndpoint(dstPt924);
+ connRef924->setRoutingType((ConnType)2);
+
+ ConnRef *connRef925 = new ConnRef(router, 925);
+ ConnEnd srcPt925(Point(197.246, 160.918), 15);
+ connRef925->setSourceEndpoint(srcPt925);
+ ConnEnd dstPt925(Point(639, 290), 15);
+ connRef925->setDestEndpoint(dstPt925);
+ connRef925->setRoutingType((ConnType)2);
+
+ ConnRef *connRef926 = new ConnRef(router, 926);
+ ConnEnd srcPt926(Point(527.246, 676.918), 15);
+ connRef926->setSourceEndpoint(srcPt926);
+ ConnEnd dstPt926(Point(639, 290), 15);
+ connRef926->setDestEndpoint(dstPt926);
+ connRef926->setRoutingType((ConnType)2);
+
+ ConnRef *connRef927 = new ConnRef(router, 927);
+ ConnEnd srcPt927(Point(197.246, 160.918), 15);
+ connRef927->setSourceEndpoint(srcPt927);
+ ConnEnd dstPt927(Point(547, 300), 15);
+ connRef927->setDestEndpoint(dstPt927);
+ connRef927->setRoutingType((ConnType)2);
+
+ ConnRef *connRef928 = new ConnRef(router, 928);
+ ConnEnd srcPt928(Point(371.246, 676.918), 15);
+ connRef928->setSourceEndpoint(srcPt928);
+ ConnEnd dstPt928(Point(547, 300), 15);
+ connRef928->setDestEndpoint(dstPt928);
+ connRef928->setRoutingType((ConnType)2);
+
+ ConnRef *connRef929 = new ConnRef(router, 929);
+ ConnEnd srcPt929(Point(197.246, 160.918), 15);
+ connRef929->setSourceEndpoint(srcPt929);
+ ConnEnd dstPt929(Point(497, 309), 15);
+ connRef929->setDestEndpoint(dstPt929);
+ connRef929->setRoutingType((ConnType)2);
+
+ ConnRef *connRef930 = new ConnRef(router, 930);
+ ConnEnd srcPt930(Point(371.246, 676.918), 15);
+ connRef930->setSourceEndpoint(srcPt930);
+ ConnEnd dstPt930(Point(497, 309), 15);
+ connRef930->setDestEndpoint(dstPt930);
+ connRef930->setRoutingType((ConnType)2);
+
+ ConnRef *connRef931 = new ConnRef(router, 931);
+ ConnEnd srcPt931(Point(197.246, 160.918), 15);
+ connRef931->setSourceEndpoint(srcPt931);
+ ConnEnd dstPt931(Point(497, 290), 15);
+ connRef931->setDestEndpoint(dstPt931);
+ connRef931->setRoutingType((ConnType)2);
+
+ ConnRef *connRef932 = new ConnRef(router, 932);
+ ConnEnd srcPt932(Point(371.246, 676.918), 15);
+ connRef932->setSourceEndpoint(srcPt932);
+ ConnEnd dstPt932(Point(497, 290), 15);
+ connRef932->setDestEndpoint(dstPt932);
+ connRef932->setRoutingType((ConnType)2);
+
+ ConnRef *connRef933 = new ConnRef(router, 933);
+ ConnEnd srcPt933(Point(197.246, 160.918), 15);
+ connRef933->setSourceEndpoint(srcPt933);
+ ConnEnd dstPt933(Point(405, 300), 15);
+ connRef933->setDestEndpoint(dstPt933);
+ connRef933->setRoutingType((ConnType)2);
+
+ ConnRef *connRef934 = new ConnRef(router, 934);
+ ConnEnd srcPt934(Point(215.246, 676.918), 15);
+ connRef934->setSourceEndpoint(srcPt934);
+ ConnEnd dstPt934(Point(405, 300), 15);
+ connRef934->setDestEndpoint(dstPt934);
+ connRef934->setRoutingType((ConnType)2);
+
+ ConnRef *connRef935 = new ConnRef(router, 935);
+ ConnEnd srcPt935(Point(197.246, 160.918), 15);
+ connRef935->setSourceEndpoint(srcPt935);
+ ConnEnd dstPt935(Point(355, 309), 15);
+ connRef935->setDestEndpoint(dstPt935);
+ connRef935->setRoutingType((ConnType)2);
+
+ ConnRef *connRef936 = new ConnRef(router, 936);
+ ConnEnd srcPt936(Point(215.246, 676.918), 15);
+ connRef936->setSourceEndpoint(srcPt936);
+ ConnEnd dstPt936(Point(355, 309), 15);
+ connRef936->setDestEndpoint(dstPt936);
+ connRef936->setRoutingType((ConnType)2);
+
+ ConnRef *connRef937 = new ConnRef(router, 937);
+ ConnEnd srcPt937(Point(197.246, 160.918), 15);
+ connRef937->setSourceEndpoint(srcPt937);
+ ConnEnd dstPt937(Point(355, 290), 15);
+ connRef937->setDestEndpoint(dstPt937);
+ connRef937->setRoutingType((ConnType)2);
+
+ ConnRef *connRef938 = new ConnRef(router, 938);
+ ConnEnd srcPt938(Point(215.246, 676.918), 15);
+ connRef938->setSourceEndpoint(srcPt938);
+ ConnEnd dstPt938(Point(355, 290), 15);
+ connRef938->setDestEndpoint(dstPt938);
+ connRef938->setRoutingType((ConnType)2);
+
+ ConnRef *connRef939 = new ConnRef(router, 939);
+ ConnEnd srcPt939(Point(197.246, 160.918), 15);
+ connRef939->setSourceEndpoint(srcPt939);
+ ConnEnd dstPt939(Point(273, 310), 15);
+ connRef939->setDestEndpoint(dstPt939);
+ connRef939->setRoutingType((ConnType)2);
+
+ ConnRef *connRef940 = new ConnRef(router, 940);
+ ConnEnd srcPt940(Point(57.2456, 676.918), 15);
+ connRef940->setSourceEndpoint(srcPt940);
+ ConnEnd dstPt940(Point(273, 310), 15);
+ connRef940->setDestEndpoint(dstPt940);
+ connRef940->setRoutingType((ConnType)2);
+
+ ConnRef *connRef941 = new ConnRef(router, 941);
+ ConnEnd srcPt941(Point(197.246, 160.918), 15);
+ connRef941->setSourceEndpoint(srcPt941);
+ ConnEnd dstPt941(Point(213, 290), 15);
+ connRef941->setDestEndpoint(dstPt941);
+ connRef941->setRoutingType((ConnType)2);
+
+ ConnRef *connRef942 = new ConnRef(router, 942);
+ ConnEnd srcPt942(Point(57.2456, 676.918), 15);
+ connRef942->setSourceEndpoint(srcPt942);
+ ConnEnd dstPt942(Point(213, 290), 15);
+ connRef942->setDestEndpoint(dstPt942);
+ connRef942->setRoutingType((ConnType)2);
+
+ ConnRef *connRef943 = new ConnRef(router, 943);
+ ConnEnd srcPt943(Point(197.246, 160.918), 15);
+ connRef943->setSourceEndpoint(srcPt943);
+ ConnEnd dstPt943(Point(213, 309), 15);
+ connRef943->setDestEndpoint(dstPt943);
+ connRef943->setRoutingType((ConnType)2);
+
+ ConnRef *connRef944 = new ConnRef(router, 944);
+ ConnEnd srcPt944(Point(57.2456, 676.918), 15);
+ connRef944->setSourceEndpoint(srcPt944);
+ ConnEnd dstPt944(Point(213, 309), 15);
+ connRef944->setDestEndpoint(dstPt944);
+ connRef944->setRoutingType((ConnType)2);
+
+ ConnRef *connRef945 = new ConnRef(router, 945);
+ ConnEnd srcPt945(Point(197.246, 160.918), 15);
+ connRef945->setSourceEndpoint(srcPt945);
+ ConnEnd dstPt945(Point(92, 309), 15);
+ connRef945->setDestEndpoint(dstPt945);
+ connRef945->setRoutingType((ConnType)2);
+
+ ConnRef *connRef946 = new ConnRef(router, 946);
+ ConnEnd srcPt946(Point(57.2456, 160.918), 15);
+ connRef946->setSourceEndpoint(srcPt946);
+ ConnEnd dstPt946(Point(92, 309), 15);
+ connRef946->setDestEndpoint(dstPt946);
+ connRef946->setRoutingType((ConnType)2);
+
+ ConnRef *connRef947 = new ConnRef(router, 947);
+ ConnEnd srcPt947(Point(197.246, 160.918), 15);
+ connRef947->setSourceEndpoint(srcPt947);
+ ConnEnd dstPt947(Point(92, 290), 15);
+ connRef947->setDestEndpoint(dstPt947);
+ connRef947->setRoutingType((ConnType)2);
+
+ ConnRef *connRef948 = new ConnRef(router, 948);
+ ConnEnd srcPt948(Point(57.2456, 160.918), 15);
+ connRef948->setSourceEndpoint(srcPt948);
+ ConnEnd dstPt948(Point(92, 290), 15);
+ connRef948->setDestEndpoint(dstPt948);
+ connRef948->setRoutingType((ConnType)2);
+
+ ConnRef *connRef949 = new ConnRef(router, 949);
+ ConnEnd srcPt949(Point(57.2456, 125.987), 15);
+ connRef949->setSourceEndpoint(srcPt949);
+ ConnEnd dstPt949(Point(82, 194), 15);
+ connRef949->setDestEndpoint(dstPt949);
+ connRef949->setRoutingType((ConnType)2);
+
+ ConnRef *connRef950 = new ConnRef(router, 950);
+ ConnEnd srcPt950(Point(57.2456, 125.987), 15);
+ connRef950->setSourceEndpoint(srcPt950);
+ ConnEnd dstPt950(Point(82, 175), 15);
+ connRef950->setDestEndpoint(dstPt950);
+ connRef950->setRoutingType((ConnType)2);
+
+ ConnRef *connRef951 = new ConnRef(router, 951);
+ ConnEnd srcPt951(Point(57.2456, 125.987), 15);
+ connRef951->setSourceEndpoint(srcPt951);
+ ConnEnd dstPt951(Point(82, 156), 15);
+ connRef951->setDestEndpoint(dstPt951);
+ connRef951->setRoutingType((ConnType)2);
+
+ ConnRef *connRef952 = new ConnRef(router, 952);
+ ConnEnd srcPt952(Point(319.219, -7.08205), 15);
+ connRef952->setSourceEndpoint(srcPt952);
+ ConnEnd dstPt952(Point(319, 155), 15);
+ connRef952->setDestEndpoint(dstPt952);
+ connRef952->setRoutingType((ConnType)2);
+
+ ConnRef *connRef953 = new ConnRef(router, 953);
+ ConnEnd srcPt953(Point(197.246, 96.9179), 15);
+ connRef953->setSourceEndpoint(srcPt953);
+ ConnEnd dstPt953(Point(317.466, 34.9179), 15);
+ connRef953->setDestEndpoint(dstPt953);
+ connRef953->setRoutingType((ConnType)2);
+
+ ConnRef *connRef954 = new ConnRef(router, 954);
+ ConnEnd srcPt954(Point(57.2456, 125.987), 15);
+ connRef954->setSourceEndpoint(srcPt954);
+ ConnEnd dstPt954(Point(-7.75443, -71.0821), 15);
+ connRef954->setDestEndpoint(dstPt954);
+ connRef954->setRoutingType((ConnType)2);
+
+ ConnRef *connRef955 = new ConnRef(router, 955);
+ ConnEnd srcPt955(Point(197.246, 96.9179), 15);
+ connRef955->setSourceEndpoint(srcPt955);
+ ConnEnd dstPt955(Point(317.466, 86.9179), 15);
+ connRef955->setDestEndpoint(dstPt955);
+ connRef955->setRoutingType((ConnType)2);
+
+ ConnRef *connRef398 = new ConnRef(router, 398);
+ ConnEnd srcPt398(Point(982, 596), 15);
+ connRef398->setSourceEndpoint(srcPt398);
+ ConnEnd dstPt398(Point(979.246, 676.918), 15);
+ connRef398->setDestEndpoint(dstPt398);
+ connRef398->setRoutingType((ConnType)2);
+
+ ConnRef *connRef399 = new ConnRef(router, 399);
+ ConnEnd srcPt399(Point(840, 596), 15);
+ connRef399->setSourceEndpoint(srcPt399);
+ ConnEnd dstPt399(Point(823.246, 676.918), 15);
+ connRef399->setDestEndpoint(dstPt399);
+ connRef399->setRoutingType((ConnType)2);
+
+ ConnRef *connRef400 = new ConnRef(router, 400);
+ ConnEnd srcPt400(Point(699, 596), 15);
+ connRef400->setSourceEndpoint(srcPt400);
+ ConnEnd dstPt400(Point(673.933, 676.918), 15);
+ connRef400->setDestEndpoint(dstPt400);
+ connRef400->setRoutingType((ConnType)2);
+
+ ConnRef *connRef401 = new ConnRef(router, 401);
+ ConnEnd srcPt401(Point(557, 596), 15);
+ connRef401->setSourceEndpoint(srcPt401);
+ ConnEnd dstPt401(Point(527.246, 676.918), 15);
+ connRef401->setDestEndpoint(dstPt401);
+ connRef401->setRoutingType((ConnType)2);
+
+ ConnRef *connRef402 = new ConnRef(router, 402);
+ ConnEnd srcPt402(Point(415, 596), 15);
+ connRef402->setSourceEndpoint(srcPt402);
+ ConnEnd dstPt402(Point(371.246, 676.918), 15);
+ connRef402->setDestEndpoint(dstPt402);
+ connRef402->setRoutingType((ConnType)2);
+
+ ConnRef *connRef403 = new ConnRef(router, 403);
+ ConnEnd srcPt403(Point(273, 596), 15);
+ connRef403->setSourceEndpoint(srcPt403);
+ ConnEnd dstPt403(Point(215.246, 676.918), 15);
+ connRef403->setDestEndpoint(dstPt403);
+ connRef403->setRoutingType((ConnType)2);
+
+ ConnRef *connRef404 = new ConnRef(router, 404);
+ ConnEnd srcPt404(Point(132, 615), 15);
+ connRef404->setSourceEndpoint(srcPt404);
+ ConnEnd dstPt404(Point(57.2456, 676.918), 15);
+ connRef404->setDestEndpoint(dstPt404);
+ connRef404->setRoutingType((ConnType)2);
+
+ ConnRef *connRef405 = new ConnRef(router, 405);
+ ConnEnd srcPt405(Point(1203.25, 676.918), 15);
+ connRef405->setSourceEndpoint(srcPt405);
+ ConnEnd dstPt405(Point(1227, 632), 15);
+ connRef405->setDestEndpoint(dstPt405);
+ connRef405->setRoutingType((ConnType)2);
+
+ ConnRef *connRef406 = new ConnRef(router, 406);
+ ConnEnd srcPt406(Point(1209, 586), 15);
+ connRef406->setSourceEndpoint(srcPt406);
+ ConnEnd dstPt406(Point(1203.25, 676.918), 15);
+ connRef406->setDestEndpoint(dstPt406);
+ connRef406->setRoutingType((ConnType)2);
+
+ ConnRef *connRef407 = new ConnRef(router, 407);
+ ConnEnd srcPt407(Point(1203.25, 676.918), 15);
+ connRef407->setSourceEndpoint(srcPt407);
+ ConnEnd dstPt407(Point(1209, 667), 15);
+ connRef407->setDestEndpoint(dstPt407);
+ connRef407->setRoutingType((ConnType)2);
+
+ ConnRef *connRef408 = new ConnRef(router, 408);
+ ConnEnd srcPt408(Point(1203.25, 676.918), 15);
+ connRef408->setSourceEndpoint(srcPt408);
+ ConnEnd dstPt408(Point(1159, 667), 15);
+ connRef408->setDestEndpoint(dstPt408);
+ connRef408->setRoutingType((ConnType)2);
+
+ ConnRef *connRef409 = new ConnRef(router, 409);
+ ConnEnd srcPt409(Point(1209, 566), 15);
+ connRef409->setSourceEndpoint(srcPt409);
+ ConnEnd dstPt409(Point(1203.25, 558.918), 15);
+ connRef409->setDestEndpoint(dstPt409);
+ connRef409->setRoutingType((ConnType)2);
+
+ ConnRef *connRef410 = new ConnRef(router, 410);
+ ConnEnd srcPt410(Point(1209, 505), 15);
+ connRef410->setSourceEndpoint(srcPt410);
+ ConnEnd dstPt410(Point(1203.25, 558.918), 15);
+ connRef410->setDestEndpoint(dstPt410);
+ connRef410->setRoutingType((ConnType)2);
+
+ ConnRef *connRef411 = new ConnRef(router, 411);
+ ConnEnd srcPt411(Point(1159, 575), 15);
+ connRef411->setSourceEndpoint(srcPt411);
+ ConnEnd dstPt411(Point(1203.25, 558.918), 15);
+ connRef411->setDestEndpoint(dstPt411);
+ connRef411->setRoutingType((ConnType)2);
+
+ ConnRef *connRef412 = new ConnRef(router, 412);
+ ConnEnd srcPt412(Point(1209, 585), 15);
+ connRef412->setSourceEndpoint(srcPt412);
+ ConnEnd dstPt412(Point(1203.25, 558.918), 15);
+ connRef412->setDestEndpoint(dstPt412);
+ connRef412->setRoutingType((ConnType)2);
+
+ ConnRef *connRef413 = new ConnRef(router, 413);
+ ConnEnd srcPt413(Point(1209, 485), 15);
+ connRef413->setSourceEndpoint(srcPt413);
+ ConnEnd dstPt413(Point(1203.25, 447.955), 15);
+ connRef413->setDestEndpoint(dstPt413);
+ connRef413->setRoutingType((ConnType)2);
+
+ ConnRef *connRef414 = new ConnRef(router, 414);
+ ConnEnd srcPt414(Point(1209, 414), 15);
+ connRef414->setSourceEndpoint(srcPt414);
+ ConnEnd dstPt414(Point(1203.25, 447.955), 15);
+ connRef414->setDestEndpoint(dstPt414);
+ connRef414->setRoutingType((ConnType)2);
+
+ ConnRef *connRef415 = new ConnRef(router, 415);
+ ConnEnd srcPt415(Point(1159, 485), 15);
+ connRef415->setSourceEndpoint(srcPt415);
+ ConnEnd dstPt415(Point(1203.25, 447.955), 15);
+ connRef415->setDestEndpoint(dstPt415);
+ connRef415->setRoutingType((ConnType)2);
+
+ ConnRef *connRef416 = new ConnRef(router, 416);
+ ConnEnd srcPt416(Point(1209, 394), 15);
+ connRef416->setSourceEndpoint(srcPt416);
+ ConnEnd dstPt416(Point(1203.25, 332.918), 15);
+ connRef416->setDestEndpoint(dstPt416);
+ connRef416->setRoutingType((ConnType)2);
+
+ ConnRef *connRef417 = new ConnRef(router, 417);
+ ConnEnd srcPt417(Point(1159, 394), 15);
+ connRef417->setSourceEndpoint(srcPt417);
+ ConnEnd dstPt417(Point(1203.25, 332.918), 15);
+ connRef417->setDestEndpoint(dstPt417);
+ connRef417->setRoutingType((ConnType)2);
+
+ ConnRef *connRef418 = new ConnRef(router, 418);
+ ConnEnd srcPt418(Point(1449.25, 676.918), 15);
+ connRef418->setSourceEndpoint(srcPt418);
+ ConnEnd dstPt418(Point(1299, 667), 15);
+ connRef418->setDestEndpoint(dstPt418);
+ connRef418->setRoutingType((ConnType)2);
+
+ ConnRef *connRef419 = new ConnRef(router, 419);
+ ConnEnd srcPt419(Point(1171.25, 676.918), 15);
+ connRef419->setSourceEndpoint(srcPt419);
+ ConnEnd dstPt419(Point(1059, 667), 15);
+ connRef419->setDestEndpoint(dstPt419);
+ connRef419->setRoutingType((ConnType)2);
+
+ ConnRef *connRef420 = new ConnRef(router, 420);
+ ConnEnd srcPt420(Point(1171.25, 676.918), 15);
+ connRef420->setSourceEndpoint(srcPt420);
+ ConnEnd dstPt420(Point(1109, 667), 15);
+ connRef420->setDestEndpoint(dstPt420);
+ connRef420->setRoutingType((ConnType)2);
+
+ ConnRef *connRef421 = new ConnRef(router, 421);
+ ConnEnd srcPt421(Point(1050, 634), 15);
+ connRef421->setSourceEndpoint(srcPt421);
+ ConnEnd dstPt421(Point(1171.25, 676.918), 15);
+ connRef421->setDestEndpoint(dstPt421);
+ connRef421->setRoutingType((ConnType)2);
+
+ ConnRef *connRef422 = new ConnRef(router, 422);
+ ConnEnd srcPt422(Point(790, 687), 15);
+ connRef422->setSourceEndpoint(srcPt422);
+ ConnEnd dstPt422(Point(823.246, 750.918), 15);
+ connRef422->setDestEndpoint(dstPt422);
+ connRef422->setRoutingType((ConnType)2);
+
+ ConnRef *connRef423 = new ConnRef(router, 423);
+ ConnEnd srcPt423(Point(1059, 687), 15);
+ connRef423->setSourceEndpoint(srcPt423);
+ ConnEnd dstPt423(Point(1171.25, 750.918), 15);
+ connRef423->setDestEndpoint(dstPt423);
+ connRef423->setRoutingType((ConnType)2);
+
+ ConnRef *connRef424 = new ConnRef(router, 424);
+ ConnEnd srcPt424(Point(1109, 687), 15);
+ connRef424->setSourceEndpoint(srcPt424);
+ ConnEnd dstPt424(Point(1171.25, 750.918), 15);
+ connRef424->setDestEndpoint(dstPt424);
+ connRef424->setRoutingType((ConnType)2);
+
+ ConnRef *connRef425 = new ConnRef(router, 425);
+ ConnEnd srcPt425(Point(533, 687), 15);
+ connRef425->setSourceEndpoint(srcPt425);
+ ConnEnd dstPt425(Point(527.246, 750.918), 15);
+ connRef425->setDestEndpoint(dstPt425);
+ connRef425->setRoutingType((ConnType)2);
+
+ ConnRef *connRef426 = new ConnRef(router, 426);
+ ConnEnd srcPt426(Point(390, 687), 15);
+ connRef426->setSourceEndpoint(srcPt426);
+ ConnEnd dstPt426(Point(371.246, 750.918), 15);
+ connRef426->setDestEndpoint(dstPt426);
+ connRef426->setRoutingType((ConnType)2);
+
+ ConnRef *connRef427 = new ConnRef(router, 427);
+ ConnEnd srcPt427(Point(1247, 632), 15);
+ connRef427->setSourceEndpoint(srcPt427);
+ ConnEnd dstPt427(Point(1449.25, 676.918), 15);
+ connRef427->setDestEndpoint(dstPt427);
+ connRef427->setRoutingType((ConnType)2);
+
+ ConnRef *connRef428 = new ConnRef(router, 428);
+ ConnEnd srcPt428(Point(982, 615), 15);
+ connRef428->setSourceEndpoint(srcPt428);
+ ConnEnd dstPt428(Point(979.246, 676.918), 15);
+ connRef428->setDestEndpoint(dstPt428);
+ connRef428->setRoutingType((ConnType)2);
+
+ ConnRef *connRef429 = new ConnRef(router, 429);
+ ConnEnd srcPt429(Point(840, 615), 15);
+ connRef429->setSourceEndpoint(srcPt429);
+ ConnEnd dstPt429(Point(823.246, 676.918), 15);
+ connRef429->setDestEndpoint(dstPt429);
+ connRef429->setRoutingType((ConnType)2);
+
+ ConnRef *connRef430 = new ConnRef(router, 430);
+ ConnEnd srcPt430(Point(699, 615), 15);
+ connRef430->setSourceEndpoint(srcPt430);
+ ConnEnd dstPt430(Point(673.933, 676.918), 15);
+ connRef430->setDestEndpoint(dstPt430);
+ connRef430->setRoutingType((ConnType)2);
+
+ ConnRef *connRef431 = new ConnRef(router, 431);
+ ConnEnd srcPt431(Point(557, 615), 15);
+ connRef431->setSourceEndpoint(srcPt431);
+ ConnEnd dstPt431(Point(527.246, 676.918), 15);
+ connRef431->setDestEndpoint(dstPt431);
+ connRef431->setRoutingType((ConnType)2);
+
+ ConnRef *connRef432 = new ConnRef(router, 432);
+ ConnEnd srcPt432(Point(415, 615), 15);
+ connRef432->setSourceEndpoint(srcPt432);
+ ConnEnd dstPt432(Point(371.246, 676.918), 15);
+ connRef432->setDestEndpoint(dstPt432);
+ connRef432->setRoutingType((ConnType)2);
+
+ ConnRef *connRef433 = new ConnRef(router, 433);
+ ConnEnd srcPt433(Point(273, 615), 15);
+ connRef433->setSourceEndpoint(srcPt433);
+ ConnEnd dstPt433(Point(215.246, 676.918), 15);
+ connRef433->setDestEndpoint(dstPt433);
+ connRef433->setRoutingType((ConnType)2);
+
+ ConnRef *connRef434 = new ConnRef(router, 434);
+ ConnEnd srcPt434(Point(132, 596), 15);
+ connRef434->setSourceEndpoint(srcPt434);
+ ConnEnd dstPt434(Point(57.2456, 676.918), 15);
+ connRef434->setDestEndpoint(dstPt434);
+ connRef434->setRoutingType((ConnType)2);
+
+ ConnRef *connRef435 = new ConnRef(router, 435);
+ ConnEnd srcPt435(Point(982, 516), 15);
+ connRef435->setSourceEndpoint(srcPt435);
+ ConnEnd dstPt435(Point(979.246, 558.918), 15);
+ connRef435->setDestEndpoint(dstPt435);
+ connRef435->setRoutingType((ConnType)2);
+
+ ConnRef *connRef436 = new ConnRef(router, 436);
+ ConnEnd srcPt436(Point(982, 496), 15);
+ connRef436->setSourceEndpoint(srcPt436);
+ ConnEnd dstPt436(Point(979.246, 447.955), 15);
+ connRef436->setDestEndpoint(dstPt436);
+ connRef436->setRoutingType((ConnType)2);
+
+ ConnRef *connRef437 = new ConnRef(router, 437);
+ ConnEnd srcPt437(Point(840, 496), 15);
+ connRef437->setSourceEndpoint(srcPt437);
+ ConnEnd dstPt437(Point(823.246, 447.955), 15);
+ connRef437->setDestEndpoint(dstPt437);
+ connRef437->setRoutingType((ConnType)2);
+
+ ConnRef *connRef438 = new ConnRef(router, 438);
+ ConnEnd srcPt438(Point(840, 516), 15);
+ connRef438->setSourceEndpoint(srcPt438);
+ ConnEnd dstPt438(Point(823.246, 558.918), 15);
+ connRef438->setDestEndpoint(dstPt438);
+ connRef438->setRoutingType((ConnType)2);
+
+ ConnRef *connRef439 = new ConnRef(router, 439);
+ ConnEnd srcPt439(Point(699, 516), 15);
+ connRef439->setSourceEndpoint(srcPt439);
+ ConnEnd dstPt439(Point(673.933, 558.918), 15);
+ connRef439->setDestEndpoint(dstPt439);
+ connRef439->setRoutingType((ConnType)2);
+
+ ConnRef *connRef440 = new ConnRef(router, 440);
+ ConnEnd srcPt440(Point(699, 496), 15);
+ connRef440->setSourceEndpoint(srcPt440);
+ ConnEnd dstPt440(Point(673.933, 447.955), 15);
+ connRef440->setDestEndpoint(dstPt440);
+ connRef440->setRoutingType((ConnType)2);
+
+ ConnRef *connRef441 = new ConnRef(router, 441);
+ ConnEnd srcPt441(Point(557, 496), 15);
+ connRef441->setSourceEndpoint(srcPt441);
+ ConnEnd dstPt441(Point(527.246, 447.955), 15);
+ connRef441->setDestEndpoint(dstPt441);
+ connRef441->setRoutingType((ConnType)2);
+
+ ConnRef *connRef442 = new ConnRef(router, 442);
+ ConnEnd srcPt442(Point(557, 516), 15);
+ connRef442->setSourceEndpoint(srcPt442);
+ ConnEnd dstPt442(Point(527.246, 558.918), 15);
+ connRef442->setDestEndpoint(dstPt442);
+ connRef442->setRoutingType((ConnType)2);
+
+ ConnRef *connRef443 = new ConnRef(router, 443);
+ ConnEnd srcPt443(Point(415, 516), 15);
+ connRef443->setSourceEndpoint(srcPt443);
+ ConnEnd dstPt443(Point(371.246, 558.918), 15);
+ connRef443->setDestEndpoint(dstPt443);
+ connRef443->setRoutingType((ConnType)2);
+
+ ConnRef *connRef444 = new ConnRef(router, 444);
+ ConnEnd srcPt444(Point(415, 496), 15);
+ connRef444->setSourceEndpoint(srcPt444);
+ ConnEnd dstPt444(Point(371.246, 447.955), 15);
+ connRef444->setDestEndpoint(dstPt444);
+ connRef444->setRoutingType((ConnType)2);
+
+ ConnRef *connRef445 = new ConnRef(router, 445);
+ ConnEnd srcPt445(Point(273, 496), 15);
+ connRef445->setSourceEndpoint(srcPt445);
+ ConnEnd dstPt445(Point(215.246, 447.955), 15);
+ connRef445->setDestEndpoint(dstPt445);
+ connRef445->setRoutingType((ConnType)2);
+
+ ConnRef *connRef446 = new ConnRef(router, 446);
+ ConnEnd srcPt446(Point(273, 516), 15);
+ connRef446->setSourceEndpoint(srcPt446);
+ ConnEnd dstPt446(Point(215.246, 558.918), 15);
+ connRef446->setDestEndpoint(dstPt446);
+ connRef446->setRoutingType((ConnType)2);
+
+ ConnRef *connRef447 = new ConnRef(router, 447);
+ ConnEnd srcPt447(Point(132, 496), 15);
+ connRef447->setSourceEndpoint(srcPt447);
+ ConnEnd dstPt447(Point(57.2456, 447.955), 15);
+ connRef447->setDestEndpoint(dstPt447);
+ connRef447->setRoutingType((ConnType)2);
+
+ ConnRef *connRef448 = new ConnRef(router, 448);
+ ConnEnd srcPt448(Point(132, 516), 15);
+ connRef448->setSourceEndpoint(srcPt448);
+ ConnEnd dstPt448(Point(57.2456, 558.918), 15);
+ connRef448->setDestEndpoint(dstPt448);
+ connRef448->setRoutingType((ConnType)2);
+
+ ConnRef *connRef449 = new ConnRef(router, 449);
+ ConnEnd srcPt449(Point(1219, 319), 15);
+ connRef449->setSourceEndpoint(srcPt449);
+ ConnEnd dstPt449(Point(1203.25, 332.918), 15);
+ connRef449->setDestEndpoint(dstPt449);
+ connRef449->setRoutingType((ConnType)2);
+
+ ConnRef *connRef450 = new ConnRef(router, 450);
+ ConnEnd srcPt450(Point(1199, 319), 15);
+ connRef450->setSourceEndpoint(srcPt450);
+ ConnEnd dstPt450(Point(197.246, 160.918), 15);
+ connRef450->setDestEndpoint(dstPt450);
+ connRef450->setRoutingType((ConnType)2);
+
+ ConnRef *connRef451 = new ConnRef(router, 451);
+ ConnEnd srcPt451(Point(1199, 319), 15);
+ connRef451->setSourceEndpoint(srcPt451);
+ ConnEnd dstPt451(Point(979.246, 676.918), 15);
+ connRef451->setDestEndpoint(dstPt451);
+ connRef451->setRoutingType((ConnType)2);
+
+ ConnRef *connRef452 = new ConnRef(router, 452);
+ ConnEnd srcPt452(Point(1209, 687), 15);
+ connRef452->setSourceEndpoint(srcPt452);
+ ConnEnd dstPt452(Point(1203.25, 750.918), 15);
+ connRef452->setDestEndpoint(dstPt452);
+ connRef452->setRoutingType((ConnType)2);
+
+ ConnRef *connRef453 = new ConnRef(router, 453);
+ ConnEnd srcPt453(Point(1299, 687), 15);
+ connRef453->setSourceEndpoint(srcPt453);
+ ConnEnd dstPt453(Point(1449.25, 750.918), 15);
+ connRef453->setDestEndpoint(dstPt453);
+ connRef453->setRoutingType((ConnType)2);
+
+ ConnRef *connRef454 = new ConnRef(router, 454);
+ ConnEnd srcPt454(Point(649, 687), 15);
+ connRef454->setSourceEndpoint(srcPt454);
+ ConnEnd dstPt454(Point(673.933, 750.918), 15);
+ connRef454->setDestEndpoint(dstPt454);
+ connRef454->setRoutingType((ConnType)2);
+
+ ConnRef *connRef455 = new ConnRef(router, 455);
+ ConnEnd srcPt455(Point(840, 687), 15);
+ connRef455->setSourceEndpoint(srcPt455);
+ ConnEnd dstPt455(Point(823.246, 750.918), 15);
+ connRef455->setDestEndpoint(dstPt455);
+ connRef455->setRoutingType((ConnType)2);
+
+ ConnRef *connRef456 = new ConnRef(router, 456);
+ ConnEnd srcPt456(Point(132, 195), 15);
+ connRef456->setSourceEndpoint(srcPt456);
+ ConnEnd dstPt456(Point(57.2456, 160.918), 15);
+ connRef456->setDestEndpoint(dstPt456);
+ connRef456->setRoutingType((ConnType)2);
+
+ ConnRef *connRef457 = new ConnRef(router, 457);
+ ConnEnd srcPt457(Point(132, 338), 15);
+ connRef457->setSourceEndpoint(srcPt457);
+ ConnEnd dstPt457(Point(57.2456, 332.918), 15);
+ connRef457->setDestEndpoint(dstPt457);
+ connRef457->setRoutingType((ConnType)2);
+
+ ConnRef *connRef458 = new ConnRef(router, 458);
+ ConnEnd srcPt458(Point(992, 319), 15);
+ connRef458->setSourceEndpoint(srcPt458);
+ ConnEnd dstPt458(Point(979.246, 332.918), 15);
+ connRef458->setDestEndpoint(dstPt458);
+ connRef458->setRoutingType((ConnType)2);
+
+ ConnRef *connRef459 = new ConnRef(router, 459);
+ ConnEnd srcPt459(Point(850, 319), 15);
+ connRef459->setSourceEndpoint(srcPt459);
+ ConnEnd dstPt459(Point(823.246, 332.918), 15);
+ connRef459->setDestEndpoint(dstPt459);
+ connRef459->setRoutingType((ConnType)2);
+
+ ConnRef *connRef460 = new ConnRef(router, 460);
+ ConnEnd srcPt460(Point(709, 319), 15);
+ connRef460->setSourceEndpoint(srcPt460);
+ ConnEnd dstPt460(Point(673.933, 332.918), 15);
+ connRef460->setDestEndpoint(dstPt460);
+ connRef460->setRoutingType((ConnType)2);
+
+ ConnRef *connRef461 = new ConnRef(router, 461);
+ ConnEnd srcPt461(Point(567, 319), 15);
+ connRef461->setSourceEndpoint(srcPt461);
+ ConnEnd dstPt461(Point(527.246, 332.918), 15);
+ connRef461->setDestEndpoint(dstPt461);
+ connRef461->setRoutingType((ConnType)2);
+
+ ConnRef *connRef462 = new ConnRef(router, 462);
+ ConnEnd srcPt462(Point(425, 319), 15);
+ connRef462->setSourceEndpoint(srcPt462);
+ ConnEnd dstPt462(Point(371.246, 332.918), 15);
+ connRef462->setDestEndpoint(dstPt462);
+ connRef462->setRoutingType((ConnType)2);
+
+ ConnRef *connRef463 = new ConnRef(router, 463);
+ ConnEnd srcPt463(Point(273, 309), 15);
+ connRef463->setSourceEndpoint(srcPt463);
+ ConnEnd dstPt463(Point(215.246, 332.918), 15);
+ connRef463->setDestEndpoint(dstPt463);
+ connRef463->setRoutingType((ConnType)2);
+
+ ConnRef *connRef464 = new ConnRef(router, 464);
+ ConnEnd srcPt464(Point(982, 687), 15);
+ connRef464->setSourceEndpoint(srcPt464);
+ ConnEnd dstPt464(Point(979.246, 750.918), 15);
+ connRef464->setDestEndpoint(dstPt464);
+ connRef464->setRoutingType((ConnType)2);
+
+ ConnRef *connRef465 = new ConnRef(router, 465);
+ ConnEnd srcPt465(Point(932, 668), 15);
+ connRef465->setSourceEndpoint(srcPt465);
+ ConnEnd dstPt465(Point(979.246, 750.918), 15);
+ connRef465->setDestEndpoint(dstPt465);
+ connRef465->setRoutingType((ConnType)2);
+
+ ConnRef *connRef466 = new ConnRef(router, 466);
+ ConnEnd srcPt466(Point(982, 577), 15);
+ connRef466->setSourceEndpoint(srcPt466);
+ ConnEnd dstPt466(Point(979.246, 676.918), 15);
+ connRef466->setDestEndpoint(dstPt466);
+ connRef466->setRoutingType((ConnType)2);
+
+ ConnRef *connRef467 = new ConnRef(router, 467);
+ ConnEnd srcPt467(Point(982, 557), 15);
+ connRef467->setSourceEndpoint(srcPt467);
+ ConnEnd dstPt467(Point(979.246, 558.918), 15);
+ connRef467->setDestEndpoint(dstPt467);
+ connRef467->setRoutingType((ConnType)2);
+
+ ConnRef *connRef468 = new ConnRef(router, 468);
+ ConnEnd srcPt468(Point(932, 596), 15);
+ connRef468->setSourceEndpoint(srcPt468);
+ ConnEnd dstPt468(Point(979.246, 676.918), 15);
+ connRef468->setDestEndpoint(dstPt468);
+ connRef468->setRoutingType((ConnType)2);
+
+ ConnRef *connRef469 = new ConnRef(router, 469);
+ ConnEnd srcPt469(Point(932, 576), 15);
+ connRef469->setSourceEndpoint(srcPt469);
+ ConnEnd dstPt469(Point(979.246, 558.918), 15);
+ connRef469->setDestEndpoint(dstPt469);
+ connRef469->setRoutingType((ConnType)2);
+
+ ConnRef *connRef470 = new ConnRef(router, 470);
+ ConnEnd srcPt470(Point(932, 577), 15);
+ connRef470->setSourceEndpoint(srcPt470);
+ ConnEnd dstPt470(Point(979.246, 676.918), 15);
+ connRef470->setDestEndpoint(dstPt470);
+ connRef470->setRoutingType((ConnType)2);
+
+ ConnRef *connRef471 = new ConnRef(router, 471);
+ ConnEnd srcPt471(Point(932, 557), 15);
+ connRef471->setSourceEndpoint(srcPt471);
+ ConnEnd dstPt471(Point(979.246, 558.918), 15);
+ connRef471->setDestEndpoint(dstPt471);
+ connRef471->setRoutingType((ConnType)2);
+
+ ConnRef *connRef472 = new ConnRef(router, 472);
+ ConnEnd srcPt472(Point(932, 505), 15);
+ connRef472->setSourceEndpoint(srcPt472);
+ ConnEnd dstPt472(Point(979.246, 558.918), 15);
+ connRef472->setDestEndpoint(dstPt472);
+ connRef472->setRoutingType((ConnType)2);
+
+ ConnRef *connRef473 = new ConnRef(router, 473);
+ ConnEnd srcPt473(Point(932, 485), 15);
+ connRef473->setSourceEndpoint(srcPt473);
+ ConnEnd dstPt473(Point(979.246, 447.955), 15);
+ connRef473->setDestEndpoint(dstPt473);
+ connRef473->setRoutingType((ConnType)2);
+
+ ConnRef *connRef474 = new ConnRef(router, 474);
+ ConnEnd srcPt474(Point(932, 486), 15);
+ connRef474->setSourceEndpoint(srcPt474);
+ ConnEnd dstPt474(Point(979.246, 558.918), 15);
+ connRef474->setDestEndpoint(dstPt474);
+ connRef474->setRoutingType((ConnType)2);
+
+ ConnRef *connRef475 = new ConnRef(router, 475);
+ ConnEnd srcPt475(Point(932, 466), 15);
+ connRef475->setSourceEndpoint(srcPt475);
+ ConnEnd dstPt475(Point(979.246, 447.955), 15);
+ connRef475->setDestEndpoint(dstPt475);
+ connRef475->setRoutingType((ConnType)2);
+
+ ConnRef *connRef476 = new ConnRef(router, 476);
+ ConnEnd srcPt476(Point(982, 414), 15);
+ connRef476->setSourceEndpoint(srcPt476);
+ ConnEnd dstPt476(Point(979.246, 447.955), 15);
+ connRef476->setDestEndpoint(dstPt476);
+ connRef476->setRoutingType((ConnType)2);
+
+ ConnRef *connRef477 = new ConnRef(router, 477);
+ ConnEnd srcPt477(Point(982, 394), 15);
+ connRef477->setSourceEndpoint(srcPt477);
+ ConnEnd dstPt477(Point(979.246, 332.918), 15);
+ connRef477->setDestEndpoint(dstPt477);
+ connRef477->setRoutingType((ConnType)2);
+
+ ConnRef *connRef478 = new ConnRef(router, 478);
+ ConnEnd srcPt478(Point(932, 414), 15);
+ connRef478->setSourceEndpoint(srcPt478);
+ ConnEnd dstPt478(Point(979.246, 447.955), 15);
+ connRef478->setDestEndpoint(dstPt478);
+ connRef478->setRoutingType((ConnType)2);
+
+ ConnRef *connRef479 = new ConnRef(router, 479);
+ ConnEnd srcPt479(Point(932, 394), 15);
+ connRef479->setSourceEndpoint(srcPt479);
+ ConnEnd dstPt479(Point(979.246, 332.918), 15);
+ connRef479->setDestEndpoint(dstPt479);
+ connRef479->setRoutingType((ConnType)2);
+
+ ConnRef *connRef480 = new ConnRef(router, 480);
+ ConnEnd srcPt480(Point(932, 395), 15);
+ connRef480->setSourceEndpoint(srcPt480);
+ ConnEnd dstPt480(Point(979.246, 447.955), 15);
+ connRef480->setDestEndpoint(dstPt480);
+ connRef480->setRoutingType((ConnType)2);
+
+ ConnRef *connRef481 = new ConnRef(router, 481);
+ ConnEnd srcPt481(Point(932, 375), 15);
+ connRef481->setSourceEndpoint(srcPt481);
+ ConnEnd dstPt481(Point(979.246, 332.918), 15);
+ connRef481->setDestEndpoint(dstPt481);
+ connRef481->setRoutingType((ConnType)2);
+
+ ConnRef *connRef482 = new ConnRef(router, 482);
+ ConnEnd srcPt482(Point(992, 300), 15);
+ connRef482->setSourceEndpoint(srcPt482);
+ ConnEnd dstPt482(Point(979.246, 332.918), 15);
+ connRef482->setDestEndpoint(dstPt482);
+ connRef482->setRoutingType((ConnType)2);
+
+ ConnRef *connRef483 = new ConnRef(router, 483);
+ ConnEnd srcPt483(Point(942, 309), 15);
+ connRef483->setSourceEndpoint(srcPt483);
+ ConnEnd dstPt483(Point(979.246, 332.918), 15);
+ connRef483->setDestEndpoint(dstPt483);
+ connRef483->setRoutingType((ConnType)2);
+
+ ConnRef *connRef484 = new ConnRef(router, 484);
+ ConnEnd srcPt484(Point(942, 290), 15);
+ connRef484->setSourceEndpoint(srcPt484);
+ ConnEnd dstPt484(Point(979.246, 332.918), 15);
+ connRef484->setDestEndpoint(dstPt484);
+ connRef484->setRoutingType((ConnType)2);
+
+ ConnRef *connRef485 = new ConnRef(router, 485);
+ ConnEnd srcPt485(Point(840, 557), 15);
+ connRef485->setSourceEndpoint(srcPt485);
+ ConnEnd dstPt485(Point(823.246, 558.918), 15);
+ connRef485->setDestEndpoint(dstPt485);
+ connRef485->setRoutingType((ConnType)2);
+
+ ConnRef *connRef486 = new ConnRef(router, 486);
+ ConnEnd srcPt486(Point(840, 577), 15);
+ connRef486->setSourceEndpoint(srcPt486);
+ ConnEnd dstPt486(Point(823.246, 676.918), 15);
+ connRef486->setDestEndpoint(dstPt486);
+ connRef486->setRoutingType((ConnType)2);
+
+ ConnRef *connRef487 = new ConnRef(router, 487);
+ ConnEnd srcPt487(Point(790, 576), 15);
+ connRef487->setSourceEndpoint(srcPt487);
+ ConnEnd dstPt487(Point(823.246, 558.918), 15);
+ connRef487->setDestEndpoint(dstPt487);
+ connRef487->setRoutingType((ConnType)2);
+
+ ConnRef *connRef488 = new ConnRef(router, 488);
+ ConnEnd srcPt488(Point(790, 596), 15);
+ connRef488->setSourceEndpoint(srcPt488);
+ ConnEnd dstPt488(Point(823.246, 676.918), 15);
+ connRef488->setDestEndpoint(dstPt488);
+ connRef488->setRoutingType((ConnType)2);
+
+ ConnRef *connRef489 = new ConnRef(router, 489);
+ ConnEnd srcPt489(Point(790, 557), 15);
+ connRef489->setSourceEndpoint(srcPt489);
+ ConnEnd dstPt489(Point(823.246, 558.918), 15);
+ connRef489->setDestEndpoint(dstPt489);
+ connRef489->setRoutingType((ConnType)2);
+
+ ConnRef *connRef490 = new ConnRef(router, 490);
+ ConnEnd srcPt490(Point(790, 577), 15);
+ connRef490->setSourceEndpoint(srcPt490);
+ ConnEnd dstPt490(Point(823.246, 676.918), 15);
+ connRef490->setDestEndpoint(dstPt490);
+ connRef490->setRoutingType((ConnType)2);
+
+ ConnRef *connRef491 = new ConnRef(router, 491);
+ ConnEnd srcPt491(Point(790, 485), 15);
+ connRef491->setSourceEndpoint(srcPt491);
+ ConnEnd dstPt491(Point(823.246, 447.955), 15);
+ connRef491->setDestEndpoint(dstPt491);
+ connRef491->setRoutingType((ConnType)2);
+
+ ConnRef *connRef492 = new ConnRef(router, 492);
+ ConnEnd srcPt492(Point(790, 505), 15);
+ connRef492->setSourceEndpoint(srcPt492);
+ ConnEnd dstPt492(Point(823.246, 558.918), 15);
+ connRef492->setDestEndpoint(dstPt492);
+ connRef492->setRoutingType((ConnType)2);
+
+ ConnRef *connRef493 = new ConnRef(router, 493);
+ ConnEnd srcPt493(Point(790, 466), 15);
+ connRef493->setSourceEndpoint(srcPt493);
+ ConnEnd dstPt493(Point(823.246, 447.955), 15);
+ connRef493->setDestEndpoint(dstPt493);
+ connRef493->setRoutingType((ConnType)2);
+
+ ConnRef *connRef494 = new ConnRef(router, 494);
+ ConnEnd srcPt494(Point(790, 486), 15);
+ connRef494->setSourceEndpoint(srcPt494);
+ ConnEnd dstPt494(Point(823.246, 558.918), 15);
+ connRef494->setDestEndpoint(dstPt494);
+ connRef494->setRoutingType((ConnType)2);
+
+ ConnRef *connRef495 = new ConnRef(router, 495);
+ ConnEnd srcPt495(Point(840, 394), 15);
+ connRef495->setSourceEndpoint(srcPt495);
+ ConnEnd dstPt495(Point(823.246, 332.918), 15);
+ connRef495->setDestEndpoint(dstPt495);
+ connRef495->setRoutingType((ConnType)2);
+
+ ConnRef *connRef496 = new ConnRef(router, 496);
+ ConnEnd srcPt496(Point(840, 414), 15);
+ connRef496->setSourceEndpoint(srcPt496);
+ ConnEnd dstPt496(Point(823.246, 447.955), 15);
+ connRef496->setDestEndpoint(dstPt496);
+ connRef496->setRoutingType((ConnType)2);
+
+ ConnRef *connRef497 = new ConnRef(router, 497);
+ ConnEnd srcPt497(Point(790, 394), 15);
+ connRef497->setSourceEndpoint(srcPt497);
+ ConnEnd dstPt497(Point(823.246, 332.918), 15);
+ connRef497->setDestEndpoint(dstPt497);
+ connRef497->setRoutingType((ConnType)2);
+
+ ConnRef *connRef498 = new ConnRef(router, 498);
+ ConnEnd srcPt498(Point(790, 414), 15);
+ connRef498->setSourceEndpoint(srcPt498);
+ ConnEnd dstPt498(Point(823.246, 447.955), 15);
+ connRef498->setDestEndpoint(dstPt498);
+ connRef498->setRoutingType((ConnType)2);
+
+ ConnRef *connRef499 = new ConnRef(router, 499);
+ ConnEnd srcPt499(Point(790, 375), 15);
+ connRef499->setSourceEndpoint(srcPt499);
+ ConnEnd dstPt499(Point(823.246, 332.918), 15);
+ connRef499->setDestEndpoint(dstPt499);
+ connRef499->setRoutingType((ConnType)2);
+
+ ConnRef *connRef500 = new ConnRef(router, 500);
+ ConnEnd srcPt500(Point(790, 395), 15);
+ connRef500->setSourceEndpoint(srcPt500);
+ ConnEnd dstPt500(Point(823.246, 447.955), 15);
+ connRef500->setDestEndpoint(dstPt500);
+ connRef500->setRoutingType((ConnType)2);
+
+ ConnRef *connRef501 = new ConnRef(router, 501);
+ ConnEnd srcPt501(Point(850, 300), 15);
+ connRef501->setSourceEndpoint(srcPt501);
+ ConnEnd dstPt501(Point(823.246, 332.918), 15);
+ connRef501->setDestEndpoint(dstPt501);
+ connRef501->setRoutingType((ConnType)2);
+
+ ConnRef *connRef502 = new ConnRef(router, 502);
+ ConnEnd srcPt502(Point(800, 309), 15);
+ connRef502->setSourceEndpoint(srcPt502);
+ ConnEnd dstPt502(Point(823.246, 332.918), 15);
+ connRef502->setDestEndpoint(dstPt502);
+ connRef502->setRoutingType((ConnType)2);
+
+ ConnRef *connRef503 = new ConnRef(router, 503);
+ ConnEnd srcPt503(Point(800, 290), 15);
+ connRef503->setSourceEndpoint(srcPt503);
+ ConnEnd dstPt503(Point(823.246, 332.918), 15);
+ connRef503->setDestEndpoint(dstPt503);
+ connRef503->setRoutingType((ConnType)2);
+
+ ConnRef *connRef504 = new ConnRef(router, 504);
+ ConnEnd srcPt504(Point(699, 577), 15);
+ connRef504->setSourceEndpoint(srcPt504);
+ ConnEnd dstPt504(Point(673.933, 676.918), 15);
+ connRef504->setDestEndpoint(dstPt504);
+ connRef504->setRoutingType((ConnType)2);
+
+ ConnRef *connRef505 = new ConnRef(router, 505);
+ ConnEnd srcPt505(Point(699, 557), 15);
+ connRef505->setSourceEndpoint(srcPt505);
+ ConnEnd dstPt505(Point(673.933, 558.918), 15);
+ connRef505->setDestEndpoint(dstPt505);
+ connRef505->setRoutingType((ConnType)2);
+
+ ConnRef *connRef506 = new ConnRef(router, 506);
+ ConnEnd srcPt506(Point(649, 596), 15);
+ connRef506->setSourceEndpoint(srcPt506);
+ ConnEnd dstPt506(Point(673.933, 676.918), 15);
+ connRef506->setDestEndpoint(dstPt506);
+ connRef506->setRoutingType((ConnType)2);
+
+ ConnRef *connRef507 = new ConnRef(router, 507);
+ ConnEnd srcPt507(Point(649, 576), 15);
+ connRef507->setSourceEndpoint(srcPt507);
+ ConnEnd dstPt507(Point(673.933, 558.918), 15);
+ connRef507->setDestEndpoint(dstPt507);
+ connRef507->setRoutingType((ConnType)2);
+
+ ConnRef *connRef508 = new ConnRef(router, 508);
+ ConnEnd srcPt508(Point(649, 577), 15);
+ connRef508->setSourceEndpoint(srcPt508);
+ ConnEnd dstPt508(Point(673.933, 676.918), 15);
+ connRef508->setDestEndpoint(dstPt508);
+ connRef508->setRoutingType((ConnType)2);
+
+ ConnRef *connRef509 = new ConnRef(router, 509);
+ ConnEnd srcPt509(Point(649, 557), 15);
+ connRef509->setSourceEndpoint(srcPt509);
+ ConnEnd dstPt509(Point(673.933, 558.918), 15);
+ connRef509->setDestEndpoint(dstPt509);
+ connRef509->setRoutingType((ConnType)2);
+
+ ConnRef *connRef510 = new ConnRef(router, 510);
+ ConnEnd srcPt510(Point(649, 505), 15);
+ connRef510->setSourceEndpoint(srcPt510);
+ ConnEnd dstPt510(Point(673.933, 558.918), 15);
+ connRef510->setDestEndpoint(dstPt510);
+ connRef510->setRoutingType((ConnType)2);
+
+ ConnRef *connRef511 = new ConnRef(router, 511);
+ ConnEnd srcPt511(Point(649, 485), 15);
+ connRef511->setSourceEndpoint(srcPt511);
+ ConnEnd dstPt511(Point(673.933, 447.955), 15);
+ connRef511->setDestEndpoint(dstPt511);
+ connRef511->setRoutingType((ConnType)2);
+
+ ConnRef *connRef512 = new ConnRef(router, 512);
+ ConnEnd srcPt512(Point(649, 486), 15);
+ connRef512->setSourceEndpoint(srcPt512);
+ ConnEnd dstPt512(Point(673.933, 558.918), 15);
+ connRef512->setDestEndpoint(dstPt512);
+ connRef512->setRoutingType((ConnType)2);
+
+ ConnRef *connRef513 = new ConnRef(router, 513);
+ ConnEnd srcPt513(Point(649, 466), 15);
+ connRef513->setSourceEndpoint(srcPt513);
+ ConnEnd dstPt513(Point(673.933, 447.955), 15);
+ connRef513->setDestEndpoint(dstPt513);
+ connRef513->setRoutingType((ConnType)2);
+
+ ConnRef *connRef514 = new ConnRef(router, 514);
+ ConnEnd srcPt514(Point(699, 414), 15);
+ connRef514->setSourceEndpoint(srcPt514);
+ ConnEnd dstPt514(Point(673.933, 447.955), 15);
+ connRef514->setDestEndpoint(dstPt514);
+ connRef514->setRoutingType((ConnType)2);
+
+ ConnRef *connRef515 = new ConnRef(router, 515);
+ ConnEnd srcPt515(Point(699, 394), 15);
+ connRef515->setSourceEndpoint(srcPt515);
+ ConnEnd dstPt515(Point(673.933, 332.918), 15);
+ connRef515->setDestEndpoint(dstPt515);
+ connRef515->setRoutingType((ConnType)2);
+
+ ConnRef *connRef516 = new ConnRef(router, 516);
+ ConnEnd srcPt516(Point(649, 414), 15);
+ connRef516->setSourceEndpoint(srcPt516);
+ ConnEnd dstPt516(Point(673.933, 447.955), 15);
+ connRef516->setDestEndpoint(dstPt516);
+ connRef516->setRoutingType((ConnType)2);
+
+ ConnRef *connRef517 = new ConnRef(router, 517);
+ ConnEnd srcPt517(Point(649, 394), 15);
+ connRef517->setSourceEndpoint(srcPt517);
+ ConnEnd dstPt517(Point(673.933, 332.918), 15);
+ connRef517->setDestEndpoint(dstPt517);
+ connRef517->setRoutingType((ConnType)2);
+
+ ConnRef *connRef518 = new ConnRef(router, 518);
+ ConnEnd srcPt518(Point(649, 395), 15);
+ connRef518->setSourceEndpoint(srcPt518);
+ ConnEnd dstPt518(Point(673.933, 447.955), 15);
+ connRef518->setDestEndpoint(dstPt518);
+ connRef518->setRoutingType((ConnType)2);
+
+ ConnRef *connRef519 = new ConnRef(router, 519);
+ ConnEnd srcPt519(Point(649, 375), 15);
+ connRef519->setSourceEndpoint(srcPt519);
+ ConnEnd dstPt519(Point(673.933, 332.918), 15);
+ connRef519->setDestEndpoint(dstPt519);
+ connRef519->setRoutingType((ConnType)2);
+
+ ConnRef *connRef520 = new ConnRef(router, 520);
+ ConnEnd srcPt520(Point(709, 300), 15);
+ connRef520->setSourceEndpoint(srcPt520);
+ ConnEnd dstPt520(Point(673.933, 332.918), 15);
+ connRef520->setDestEndpoint(dstPt520);
+ connRef520->setRoutingType((ConnType)2);
+
+ ConnRef *connRef521 = new ConnRef(router, 521);
+ ConnEnd srcPt521(Point(659, 309), 15);
+ connRef521->setSourceEndpoint(srcPt521);
+ ConnEnd dstPt521(Point(673.933, 332.918), 15);
+ connRef521->setDestEndpoint(dstPt521);
+ connRef521->setRoutingType((ConnType)2);
+
+ ConnRef *connRef522 = new ConnRef(router, 522);
+ ConnEnd srcPt522(Point(659, 290), 15);
+ connRef522->setSourceEndpoint(srcPt522);
+ ConnEnd dstPt522(Point(673.933, 332.918), 15);
+ connRef522->setDestEndpoint(dstPt522);
+ connRef522->setRoutingType((ConnType)2);
+
+ ConnRef *connRef523 = new ConnRef(router, 523);
+ ConnEnd srcPt523(Point(557, 557), 15);
+ connRef523->setSourceEndpoint(srcPt523);
+ ConnEnd dstPt523(Point(527.246, 558.918), 15);
+ connRef523->setDestEndpoint(dstPt523);
+ connRef523->setRoutingType((ConnType)2);
+
+ ConnRef *connRef524 = new ConnRef(router, 524);
+ ConnEnd srcPt524(Point(557, 577), 15);
+ connRef524->setSourceEndpoint(srcPt524);
+ ConnEnd dstPt524(Point(527.246, 676.918), 15);
+ connRef524->setDestEndpoint(dstPt524);
+ connRef524->setRoutingType((ConnType)2);
+
+ ConnRef *connRef525 = new ConnRef(router, 525);
+ ConnEnd srcPt525(Point(507, 576), 15);
+ connRef525->setSourceEndpoint(srcPt525);
+ ConnEnd dstPt525(Point(527.246, 558.918), 15);
+ connRef525->setDestEndpoint(dstPt525);
+ connRef525->setRoutingType((ConnType)2);
+
+ ConnRef *connRef526 = new ConnRef(router, 526);
+ ConnEnd srcPt526(Point(507, 596), 15);
+ connRef526->setSourceEndpoint(srcPt526);
+ ConnEnd dstPt526(Point(527.246, 676.918), 15);
+ connRef526->setDestEndpoint(dstPt526);
+ connRef526->setRoutingType((ConnType)2);
+
+ ConnRef *connRef527 = new ConnRef(router, 527);
+ ConnEnd srcPt527(Point(507, 557), 15);
+ connRef527->setSourceEndpoint(srcPt527);
+ ConnEnd dstPt527(Point(527.246, 558.918), 15);
+ connRef527->setDestEndpoint(dstPt527);
+ connRef527->setRoutingType((ConnType)2);
+
+ ConnRef *connRef528 = new ConnRef(router, 528);
+ ConnEnd srcPt528(Point(507, 577), 15);
+ connRef528->setSourceEndpoint(srcPt528);
+ ConnEnd dstPt528(Point(527.246, 676.918), 15);
+ connRef528->setDestEndpoint(dstPt528);
+ connRef528->setRoutingType((ConnType)2);
+
+ ConnRef *connRef529 = new ConnRef(router, 529);
+ ConnEnd srcPt529(Point(557, 477), 15);
+ connRef529->setSourceEndpoint(srcPt529);
+ ConnEnd dstPt529(Point(527.246, 447.955), 15);
+ connRef529->setDestEndpoint(dstPt529);
+ connRef529->setRoutingType((ConnType)2);
+
+ ConnRef *connRef530 = new ConnRef(router, 530);
+ ConnEnd srcPt530(Point(557, 497), 15);
+ connRef530->setSourceEndpoint(srcPt530);
+ ConnEnd dstPt530(Point(527.246, 558.918), 15);
+ connRef530->setDestEndpoint(dstPt530);
+ connRef530->setRoutingType((ConnType)2);
+
+ ConnRef *connRef531 = new ConnRef(router, 531);
+ ConnEnd srcPt531(Point(507, 485), 15);
+ connRef531->setSourceEndpoint(srcPt531);
+ ConnEnd dstPt531(Point(527.246, 447.955), 15);
+ connRef531->setDestEndpoint(dstPt531);
+ connRef531->setRoutingType((ConnType)2);
+
+ ConnRef *connRef532 = new ConnRef(router, 532);
+ ConnEnd srcPt532(Point(507, 505), 15);
+ connRef532->setSourceEndpoint(srcPt532);
+ ConnEnd dstPt532(Point(527.246, 558.918), 15);
+ connRef532->setDestEndpoint(dstPt532);
+ connRef532->setRoutingType((ConnType)2);
+
+ ConnRef *connRef533 = new ConnRef(router, 533);
+ ConnEnd srcPt533(Point(507, 466), 15);
+ connRef533->setSourceEndpoint(srcPt533);
+ ConnEnd dstPt533(Point(527.246, 447.955), 15);
+ connRef533->setDestEndpoint(dstPt533);
+ connRef533->setRoutingType((ConnType)2);
+
+ ConnRef *connRef534 = new ConnRef(router, 534);
+ ConnEnd srcPt534(Point(507, 486), 15);
+ connRef534->setSourceEndpoint(srcPt534);
+ ConnEnd dstPt534(Point(527.246, 558.918), 15);
+ connRef534->setDestEndpoint(dstPt534);
+ connRef534->setRoutingType((ConnType)2);
+
+ ConnRef *connRef535 = new ConnRef(router, 535);
+ ConnEnd srcPt535(Point(557, 394), 15);
+ connRef535->setSourceEndpoint(srcPt535);
+ ConnEnd dstPt535(Point(527.246, 332.918), 15);
+ connRef535->setDestEndpoint(dstPt535);
+ connRef535->setRoutingType((ConnType)2);
+
+ ConnRef *connRef536 = new ConnRef(router, 536);
+ ConnEnd srcPt536(Point(557, 414), 15);
+ connRef536->setSourceEndpoint(srcPt536);
+ ConnEnd dstPt536(Point(527.246, 447.955), 15);
+ connRef536->setDestEndpoint(dstPt536);
+ connRef536->setRoutingType((ConnType)2);
+
+ ConnRef *connRef537 = new ConnRef(router, 537);
+ ConnEnd srcPt537(Point(507, 394), 15);
+ connRef537->setSourceEndpoint(srcPt537);
+ ConnEnd dstPt537(Point(527.246, 332.918), 15);
+ connRef537->setDestEndpoint(dstPt537);
+ connRef537->setRoutingType((ConnType)2);
+
+ ConnRef *connRef538 = new ConnRef(router, 538);
+ ConnEnd srcPt538(Point(507, 414), 15);
+ connRef538->setSourceEndpoint(srcPt538);
+ ConnEnd dstPt538(Point(527.246, 447.955), 15);
+ connRef538->setDestEndpoint(dstPt538);
+ connRef538->setRoutingType((ConnType)2);
+
+ ConnRef *connRef539 = new ConnRef(router, 539);
+ ConnEnd srcPt539(Point(507, 375), 15);
+ connRef539->setSourceEndpoint(srcPt539);
+ ConnEnd dstPt539(Point(527.246, 332.918), 15);
+ connRef539->setDestEndpoint(dstPt539);
+ connRef539->setRoutingType((ConnType)2);
+
+ ConnRef *connRef540 = new ConnRef(router, 540);
+ ConnEnd srcPt540(Point(507, 395), 15);
+ connRef540->setSourceEndpoint(srcPt540);
+ ConnEnd dstPt540(Point(527.246, 447.955), 15);
+ connRef540->setDestEndpoint(dstPt540);
+ connRef540->setRoutingType((ConnType)2);
+
+ ConnRef *connRef541 = new ConnRef(router, 541);
+ ConnEnd srcPt541(Point(567, 300), 15);
+ connRef541->setSourceEndpoint(srcPt541);
+ ConnEnd dstPt541(Point(527.246, 332.918), 15);
+ connRef541->setDestEndpoint(dstPt541);
+ connRef541->setRoutingType((ConnType)2);
+
+ ConnRef *connRef542 = new ConnRef(router, 542);
+ ConnEnd srcPt542(Point(517, 309), 15);
+ connRef542->setSourceEndpoint(srcPt542);
+ ConnEnd dstPt542(Point(527.246, 332.918), 15);
+ connRef542->setDestEndpoint(dstPt542);
+ connRef542->setRoutingType((ConnType)2);
+
+ ConnRef *connRef543 = new ConnRef(router, 543);
+ ConnEnd srcPt543(Point(517, 290), 15);
+ connRef543->setSourceEndpoint(srcPt543);
+ ConnEnd dstPt543(Point(527.246, 332.918), 15);
+ connRef543->setDestEndpoint(dstPt543);
+ connRef543->setRoutingType((ConnType)2);
+
+ ConnRef *connRef544 = new ConnRef(router, 544);
+ ConnEnd srcPt544(Point(415, 577), 15);
+ connRef544->setSourceEndpoint(srcPt544);
+ ConnEnd dstPt544(Point(371.246, 676.918), 15);
+ connRef544->setDestEndpoint(dstPt544);
+ connRef544->setRoutingType((ConnType)2);
+
+ ConnRef *connRef545 = new ConnRef(router, 545);
+ ConnEnd srcPt545(Point(415, 557), 15);
+ connRef545->setSourceEndpoint(srcPt545);
+ ConnEnd dstPt545(Point(371.246, 558.918), 15);
+ connRef545->setDestEndpoint(dstPt545);
+ connRef545->setRoutingType((ConnType)2);
+
+ ConnRef *connRef546 = new ConnRef(router, 546);
+ ConnEnd srcPt546(Point(365, 596), 15);
+ connRef546->setSourceEndpoint(srcPt546);
+ ConnEnd dstPt546(Point(371.246, 676.918), 15);
+ connRef546->setDestEndpoint(dstPt546);
+ connRef546->setRoutingType((ConnType)2);
+
+ ConnRef *connRef547 = new ConnRef(router, 547);
+ ConnEnd srcPt547(Point(365, 576), 15);
+ connRef547->setSourceEndpoint(srcPt547);
+ ConnEnd dstPt547(Point(371.246, 558.918), 15);
+ connRef547->setDestEndpoint(dstPt547);
+ connRef547->setRoutingType((ConnType)2);
+
+ ConnRef *connRef548 = new ConnRef(router, 548);
+ ConnEnd srcPt548(Point(365, 577), 15);
+ connRef548->setSourceEndpoint(srcPt548);
+ ConnEnd dstPt548(Point(371.246, 676.918), 15);
+ connRef548->setDestEndpoint(dstPt548);
+ connRef548->setRoutingType((ConnType)2);
+
+ ConnRef *connRef549 = new ConnRef(router, 549);
+ ConnEnd srcPt549(Point(365, 557), 15);
+ connRef549->setSourceEndpoint(srcPt549);
+ ConnEnd dstPt549(Point(371.246, 558.918), 15);
+ connRef549->setDestEndpoint(dstPt549);
+ connRef549->setRoutingType((ConnType)2);
+
+ ConnRef *connRef550 = new ConnRef(router, 550);
+ ConnEnd srcPt550(Point(365, 505), 15);
+ connRef550->setSourceEndpoint(srcPt550);
+ ConnEnd dstPt550(Point(371.246, 558.918), 15);
+ connRef550->setDestEndpoint(dstPt550);
+ connRef550->setRoutingType((ConnType)2);
+
+ ConnRef *connRef551 = new ConnRef(router, 551);
+ ConnEnd srcPt551(Point(365, 485), 15);
+ connRef551->setSourceEndpoint(srcPt551);
+ ConnEnd dstPt551(Point(371.246, 447.955), 15);
+ connRef551->setDestEndpoint(dstPt551);
+ connRef551->setRoutingType((ConnType)2);
+
+ ConnRef *connRef552 = new ConnRef(router, 552);
+ ConnEnd srcPt552(Point(365, 486), 15);
+ connRef552->setSourceEndpoint(srcPt552);
+ ConnEnd dstPt552(Point(371.246, 558.918), 15);
+ connRef552->setDestEndpoint(dstPt552);
+ connRef552->setRoutingType((ConnType)2);
+
+ ConnRef *connRef553 = new ConnRef(router, 553);
+ ConnEnd srcPt553(Point(365, 466), 15);
+ connRef553->setSourceEndpoint(srcPt553);
+ ConnEnd dstPt553(Point(371.246, 447.955), 15);
+ connRef553->setDestEndpoint(dstPt553);
+ connRef553->setRoutingType((ConnType)2);
+
+ ConnRef *connRef554 = new ConnRef(router, 554);
+ ConnEnd srcPt554(Point(415, 414), 15);
+ connRef554->setSourceEndpoint(srcPt554);
+ ConnEnd dstPt554(Point(371.246, 447.955), 15);
+ connRef554->setDestEndpoint(dstPt554);
+ connRef554->setRoutingType((ConnType)2);
+
+ ConnRef *connRef555 = new ConnRef(router, 555);
+ ConnEnd srcPt555(Point(415, 394), 15);
+ connRef555->setSourceEndpoint(srcPt555);
+ ConnEnd dstPt555(Point(371.246, 332.918), 15);
+ connRef555->setDestEndpoint(dstPt555);
+ connRef555->setRoutingType((ConnType)2);
+
+ ConnRef *connRef556 = new ConnRef(router, 556);
+ ConnEnd srcPt556(Point(365, 414), 15);
+ connRef556->setSourceEndpoint(srcPt556);
+ ConnEnd dstPt556(Point(371.246, 447.955), 15);
+ connRef556->setDestEndpoint(dstPt556);
+ connRef556->setRoutingType((ConnType)2);
+
+ ConnRef *connRef557 = new ConnRef(router, 557);
+ ConnEnd srcPt557(Point(365, 394), 15);
+ connRef557->setSourceEndpoint(srcPt557);
+ ConnEnd dstPt557(Point(371.246, 332.918), 15);
+ connRef557->setDestEndpoint(dstPt557);
+ connRef557->setRoutingType((ConnType)2);
+
+ ConnRef *connRef558 = new ConnRef(router, 558);
+ ConnEnd srcPt558(Point(365, 395), 15);
+ connRef558->setSourceEndpoint(srcPt558);
+ ConnEnd dstPt558(Point(371.246, 447.955), 15);
+ connRef558->setDestEndpoint(dstPt558);
+ connRef558->setRoutingType((ConnType)2);
+
+ ConnRef *connRef559 = new ConnRef(router, 559);
+ ConnEnd srcPt559(Point(365, 375), 15);
+ connRef559->setSourceEndpoint(srcPt559);
+ ConnEnd dstPt559(Point(371.246, 332.918), 15);
+ connRef559->setDestEndpoint(dstPt559);
+ connRef559->setRoutingType((ConnType)2);
+
+ ConnRef *connRef560 = new ConnRef(router, 560);
+ ConnEnd srcPt560(Point(425, 300), 15);
+ connRef560->setSourceEndpoint(srcPt560);
+ ConnEnd dstPt560(Point(371.246, 332.918), 15);
+ connRef560->setDestEndpoint(dstPt560);
+ connRef560->setRoutingType((ConnType)2);
+
+ ConnRef *connRef561 = new ConnRef(router, 561);
+ ConnEnd srcPt561(Point(375, 309), 15);
+ connRef561->setSourceEndpoint(srcPt561);
+ ConnEnd dstPt561(Point(371.246, 332.918), 15);
+ connRef561->setDestEndpoint(dstPt561);
+ connRef561->setRoutingType((ConnType)2);
+
+ ConnRef *connRef562 = new ConnRef(router, 562);
+ ConnEnd srcPt562(Point(375, 290), 15);
+ connRef562->setSourceEndpoint(srcPt562);
+ ConnEnd dstPt562(Point(371.246, 332.918), 15);
+ connRef562->setDestEndpoint(dstPt562);
+ connRef562->setRoutingType((ConnType)2);
+
+ ConnRef *connRef563 = new ConnRef(router, 563);
+ ConnEnd srcPt563(Point(273, 557), 15);
+ connRef563->setSourceEndpoint(srcPt563);
+ ConnEnd dstPt563(Point(215.246, 558.918), 15);
+ connRef563->setDestEndpoint(dstPt563);
+ connRef563->setRoutingType((ConnType)2);
+
+ ConnRef *connRef564 = new ConnRef(router, 564);
+ ConnEnd srcPt564(Point(273, 577), 15);
+ connRef564->setSourceEndpoint(srcPt564);
+ ConnEnd dstPt564(Point(215.246, 676.918), 15);
+ connRef564->setDestEndpoint(dstPt564);
+ connRef564->setRoutingType((ConnType)2);
+
+ ConnRef *connRef565 = new ConnRef(router, 565);
+ ConnEnd srcPt565(Point(223, 576), 15);
+ connRef565->setSourceEndpoint(srcPt565);
+ ConnEnd dstPt565(Point(215.246, 558.918), 15);
+ connRef565->setDestEndpoint(dstPt565);
+ connRef565->setRoutingType((ConnType)2);
+
+ ConnRef *connRef566 = new ConnRef(router, 566);
+ ConnEnd srcPt566(Point(223, 596), 15);
+ connRef566->setSourceEndpoint(srcPt566);
+ ConnEnd dstPt566(Point(215.246, 676.918), 15);
+ connRef566->setDestEndpoint(dstPt566);
+ connRef566->setRoutingType((ConnType)2);
+
+ ConnRef *connRef567 = new ConnRef(router, 567);
+ ConnEnd srcPt567(Point(223, 557), 15);
+ connRef567->setSourceEndpoint(srcPt567);
+ ConnEnd dstPt567(Point(215.246, 558.918), 15);
+ connRef567->setDestEndpoint(dstPt567);
+ connRef567->setRoutingType((ConnType)2);
+
+ ConnRef *connRef568 = new ConnRef(router, 568);
+ ConnEnd srcPt568(Point(223, 577), 15);
+ connRef568->setSourceEndpoint(srcPt568);
+ ConnEnd dstPt568(Point(215.246, 676.918), 15);
+ connRef568->setDestEndpoint(dstPt568);
+ connRef568->setRoutingType((ConnType)2);
+
+ ConnRef *connRef569 = new ConnRef(router, 569);
+ ConnEnd srcPt569(Point(223, 485), 15);
+ connRef569->setSourceEndpoint(srcPt569);
+ ConnEnd dstPt569(Point(215.246, 447.955), 15);
+ connRef569->setDestEndpoint(dstPt569);
+ connRef569->setRoutingType((ConnType)2);
+
+ ConnRef *connRef570 = new ConnRef(router, 570);
+ ConnEnd srcPt570(Point(223, 505), 15);
+ connRef570->setSourceEndpoint(srcPt570);
+ ConnEnd dstPt570(Point(215.246, 558.918), 15);
+ connRef570->setDestEndpoint(dstPt570);
+ connRef570->setRoutingType((ConnType)2);
+
+ ConnRef *connRef571 = new ConnRef(router, 571);
+ ConnEnd srcPt571(Point(223, 466), 15);
+ connRef571->setSourceEndpoint(srcPt571);
+ ConnEnd dstPt571(Point(215.246, 447.955), 15);
+ connRef571->setDestEndpoint(dstPt571);
+ connRef571->setRoutingType((ConnType)2);
+
+ ConnRef *connRef572 = new ConnRef(router, 572);
+ ConnEnd srcPt572(Point(223, 486), 15);
+ connRef572->setSourceEndpoint(srcPt572);
+ ConnEnd dstPt572(Point(215.246, 558.918), 15);
+ connRef572->setDestEndpoint(dstPt572);
+ connRef572->setRoutingType((ConnType)2);
+
+ ConnRef *connRef573 = new ConnRef(router, 573);
+ ConnEnd srcPt573(Point(273, 394), 15);
+ connRef573->setSourceEndpoint(srcPt573);
+ ConnEnd dstPt573(Point(215.246, 332.918), 15);
+ connRef573->setDestEndpoint(dstPt573);
+ connRef573->setRoutingType((ConnType)2);
+
+ ConnRef *connRef574 = new ConnRef(router, 574);
+ ConnEnd srcPt574(Point(273, 414), 15);
+ connRef574->setSourceEndpoint(srcPt574);
+ ConnEnd dstPt574(Point(215.246, 447.955), 15);
+ connRef574->setDestEndpoint(dstPt574);
+ connRef574->setRoutingType((ConnType)2);
+
+ ConnRef *connRef575 = new ConnRef(router, 575);
+ ConnEnd srcPt575(Point(223, 394), 15);
+ connRef575->setSourceEndpoint(srcPt575);
+ ConnEnd dstPt575(Point(215.246, 332.918), 15);
+ connRef575->setDestEndpoint(dstPt575);
+ connRef575->setRoutingType((ConnType)2);
+
+ ConnRef *connRef576 = new ConnRef(router, 576);
+ ConnEnd srcPt576(Point(223, 414), 15);
+ connRef576->setSourceEndpoint(srcPt576);
+ ConnEnd dstPt576(Point(215.246, 447.955), 15);
+ connRef576->setDestEndpoint(dstPt576);
+ connRef576->setRoutingType((ConnType)2);
+
+ ConnRef *connRef577 = new ConnRef(router, 577);
+ ConnEnd srcPt577(Point(223, 375), 15);
+ connRef577->setSourceEndpoint(srcPt577);
+ ConnEnd dstPt577(Point(215.246, 332.918), 15);
+ connRef577->setDestEndpoint(dstPt577);
+ connRef577->setRoutingType((ConnType)2);
+
+ ConnRef *connRef578 = new ConnRef(router, 578);
+ ConnEnd srcPt578(Point(223, 395), 15);
+ connRef578->setSourceEndpoint(srcPt578);
+ ConnEnd dstPt578(Point(215.246, 447.955), 15);
+ connRef578->setDestEndpoint(dstPt578);
+ connRef578->setRoutingType((ConnType)2);
+
+ ConnRef *connRef579 = new ConnRef(router, 579);
+ ConnEnd srcPt579(Point(273, 290), 15);
+ connRef579->setSourceEndpoint(srcPt579);
+ ConnEnd dstPt579(Point(215.246, 332.918), 15);
+ connRef579->setDestEndpoint(dstPt579);
+ connRef579->setRoutingType((ConnType)2);
+
+ ConnRef *connRef580 = new ConnRef(router, 580);
+ ConnEnd srcPt580(Point(233, 290), 15);
+ connRef580->setSourceEndpoint(srcPt580);
+ ConnEnd dstPt580(Point(215.246, 332.918), 15);
+ connRef580->setDestEndpoint(dstPt580);
+ connRef580->setRoutingType((ConnType)2);
+
+ ConnRef *connRef581 = new ConnRef(router, 581);
+ ConnEnd srcPt581(Point(233, 309), 15);
+ connRef581->setSourceEndpoint(srcPt581);
+ ConnEnd dstPt581(Point(215.246, 332.918), 15);
+ connRef581->setDestEndpoint(dstPt581);
+ connRef581->setRoutingType((ConnType)2);
+
+ ConnRef *connRef582 = new ConnRef(router, 582);
+ ConnEnd srcPt582(Point(132, 557), 15);
+ connRef582->setSourceEndpoint(srcPt582);
+ ConnEnd dstPt582(Point(57.2456, 558.918), 15);
+ connRef582->setDestEndpoint(dstPt582);
+ connRef582->setRoutingType((ConnType)2);
+
+ ConnRef *connRef583 = new ConnRef(router, 583);
+ ConnEnd srcPt583(Point(132, 577), 15);
+ connRef583->setSourceEndpoint(srcPt583);
+ ConnEnd dstPt583(Point(57.2456, 676.918), 15);
+ connRef583->setDestEndpoint(dstPt583);
+ connRef583->setRoutingType((ConnType)2);
+
+ ConnRef *connRef584 = new ConnRef(router, 584);
+ ConnEnd srcPt584(Point(82, 576), 15);
+ connRef584->setSourceEndpoint(srcPt584);
+ ConnEnd dstPt584(Point(57.2456, 558.918), 15);
+ connRef584->setDestEndpoint(dstPt584);
+ connRef584->setRoutingType((ConnType)2);
+
+ ConnRef *connRef585 = new ConnRef(router, 585);
+ ConnEnd srcPt585(Point(82, 596), 15);
+ connRef585->setSourceEndpoint(srcPt585);
+ ConnEnd dstPt585(Point(57.2456, 676.918), 15);
+ connRef585->setDestEndpoint(dstPt585);
+ connRef585->setRoutingType((ConnType)2);
+
+ ConnRef *connRef586 = new ConnRef(router, 586);
+ ConnEnd srcPt586(Point(82, 557), 15);
+ connRef586->setSourceEndpoint(srcPt586);
+ ConnEnd dstPt586(Point(57.2456, 558.918), 15);
+ connRef586->setDestEndpoint(dstPt586);
+ connRef586->setRoutingType((ConnType)2);
+
+ ConnRef *connRef587 = new ConnRef(router, 587);
+ ConnEnd srcPt587(Point(82, 577), 15);
+ connRef587->setSourceEndpoint(srcPt587);
+ ConnEnd dstPt587(Point(57.2456, 676.918), 15);
+ connRef587->setDestEndpoint(dstPt587);
+ connRef587->setRoutingType((ConnType)2);
+
+ ConnRef *connRef588 = new ConnRef(router, 588);
+ ConnEnd srcPt588(Point(82, 485), 15);
+ connRef588->setSourceEndpoint(srcPt588);
+ ConnEnd dstPt588(Point(57.2456, 447.955), 15);
+ connRef588->setDestEndpoint(dstPt588);
+ connRef588->setRoutingType((ConnType)2);
+
+ ConnRef *connRef589 = new ConnRef(router, 589);
+ ConnEnd srcPt589(Point(82, 505), 15);
+ connRef589->setSourceEndpoint(srcPt589);
+ ConnEnd dstPt589(Point(57.2456, 558.918), 15);
+ connRef589->setDestEndpoint(dstPt589);
+ connRef589->setRoutingType((ConnType)2);
+
+ ConnRef *connRef590 = new ConnRef(router, 590);
+ ConnEnd srcPt590(Point(82, 466), 15);
+ connRef590->setSourceEndpoint(srcPt590);
+ ConnEnd dstPt590(Point(57.2456, 447.955), 15);
+ connRef590->setDestEndpoint(dstPt590);
+ connRef590->setRoutingType((ConnType)2);
+
+ ConnRef *connRef591 = new ConnRef(router, 591);
+ ConnEnd srcPt591(Point(82, 486), 15);
+ connRef591->setSourceEndpoint(srcPt591);
+ ConnEnd dstPt591(Point(57.2456, 558.918), 15);
+ connRef591->setDestEndpoint(dstPt591);
+ connRef591->setRoutingType((ConnType)2);
+
+ ConnRef *connRef592 = new ConnRef(router, 592);
+ ConnEnd srcPt592(Point(132, 394), 15);
+ connRef592->setSourceEndpoint(srcPt592);
+ ConnEnd dstPt592(Point(57.2456, 332.918), 15);
+ connRef592->setDestEndpoint(dstPt592);
+ connRef592->setRoutingType((ConnType)2);
+
+ ConnRef *connRef593 = new ConnRef(router, 593);
+ ConnEnd srcPt593(Point(132, 414), 15);
+ connRef593->setSourceEndpoint(srcPt593);
+ ConnEnd dstPt593(Point(57.2456, 447.955), 15);
+ connRef593->setDestEndpoint(dstPt593);
+ connRef593->setRoutingType((ConnType)2);
+
+ ConnRef *connRef594 = new ConnRef(router, 594);
+ ConnEnd srcPt594(Point(82, 394), 15);
+ connRef594->setSourceEndpoint(srcPt594);
+ ConnEnd dstPt594(Point(57.2456, 332.918), 15);
+ connRef594->setDestEndpoint(dstPt594);
+ connRef594->setRoutingType((ConnType)2);
+
+ ConnRef *connRef595 = new ConnRef(router, 595);
+ ConnEnd srcPt595(Point(82, 414), 15);
+ connRef595->setSourceEndpoint(srcPt595);
+ ConnEnd dstPt595(Point(57.2456, 447.955), 15);
+ connRef595->setDestEndpoint(dstPt595);
+ connRef595->setRoutingType((ConnType)2);
+
+ ConnRef *connRef596 = new ConnRef(router, 596);
+ ConnEnd srcPt596(Point(82, 375), 15);
+ connRef596->setSourceEndpoint(srcPt596);
+ ConnEnd dstPt596(Point(57.2456, 332.918), 15);
+ connRef596->setDestEndpoint(dstPt596);
+ connRef596->setRoutingType((ConnType)2);
+
+ ConnRef *connRef597 = new ConnRef(router, 597);
+ ConnEnd srcPt597(Point(82, 395), 15);
+ connRef597->setSourceEndpoint(srcPt597);
+ ConnEnd dstPt597(Point(57.2456, 447.955), 15);
+ connRef597->setDestEndpoint(dstPt597);
+ connRef597->setRoutingType((ConnType)2);
+
+ ConnRef *connRef598 = new ConnRef(router, 598);
+ ConnEnd srcPt598(Point(72, 309), 15);
+ connRef598->setSourceEndpoint(srcPt598);
+ ConnEnd dstPt598(Point(57.2456, 332.918), 15);
+ connRef598->setDestEndpoint(dstPt598);
+ connRef598->setRoutingType((ConnType)2);
+
+ ConnRef *connRef599 = new ConnRef(router, 599);
+ ConnEnd srcPt599(Point(72, 290), 15);
+ connRef599->setSourceEndpoint(srcPt599);
+ ConnEnd dstPt599(Point(57.2456, 332.918), 15);
+ connRef599->setDestEndpoint(dstPt599);
+ connRef599->setRoutingType((ConnType)2);
+
+ ConnRef *connRef600 = new ConnRef(router, 600);
+ ConnEnd srcPt600(Point(245, 207), 15);
+ connRef600->setSourceEndpoint(srcPt600);
+ ConnEnd dstPt600(Point(197.246, 96.9179), 15);
+ connRef600->setDestEndpoint(dstPt600);
+ connRef600->setRoutingType((ConnType)2);
+
+ ConnRef *connRef601 = new ConnRef(router, 601);
+ ConnEnd srcPt601(Point(245, 227), 15);
+ connRef601->setSourceEndpoint(srcPt601);
+ ConnEnd dstPt601(Point(197.246, 160.918), 15);
+ connRef601->setDestEndpoint(dstPt601);
+ connRef601->setRoutingType((ConnType)2);
+
+ ConnRef *connRef602 = new ConnRef(router, 602);
+ ConnEnd srcPt602(Point(195, 217), 15);
+ connRef602->setSourceEndpoint(srcPt602);
+ ConnEnd dstPt602(Point(197.246, 96.9179), 15);
+ connRef602->setDestEndpoint(dstPt602);
+ connRef602->setRoutingType((ConnType)2);
+
+ ConnRef *connRef603 = new ConnRef(router, 603);
+ ConnEnd srcPt603(Point(195, 237), 15);
+ connRef603->setSourceEndpoint(srcPt603);
+ ConnEnd dstPt603(Point(197.246, 160.918), 15);
+ connRef603->setDestEndpoint(dstPt603);
+ connRef603->setRoutingType((ConnType)2);
+
+ ConnRef *connRef604 = new ConnRef(router, 604);
+ ConnEnd srcPt604(Point(195, 198), 15);
+ connRef604->setSourceEndpoint(srcPt604);
+ ConnEnd dstPt604(Point(197.246, 96.9179), 15);
+ connRef604->setDestEndpoint(dstPt604);
+ connRef604->setRoutingType((ConnType)2);
+
+ ConnRef *connRef605 = new ConnRef(router, 605);
+ ConnEnd srcPt605(Point(195, 218), 15);
+ connRef605->setSourceEndpoint(srcPt605);
+ ConnEnd dstPt605(Point(197.246, 160.918), 15);
+ connRef605->setDestEndpoint(dstPt605);
+ connRef605->setRoutingType((ConnType)2);
+
+ ConnRef *connRef606 = new ConnRef(router, 606);
+ ConnEnd srcPt606(Point(82, 214), 15);
+ connRef606->setSourceEndpoint(srcPt606);
+ ConnEnd dstPt606(Point(57.2456, 160.918), 15);
+ connRef606->setDestEndpoint(dstPt606);
+ connRef606->setRoutingType((ConnType)2);
+
+ ConnRef *connRef607 = new ConnRef(router, 607);
+ ConnEnd srcPt607(Point(82, 195), 15);
+ connRef607->setSourceEndpoint(srcPt607);
+ ConnEnd dstPt607(Point(57.2456, 160.918), 15);
+ connRef607->setDestEndpoint(dstPt607);
+ connRef607->setRoutingType((ConnType)2);
+
+ ConnRef *connRef608 = new ConnRef(router, 608);
+ ConnEnd srcPt608(Point(82, 176), 15);
+ connRef608->setSourceEndpoint(srcPt608);
+ ConnEnd dstPt608(Point(57.2456, 160.918), 15);
+ connRef608->setDestEndpoint(dstPt608);
+ connRef608->setRoutingType((ConnType)2);
+
+ ConnRef *connRef609 = new ConnRef(router, 609);
+ ConnEnd srcPt609(Point(319, 135), 15);
+ connRef609->setSourceEndpoint(srcPt609);
+ ConnEnd dstPt609(Point(319.219, -51.0821), 15);
+ connRef609->setDestEndpoint(dstPt609);
+ connRef609->setRoutingType((ConnType)2);
+
+ ConnRef *connRef610 = new ConnRef(router, 610);
+ ConnEnd srcPt610(Point(220, 135), 15);
+ connRef610->setSourceEndpoint(srcPt610);
+ ConnEnd dstPt610(Point(57.2456, 125.987), 15);
+ connRef610->setDestEndpoint(dstPt610);
+ connRef610->setRoutingType((ConnType)2);
+
+ ConnRef *connRef611 = new ConnRef(router, 611);
+ ConnEnd srcPt611(Point(220, 155), 15);
+ connRef611->setSourceEndpoint(srcPt611);
+ ConnEnd dstPt611(Point(319.219, -7.08205), 15);
+ connRef611->setDestEndpoint(dstPt611);
+ connRef611->setRoutingType((ConnType)2);
+
+ ConnRef *connRef612 = new ConnRef(router, 612);
+ ConnEnd srcPt612(Point(220, 155), 15);
+ connRef612->setSourceEndpoint(srcPt612);
+ ConnEnd dstPt612(Point(197.246, 96.9179), 15);
+ connRef612->setDestEndpoint(dstPt612);
+ connRef612->setRoutingType((ConnType)2);
+
+ ConnRef *connRef613 = new ConnRef(router, 613);
+ ConnEnd srcPt613(Point(220, 135), 15);
+ connRef613->setSourceEndpoint(srcPt613);
+ ConnEnd dstPt613(Point(319.219, -51.0821), 15);
+ connRef613->setDestEndpoint(dstPt613);
+ connRef613->setRoutingType((ConnType)2);
+
+ ConnRef *connRef614 = new ConnRef(router, 614);
+ ConnEnd srcPt614(Point(197.246, 160.918), 15);
+ connRef614->setSourceEndpoint(srcPt614);
+ ConnEnd dstPt614(Point(82, 318), 15);
+ connRef614->setDestEndpoint(dstPt614);
+ connRef614->setRoutingType((ConnType)2);
+
+ ConnRef *connRef615 = new ConnRef(router, 615);
+ ConnEnd srcPt615(Point(197.246, 160.918), 15);
+ connRef615->setSourceEndpoint(srcPt615);
+ ConnEnd dstPt615(Point(213, 328), 15);
+ connRef615->setDestEndpoint(dstPt615);
+ connRef615->setRoutingType((ConnType)2);
+
+ ConnRef *connRef616 = new ConnRef(router, 616);
+ ConnEnd srcPt616(Point(197.246, 160.918), 15);
+ connRef616->setSourceEndpoint(srcPt616);
+ ConnEnd dstPt616(Point(355, 328), 15);
+ connRef616->setDestEndpoint(dstPt616);
+ connRef616->setRoutingType((ConnType)2);
+
+ ConnRef *connRef617 = new ConnRef(router, 617);
+ ConnEnd srcPt617(Point(197.246, 160.918), 15);
+ connRef617->setSourceEndpoint(srcPt617);
+ ConnEnd dstPt617(Point(497, 328), 15);
+ connRef617->setDestEndpoint(dstPt617);
+ connRef617->setRoutingType((ConnType)2);
+
+ ConnRef *connRef618 = new ConnRef(router, 618);
+ ConnEnd srcPt618(Point(197.246, 160.918), 15);
+ connRef618->setSourceEndpoint(srcPt618);
+ ConnEnd dstPt618(Point(639, 328), 15);
+ connRef618->setDestEndpoint(dstPt618);
+ connRef618->setRoutingType((ConnType)2);
+
+ ConnRef *connRef619 = new ConnRef(router, 619);
+ ConnEnd srcPt619(Point(197.246, 160.918), 15);
+ connRef619->setSourceEndpoint(srcPt619);
+ ConnEnd dstPt619(Point(780, 328), 15);
+ connRef619->setDestEndpoint(dstPt619);
+ connRef619->setRoutingType((ConnType)2);
+
+ ConnRef *connRef620 = new ConnRef(router, 620);
+ ConnEnd srcPt620(Point(197.246, 160.918), 15);
+ connRef620->setSourceEndpoint(srcPt620);
+ ConnEnd dstPt620(Point(922, 328), 15);
+ connRef620->setDestEndpoint(dstPt620);
+ connRef620->setRoutingType((ConnType)2);
+
+ ConnRef *connRef621 = new ConnRef(router, 621);
+ ConnEnd srcPt621(Point(1149, 309), 15);
+ connRef621->setSourceEndpoint(srcPt621);
+ ConnEnd dstPt621(Point(197.246, 160.918), 15);
+ connRef621->setDestEndpoint(dstPt621);
+ connRef621->setRoutingType((ConnType)2);
+
+ ConnRef *connRef622 = new ConnRef(router, 622);
+ ConnEnd srcPt622(Point(1199, 300), 15);
+ connRef622->setSourceEndpoint(srcPt622);
+ ConnEnd dstPt622(Point(197.246, 160.918), 15);
+ connRef622->setDestEndpoint(dstPt622);
+ connRef622->setRoutingType((ConnType)2);
+
+ ConnRef *connRef623 = new ConnRef(router, 623);
+ ConnEnd srcPt623(Point(197.246, 160.918), 15);
+ connRef623->setSourceEndpoint(srcPt623);
+ ConnEnd dstPt623(Point(132, 280), 15);
+ connRef623->setDestEndpoint(dstPt623);
+ connRef623->setRoutingType((ConnType)2);
+
+ ConnRef *connRef624 = new ConnRef(router, 624);
+ ConnEnd srcPt624(Point(197.246, 160.918), 15);
+ connRef624->setSourceEndpoint(srcPt624);
+ ConnEnd dstPt624(Point(132, 299), 15);
+ connRef624->setDestEndpoint(dstPt624);
+ connRef624->setRoutingType((ConnType)2);
+
+ ConnRef *connRef625 = new ConnRef(router, 625);
+ ConnEnd srcPt625(Point(57.2456, 160.918), 15);
+ connRef625->setSourceEndpoint(srcPt625);
+ ConnEnd dstPt625(Point(82, 318), 15);
+ connRef625->setDestEndpoint(dstPt625);
+ connRef625->setRoutingType((ConnType)2);
+
+ ConnRef *connRef626 = new ConnRef(router, 626);
+ ConnEnd srcPt626(Point(57.2456, 160.918), 15);
+ connRef626->setSourceEndpoint(srcPt626);
+ ConnEnd dstPt626(Point(132, 280), 15);
+ connRef626->setDestEndpoint(dstPt626);
+ connRef626->setRoutingType((ConnType)2);
+
+ ConnRef *connRef627 = new ConnRef(router, 627);
+ ConnEnd srcPt627(Point(57.2456, 160.918), 15);
+ connRef627->setSourceEndpoint(srcPt627);
+ ConnEnd dstPt627(Point(132, 299), 15);
+ connRef627->setDestEndpoint(dstPt627);
+ connRef627->setRoutingType((ConnType)2);
+
+ ConnRef *connRef628 = new ConnRef(router, 628);
+ ConnEnd srcPt628(Point(72, 423), 15);
+ connRef628->setSourceEndpoint(srcPt628);
+ ConnEnd dstPt628(Point(57.2456, 332.918), 15);
+ connRef628->setDestEndpoint(dstPt628);
+ connRef628->setRoutingType((ConnType)2);
+
+ ConnRef *connRef629 = new ConnRef(router, 629);
+ ConnEnd srcPt629(Point(92, 423), 15);
+ connRef629->setSourceEndpoint(srcPt629);
+ ConnEnd dstPt629(Point(57.2456, 447.955), 15);
+ connRef629->setDestEndpoint(dstPt629);
+ connRef629->setRoutingType((ConnType)2);
+
+ ConnRef *connRef630 = new ConnRef(router, 630);
+ ConnEnd srcPt630(Point(82, 504), 15);
+ connRef630->setSourceEndpoint(srcPt630);
+ ConnEnd dstPt630(Point(57.2456, 447.955), 15);
+ connRef630->setDestEndpoint(dstPt630);
+ connRef630->setRoutingType((ConnType)2);
+
+ ConnRef *connRef631 = new ConnRef(router, 631);
+ ConnEnd srcPt631(Point(132, 595), 15);
+ connRef631->setSourceEndpoint(srcPt631);
+ ConnEnd dstPt631(Point(57.2456, 558.918), 15);
+ connRef631->setDestEndpoint(dstPt631);
+ connRef631->setRoutingType((ConnType)2);
+
+ ConnRef *connRef632 = new ConnRef(router, 632);
+ ConnEnd srcPt632(Point(132, 576), 15);
+ connRef632->setSourceEndpoint(srcPt632);
+ ConnEnd dstPt632(Point(57.2456, 558.918), 15);
+ connRef632->setDestEndpoint(dstPt632);
+ connRef632->setRoutingType((ConnType)2);
+
+ ConnRef *connRef633 = new ConnRef(router, 633);
+ ConnEnd srcPt633(Point(82, 595), 15);
+ connRef633->setSourceEndpoint(srcPt633);
+ ConnEnd dstPt633(Point(57.2456, 558.918), 15);
+ connRef633->setDestEndpoint(dstPt633);
+ connRef633->setRoutingType((ConnType)2);
+
+ ConnRef *connRef634 = new ConnRef(router, 634);
+ ConnEnd srcPt634(Point(57.2456, 676.918), 15);
+ connRef634->setSourceEndpoint(srcPt634);
+ ConnEnd dstPt634(Point(213, 328), 15);
+ connRef634->setDestEndpoint(dstPt634);
+ connRef634->setRoutingType((ConnType)2);
+
+ ConnRef *connRef635 = new ConnRef(router, 635);
+ ConnEnd srcPt635(Point(25.2456, 96.9179), 15);
+ connRef635->setSourceEndpoint(srcPt635);
+ ConnEnd dstPt635(Point(132, 175), 15);
+ connRef635->setDestEndpoint(dstPt635);
+ connRef635->setRoutingType((ConnType)2);
+
+ ConnRef *connRef636 = new ConnRef(router, 636);
+ ConnEnd srcPt636(Point(25.2456, 96.9179), 15);
+ connRef636->setSourceEndpoint(srcPt636);
+ ConnEnd dstPt636(Point(82, 194), 15);
+ connRef636->setDestEndpoint(dstPt636);
+ connRef636->setRoutingType((ConnType)2);
+
+ ConnRef *connRef637 = new ConnRef(router, 637);
+ ConnEnd srcPt637(Point(25.2456, 96.9179), 15);
+ connRef637->setSourceEndpoint(srcPt637);
+ ConnEnd dstPt637(Point(82, 175), 15);
+ connRef637->setDestEndpoint(dstPt637);
+ connRef637->setRoutingType((ConnType)2);
+
+ ConnRef *connRef638 = new ConnRef(router, 638);
+ ConnEnd srcPt638(Point(25.2456, 96.9179), 15);
+ connRef638->setSourceEndpoint(srcPt638);
+ ConnEnd dstPt638(Point(82, 156), 15);
+ connRef638->setDestEndpoint(dstPt638);
+ connRef638->setRoutingType((ConnType)2);
+
+ ConnRef *connRef639 = new ConnRef(router, 639);
+ ConnEnd srcPt639(Point(223, 413), 15);
+ connRef639->setSourceEndpoint(srcPt639);
+ ConnEnd dstPt639(Point(215.246, 332.918), 15);
+ connRef639->setDestEndpoint(dstPt639);
+ connRef639->setRoutingType((ConnType)2);
+
+ ConnRef *connRef640 = new ConnRef(router, 640);
+ ConnEnd srcPt640(Point(223, 504), 15);
+ connRef640->setSourceEndpoint(srcPt640);
+ ConnEnd dstPt640(Point(215.246, 447.955), 15);
+ connRef640->setDestEndpoint(dstPt640);
+ connRef640->setRoutingType((ConnType)2);
+
+ ConnRef *connRef641 = new ConnRef(router, 641);
+ ConnEnd srcPt641(Point(273, 576), 15);
+ connRef641->setSourceEndpoint(srcPt641);
+ ConnEnd dstPt641(Point(215.246, 558.918), 15);
+ connRef641->setDestEndpoint(dstPt641);
+ connRef641->setRoutingType((ConnType)2);
+
+ ConnRef *connRef642 = new ConnRef(router, 642);
+ ConnEnd srcPt642(Point(273, 595), 15);
+ connRef642->setSourceEndpoint(srcPt642);
+ ConnEnd dstPt642(Point(215.246, 558.918), 15);
+ connRef642->setDestEndpoint(dstPt642);
+ connRef642->setRoutingType((ConnType)2);
+
+ ConnRef *connRef643 = new ConnRef(router, 643);
+ ConnEnd srcPt643(Point(223, 595), 15);
+ connRef643->setSourceEndpoint(srcPt643);
+ ConnEnd dstPt643(Point(215.246, 558.918), 15);
+ connRef643->setDestEndpoint(dstPt643);
+ connRef643->setRoutingType((ConnType)2);
+
+ ConnRef *connRef644 = new ConnRef(router, 644);
+ ConnEnd srcPt644(Point(215.246, 676.918), 15);
+ connRef644->setSourceEndpoint(srcPt644);
+ ConnEnd dstPt644(Point(355, 328), 15);
+ connRef644->setDestEndpoint(dstPt644);
+ connRef644->setRoutingType((ConnType)2);
+
+ ConnRef *connRef645 = new ConnRef(router, 645);
+ ConnEnd srcPt645(Point(371.246, 676.918), 15);
+ connRef645->setSourceEndpoint(srcPt645);
+ ConnEnd dstPt645(Point(497, 328), 15);
+ connRef645->setDestEndpoint(dstPt645);
+ connRef645->setRoutingType((ConnType)2);
+
+ ConnRef *connRef646 = new ConnRef(router, 646);
+ ConnEnd srcPt646(Point(415, 576), 15);
+ connRef646->setSourceEndpoint(srcPt646);
+ ConnEnd dstPt646(Point(371.246, 558.918), 15);
+ connRef646->setDestEndpoint(dstPt646);
+ connRef646->setRoutingType((ConnType)2);
+
+ ConnRef *connRef647 = new ConnRef(router, 647);
+ ConnEnd srcPt647(Point(415, 595), 15);
+ connRef647->setSourceEndpoint(srcPt647);
+ ConnEnd dstPt647(Point(371.246, 558.918), 15);
+ connRef647->setDestEndpoint(dstPt647);
+ connRef647->setRoutingType((ConnType)2);
+
+ ConnRef *connRef648 = new ConnRef(router, 648);
+ ConnEnd srcPt648(Point(365, 595), 15);
+ connRef648->setSourceEndpoint(srcPt648);
+ ConnEnd dstPt648(Point(371.246, 558.918), 15);
+ connRef648->setDestEndpoint(dstPt648);
+ connRef648->setRoutingType((ConnType)2);
+
+ ConnRef *connRef649 = new ConnRef(router, 649);
+ ConnEnd srcPt649(Point(365, 504), 15);
+ connRef649->setSourceEndpoint(srcPt649);
+ ConnEnd dstPt649(Point(371.246, 447.955), 15);
+ connRef649->setDestEndpoint(dstPt649);
+ connRef649->setRoutingType((ConnType)2);
+
+ ConnRef *connRef650 = new ConnRef(router, 650);
+ ConnEnd srcPt650(Point(365, 413), 15);
+ connRef650->setSourceEndpoint(srcPt650);
+ ConnEnd dstPt650(Point(371.246, 332.918), 15);
+ connRef650->setDestEndpoint(dstPt650);
+ connRef650->setRoutingType((ConnType)2);
+
+ ConnRef *connRef651 = new ConnRef(router, 651);
+ ConnEnd srcPt651(Point(507, 413), 15);
+ connRef651->setSourceEndpoint(srcPt651);
+ ConnEnd dstPt651(Point(527.246, 332.918), 15);
+ connRef651->setDestEndpoint(dstPt651);
+ connRef651->setRoutingType((ConnType)2);
+
+ ConnRef *connRef652 = new ConnRef(router, 652);
+ ConnEnd srcPt652(Point(507, 504), 15);
+ connRef652->setSourceEndpoint(srcPt652);
+ ConnEnd dstPt652(Point(527.246, 447.955), 15);
+ connRef652->setDestEndpoint(dstPt652);
+ connRef652->setRoutingType((ConnType)2);
+
+ ConnRef *connRef653 = new ConnRef(router, 653);
+ ConnEnd srcPt653(Point(557, 576), 15);
+ connRef653->setSourceEndpoint(srcPt653);
+ ConnEnd dstPt653(Point(527.246, 558.918), 15);
+ connRef653->setDestEndpoint(dstPt653);
+ connRef653->setRoutingType((ConnType)2);
+
+ ConnRef *connRef654 = new ConnRef(router, 654);
+ ConnEnd srcPt654(Point(557, 595), 15);
+ connRef654->setSourceEndpoint(srcPt654);
+ ConnEnd dstPt654(Point(527.246, 558.918), 15);
+ connRef654->setDestEndpoint(dstPt654);
+ connRef654->setRoutingType((ConnType)2);
+
+ ConnRef *connRef655 = new ConnRef(router, 655);
+ ConnEnd srcPt655(Point(507, 595), 15);
+ connRef655->setSourceEndpoint(srcPt655);
+ ConnEnd dstPt655(Point(527.246, 558.918), 15);
+ connRef655->setDestEndpoint(dstPt655);
+ connRef655->setRoutingType((ConnType)2);
+
+ ConnRef *connRef656 = new ConnRef(router, 656);
+ ConnEnd srcPt656(Point(527.246, 676.918), 15);
+ connRef656->setSourceEndpoint(srcPt656);
+ ConnEnd dstPt656(Point(639, 328), 15);
+ connRef656->setDestEndpoint(dstPt656);
+ connRef656->setRoutingType((ConnType)2);
+
+ ConnRef *connRef657 = new ConnRef(router, 657);
+ ConnEnd srcPt657(Point(673.933, 676.918), 15);
+ connRef657->setSourceEndpoint(srcPt657);
+ ConnEnd dstPt657(Point(780, 328), 15);
+ connRef657->setDestEndpoint(dstPt657);
+ connRef657->setRoutingType((ConnType)2);
+
+ ConnRef *connRef658 = new ConnRef(router, 658);
+ ConnEnd srcPt658(Point(699, 576), 15);
+ connRef658->setSourceEndpoint(srcPt658);
+ ConnEnd dstPt658(Point(673.933, 558.918), 15);
+ connRef658->setDestEndpoint(dstPt658);
+ connRef658->setRoutingType((ConnType)2);
+
+ ConnRef *connRef659 = new ConnRef(router, 659);
+ ConnEnd srcPt659(Point(699, 595), 15);
+ connRef659->setSourceEndpoint(srcPt659);
+ ConnEnd dstPt659(Point(673.933, 558.918), 15);
+ connRef659->setDestEndpoint(dstPt659);
+ connRef659->setRoutingType((ConnType)2);
+
+ ConnRef *connRef660 = new ConnRef(router, 660);
+ ConnEnd srcPt660(Point(649, 595), 15);
+ connRef660->setSourceEndpoint(srcPt660);
+ ConnEnd dstPt660(Point(673.933, 558.918), 15);
+ connRef660->setDestEndpoint(dstPt660);
+ connRef660->setRoutingType((ConnType)2);
+
+ ConnRef *connRef661 = new ConnRef(router, 661);
+ ConnEnd srcPt661(Point(649, 504), 15);
+ connRef661->setSourceEndpoint(srcPt661);
+ ConnEnd dstPt661(Point(673.933, 447.955), 15);
+ connRef661->setDestEndpoint(dstPt661);
+ connRef661->setRoutingType((ConnType)2);
+
+ ConnRef *connRef662 = new ConnRef(router, 662);
+ ConnEnd srcPt662(Point(649, 413), 15);
+ connRef662->setSourceEndpoint(srcPt662);
+ ConnEnd dstPt662(Point(673.933, 332.918), 15);
+ connRef662->setDestEndpoint(dstPt662);
+ connRef662->setRoutingType((ConnType)2);
+
+ ConnRef *connRef663 = new ConnRef(router, 663);
+ ConnEnd srcPt663(Point(790, 413), 15);
+ connRef663->setSourceEndpoint(srcPt663);
+ ConnEnd dstPt663(Point(823.246, 332.918), 15);
+ connRef663->setDestEndpoint(dstPt663);
+ connRef663->setRoutingType((ConnType)2);
+
+ ConnRef *connRef664 = new ConnRef(router, 664);
+ ConnEnd srcPt664(Point(790, 504), 15);
+ connRef664->setSourceEndpoint(srcPt664);
+ ConnEnd dstPt664(Point(823.246, 447.955), 15);
+ connRef664->setDestEndpoint(dstPt664);
+ connRef664->setRoutingType((ConnType)2);
+
+ ConnRef *connRef665 = new ConnRef(router, 665);
+ ConnEnd srcPt665(Point(840, 576), 15);
+ connRef665->setSourceEndpoint(srcPt665);
+ ConnEnd dstPt665(Point(823.246, 558.918), 15);
+ connRef665->setDestEndpoint(dstPt665);
+ connRef665->setRoutingType((ConnType)2);
+
+ ConnRef *connRef666 = new ConnRef(router, 666);
+ ConnEnd srcPt666(Point(840, 595), 15);
+ connRef666->setSourceEndpoint(srcPt666);
+ ConnEnd dstPt666(Point(823.246, 558.918), 15);
+ connRef666->setDestEndpoint(dstPt666);
+ connRef666->setRoutingType((ConnType)2);
+
+ ConnRef *connRef667 = new ConnRef(router, 667);
+ ConnEnd srcPt667(Point(790, 595), 15);
+ connRef667->setSourceEndpoint(srcPt667);
+ ConnEnd dstPt667(Point(823.246, 558.918), 15);
+ connRef667->setDestEndpoint(dstPt667);
+ connRef667->setRoutingType((ConnType)2);
+
+ ConnRef *connRef668 = new ConnRef(router, 668);
+ ConnEnd srcPt668(Point(823.246, 676.918), 15);
+ connRef668->setSourceEndpoint(srcPt668);
+ ConnEnd dstPt668(Point(922, 328), 15);
+ connRef668->setDestEndpoint(dstPt668);
+ connRef668->setRoutingType((ConnType)2);
+
+ ConnRef *connRef669 = new ConnRef(router, 669);
+ ConnEnd srcPt669(Point(1149, 309), 15);
+ connRef669->setSourceEndpoint(srcPt669);
+ ConnEnd dstPt669(Point(979.246, 676.918), 15);
+ connRef669->setDestEndpoint(dstPt669);
+ connRef669->setRoutingType((ConnType)2);
+
+ ConnRef *connRef670 = new ConnRef(router, 670);
+ ConnEnd srcPt670(Point(979.246, 676.918), 15);
+ connRef670->setSourceEndpoint(srcPt670);
+ ConnEnd dstPt670(Point(932, 667), 15);
+ connRef670->setDestEndpoint(dstPt670);
+ connRef670->setRoutingType((ConnType)2);
+
+ ConnRef *connRef671 = new ConnRef(router, 671);
+ ConnEnd srcPt671(Point(979.246, 676.918), 15);
+ connRef671->setSourceEndpoint(srcPt671);
+ ConnEnd dstPt671(Point(932, 686), 15);
+ connRef671->setDestEndpoint(dstPt671);
+ connRef671->setRoutingType((ConnType)2);
+
+ ConnRef *connRef672 = new ConnRef(router, 672);
+ ConnEnd srcPt672(Point(1199, 300), 15);
+ connRef672->setSourceEndpoint(srcPt672);
+ ConnEnd dstPt672(Point(979.246, 676.918), 15);
+ connRef672->setDestEndpoint(dstPt672);
+ connRef672->setRoutingType((ConnType)2);
+
+ ConnRef *connRef673 = new ConnRef(router, 673);
+ ConnEnd srcPt673(Point(982, 576), 15);
+ connRef673->setSourceEndpoint(srcPt673);
+ ConnEnd dstPt673(Point(979.246, 558.918), 15);
+ connRef673->setDestEndpoint(dstPt673);
+ connRef673->setRoutingType((ConnType)2);
+
+ ConnRef *connRef674 = new ConnRef(router, 674);
+ ConnEnd srcPt674(Point(982, 595), 15);
+ connRef674->setSourceEndpoint(srcPt674);
+ ConnEnd dstPt674(Point(979.246, 558.918), 15);
+ connRef674->setDestEndpoint(dstPt674);
+ connRef674->setRoutingType((ConnType)2);
+
+ ConnRef *connRef675 = new ConnRef(router, 675);
+ ConnEnd srcPt675(Point(932, 595), 15);
+ connRef675->setSourceEndpoint(srcPt675);
+ ConnEnd dstPt675(Point(979.246, 558.918), 15);
+ connRef675->setDestEndpoint(dstPt675);
+ connRef675->setRoutingType((ConnType)2);
+
+ ConnRef *connRef676 = new ConnRef(router, 676);
+ ConnEnd srcPt676(Point(932, 504), 15);
+ connRef676->setSourceEndpoint(srcPt676);
+ ConnEnd dstPt676(Point(979.246, 447.955), 15);
+ connRef676->setDestEndpoint(dstPt676);
+ connRef676->setRoutingType((ConnType)2);
+
+ ConnRef *connRef677 = new ConnRef(router, 677);
+ ConnEnd srcPt677(Point(932, 413), 15);
+ connRef677->setSourceEndpoint(srcPt677);
+ ConnEnd dstPt677(Point(979.246, 332.918), 15);
+ connRef677->setDestEndpoint(dstPt677);
+ connRef677->setRoutingType((ConnType)2);
+
+ ConnRef *connRef678 = new ConnRef(router, 678);
+ ConnEnd srcPt678(Point(82, 338), 15);
+ connRef678->setSourceEndpoint(srcPt678);
+ ConnEnd dstPt678(Point(57.2456, 332.918), 15);
+ connRef678->setDestEndpoint(dstPt678);
+ connRef678->setRoutingType((ConnType)2);
+
+ ConnRef *connRef679 = new ConnRef(router, 679);
+ ConnEnd srcPt679(Point(233, 328), 15);
+ connRef679->setSourceEndpoint(srcPt679);
+ ConnEnd dstPt679(Point(215.246, 332.918), 15);
+ connRef679->setDestEndpoint(dstPt679);
+ connRef679->setRoutingType((ConnType)2);
+
+ ConnRef *connRef680 = new ConnRef(router, 680);
+ ConnEnd srcPt680(Point(375, 328), 15);
+ connRef680->setSourceEndpoint(srcPt680);
+ ConnEnd dstPt680(Point(371.246, 332.918), 15);
+ connRef680->setDestEndpoint(dstPt680);
+ connRef680->setRoutingType((ConnType)2);
+
+ ConnRef *connRef681 = new ConnRef(router, 681);
+ ConnEnd srcPt681(Point(517, 328), 15);
+ connRef681->setSourceEndpoint(srcPt681);
+ ConnEnd dstPt681(Point(527.246, 332.918), 15);
+ connRef681->setDestEndpoint(dstPt681);
+ connRef681->setRoutingType((ConnType)2);
+
+ ConnRef *connRef682 = new ConnRef(router, 682);
+ ConnEnd srcPt682(Point(659, 328), 15);
+ connRef682->setSourceEndpoint(srcPt682);
+ ConnEnd dstPt682(Point(673.933, 332.918), 15);
+ connRef682->setDestEndpoint(dstPt682);
+ connRef682->setRoutingType((ConnType)2);
+
+ ConnRef *connRef683 = new ConnRef(router, 683);
+ ConnEnd srcPt683(Point(800, 328), 15);
+ connRef683->setSourceEndpoint(srcPt683);
+ ConnEnd dstPt683(Point(823.246, 332.918), 15);
+ connRef683->setDestEndpoint(dstPt683);
+ connRef683->setRoutingType((ConnType)2);
+
+ ConnRef *connRef684 = new ConnRef(router, 684);
+ ConnEnd srcPt684(Point(942, 328), 15);
+ connRef684->setSourceEndpoint(srcPt684);
+ ConnEnd dstPt684(Point(979.246, 332.918), 15);
+ connRef684->setDestEndpoint(dstPt684);
+ connRef684->setRoutingType((ConnType)2);
+
+ ConnRef *connRef685 = new ConnRef(router, 685);
+ ConnEnd srcPt685(Point(223, 433), 15);
+ connRef685->setSourceEndpoint(srcPt685);
+ ConnEnd dstPt685(Point(215.246, 447.955), 15);
+ connRef685->setDestEndpoint(dstPt685);
+ connRef685->setRoutingType((ConnType)2);
+
+ ConnRef *connRef686 = new ConnRef(router, 686);
+ ConnEnd srcPt686(Point(365, 433), 15);
+ connRef686->setSourceEndpoint(srcPt686);
+ ConnEnd dstPt686(Point(371.246, 447.955), 15);
+ connRef686->setDestEndpoint(dstPt686);
+ connRef686->setRoutingType((ConnType)2);
+
+ ConnRef *connRef687 = new ConnRef(router, 687);
+ ConnEnd srcPt687(Point(507, 433), 15);
+ connRef687->setSourceEndpoint(srcPt687);
+ ConnEnd dstPt687(Point(527.246, 447.955), 15);
+ connRef687->setDestEndpoint(dstPt687);
+ connRef687->setRoutingType((ConnType)2);
+
+ ConnRef *connRef688 = new ConnRef(router, 688);
+ ConnEnd srcPt688(Point(790, 433), 15);
+ connRef688->setSourceEndpoint(srcPt688);
+ ConnEnd dstPt688(Point(823.246, 447.955), 15);
+ connRef688->setDestEndpoint(dstPt688);
+ connRef688->setRoutingType((ConnType)2);
+
+ ConnRef *connRef689 = new ConnRef(router, 689);
+ ConnEnd srcPt689(Point(932, 433), 15);
+ connRef689->setSourceEndpoint(srcPt689);
+ ConnEnd dstPt689(Point(979.246, 447.955), 15);
+ connRef689->setDestEndpoint(dstPt689);
+ connRef689->setRoutingType((ConnType)2);
+
+ ConnRef *connRef690 = new ConnRef(router, 690);
+ ConnEnd srcPt690(Point(649, 433), 15);
+ connRef690->setSourceEndpoint(srcPt690);
+ ConnEnd dstPt690(Point(673.933, 447.955), 15);
+ connRef690->setDestEndpoint(dstPt690);
+ connRef690->setRoutingType((ConnType)2);
+
+ ConnRef *connRef691 = new ConnRef(router, 691);
+ ConnEnd srcPt691(Point(82, 524), 15);
+ connRef691->setSourceEndpoint(srcPt691);
+ ConnEnd dstPt691(Point(57.2456, 558.918), 15);
+ connRef691->setDestEndpoint(dstPt691);
+ connRef691->setRoutingType((ConnType)2);
+
+ ConnRef *connRef692 = new ConnRef(router, 692);
+ ConnEnd srcPt692(Point(223, 524), 15);
+ connRef692->setSourceEndpoint(srcPt692);
+ ConnEnd dstPt692(Point(215.246, 558.918), 15);
+ connRef692->setDestEndpoint(dstPt692);
+ connRef692->setRoutingType((ConnType)2);
+
+ ConnRef *connRef693 = new ConnRef(router, 693);
+ ConnEnd srcPt693(Point(365, 524), 15);
+ connRef693->setSourceEndpoint(srcPt693);
+ ConnEnd dstPt693(Point(371.246, 558.918), 15);
+ connRef693->setDestEndpoint(dstPt693);
+ connRef693->setRoutingType((ConnType)2);
+
+ ConnRef *connRef694 = new ConnRef(router, 694);
+ ConnEnd srcPt694(Point(507, 524), 15);
+ connRef694->setSourceEndpoint(srcPt694);
+ ConnEnd dstPt694(Point(527.246, 558.918), 15);
+ connRef694->setDestEndpoint(dstPt694);
+ connRef694->setRoutingType((ConnType)2);
+
+ ConnRef *connRef695 = new ConnRef(router, 695);
+ ConnEnd srcPt695(Point(649, 524), 15);
+ connRef695->setSourceEndpoint(srcPt695);
+ ConnEnd dstPt695(Point(673.933, 558.918), 15);
+ connRef695->setDestEndpoint(dstPt695);
+ connRef695->setRoutingType((ConnType)2);
+
+ ConnRef *connRef696 = new ConnRef(router, 696);
+ ConnEnd srcPt696(Point(790, 524), 15);
+ connRef696->setSourceEndpoint(srcPt696);
+ ConnEnd dstPt696(Point(823.246, 558.918), 15);
+ connRef696->setDestEndpoint(dstPt696);
+ connRef696->setRoutingType((ConnType)2);
+
+ ConnRef *connRef697 = new ConnRef(router, 697);
+ ConnEnd srcPt697(Point(932, 524), 15);
+ connRef697->setSourceEndpoint(srcPt697);
+ ConnEnd dstPt697(Point(979.246, 558.918), 15);
+ connRef697->setDestEndpoint(dstPt697);
+ connRef697->setRoutingType((ConnType)2);
+
+ ConnRef *connRef698 = new ConnRef(router, 698);
+ ConnEnd srcPt698(Point(82, 615), 15);
+ connRef698->setSourceEndpoint(srcPt698);
+ ConnEnd dstPt698(Point(57.2456, 676.918), 15);
+ connRef698->setDestEndpoint(dstPt698);
+ connRef698->setRoutingType((ConnType)2);
+
+ ConnRef *connRef699 = new ConnRef(router, 699);
+ ConnEnd srcPt699(Point(223, 615), 15);
+ connRef699->setSourceEndpoint(srcPt699);
+ ConnEnd dstPt699(Point(215.246, 676.918), 15);
+ connRef699->setDestEndpoint(dstPt699);
+ connRef699->setRoutingType((ConnType)2);
+
+ ConnRef *connRef700 = new ConnRef(router, 700);
+ ConnEnd srcPt700(Point(365, 615), 15);
+ connRef700->setSourceEndpoint(srcPt700);
+ ConnEnd dstPt700(Point(371.246, 676.918), 15);
+ connRef700->setDestEndpoint(dstPt700);
+ connRef700->setRoutingType((ConnType)2);
+
+ ConnRef *connRef701 = new ConnRef(router, 701);
+ ConnEnd srcPt701(Point(507, 615), 15);
+ connRef701->setSourceEndpoint(srcPt701);
+ ConnEnd dstPt701(Point(527.246, 676.918), 15);
+ connRef701->setDestEndpoint(dstPt701);
+ connRef701->setRoutingType((ConnType)2);
+
+ ConnRef *connRef702 = new ConnRef(router, 702);
+ ConnEnd srcPt702(Point(649, 615), 15);
+ connRef702->setSourceEndpoint(srcPt702);
+ ConnEnd dstPt702(Point(673.933, 676.918), 15);
+ connRef702->setDestEndpoint(dstPt702);
+ connRef702->setRoutingType((ConnType)2);
+
+ ConnRef *connRef703 = new ConnRef(router, 703);
+ ConnEnd srcPt703(Point(790, 615), 15);
+ connRef703->setSourceEndpoint(srcPt703);
+ ConnEnd dstPt703(Point(823.246, 676.918), 15);
+ connRef703->setDestEndpoint(dstPt703);
+ connRef703->setRoutingType((ConnType)2);
+
+ ConnRef *connRef704 = new ConnRef(router, 704);
+ ConnEnd srcPt704(Point(932, 615), 15);
+ connRef704->setSourceEndpoint(srcPt704);
+ ConnEnd dstPt704(Point(979.246, 676.918), 15);
+ connRef704->setDestEndpoint(dstPt704);
+ connRef704->setRoutingType((ConnType)2);
+
+ ConnRef *connRef705 = new ConnRef(router, 705);
+ ConnEnd srcPt705(Point(1169, 309), 15);
+ connRef705->setSourceEndpoint(srcPt705);
+ ConnEnd dstPt705(Point(1203.25, 332.918), 15);
+ connRef705->setDestEndpoint(dstPt705);
+ connRef705->setRoutingType((ConnType)2);
+
+ ConnRef *connRef706 = new ConnRef(router, 706);
+ ConnEnd srcPt706(Point(1159, 414), 15);
+ connRef706->setSourceEndpoint(srcPt706);
+ ConnEnd dstPt706(Point(1203.25, 447.955), 15);
+ connRef706->setDestEndpoint(dstPt706);
+ connRef706->setRoutingType((ConnType)2);
+
+ ConnRef *connRef707 = new ConnRef(router, 707);
+ ConnEnd srcPt707(Point(1159, 505), 15);
+ connRef707->setSourceEndpoint(srcPt707);
+ ConnEnd dstPt707(Point(1203.25, 558.918), 15);
+ connRef707->setDestEndpoint(dstPt707);
+ connRef707->setRoutingType((ConnType)2);
+
+ ConnRef *connRef708 = new ConnRef(router, 708);
+ ConnEnd srcPt708(Point(1159, 595), 15);
+ connRef708->setSourceEndpoint(srcPt708);
+ ConnEnd dstPt708(Point(1203.25, 676.918), 15);
+ connRef708->setDestEndpoint(dstPt708);
+ connRef708->setRoutingType((ConnType)2);
+
+ ConnRef *connRef709 = new ConnRef(router, 709);
+ ConnEnd srcPt709(Point(932, 687), 15);
+ connRef709->setSourceEndpoint(srcPt709);
+ ConnEnd dstPt709(Point(979.246, 750.918), 15);
+ connRef709->setDestEndpoint(dstPt709);
+ connRef709->setRoutingType((ConnType)2);
+
+ ConnRef *connRef710 = new ConnRef(router, 710);
+ ConnEnd srcPt710(Point(932, 706), 15);
+ connRef710->setSourceEndpoint(srcPt710);
+ ConnEnd dstPt710(Point(979.246, 750.918), 15);
+ connRef710->setDestEndpoint(dstPt710);
+ connRef710->setRoutingType((ConnType)2);
+
+ ConnRef *connRef711 = new ConnRef(router, 711);
+ ConnEnd srcPt711(Point(1159, 687), 15);
+ connRef711->setSourceEndpoint(srcPt711);
+ ConnEnd dstPt711(Point(1203.25, 750.918), 15);
+ connRef711->setDestEndpoint(dstPt711);
+ connRef711->setRoutingType((ConnType)2);
+
+ ConnRef *connRef712 = new ConnRef(router, 712);
+ ConnEnd srcPt712(Point(1219, 300), 15);
+ connRef712->setSourceEndpoint(srcPt712);
+ ConnEnd dstPt712(Point(1203.25, 332.918), 15);
+ connRef712->setDestEndpoint(dstPt712);
+ connRef712->setRoutingType((ConnType)2);
+
+ ConnRef *connRef713 = new ConnRef(router, 713);
+ ConnEnd srcPt713(Point(1209, 605), 15);
+ connRef713->setSourceEndpoint(srcPt713);
+ ConnEnd dstPt713(Point(1203.25, 676.918), 15);
+ connRef713->setDestEndpoint(dstPt713);
+ connRef713->setRoutingType((ConnType)2);
+
+ ConnRef *connRef714 = new ConnRef(router, 714);
+ ConnEnd srcPt714(Point(132, 300), 15);
+ connRef714->setSourceEndpoint(srcPt714);
+ ConnEnd dstPt714(Point(57.2456, 332.918), 15);
+ connRef714->setDestEndpoint(dstPt714);
+ connRef714->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/reallyslowrouting");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/removeJunctions01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/removeJunctions01.cpp
new file mode 100644
index 0000000..3dc09c0
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/removeJunctions01.cpp
@@ -0,0 +1,103 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 2);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 9000);
+ router->setRoutingParameter((RoutingParameter)5, 0);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 16);
+ router->setRoutingParameter((RoutingParameter)8, 0);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ router->setRoutingOption((RoutingOption)4, true);
+ router->setRoutingOption((RoutingOption)5, false);
+ router->setRoutingOption((RoutingOption)6, true);
+ Polygon polygon;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ ConnEnd heConnPt;
+ PolyLine newRoute;
+ ShapeConnectionPin *connPin = nullptr;
+
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(450, 330);
+ polygon.ps[1] = Point(490, 330);
+ polygon.ps[2] = Point(490, 450);
+ polygon.ps[3] = Point(450, 450);
+ ShapeRef *shapeRef1 = new ShapeRef(router, polygon, 1);
+ connPin = new ShapeConnectionPin(shapeRef1, 1, 0, 0.333333, true, 10, (ConnDirFlags) 0);
+ connPin->setExclusive(false);
+ connPin = new ShapeConnectionPin(shapeRef1, 2, 0, 0.666667, true, 10, (ConnDirFlags) 0);
+ connPin->setExclusive(false);
+ connPin = new ShapeConnectionPin(shapeRef1, 3, 1, 0.5, true, 10, (ConnDirFlags) 0);
+ connPin->setExclusive(false);
+ connPin = new ShapeConnectionPin(shapeRef1, 4, 0.5, 0, true, 10, (ConnDirFlags) 0);
+ connPin->setExclusive(false);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(502, 237.5);
+ polygon.ps[1] = Point(502, 262.5);
+ polygon.ps[2] = Point(438, 262.5);
+ polygon.ps[3] = Point(438, 237.5);
+ ShapeRef *shapeRef8 = new ShapeRef(router, polygon, 8);
+ connPin = new ShapeConnectionPin(shapeRef8, 1, 0, 0.5, true, 1, (ConnDirFlags) 0);
+ connPin = new ShapeConnectionPin(shapeRef8, 2, 1, 0.5, true, 1, (ConnDirFlags) 0);
+ connPin = new ShapeConnectionPin(shapeRef8, 3, 0.5, 1, true, 1, (ConnDirFlags) 0);
+ connPin = new ShapeConnectionPin(shapeRef8, 4, 0.5, 0, true, 1, (ConnDirFlags) 0);
+
+ JunctionRef *junctionRef6 = new JunctionRef(router, Point(470, 300), 6);
+ /*
+ // This may be useful if junction pins are modified.
+ connPin = new ShapeConnectionPin(junctionRef6, 2147483646, (ConnDirFlags) 15);
+ */
+
+ // connRef9
+ ConnRef *connRef9 = new ConnRef(router, 9);
+ srcPt = ConnEnd(junctionRef6);
+ connRef9->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef8, 3);
+ connRef9->setDestEndpoint(dstPt);
+ connRef9->setRoutingType((ConnType)2);
+
+#if 1
+ // connRef10 - WITH BUG
+ ConnRef *connRef10 = new ConnRef(router, 10);
+ srcPt = ConnEnd(junctionRef6);
+ connRef10->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(shapeRef1, 4);
+ connRef10->setDestEndpoint(dstPt);
+ connRef10->setRoutingType((ConnType)2);
+#else
+ // connRef10 - WITHOUT BUG
+ ConnRef *connRef10 = new ConnRef(router, 10);
+ srcPt = ConnEnd(shapeRef1, 4);
+ connRef10->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(junctionRef6);
+ connRef10->setDestEndpoint(dstPt);
+ connRef10->setRoutingType((ConnType)2);
+#endif
+
+ // router->deleteConnector(connRef5);
+ router->processTransaction();
+
+ ConnRef *mergedConn = junctionRef6->removeJunctionAndMergeConnectors();
+ router->processTransaction();
+ router->outputDiagram("output/removeJunctions01");
+
+ std::pair<ConnEnd, ConnEnd> ends = mergedConn->endpointConnEnds();
+
+ // Expected result: output images should be virtually identical.
+ // Result: An endpoint seems to be disconnected from shapeRef8.
+ bool isConnected = (ends.first.shape() == shapeRef8) || (ends.second.shape() == shapeRef8);
+
+ delete router;
+ return isConnected ? 0 : 1;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/restrictedNudging.cpp b/src/3rdparty/adaptagrams/libavoid/tests/restrictedNudging.cpp
new file mode 100644
index 0000000..77f8960
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/restrictedNudging.cpp
@@ -0,0 +1,68 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly282634758(4);
+ poly282634758.ps[0] = Point(51360, 50215);
+ poly282634758.ps[1] = Point(51360, 50460);
+ poly282634758.ps[2] = Point(51075, 50460);
+ poly282634758.ps[3] = Point(51075, 50215);
+ new ShapeRef(router, poly282634758, 282634758);
+
+ Polygon poly69386928(4);
+ poly69386928.ps[0] = Point(51050, 50415);
+ poly69386928.ps[1] = Point(51050, 50735);
+ poly69386928.ps[2] = Point(50690, 50735);
+ poly69386928.ps[3] = Point(50690, 50415);
+ new ShapeRef(router, poly69386928, 69386928);
+
+ Polygon poly11958280(4);
+ poly11958280.ps[0] = Point(50460, 50490);
+ poly11958280.ps[1] = Point(50460, 50660);
+ poly11958280.ps[2] = Point(50290, 50660);
+ poly11958280.ps[3] = Point(50290, 50490);
+ new ShapeRef(router, poly11958280, 11958280);
+
+ Polygon poly50591298(4);
+ poly50591298.ps[0] = Point(51260, 50015);
+ poly50591298.ps[1] = Point(51260, 50185);
+ poly50591298.ps[2] = Point(51075, 50185);
+ poly50591298.ps[3] = Point(51075, 50015);
+ new ShapeRef(router, poly50591298, 50591298);
+
+ ConnRef *connRef355676284 = new ConnRef(router, 355676284);
+ ConnEnd srcPt355676284(Point(51040, 50575), 8);
+ connRef355676284->setSourceEndpoint(srcPt355676284);
+ ConnEnd dstPt355676284(Point(51085, 50300), 4);
+ connRef355676284->setDestEndpoint(dstPt355676284);
+ connRef355676284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef33653259 = new ConnRef(router, 33653259);
+ ConnEnd srcPt33653259(Point(51040, 50650), 8);
+ connRef33653259->setSourceEndpoint(srcPt33653259);
+ ConnEnd dstPt33653259(Point(51085, 50375), 4);
+ connRef33653259->setDestEndpoint(dstPt33653259);
+ connRef33653259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef421608980 = new ConnRef(router, 421608980);
+ ConnEnd srcPt421608980(Point(51040, 50500), 8);
+ connRef421608980->setSourceEndpoint(srcPt421608980);
+ ConnEnd dstPt421608980(Point(51085, 50100), 4);
+ connRef421608980->setDestEndpoint(dstPt421608980);
+ connRef421608980->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/restrictedNudging");
+
+ bool overlap = router->existsOrthogonalTouchingPaths();
+ delete router;
+ return (overlap) ? 1 : 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/slowrouting.cpp b/src/3rdparty/adaptagrams/libavoid/tests/slowrouting.cpp
new file mode 100644
index 0000000..5a9bf83
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/slowrouting.cpp
@@ -0,0 +1,1459 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 0);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+JunctionRef *junctionRef1634752 = new JunctionRef(router, Point(24800, 27000), 1634752);
+
+ Polygon poly2807970(4);
+ poly2807970.ps[0] = Point(26175, 26940);
+ poly2807970.ps[1] = Point(26175, 28610);
+ poly2807970.ps[2] = Point(25825, 28610);
+ poly2807970.ps[3] = Point(25825, 26940);
+ new ShapeRef(router, poly2807970, 2807970);
+
+JunctionRef *junctionRef5416208 = new JunctionRef(router, Point(24300, 28050), 5416208);
+
+ Polygon poly8864520(4);
+ poly8864520.ps[0] = Point(24900, 28815);
+ poly8864520.ps[1] = Point(24900, 29135);
+ poly8864520.ps[2] = Point(24550, 29135);
+ poly8864520.ps[3] = Point(24550, 28815);
+ new ShapeRef(router, poly8864520, 8864520);
+
+JunctionRef *junctionRef9420650 = new JunctionRef(router, Point(26675, 28125), 9420650);
+
+ Polygon poly11441468(4);
+ poly11441468.ps[0] = Point(27754, 28275);
+ poly11441468.ps[1] = Point(27754, 28360);
+ poly11441468.ps[2] = Point(27696, 28360);
+ poly11441468.ps[3] = Point(27696, 28275);
+ new ShapeRef(router, poly11441468, 11441468);
+
+JunctionRef *junctionRef12650756 = new JunctionRef(router, Point(24250, 26575), 12650756);
+
+ Polygon poly13550052(4);
+ poly13550052.ps[0] = Point(24304, 29500);
+ poly13550052.ps[1] = Point(24304, 29585);
+ poly13550052.ps[2] = Point(24246, 29585);
+ poly13550052.ps[3] = Point(24246, 29500);
+ new ShapeRef(router, poly13550052, 13550052);
+
+JunctionRef *junctionRef16613420 = new JunctionRef(router, Point(27625, 28750), 16613420);
+
+ Polygon poly16932600(4);
+ poly16932600.ps[0] = Point(27425, 26715);
+ poly16932600.ps[1] = Point(27425, 27035);
+ poly16932600.ps[2] = Point(27075, 27035);
+ poly16932600.ps[3] = Point(27075, 26715);
+ new ShapeRef(router, poly16932600, 16932600);
+
+ Polygon poly17785779(4);
+ poly17785779.ps[0] = Point(25129, 27950);
+ poly17785779.ps[1] = Point(25129, 28035);
+ poly17785779.ps[2] = Point(25071, 28035);
+ poly17785779.ps[3] = Point(25071, 27950);
+ new ShapeRef(router, poly17785779, 17785779);
+
+JunctionRef *junctionRef23132835 = new JunctionRef(router, Point(24450, 26900), 23132835);
+
+JunctionRef *junctionRef26572870 = new JunctionRef(router, Point(23158, 26550), 26572870);
+
+ Polygon poly27045198(4);
+ poly27045198.ps[0] = Point(24279, 27925);
+ poly27045198.ps[1] = Point(24279, 28010);
+ poly27045198.ps[2] = Point(24221, 28010);
+ poly27045198.ps[3] = Point(24221, 27925);
+ new ShapeRef(router, poly27045198, 27045198);
+
+ Polygon poly28607408(4);
+ poly28607408.ps[0] = Point(27500, 28190);
+ poly28607408.ps[1] = Point(27500, 28510);
+ poly28607408.ps[2] = Point(27150, 28510);
+ poly28607408.ps[3] = Point(27150, 28190);
+ new ShapeRef(router, poly28607408, 28607408);
+
+ Polygon poly28892384(4);
+ poly28892384.ps[0] = Point(24950, 29440);
+ poly28892384.ps[1] = Point(24950, 29760);
+ poly28892384.ps[2] = Point(24600, 29760);
+ poly28892384.ps[3] = Point(24600, 29440);
+ new ShapeRef(router, poly28892384, 28892384);
+
+JunctionRef *junctionRef34620300 = new JunctionRef(router, Point(24400, 26200), 34620300);
+
+JunctionRef *junctionRef36814260 = new JunctionRef(router, Point(24994, 28975), 36814260);
+
+JunctionRef *junctionRef39695669 = new JunctionRef(router, Point(24000, 29000), 39695669);
+
+ Polygon poly39757638(4);
+ poly39757638.ps[0] = Point(26135, 26516);
+ poly39757638.ps[1] = Point(26135, 26584);
+ poly39757638.ps[2] = Point(26015, 26584);
+ poly39757638.ps[3] = Point(26015, 26516);
+ new ShapeRef(router, poly39757638, 39757638);
+
+JunctionRef *junctionRef41941580 = new JunctionRef(router, Point(23275, 26700), 41941580);
+
+ Polygon poly44086980(4);
+ poly44086980.ps[0] = Point(23950, 27840);
+ poly44086980.ps[1] = Point(23950, 28160);
+ poly44086980.ps[2] = Point(23600, 28160);
+ poly44086980.ps[3] = Point(23600, 27840);
+ new ShapeRef(router, poly44086980, 44086980);
+
+ Polygon poly45299820(4);
+ poly45299820.ps[0] = Point(25054, 26225);
+ poly45299820.ps[1] = Point(25054, 26310);
+ poly45299820.ps[2] = Point(24996, 26310);
+ poly45299820.ps[3] = Point(24996, 26225);
+ new ShapeRef(router, poly45299820, 45299820);
+
+ Polygon poly45389694(4);
+ poly45389694.ps[0] = Point(24825, 27265);
+ poly45389694.ps[1] = Point(24825, 27585);
+ poly45389694.ps[2] = Point(24475, 27585);
+ poly45389694.ps[3] = Point(24475, 27265);
+ new ShapeRef(router, poly45389694, 45389694);
+
+ Polygon poly53329545(4);
+ poly53329545.ps[0] = Point(22900, 29265);
+ poly53329545.ps[1] = Point(22900, 29385);
+ poly53329545.ps[2] = Point(22750, 29385);
+ poly53329545.ps[3] = Point(22750, 29265);
+ new ShapeRef(router, poly53329545, 53329545);
+
+JunctionRef *junctionRef58465624 = new JunctionRef(router, Point(23200, 28550), 58465624);
+
+ Polygon poly59167974(4);
+ poly59167974.ps[0] = Point(23925, 26465);
+ poly59167974.ps[1] = Point(23925, 26785);
+ poly59167974.ps[2] = Point(23575, 26785);
+ poly59167974.ps[3] = Point(23575, 26465);
+ new ShapeRef(router, poly59167974, 59167974);
+
+ Polygon poly66193481(4);
+ poly66193481.ps[0] = Point(27779, 29625);
+ poly66193481.ps[1] = Point(27779, 29710);
+ poly66193481.ps[2] = Point(27721, 29710);
+ poly66193481.ps[3] = Point(27721, 29625);
+ new ShapeRef(router, poly66193481, 66193481);
+
+ Polygon poly70299198(4);
+ poly70299198.ps[0] = Point(27754, 29100);
+ poly70299198.ps[1] = Point(27754, 29185);
+ poly70299198.ps[2] = Point(27696, 29185);
+ poly70299198.ps[3] = Point(27696, 29100);
+ new ShapeRef(router, poly70299198, 70299198);
+
+ Polygon poly71509898(4);
+ poly71509898.ps[0] = Point(27754, 28675);
+ poly71509898.ps[1] = Point(27754, 28760);
+ poly71509898.ps[2] = Point(27696, 28760);
+ poly71509898.ps[3] = Point(27696, 28675);
+ new ShapeRef(router, poly71509898, 71509898);
+
+ Polygon poly92664994(4);
+ poly92664994.ps[0] = Point(27754, 27175);
+ poly92664994.ps[1] = Point(27754, 27260);
+ poly92664994.ps[2] = Point(27696, 27260);
+ poly92664994.ps[3] = Point(27696, 27175);
+ new ShapeRef(router, poly92664994, 92664994);
+
+ Polygon poly106612990(4);
+ poly106612990.ps[0] = Point(23950, 27265);
+ poly106612990.ps[1] = Point(23950, 27585);
+ poly106612990.ps[2] = Point(23600, 27585);
+ poly106612990.ps[3] = Point(23600, 27265);
+ new ShapeRef(router, poly106612990, 106612990);
+
+ Polygon poly115549720(4);
+ poly115549720.ps[0] = Point(24050, 29415);
+ poly115549720.ps[1] = Point(24050, 29735);
+ poly115549720.ps[2] = Point(23700, 29735);
+ poly115549720.ps[3] = Point(23700, 29415);
+ new ShapeRef(router, poly115549720, 115549720);
+
+JunctionRef *junctionRef117582414 = new JunctionRef(router, Point(24225, 26700), 117582414);
+
+ Polygon poly129015449(4);
+ poly129015449.ps[0] = Point(24254, 28425);
+ poly129015449.ps[1] = Point(24254, 28510);
+ poly129015449.ps[2] = Point(24196, 28510);
+ poly129015449.ps[3] = Point(24196, 28425);
+ new ShapeRef(router, poly129015449, 129015449);
+
+JunctionRef *junctionRef131744632 = new JunctionRef(router, Point(24870, 26650), 131744632);
+
+ Polygon poly132843360(4);
+ poly132843360.ps[0] = Point(27425, 27090);
+ poly132843360.ps[1] = Point(27425, 27410);
+ poly132843360.ps[2] = Point(27075, 27410);
+ poly132843360.ps[3] = Point(27075, 27090);
+ new ShapeRef(router, poly132843360, 132843360);
+
+JunctionRef *junctionRef137263932 = new JunctionRef(router, Point(24250, 27125), 137263932);
+
+JunctionRef *junctionRef137883060 = new JunctionRef(router, Point(25000, 28650), 137883060);
+
+JunctionRef *junctionRef144791664 = new JunctionRef(router, Point(24300, 29050), 144791664);
+
+JunctionRef *junctionRef147481188 = new JunctionRef(router, Point(23208, 28075), 147481188);
+
+ Polygon poly156912624(4);
+ poly156912624.ps[0] = Point(24279, 28925);
+ poly156912624.ps[1] = Point(24279, 29010);
+ poly156912624.ps[2] = Point(24221, 29010);
+ poly156912624.ps[3] = Point(24221, 28925);
+ new ShapeRef(router, poly156912624, 156912624);
+
+ Polygon poly163577296(4);
+ poly163577296.ps[0] = Point(23950, 26115);
+ poly163577296.ps[1] = Point(23950, 26435);
+ poly163577296.ps[2] = Point(23600, 26435);
+ poly163577296.ps[3] = Point(23600, 26115);
+ new ShapeRef(router, poly163577296, 163577296);
+
+ Polygon poly165702672(4);
+ poly165702672.ps[0] = Point(25179, 29500);
+ poly165702672.ps[1] = Point(25179, 29585);
+ poly165702672.ps[2] = Point(25121, 29585);
+ poly165702672.ps[3] = Point(25121, 29500);
+ new ShapeRef(router, poly165702672, 165702672);
+
+ Polygon poly165841098(4);
+ poly165841098.ps[0] = Point(25029, 26575);
+ poly165841098.ps[1] = Point(25029, 26660);
+ poly165841098.ps[2] = Point(24971, 26660);
+ poly165841098.ps[3] = Point(24971, 26575);
+ new ShapeRef(router, poly165841098, 165841098);
+
+ Polygon poly170549060(4);
+ poly170549060.ps[0] = Point(23975, 28340);
+ poly170549060.ps[1] = Point(23975, 28660);
+ poly170549060.ps[2] = Point(23625, 28660);
+ poly170549060.ps[3] = Point(23625, 28340);
+ new ShapeRef(router, poly170549060, 170549060);
+
+ Polygon poly188773123(4);
+ poly188773123.ps[0] = Point(25029, 26975);
+ poly188773123.ps[1] = Point(25029, 27060);
+ poly188773123.ps[2] = Point(24971, 27060);
+ poly188773123.ps[3] = Point(24971, 26975);
+ new ShapeRef(router, poly188773123, 188773123);
+
+ Polygon poly190710960(4);
+ poly190710960.ps[0] = Point(27550, 29540);
+ poly190710960.ps[1] = Point(27550, 29860);
+ poly190710960.ps[2] = Point(27200, 29860);
+ poly190710960.ps[3] = Point(27200, 29540);
+ new ShapeRef(router, poly190710960, 190710960);
+
+JunctionRef *junctionRef195377532 = new JunctionRef(router, Point(27425, 27650), 195377532);
+
+JunctionRef *junctionRef200348672 = new JunctionRef(router, Point(27564, 28000), 200348672);
+
+ Polygon poly200595752(4);
+ poly200595752.ps[0] = Point(24900, 27865);
+ poly200595752.ps[1] = Point(24900, 28185);
+ poly200595752.ps[2] = Point(24550, 28185);
+ poly200595752.ps[3] = Point(24550, 27865);
+ new ShapeRef(router, poly200595752, 200595752);
+
+ Polygon poly208373760(4);
+ poly208373760.ps[0] = Point(24800, 26140);
+ poly208373760.ps[1] = Point(24800, 26460);
+ poly208373760.ps[2] = Point(24450, 26460);
+ poly208373760.ps[3] = Point(24450, 26140);
+ new ShapeRef(router, poly208373760, 208373760);
+
+ Polygon poly208442016(4);
+ poly208442016.ps[0] = Point(27525, 28590);
+ poly208442016.ps[1] = Point(27525, 28910);
+ poly208442016.ps[2] = Point(27175, 28910);
+ poly208442016.ps[3] = Point(27175, 28590);
+ new ShapeRef(router, poly208442016, 208442016);
+
+ Polygon poly214671138(4);
+ poly214671138.ps[0] = Point(24154, 26550);
+ poly214671138.ps[1] = Point(24154, 26635);
+ poly214671138.ps[2] = Point(24096, 26635);
+ poly214671138.ps[3] = Point(24096, 26550);
+ new ShapeRef(router, poly214671138, 214671138);
+
+ Polygon poly215949184(4);
+ poly215949184.ps[0] = Point(24800, 26890);
+ poly215949184.ps[1] = Point(24800, 27210);
+ poly215949184.ps[2] = Point(24450, 27210);
+ poly215949184.ps[3] = Point(24450, 26890);
+ new ShapeRef(router, poly215949184, 215949184);
+
+JunctionRef *junctionRef221746560 = new JunctionRef(router, Point(26702, 28825), 221746560);
+
+ Polygon poly221761830(4);
+ poly221761830.ps[0] = Point(27704, 26800);
+ poly221761830.ps[1] = Point(27704, 26885);
+ poly221761830.ps[2] = Point(27646, 26885);
+ poly221761830.ps[3] = Point(27646, 26800);
+ new ShapeRef(router, poly221761830, 221761830);
+
+ Polygon poly226135532(4);
+ poly226135532.ps[0] = Point(24750, 26490);
+ poly226135532.ps[1] = Point(24750, 26810);
+ poly226135532.ps[2] = Point(24400, 26810);
+ poly226135532.ps[3] = Point(24400, 26490);
+ new ShapeRef(router, poly226135532, 226135532);
+
+JunctionRef *junctionRef228740625 = new JunctionRef(router, Point(24350, 29300), 228740625);
+
+ Polygon poly251291208(4);
+ poly251291208.ps[0] = Point(27425, 27490);
+ poly251291208.ps[1] = Point(27425, 27810);
+ poly251291208.ps[2] = Point(27075, 27810);
+ poly251291208.ps[3] = Point(27075, 27490);
+ new ShapeRef(router, poly251291208, 251291208);
+
+JunctionRef *junctionRef255105144 = new JunctionRef(router, Point(26700, 28425), 255105144);
+
+JunctionRef *junctionRef275948952 = new JunctionRef(router, Point(23281, 27100), 275948952);
+
+ Polygon poly292681455(4);
+ poly292681455.ps[0] = Point(27475, 27840);
+ poly292681455.ps[1] = Point(27475, 28160);
+ poly292681455.ps[2] = Point(27125, 28160);
+ poly292681455.ps[3] = Point(27125, 27840);
+ new ShapeRef(router, poly292681455, 292681455);
+
+JunctionRef *junctionRef295885488 = new JunctionRef(router, Point(23925, 26625), 295885488);
+
+JunctionRef *junctionRef299817832 = new JunctionRef(router, Point(24300, 27500), 299817832);
+
+JunctionRef *junctionRef309723792 = new JunctionRef(router, Point(23575, 26100), 309723792);
+
+ Polygon poly312169746(4);
+ poly312169746.ps[0] = Point(23900, 26865);
+ poly312169746.ps[1] = Point(23900, 27185);
+ poly312169746.ps[2] = Point(23550, 27185);
+ poly312169746.ps[3] = Point(23550, 26865);
+ new ShapeRef(router, poly312169746, 312169746);
+
+ Polygon poly324370200(4);
+ poly324370200.ps[0] = Point(27550, 29015);
+ poly324370200.ps[1] = Point(27550, 29335);
+ poly324370200.ps[2] = Point(27200, 29335);
+ poly324370200.ps[3] = Point(27200, 29015);
+ new ShapeRef(router, poly324370200, 324370200);
+
+ Polygon poly330285180(4);
+ poly330285180.ps[0] = Point(22604, 29350);
+ poly330285180.ps[1] = Point(22604, 29435);
+ poly330285180.ps[2] = Point(22546, 29435);
+ poly330285180.ps[3] = Point(22546, 29350);
+ new ShapeRef(router, poly330285180, 330285180);
+
+ Polygon poly343901696(4);
+ poly343901696.ps[0] = Point(24204, 26200);
+ poly343901696.ps[1] = Point(24204, 26285);
+ poly343901696.ps[2] = Point(24146, 26285);
+ poly343901696.ps[3] = Point(24146, 26200);
+ new ShapeRef(router, poly343901696, 343901696);
+
+JunctionRef *junctionRef350832579 = new JunctionRef(router, Point(25000, 28450), 350832579);
+
+ Polygon poly351751345(4);
+ poly351751345.ps[0] = Point(24000, 28840);
+ poly351751345.ps[1] = Point(24000, 29160);
+ poly351751345.ps[2] = Point(23650, 29160);
+ poly351751345.ps[3] = Point(23650, 28840);
+ new ShapeRef(router, poly351751345, 351751345);
+
+JunctionRef *junctionRef358449734 = new JunctionRef(router, Point(27616, 29175), 358449734);
+
+JunctionRef *junctionRef373450980 = new JunctionRef(router, Point(27525, 27250), 373450980);
+
+JunctionRef *junctionRef391945245 = new JunctionRef(router, Point(27500, 28350), 391945245);
+
+JunctionRef *junctionRef394539723 = new JunctionRef(router, Point(23550, 26350), 394539723);
+
+ Polygon poly396658490(4);
+ poly396658490.ps[0] = Point(27754, 27925);
+ poly396658490.ps[1] = Point(27754, 28010);
+ poly396658490.ps[2] = Point(27696, 28010);
+ poly396658490.ps[3] = Point(27696, 27925);
+ new ShapeRef(router, poly396658490, 396658490);
+
+ Polygon poly408762900(4);
+ poly408762900.ps[0] = Point(24979, 27350);
+ poly408762900.ps[1] = Point(24979, 27435);
+ poly408762900.ps[2] = Point(24921, 27435);
+ poly408762900.ps[3] = Point(24921, 27350);
+ new ShapeRef(router, poly408762900, 408762900);
+
+JunctionRef *junctionRef414982287 = new JunctionRef(router, Point(24406, 26100), 414982287);
+
+ Polygon poly486383940(4);
+ poly486383940.ps[0] = Point(24154, 26950);
+ poly486383940.ps[1] = Point(24154, 27035);
+ poly486383940.ps[2] = Point(24096, 27035);
+ poly486383940.ps[3] = Point(24096, 26950);
+ new ShapeRef(router, poly486383940, 486383940);
+
+JunctionRef *junctionRef495386613 = new JunctionRef(router, Point(23200, 29075), 495386613);
+
+JunctionRef *junctionRef504671094 = new JunctionRef(router, Point(24836, 27425), 504671094);
+
+JunctionRef *junctionRef557043721 = new JunctionRef(router, Point(26702, 29250), 557043721);
+
+JunctionRef *junctionRef619528800 = new JunctionRef(router, Point(24168, 28425), 619528800);
+
+ Polygon poly627663896(4);
+ poly627663896.ps[0] = Point(24179, 27350);
+ poly627663896.ps[1] = Point(24179, 27435);
+ poly627663896.ps[2] = Point(24121, 27435);
+ poly627663896.ps[3] = Point(24121, 27350);
+ new ShapeRef(router, poly627663896, 627663896);
+
+JunctionRef *junctionRef639333280 = new JunctionRef(router, Point(24000, 26450), 639333280);
+
+JunctionRef *junctionRef706194558 = new JunctionRef(router, Point(24300, 28550), 706194558);
+
+ Polygon poly735238470(4);
+ poly735238470.ps[0] = Point(25179, 28400);
+ poly735238470.ps[1] = Point(25179, 28485);
+ poly735238470.ps[2] = Point(25121, 28485);
+ poly735238470.ps[3] = Point(25121, 28400);
+ new ShapeRef(router, poly735238470, 735238470);
+
+JunctionRef *junctionRef736226792 = new JunctionRef(router, Point(23150, 29350), 736226792);
+
+ Polygon poly736682544(4);
+ poly736682544.ps[0] = Point(25229, 28900);
+ poly736682544.ps[1] = Point(25229, 28985);
+ poly736682544.ps[2] = Point(25171, 28985);
+ poly736682544.ps[3] = Point(25171, 28900);
+ new ShapeRef(router, poly736682544, 736682544);
+
+ Polygon poly760051248(4);
+ poly760051248.ps[0] = Point(24875, 28315);
+ poly760051248.ps[1] = Point(24875, 28635);
+ poly760051248.ps[2] = Point(24525, 28635);
+ poly760051248.ps[3] = Point(24525, 28315);
+ new ShapeRef(router, poly760051248, 760051248);
+
+JunctionRef *junctionRef790438915 = new JunctionRef(router, Point(24075, 28500), 790438915);
+
+JunctionRef *junctionRef881601350 = new JunctionRef(router, Point(27692, 29100), 881601350);
+
+ Polygon poly900057885(4);
+ poly900057885.ps[0] = Point(27704, 27575);
+ poly900057885.ps[1] = Point(27704, 27660);
+ poly900057885.ps[2] = Point(27646, 27660);
+ poly900057885.ps[3] = Point(27646, 27575);
+ new ShapeRef(router, poly900057885, 900057885);
+
+JunctionRef *junctionRef990913310 = new JunctionRef(router, Point(24000, 27025), 990913310);
+
+ ConnRef *connRef2650284 = new ConnRef(router, 2650284);
+ ConnEnd srcPt2650284(junctionRef295885488);
+ connRef2650284->setSourceEndpoint(srcPt2650284);
+ ConnEnd dstPt2650284(junctionRef639333280);
+ connRef2650284->setDestEndpoint(dstPt2650284);
+ connRef2650284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef2833330 = new ConnRef(router, 2833330);
+ ConnEnd srcPt2833330(junctionRef221746560);
+ connRef2833330->setSourceEndpoint(srcPt2833330);
+ ConnEnd dstPt2833330(junctionRef255105144);
+ connRef2833330->setDestEndpoint(dstPt2833330);
+ connRef2833330->setRoutingType((ConnType)2);
+
+ ConnRef *connRef4043718 = new ConnRef(router, 4043718);
+ ConnEnd srcPt4043718(Point(27515, 28750), 8);
+ connRef4043718->setSourceEndpoint(srcPt4043718);
+ ConnEnd dstPt4043718(junctionRef16613420);
+ connRef4043718->setDestEndpoint(dstPt4043718);
+ connRef4043718->setRoutingType((ConnType)2);
+
+ ConnRef *connRef9745060 = new ConnRef(router, 9745060);
+ ConnEnd srcPt9745060(Point(23610, 28075), 4);
+ connRef9745060->setSourceEndpoint(srcPt9745060);
+ ConnEnd dstPt9745060(junctionRef147481188);
+ connRef9745060->setDestEndpoint(dstPt9745060);
+ connRef9745060->setRoutingType((ConnType)2);
+
+ ConnRef *connRef10983140 = new ConnRef(router, 10983140);
+ ConnEnd srcPt10983140(Point(23890, 26950), 8);
+ connRef10983140->setSourceEndpoint(srcPt10983140);
+ ConnEnd dstPt10983140(Point(24125, 26960), 1);
+ connRef10983140->setDestEndpoint(dstPt10983140);
+ connRef10983140->setRoutingType((ConnType)2);
+
+ ConnRef *connRef11588500 = new ConnRef(router, 11588500);
+ ConnEnd srcPt11588500(Point(23610, 27425), 4);
+ connRef11588500->setSourceEndpoint(srcPt11588500);
+ ConnEnd dstPt11588500(Point(25835, 27250), 4);
+ connRef11588500->setDestEndpoint(dstPt11588500);
+ connRef11588500->setRoutingType((ConnType)2);
+
+ ConnRef *connRef11844992 = new ConnRef(router, 11844992);
+ ConnEnd srcPt11844992(junctionRef137263932);
+ connRef11844992->setSourceEndpoint(srcPt11844992);
+ ConnEnd dstPt11844992(junctionRef117582414);
+ connRef11844992->setDestEndpoint(dstPt11844992);
+ connRef11844992->setRoutingType((ConnType)2);
+
+ ConnRef *connRef14786845 = new ConnRef(router, 14786845);
+ ConnEnd srcPt14786845(junctionRef736226792);
+ connRef14786845->setSourceEndpoint(srcPt14786845);
+ ConnEnd dstPt14786845(junctionRef495386613);
+ connRef14786845->setDestEndpoint(dstPt14786845);
+ connRef14786845->setRoutingType((ConnType)2);
+
+ ConnRef *connRef16261480 = new ConnRef(router, 16261480);
+ ConnEnd srcPt16261480(junctionRef5416208);
+ connRef16261480->setSourceEndpoint(srcPt16261480);
+ ConnEnd dstPt16261480(junctionRef299817832);
+ connRef16261480->setDestEndpoint(dstPt16261480);
+ connRef16261480->setRoutingType((ConnType)2);
+
+ ConnRef *connRef16390046 = new ConnRef(router, 16390046);
+ ConnEnd srcPt16390046(Point(24040, 29575), 8);
+ connRef16390046->setSourceEndpoint(srcPt16390046);
+ ConnEnd dstPt16390046(junctionRef39695669);
+ connRef16390046->setDestEndpoint(dstPt16390046);
+ connRef16390046->setRoutingType((ConnType)2);
+
+ ConnRef *connRef17931396 = new ConnRef(router, 17931396);
+ ConnEnd srcPt17931396(Point(27210, 29250), 4);
+ connRef17931396->setSourceEndpoint(srcPt17931396);
+ ConnEnd dstPt17931396(junctionRef557043721);
+ connRef17931396->setDestEndpoint(dstPt17931396);
+ connRef17931396->setRoutingType((ConnType)2);
+
+ ConnRef *connRef22109256 = new ConnRef(router, 22109256);
+ ConnEnd srcPt22109256(Point(27210, 29775), 4);
+ connRef22109256->setSourceEndpoint(srcPt22109256);
+ ConnEnd dstPt22109256(junctionRef557043721);
+ connRef22109256->setDestEndpoint(dstPt22109256);
+ connRef22109256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef22594350 = new ConnRef(router, 22594350);
+ ConnEnd srcPt22594350(junctionRef414982287);
+ connRef22594350->setSourceEndpoint(srcPt22594350);
+ ConnEnd dstPt22594350(junctionRef34620300);
+ connRef22594350->setDestEndpoint(dstPt22594350);
+ connRef22594350->setRoutingType((ConnType)2);
+
+ ConnRef *connRef22914582 = new ConnRef(router, 22914582);
+ ConnEnd srcPt22914582(junctionRef350832579);
+ connRef22914582->setSourceEndpoint(srcPt22914582);
+ ConnEnd dstPt22914582(Point(24865, 28475), 8);
+ connRef22914582->setDestEndpoint(dstPt22914582);
+ connRef22914582->setRoutingType((ConnType)2);
+
+ ConnRef *connRef23169708 = new ConnRef(router, 23169708);
+ ConnEnd srcPt23169708(junctionRef358449734);
+ connRef23169708->setSourceEndpoint(srcPt23169708);
+ ConnEnd dstPt23169708(junctionRef881601350);
+ connRef23169708->setDestEndpoint(dstPt23169708);
+ connRef23169708->setRoutingType((ConnType)2);
+
+ ConnRef *connRef23586424 = new ConnRef(router, 23586424);
+ ConnEnd srcPt23586424(Point(23610, 27350), 4);
+ connRef23586424->setSourceEndpoint(srcPt23586424);
+ ConnEnd dstPt23586424(junctionRef26572870);
+ connRef23586424->setDestEndpoint(dstPt23586424);
+ connRef23586424->setRoutingType((ConnType)2);
+
+ ConnRef *connRef24487272 = new ConnRef(router, 24487272);
+ ConnEnd srcPt24487272(junctionRef299817832);
+ connRef24487272->setSourceEndpoint(srcPt24487272);
+ ConnEnd dstPt24487272(junctionRef137263932);
+ connRef24487272->setDestEndpoint(dstPt24487272);
+ connRef24487272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef26971490 = new ConnRef(router, 26971490);
+ ConnEnd srcPt26971490(junctionRef275948952);
+ connRef26971490->setSourceEndpoint(srcPt26971490);
+ ConnEnd dstPt26971490(Point(23610, 27500), 4);
+ connRef26971490->setDestEndpoint(dstPt26971490);
+ connRef26971490->setRoutingType((ConnType)2);
+
+ ConnRef *connRef27342336 = new ConnRef(router, 27342336);
+ ConnEnd srcPt27342336(junctionRef34620300);
+ connRef27342336->setSourceEndpoint(srcPt27342336);
+ ConnEnd dstPt27342336(Point(24460, 26225), 4);
+ connRef27342336->setDestEndpoint(dstPt27342336);
+ connRef27342336->setRoutingType((ConnType)2);
+
+ ConnRef *connRef29036799 = new ConnRef(router, 29036799);
+ ConnEnd srcPt29036799(Point(23890, 27025), 8);
+ connRef29036799->setSourceEndpoint(srcPt29036799);
+ ConnEnd dstPt29036799(junctionRef990913310);
+ connRef29036799->setDestEndpoint(dstPt29036799);
+ connRef29036799->setRoutingType((ConnType)2);
+
+ ConnRef *connRef29965772 = new ConnRef(router, 29965772);
+ ConnEnd srcPt29965772(Point(27675, 26810), 1);
+ connRef29965772->setSourceEndpoint(srcPt29965772);
+ ConnEnd dstPt29965772(Point(27415, 26800), 8);
+ connRef29965772->setDestEndpoint(dstPt29965772);
+ connRef29965772->setRoutingType((ConnType)2);
+
+ ConnRef *connRef31188915 = new ConnRef(router, 31188915);
+ ConnEnd srcPt31188915(Point(24410, 26650), 4);
+ connRef31188915->setSourceEndpoint(srcPt31188915);
+ ConnEnd dstPt31188915(Point(25835, 27400), 4);
+ connRef31188915->setDestEndpoint(dstPt31188915);
+ connRef31188915->setRoutingType((ConnType)2);
+
+ ConnRef *connRef32390545 = new ConnRef(router, 32390545);
+ ConnEnd srcPt32390545(Point(27540, 29175), 8);
+ connRef32390545->setSourceEndpoint(srcPt32390545);
+ ConnEnd dstPt32390545(junctionRef358449734);
+ connRef32390545->setDestEndpoint(dstPt32390545);
+ connRef32390545->setRoutingType((ConnType)2);
+
+ ConnRef *connRef33457066 = new ConnRef(router, 33457066);
+ ConnEnd srcPt33457066(Point(27185, 28825), 4);
+ connRef33457066->setSourceEndpoint(srcPt33457066);
+ ConnEnd dstPt33457066(junctionRef221746560);
+ connRef33457066->setDestEndpoint(dstPt33457066);
+ connRef33457066->setRoutingType((ConnType)2);
+
+ ConnRef *connRef34908836 = new ConnRef(router, 34908836);
+ ConnEnd srcPt34908836(junctionRef9420650);
+ connRef34908836->setSourceEndpoint(srcPt34908836);
+ ConnEnd dstPt34908836(Point(27135, 28075), 4);
+ connRef34908836->setDestEndpoint(dstPt34908836);
+ connRef34908836->setRoutingType((ConnType)2);
+
+ ConnRef *connRef37638287 = new ConnRef(router, 37638287);
+ ConnEnd srcPt37638287(junctionRef790438915);
+ connRef37638287->setSourceEndpoint(srcPt37638287);
+ ConnEnd dstPt37638287(Point(23965, 28500), 8);
+ connRef37638287->setDestEndpoint(dstPt37638287);
+ connRef37638287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef40448457 = new ConnRef(router, 40448457);
+ ConnEnd srcPt40448457(Point(24790, 26975), 8);
+ connRef40448457->setSourceEndpoint(srcPt40448457);
+ ConnEnd dstPt40448457(Point(25000, 26985), 1);
+ connRef40448457->setDestEndpoint(dstPt40448457);
+ connRef40448457->setRoutingType((ConnType)2);
+
+ ConnRef *connRef40882634 = new ConnRef(router, 40882634);
+ ConnEnd srcPt40882634(Point(23560, 26950), 4);
+ connRef40882634->setSourceEndpoint(srcPt40882634);
+ ConnEnd dstPt40882634(junctionRef26572870);
+ connRef40882634->setDestEndpoint(dstPt40882634);
+ connRef40882634->setRoutingType((ConnType)2);
+
+ ConnRef *connRef47717100 = new ConnRef(router, 47717100);
+ ConnEnd srcPt47717100(Point(25200, 28910), 1);
+ connRef47717100->setSourceEndpoint(srcPt47717100);
+ ConnEnd dstPt47717100(Point(24890, 28900), 8);
+ connRef47717100->setDestEndpoint(dstPt47717100);
+ connRef47717100->setRoutingType((ConnType)2);
+
+ ConnRef *connRef56597370 = new ConnRef(router, 56597370);
+ ConnEnd srcPt56597370(Point(27675, 27585), 1);
+ connRef56597370->setSourceEndpoint(srcPt56597370);
+ ConnEnd dstPt56597370(Point(27415, 27575), 8);
+ connRef56597370->setDestEndpoint(dstPt56597370);
+ connRef56597370->setRoutingType((ConnType)2);
+
+ ConnRef *connRef59354933 = new ConnRef(router, 59354933);
+ ConnEnd srcPt59354933(junctionRef309723792);
+ connRef59354933->setSourceEndpoint(srcPt59354933);
+ ConnEnd dstPt59354933(junctionRef414982287);
+ connRef59354933->setDestEndpoint(dstPt59354933);
+ connRef59354933->setRoutingType((ConnType)2);
+
+ ConnRef *connRef77227284 = new ConnRef(router, 77227284);
+ ConnEnd srcPt77227284(Point(24740, 26650), 8);
+ connRef77227284->setSourceEndpoint(srcPt77227284);
+ ConnEnd dstPt77227284(junctionRef131744632);
+ connRef77227284->setDestEndpoint(dstPt77227284);
+ connRef77227284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef79612408 = new ConnRef(router, 79612408);
+ ConnEnd srcPt79612408(Point(23585, 26625), 4);
+ connRef79612408->setSourceEndpoint(srcPt79612408);
+ ConnEnd dstPt79612408(Point(25835, 27100), 4);
+ connRef79612408->setDestEndpoint(dstPt79612408);
+ connRef79612408->setRoutingType((ConnType)2);
+
+ ConnRef *connRef82780868 = new ConnRef(router, 82780868);
+ ConnEnd srcPt82780868(Point(27185, 28750), 4);
+ connRef82780868->setSourceEndpoint(srcPt82780868);
+ ConnEnd dstPt82780868(Point(25835, 28375), 4);
+ connRef82780868->setDestEndpoint(dstPt82780868);
+ connRef82780868->setRoutingType((ConnType)2);
+
+ ConnRef *connRef83092945 = new ConnRef(router, 83092945);
+ ConnEnd srcPt83092945(Point(27085, 27650), 4);
+ connRef83092945->setSourceEndpoint(srcPt83092945);
+ ConnEnd dstPt83092945(Point(26165, 27175), 8);
+ connRef83092945->setDestEndpoint(dstPt83092945);
+ connRef83092945->setRoutingType((ConnType)2);
+
+ ConnRef *connRef88266240 = new ConnRef(router, 88266240);
+ ConnEnd srcPt88266240(junctionRef790438915);
+ connRef88266240->setSourceEndpoint(srcPt88266240);
+ ConnEnd dstPt88266240(junctionRef137883060);
+ connRef88266240->setDestEndpoint(dstPt88266240);
+ connRef88266240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef90460104 = new ConnRef(router, 90460104);
+ ConnEnd srcPt90460104(junctionRef39695669);
+ connRef90460104->setSourceEndpoint(srcPt90460104);
+ ConnEnd dstPt90460104(junctionRef790438915);
+ connRef90460104->setDestEndpoint(dstPt90460104);
+ connRef90460104->setRoutingType((ConnType)2);
+
+ ConnRef *connRef91952388 = new ConnRef(router, 91952388);
+ ConnEnd srcPt91952388(Point(25835, 27475), 4);
+ connRef91952388->setSourceEndpoint(srcPt91952388);
+ ConnEnd dstPt91952388(Point(24460, 27050), 4);
+ connRef91952388->setDestEndpoint(dstPt91952388);
+ connRef91952388->setRoutingType((ConnType)2);
+
+ ConnRef *connRef92256651 = new ConnRef(router, 92256651);
+ ConnEnd srcPt92256651(Point(27135, 28000), 4);
+ connRef92256651->setSourceEndpoint(srcPt92256651);
+ ConnEnd dstPt92256651(Point(25835, 28525), 4);
+ connRef92256651->setDestEndpoint(dstPt92256651);
+ connRef92256651->setRoutingType((ConnType)2);
+
+ ConnRef *connRef95273991 = new ConnRef(router, 95273991);
+ ConnEnd srcPt95273991(Point(27750, 29635), 1);
+ connRef95273991->setSourceEndpoint(srcPt95273991);
+ ConnEnd dstPt95273991(Point(27540, 29625), 8);
+ connRef95273991->setDestEndpoint(dstPt95273991);
+ connRef95273991->setRoutingType((ConnType)2);
+
+ ConnRef *connRef98351958 = new ConnRef(router, 98351958);
+ ConnEnd srcPt98351958(junctionRef41941580);
+ connRef98351958->setSourceEndpoint(srcPt98351958);
+ ConnEnd dstPt98351958(Point(23585, 26700), 4);
+ connRef98351958->setDestEndpoint(dstPt98351958);
+ connRef98351958->setRoutingType((ConnType)2);
+
+ ConnRef *connRef101848175 = new ConnRef(router, 101848175);
+ ConnEnd srcPt101848175(Point(24485, 27350), 4);
+ connRef101848175->setSourceEndpoint(srcPt101848175);
+ ConnEnd dstPt101848175(junctionRef23132835);
+ connRef101848175->setDestEndpoint(dstPt101848175);
+ connRef101848175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef107055166 = new ConnRef(router, 107055166);
+ ConnEnd srcPt107055166(junctionRef200348672);
+ connRef107055166->setSourceEndpoint(srcPt107055166);
+ ConnEnd dstPt107055166(junctionRef195377532);
+ connRef107055166->setDestEndpoint(dstPt107055166);
+ connRef107055166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef126287880 = new ConnRef(router, 126287880);
+ ConnEnd srcPt126287880(junctionRef881601350);
+ connRef126287880->setSourceEndpoint(srcPt126287880);
+ ConnEnd dstPt126287880(Point(27540, 29100), 8);
+ connRef126287880->setDestEndpoint(dstPt126287880);
+ connRef126287880->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149791360 = new ConnRef(router, 149791360);
+ ConnEnd srcPt149791360(Point(24940, 29600), 8);
+ connRef149791360->setSourceEndpoint(srcPt149791360);
+ ConnEnd dstPt149791360(junctionRef36814260);
+ connRef149791360->setDestEndpoint(dstPt149791360);
+ connRef149791360->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152838249 = new ConnRef(router, 152838249);
+ ConnEnd srcPt152838249(Point(24275, 29510), 1);
+ connRef152838249->setSourceEndpoint(srcPt152838249);
+ ConnEnd dstPt152838249(Point(24040, 29500), 8);
+ connRef152838249->setDestEndpoint(dstPt152838249);
+ connRef152838249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156657228 = new ConnRef(router, 156657228);
+ ConnEnd srcPt156657228(junctionRef619528800);
+ connRef156657228->setSourceEndpoint(srcPt156657228);
+ ConnEnd dstPt156657228(Point(23965, 28425), 8);
+ connRef156657228->setDestEndpoint(dstPt156657228);
+ connRef156657228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157276356 = new ConnRef(router, 157276356);
+ ConnEnd srcPt157276356(Point(24890, 28025), 8);
+ connRef157276356->setSourceEndpoint(srcPt157276356);
+ ConnEnd dstPt157276356(junctionRef350832579);
+ connRef157276356->setDestEndpoint(dstPt157276356);
+ connRef157276356->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162858434 = new ConnRef(router, 162858434);
+ ConnEnd srcPt162858434(Point(24150, 27360), 1);
+ connRef162858434->setSourceEndpoint(srcPt162858434);
+ ConnEnd dstPt162858434(Point(23940, 27350), 8);
+ connRef162858434->setDestEndpoint(dstPt162858434);
+ connRef162858434->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170639469 = new ConnRef(router, 170639469);
+ ConnEnd srcPt170639469(junctionRef131744632);
+ connRef170639469->setSourceEndpoint(srcPt170639469);
+ ConnEnd dstPt170639469(Point(24790, 26300), 8);
+ connRef170639469->setDestEndpoint(dstPt170639469);
+ connRef170639469->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171917628 = new ConnRef(router, 171917628);
+ ConnEnd srcPt171917628(Point(24790, 27050), 8);
+ connRef171917628->setSourceEndpoint(srcPt171917628);
+ ConnEnd dstPt171917628(junctionRef1634752);
+ connRef171917628->setDestEndpoint(dstPt171917628);
+ connRef171917628->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175703112 = new ConnRef(router, 175703112);
+ ConnEnd srcPt175703112(Point(22760, 29325), 4);
+ connRef175703112->setSourceEndpoint(srcPt175703112);
+ ConnEnd dstPt175703112(Point(22575, 29360), 1);
+ connRef175703112->setDestEndpoint(dstPt175703112);
+ connRef175703112->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175774395 = new ConnRef(router, 175774395);
+ ConnEnd srcPt175774395(junctionRef358449734);
+ connRef175774395->setSourceEndpoint(srcPt175774395);
+ ConnEnd dstPt175774395(junctionRef16613420);
+ connRef175774395->setDestEndpoint(dstPt175774395);
+ connRef175774395->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177387840 = new ConnRef(router, 177387840);
+ ConnEnd srcPt177387840(Point(27725, 27935), 1);
+ connRef177387840->setSourceEndpoint(srcPt177387840);
+ ConnEnd dstPt177387840(Point(27465, 27925), 8);
+ connRef177387840->setDestEndpoint(dstPt177387840);
+ connRef177387840->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179014612 = new ConnRef(router, 179014612);
+ ConnEnd srcPt179014612(Point(24790, 26225), 8);
+ connRef179014612->setSourceEndpoint(srcPt179014612);
+ ConnEnd dstPt179014612(Point(25025, 26235), 1);
+ connRef179014612->setDestEndpoint(dstPt179014612);
+ connRef179014612->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181436988 = new ConnRef(router, 181436988);
+ ConnEnd srcPt181436988(junctionRef275948952);
+ connRef181436988->setSourceEndpoint(srcPt181436988);
+ ConnEnd dstPt181436988(junctionRef41941580);
+ connRef181436988->setDestEndpoint(dstPt181436988);
+ connRef181436988->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186910820 = new ConnRef(router, 186910820);
+ ConnEnd srcPt186910820(Point(25100, 27960), 1);
+ connRef186910820->setSourceEndpoint(srcPt186910820);
+ ConnEnd dstPt186910820(Point(24890, 27950), 8);
+ connRef186910820->setDestEndpoint(dstPt186910820);
+ connRef186910820->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187785156 = new ConnRef(router, 187785156);
+ ConnEnd srcPt187785156(junctionRef495386613);
+ connRef187785156->setSourceEndpoint(srcPt187785156);
+ ConnEnd dstPt187785156(junctionRef58465624);
+ connRef187785156->setDestEndpoint(dstPt187785156);
+ connRef187785156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189722660 = new ConnRef(router, 189722660);
+ ConnEnd srcPt189722660(junctionRef23132835);
+ connRef189722660->setSourceEndpoint(srcPt189722660);
+ ConnEnd dstPt189722660(junctionRef12650756);
+ connRef189722660->setDestEndpoint(dstPt189722660);
+ connRef189722660->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192744750 = new ConnRef(router, 192744750);
+ ConnEnd srcPt192744750(junctionRef36814260);
+ connRef192744750->setSourceEndpoint(srcPt192744750);
+ ConnEnd dstPt192744750(junctionRef137883060);
+ connRef192744750->setDestEndpoint(dstPt192744750);
+ connRef192744750->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197632590 = new ConnRef(router, 197632590);
+ ConnEnd srcPt197632590(Point(25150, 29510), 1);
+ connRef197632590->setSourceEndpoint(srcPt197632590);
+ ConnEnd dstPt197632590(Point(24940, 29525), 8);
+ connRef197632590->setDestEndpoint(dstPt197632590);
+ connRef197632590->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199761771 = new ConnRef(router, 199761771);
+ ConnEnd srcPt199761771(Point(25150, 28410), 1);
+ connRef199761771->setSourceEndpoint(srcPt199761771);
+ ConnEnd dstPt199761771(Point(24865, 28400), 8);
+ connRef199761771->setDestEndpoint(dstPt199761771);
+ connRef199761771->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200371408 = new ConnRef(router, 200371408);
+ ConnEnd srcPt200371408(Point(23710, 29575), 4);
+ connRef200371408->setSourceEndpoint(srcPt200371408);
+ ConnEnd dstPt200371408(Point(25835, 27700), 4);
+ connRef200371408->setDestEndpoint(dstPt200371408);
+ connRef200371408->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202197435 = new ConnRef(router, 202197435);
+ ConnEnd srcPt202197435(Point(23610, 26275), 4);
+ connRef202197435->setSourceEndpoint(srcPt202197435);
+ ConnEnd dstPt202197435(Point(25835, 27025), 4);
+ connRef202197435->setDestEndpoint(dstPt202197435);
+ connRef202197435->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223350000 = new ConnRef(router, 223350000);
+ ConnEnd srcPt223350000(junctionRef790438915);
+ connRef223350000->setSourceEndpoint(srcPt223350000);
+ ConnEnd dstPt223350000(junctionRef619528800);
+ connRef223350000->setDestEndpoint(dstPt223350000);
+ connRef223350000->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225755952 = new ConnRef(router, 225755952);
+ ConnEnd srcPt225755952(Point(26075, 26550), 15);
+ connRef225755952->setSourceEndpoint(srcPt225755952);
+ ConnEnd dstPt225755952(junctionRef414982287);
+ connRef225755952->setDestEndpoint(dstPt225755952);
+ connRef225755952->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231794598 = new ConnRef(router, 231794598);
+ ConnEnd srcPt231794598(Point(24740, 26575), 8);
+ connRef231794598->setSourceEndpoint(srcPt231794598);
+ ConnEnd dstPt231794598(Point(25000, 26585), 1);
+ connRef231794598->setDestEndpoint(dstPt231794598);
+ connRef231794598->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235948750 = new ConnRef(router, 235948750);
+ ConnEnd srcPt235948750(Point(24485, 27500), 4);
+ connRef235948750->setSourceEndpoint(srcPt235948750);
+ ConnEnd dstPt235948750(junctionRef299817832);
+ connRef235948750->setDestEndpoint(dstPt235948750);
+ connRef235948750->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237307070 = new ConnRef(router, 237307070);
+ ConnEnd srcPt237307070(Point(24610, 29675), 4);
+ connRef237307070->setSourceEndpoint(srcPt237307070);
+ ConnEnd dstPt237307070(junctionRef228740625);
+ connRef237307070->setDestEndpoint(dstPt237307070);
+ connRef237307070->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243434688 = new ConnRef(router, 243434688);
+ ConnEnd srcPt243434688(Point(23560, 27100), 4);
+ connRef243434688->setSourceEndpoint(srcPt243434688);
+ ConnEnd dstPt243434688(junctionRef275948952);
+ connRef243434688->setDestEndpoint(dstPt243434688);
+ connRef243434688->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257379648 = new ConnRef(router, 257379648);
+ ConnEnd srcPt257379648(Point(24460, 27125), 4);
+ connRef257379648->setSourceEndpoint(srcPt257379648);
+ ConnEnd dstPt257379648(junctionRef137263932);
+ connRef257379648->setDestEndpoint(dstPt257379648);
+ connRef257379648->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257846316 = new ConnRef(router, 257846316);
+ ConnEnd srcPt257846316(junctionRef557043721);
+ connRef257846316->setSourceEndpoint(srcPt257846316);
+ ConnEnd dstPt257846316(junctionRef228740625);
+ connRef257846316->setDestEndpoint(dstPt257846316);
+ connRef257846316->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258773320 = new ConnRef(router, 258773320);
+ ConnEnd srcPt258773320(Point(27210, 29175), 4);
+ connRef258773320->setSourceEndpoint(srcPt258773320);
+ ConnEnd dstPt258773320(Point(25835, 28300), 4);
+ connRef258773320->setDestEndpoint(dstPt258773320);
+ connRef258773320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260211707 = new ConnRef(router, 260211707);
+ ConnEnd srcPt260211707(Point(23940, 27425), 8);
+ connRef260211707->setSourceEndpoint(srcPt260211707);
+ ConnEnd dstPt260211707(junctionRef990913310);
+ connRef260211707->setDestEndpoint(dstPt260211707);
+ connRef260211707->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273011160 = new ConnRef(router, 273011160);
+ ConnEnd srcPt273011160(Point(23660, 29000), 4);
+ connRef273011160->setSourceEndpoint(srcPt273011160);
+ ConnEnd dstPt273011160(Point(25835, 28150), 4);
+ connRef273011160->setDestEndpoint(dstPt273011160);
+ connRef273011160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274013534 = new ConnRef(router, 274013534);
+ ConnEnd srcPt274013534(Point(24890, 28975), 8);
+ connRef274013534->setSourceEndpoint(srcPt274013534);
+ ConnEnd dstPt274013534(junctionRef36814260);
+ connRef274013534->setDestEndpoint(dstPt274013534);
+ connRef274013534->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279737601 = new ConnRef(router, 279737601);
+ ConnEnd srcPt279737601(junctionRef26572870);
+ connRef279737601->setSourceEndpoint(srcPt279737601);
+ ConnEnd dstPt279737601(junctionRef309723792);
+ connRef279737601->setDestEndpoint(dstPt279737601);
+ connRef279737601->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281388594 = new ConnRef(router, 281388594);
+ ConnEnd srcPt281388594(Point(27725, 28685), 1);
+ connRef281388594->setSourceEndpoint(srcPt281388594);
+ ConnEnd dstPt281388594(Point(27515, 28675), 8);
+ connRef281388594->setDestEndpoint(dstPt281388594);
+ connRef281388594->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285908400 = new ConnRef(router, 285908400);
+ ConnEnd srcPt285908400(Point(23560, 27025), 4);
+ connRef285908400->setSourceEndpoint(srcPt285908400);
+ ConnEnd dstPt285908400(Point(25835, 27175), 4);
+ connRef285908400->setDestEndpoint(dstPt285908400);
+ connRef285908400->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287034425 = new ConnRef(router, 287034425);
+ ConnEnd srcPt287034425(junctionRef391945245);
+ connRef287034425->setSourceEndpoint(srcPt287034425);
+ ConnEnd dstPt287034425(junctionRef200348672);
+ connRef287034425->setDestEndpoint(dstPt287034425);
+ connRef287034425->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288108606 = new ConnRef(router, 288108606);
+ ConnEnd srcPt288108606(Point(23610, 26350), 4);
+ connRef288108606->setSourceEndpoint(srcPt288108606);
+ ConnEnd dstPt288108606(junctionRef394539723);
+ connRef288108606->setDestEndpoint(dstPt288108606);
+ connRef288108606->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290380424 = new ConnRef(router, 290380424);
+ ConnEnd srcPt290380424(Point(24560, 29050), 4);
+ connRef290380424->setSourceEndpoint(srcPt290380424);
+ ConnEnd dstPt290380424(junctionRef144791664);
+ connRef290380424->setDestEndpoint(dstPt290380424);
+ connRef290380424->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294588780 = new ConnRef(router, 294588780);
+ ConnEnd srcPt294588780(Point(27085, 27725), 4);
+ connRef294588780->setSourceEndpoint(srcPt294588780);
+ ConnEnd dstPt294588780(junctionRef9420650);
+ connRef294588780->setDestEndpoint(dstPt294588780);
+ connRef294588780->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295795481 = new ConnRef(router, 295795481);
+ ConnEnd srcPt295795481(Point(24460, 26375), 4);
+ connRef295795481->setSourceEndpoint(srcPt295795481);
+ ConnEnd dstPt295795481(junctionRef117582414);
+ connRef295795481->setDestEndpoint(dstPt295795481);
+ connRef295795481->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297813338 = new ConnRef(router, 297813338);
+ ConnEnd srcPt297813338(Point(24560, 28100), 4);
+ connRef297813338->setSourceEndpoint(srcPt297813338);
+ ConnEnd dstPt297813338(junctionRef5416208);
+ connRef297813338->setDestEndpoint(dstPt297813338);
+ connRef297813338->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297831780 = new ConnRef(router, 297831780);
+ ConnEnd srcPt297831780(Point(27725, 29110), 1);
+ connRef297831780->setSourceEndpoint(srcPt297831780);
+ ConnEnd dstPt297831780(junctionRef881601350);
+ connRef297831780->setDestEndpoint(dstPt297831780);
+ connRef297831780->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305590064 = new ConnRef(router, 305590064);
+ ConnEnd srcPt305590064(Point(24560, 28025), 4);
+ connRef305590064->setSourceEndpoint(srcPt305590064);
+ ConnEnd dstPt305590064(Point(25835, 27625), 4);
+ connRef305590064->setDestEndpoint(dstPt305590064);
+ connRef305590064->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311241725 = new ConnRef(router, 311241725);
+ ConnEnd srcPt311241725(Point(27725, 28285), 1);
+ connRef311241725->setSourceEndpoint(srcPt311241725);
+ ConnEnd dstPt311241725(Point(27490, 28275), 8);
+ connRef311241725->setDestEndpoint(dstPt311241725);
+ connRef311241725->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322174720 = new ConnRef(router, 322174720);
+ ConnEnd srcPt322174720(Point(24250, 27935), 1);
+ connRef322174720->setSourceEndpoint(srcPt322174720);
+ ConnEnd dstPt322174720(Point(23940, 27925), 8);
+ connRef322174720->setDestEndpoint(dstPt322174720);
+ connRef322174720->setRoutingType((ConnType)2);
+
+ ConnRef *connRef322291528 = new ConnRef(router, 322291528);
+ ConnEnd srcPt322291528(Point(23585, 26550), 4);
+ connRef322291528->setSourceEndpoint(srcPt322291528);
+ ConnEnd dstPt322291528(junctionRef26572870);
+ connRef322291528->setDestEndpoint(dstPt322291528);
+ connRef322291528->setRoutingType((ConnType)2);
+
+ ConnRef *connRef328813520 = new ConnRef(router, 328813520);
+ ConnEnd srcPt328813520(junctionRef1634752);
+ connRef328813520->setSourceEndpoint(srcPt328813520);
+ ConnEnd dstPt328813520(junctionRef131744632);
+ connRef328813520->setDestEndpoint(dstPt328813520);
+ connRef328813520->setRoutingType((ConnType)2);
+
+ ConnRef *connRef342417330 = new ConnRef(router, 342417330);
+ ConnEnd srcPt342417330(Point(24225, 28435), 1);
+ connRef342417330->setSourceEndpoint(srcPt342417330);
+ ConnEnd dstPt342417330(junctionRef619528800);
+ connRef342417330->setDestEndpoint(dstPt342417330);
+ connRef342417330->setRoutingType((ConnType)2);
+
+ ConnRef *connRef351151744 = new ConnRef(router, 351151744);
+ ConnEnd srcPt351151744(Point(25835, 27550), 4);
+ connRef351151744->setSourceEndpoint(srcPt351151744);
+ ConnEnd dstPt351151744(Point(24485, 27425), 4);
+ connRef351151744->setDestEndpoint(dstPt351151744);
+ connRef351151744->setRoutingType((ConnType)2);
+
+ ConnRef *connRef353764215 = new ConnRef(router, 353764215);
+ ConnEnd srcPt353764215(junctionRef706194558);
+ connRef353764215->setSourceEndpoint(srcPt353764215);
+ ConnEnd dstPt353764215(junctionRef5416208);
+ connRef353764215->setDestEndpoint(dstPt353764215);
+ connRef353764215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef360051452 = new ConnRef(router, 360051452);
+ //ConnEnd srcPt360051452(Point(24350, 29300), 15);
+ ConnEnd srcPt360051452(junctionRef228740625);
+ connRef360051452->setSourceEndpoint(srcPt360051452);
+ ConnEnd dstPt360051452(junctionRef144791664);
+ connRef360051452->setDestEndpoint(dstPt360051452);
+ connRef360051452->setRoutingType((ConnType)2);
+
+ ConnRef *connRef370001467 = new ConnRef(router, 370001467);
+ ConnEnd srcPt370001467(Point(24535, 28550), 4);
+ connRef370001467->setSourceEndpoint(srcPt370001467);
+ ConnEnd dstPt370001467(junctionRef706194558);
+ connRef370001467->setDestEndpoint(dstPt370001467);
+ connRef370001467->setRoutingType((ConnType)2);
+
+ ConnRef *connRef374482680 = new ConnRef(router, 374482680);
+ ConnEnd srcPt374482680(junctionRef255105144);
+ connRef374482680->setSourceEndpoint(srcPt374482680);
+ ConnEnd dstPt374482680(junctionRef9420650);
+ connRef374482680->setDestEndpoint(dstPt374482680);
+ connRef374482680->setRoutingType((ConnType)2);
+
+ ConnRef *connRef384565632 = new ConnRef(router, 384565632);
+ ConnEnd srcPt384565632(Point(27160, 28350), 4);
+ connRef384565632->setSourceEndpoint(srcPt384565632);
+ ConnEnd dstPt384565632(Point(25835, 28450), 4);
+ connRef384565632->setDestEndpoint(dstPt384565632);
+ connRef384565632->setRoutingType((ConnType)2);
+
+ ConnRef *connRef385394335 = new ConnRef(router, 385394335);
+ ConnEnd srcPt385394335(junctionRef12650756);
+ connRef385394335->setSourceEndpoint(srcPt385394335);
+ ConnEnd dstPt385394335(junctionRef34620300);
+ connRef385394335->setDestEndpoint(dstPt385394335);
+ connRef385394335->setRoutingType((ConnType)2);
+
+ ConnRef *connRef394841184 = new ConnRef(router, 394841184);
+ ConnEnd srcPt394841184(junctionRef373450980);
+ connRef394841184->setSourceEndpoint(srcPt394841184);
+ ConnEnd dstPt394841184(Point(27415, 27250), 8);
+ connRef394841184->setDestEndpoint(dstPt394841184);
+ connRef394841184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef395684456 = new ConnRef(router, 395684456);
+ ConnEnd srcPt395684456(junctionRef990913310);
+ connRef395684456->setSourceEndpoint(srcPt395684456);
+ ConnEnd dstPt395684456(junctionRef504671094);
+ connRef395684456->setDestEndpoint(dstPt395684456);
+ connRef395684456->setRoutingType((ConnType)2);
+
+ ConnRef *connRef399195680 = new ConnRef(router, 399195680);
+ ConnEnd srcPt399195680(Point(24460, 26300), 4);
+ connRef399195680->setSourceEndpoint(srcPt399195680);
+ ConnEnd dstPt399195680(Point(25835, 27325), 4);
+ connRef399195680->setDestEndpoint(dstPt399195680);
+ connRef399195680->setRoutingType((ConnType)2);
+
+ ConnRef *connRef430804024 = new ConnRef(router, 430804024);
+ ConnEnd srcPt430804024(Point(24410, 26575), 4);
+ connRef430804024->setSourceEndpoint(srcPt430804024);
+ ConnEnd dstPt430804024(junctionRef12650756);
+ connRef430804024->setDestEndpoint(dstPt430804024);
+ connRef430804024->setRoutingType((ConnType)2);
+
+ ConnRef *connRef441263950 = new ConnRef(router, 441263950);
+ ConnEnd srcPt441263950(junctionRef117582414);
+ connRef441263950->setSourceEndpoint(srcPt441263950);
+ ConnEnd dstPt441263950(Point(24410, 26725), 4);
+ connRef441263950->setDestEndpoint(dstPt441263950);
+ connRef441263950->setRoutingType((ConnType)2);
+
+ ConnRef *connRef449028114 = new ConnRef(router, 449028114);
+ ConnEnd srcPt449028114(junctionRef147481188);
+ connRef449028114->setSourceEndpoint(srcPt449028114);
+ ConnEnd dstPt449028114(junctionRef58465624);
+ connRef449028114->setDestEndpoint(dstPt449028114);
+ connRef449028114->setRoutingType((ConnType)2);
+
+ ConnRef *connRef456315054 = new ConnRef(router, 456315054);
+ ConnEnd srcPt456315054(junctionRef195377532);
+ connRef456315054->setSourceEndpoint(srcPt456315054);
+ ConnEnd dstPt456315054(junctionRef373450980);
+ connRef456315054->setDestEndpoint(dstPt456315054);
+ connRef456315054->setRoutingType((ConnType)2);
+
+ ConnRef *connRef463648203 = new ConnRef(router, 463648203);
+ ConnEnd srcPt463648203(Point(24535, 28475), 4);
+ connRef463648203->setSourceEndpoint(srcPt463648203);
+ ConnEnd dstPt463648203(Point(25835, 27775), 4);
+ connRef463648203->setDestEndpoint(dstPt463648203);
+ connRef463648203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef466988995 = new ConnRef(router, 466988995);
+ ConnEnd srcPt466988995(Point(27465, 28000), 8);
+ connRef466988995->setSourceEndpoint(srcPt466988995);
+ ConnEnd dstPt466988995(junctionRef200348672);
+ connRef466988995->setDestEndpoint(dstPt466988995);
+ connRef466988995->setRoutingType((ConnType)2);
+
+ ConnRef *connRef470918448 = new ConnRef(router, 470918448);
+ ConnEnd srcPt470918448(Point(23710, 29650), 4);
+ connRef470918448->setSourceEndpoint(srcPt470918448);
+ ConnEnd dstPt470918448(junctionRef736226792);
+ connRef470918448->setDestEndpoint(dstPt470918448);
+ connRef470918448->setRoutingType((ConnType)2);
+
+ ConnRef *connRef473830263 = new ConnRef(router, 473830263);
+ ConnEnd srcPt473830263(junctionRef394539723);
+ connRef473830263->setSourceEndpoint(srcPt473830263);
+ ConnEnd dstPt473830263(junctionRef41941580);
+ connRef473830263->setDestEndpoint(dstPt473830263);
+ connRef473830263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef475132644 = new ConnRef(router, 475132644);
+ ConnEnd srcPt475132644(Point(27725, 27185), 1);
+ connRef475132644->setSourceEndpoint(srcPt475132644);
+ ConnEnd dstPt475132644(Point(27415, 27175), 8);
+ connRef475132644->setDestEndpoint(dstPt475132644);
+ connRef475132644->setRoutingType((ConnType)2);
+
+ ConnRef *connRef482803577 = new ConnRef(router, 482803577);
+ ConnEnd srcPt482803577(Point(24560, 28975), 4);
+ connRef482803577->setSourceEndpoint(srcPt482803577);
+ ConnEnd dstPt482803577(Point(25835, 27850), 4);
+ connRef482803577->setDestEndpoint(dstPt482803577);
+ connRef482803577->setRoutingType((ConnType)2);
+
+ ConnRef *connRef485259659 = new ConnRef(router, 485259659);
+ ConnEnd srcPt485259659(Point(27085, 26875), 4);
+ connRef485259659->setSourceEndpoint(srcPt485259659);
+ ConnEnd dstPt485259659(Point(26165, 27025), 8);
+ connRef485259659->setDestEndpoint(dstPt485259659);
+ connRef485259659->setRoutingType((ConnType)2);
+
+ ConnRef *connRef489175830 = new ConnRef(router, 489175830);
+ ConnEnd srcPt489175830(Point(24610, 29600), 4);
+ connRef489175830->setSourceEndpoint(srcPt489175830);
+ ConnEnd dstPt489175830(Point(25835, 27925), 4);
+ connRef489175830->setDestEndpoint(dstPt489175830);
+ connRef489175830->setRoutingType((ConnType)2);
+
+ ConnRef *connRef491853546 = new ConnRef(router, 491853546);
+ ConnEnd srcPt491853546(Point(23940, 28000), 8);
+ connRef491853546->setSourceEndpoint(srcPt491853546);
+ ConnEnd dstPt491853546(junctionRef790438915);
+ connRef491853546->setDestEndpoint(dstPt491853546);
+ connRef491853546->setRoutingType((ConnType)2);
+
+ ConnRef *connRef493768530 = new ConnRef(router, 493768530);
+ ConnEnd srcPt493768530(Point(24460, 26975), 4);
+ connRef493768530->setSourceEndpoint(srcPt493768530);
+ ConnEnd dstPt493768530(junctionRef23132835);
+ connRef493768530->setDestEndpoint(dstPt493768530);
+ connRef493768530->setRoutingType((ConnType)2);
+
+ ConnRef *connRef545608051 = new ConnRef(router, 545608051);
+ ConnEnd srcPt545608051(Point(23915, 26550), 8);
+ connRef545608051->setSourceEndpoint(srcPt545608051);
+ ConnEnd dstPt545608051(Point(24125, 26560), 1);
+ connRef545608051->setDestEndpoint(dstPt545608051);
+ connRef545608051->setRoutingType((ConnType)2);
+
+ ConnRef *connRef553412832 = new ConnRef(router, 553412832);
+ ConnEnd srcPt553412832(Point(24815, 27350), 8);
+ connRef553412832->setSourceEndpoint(srcPt553412832);
+ ConnEnd dstPt553412832(Point(24950, 27360), 1);
+ connRef553412832->setDestEndpoint(dstPt553412832);
+ connRef553412832->setRoutingType((ConnType)2);
+
+ ConnRef *connRef561568812 = new ConnRef(router, 561568812);
+ ConnEnd srcPt561568812(Point(27085, 27250), 4);
+ connRef561568812->setSourceEndpoint(srcPt561568812);
+ ConnEnd dstPt561568812(Point(26165, 27100), 8);
+ connRef561568812->setDestEndpoint(dstPt561568812);
+ connRef561568812->setRoutingType((ConnType)2);
+
+ ConnRef *connRef567114946 = new ConnRef(router, 567114946);
+ ConnEnd srcPt567114946(junctionRef16613420);
+ connRef567114946->setSourceEndpoint(srcPt567114946);
+ ConnEnd dstPt567114946(junctionRef391945245);
+ connRef567114946->setDestEndpoint(dstPt567114946);
+ connRef567114946->setRoutingType((ConnType)2);
+
+ ConnRef *connRef568675195 = new ConnRef(router, 568675195);
+ ConnEnd srcPt568675195(Point(27540, 29700), 8);
+ connRef568675195->setSourceEndpoint(srcPt568675195);
+ ConnEnd dstPt568675195(junctionRef358449734);
+ connRef568675195->setDestEndpoint(dstPt568675195);
+ connRef568675195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef578029290 = new ConnRef(router, 578029290);
+ ConnEnd srcPt578029290(junctionRef137883060);
+ connRef578029290->setSourceEndpoint(srcPt578029290);
+ ConnEnd dstPt578029290(junctionRef350832579);
+ connRef578029290->setDestEndpoint(dstPt578029290);
+ connRef578029290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef580228904 = new ConnRef(router, 580228904);
+ ConnEnd srcPt580228904(Point(23660, 29075), 4);
+ connRef580228904->setSourceEndpoint(srcPt580228904);
+ ConnEnd dstPt580228904(junctionRef495386613);
+ connRef580228904->setDestEndpoint(dstPt580228904);
+ connRef580228904->setRoutingType((ConnType)2);
+
+ ConnRef *connRef591782037 = new ConnRef(router, 591782037);
+ ConnEnd srcPt591782037(Point(27210, 29700), 4);
+ connRef591782037->setSourceEndpoint(srcPt591782037);
+ ConnEnd dstPt591782037(Point(25835, 28225), 4);
+ connRef591782037->setDestEndpoint(dstPt591782037);
+ connRef591782037->setRoutingType((ConnType)2);
+
+ ConnRef *connRef592807451 = new ConnRef(router, 592807451);
+ ConnEnd srcPt592807451(junctionRef144791664);
+ connRef592807451->setSourceEndpoint(srcPt592807451);
+ ConnEnd dstPt592807451(junctionRef706194558);
+ connRef592807451->setDestEndpoint(dstPt592807451);
+ connRef592807451->setRoutingType((ConnType)2);
+
+ ConnRef *connRef594396814 = new ConnRef(router, 594396814);
+ ConnEnd srcPt594396814(junctionRef58465624);
+ connRef594396814->setSourceEndpoint(srcPt594396814);
+ ConnEnd dstPt594396814(Point(23635, 28575), 4);
+ connRef594396814->setDestEndpoint(dstPt594396814);
+ connRef594396814->setRoutingType((ConnType)2);
+
+ ConnRef *connRef599540824 = new ConnRef(router, 599540824);
+ ConnEnd srcPt599540824(Point(22890, 29325), 8);
+ connRef599540824->setSourceEndpoint(srcPt599540824);
+ ConnEnd dstPt599540824(junctionRef736226792);
+ connRef599540824->setDestEndpoint(dstPt599540824);
+ connRef599540824->setRoutingType((ConnType)2);
+
+ ConnRef *connRef603411683 = new ConnRef(router, 603411683);
+ ConnEnd srcPt603411683(Point(23610, 28000), 4);
+ connRef603411683->setSourceEndpoint(srcPt603411683);
+ ConnEnd dstPt603411683(Point(25835, 28000), 4);
+ connRef603411683->setDestEndpoint(dstPt603411683);
+ connRef603411683->setRoutingType((ConnType)2);
+
+ ConnRef *connRef605752708 = new ConnRef(router, 605752708);
+ ConnEnd srcPt605752708(Point(23610, 26200), 4);
+ connRef605752708->setSourceEndpoint(srcPt605752708);
+ ConnEnd dstPt605752708(junctionRef309723792);
+ connRef605752708->setDestEndpoint(dstPt605752708);
+ connRef605752708->setRoutingType((ConnType)2);
+
+ ConnRef *connRef606705960 = new ConnRef(router, 606705960);
+ ConnEnd srcPt606705960(junctionRef557043721);
+ connRef606705960->setSourceEndpoint(srcPt606705960);
+ ConnEnd dstPt606705960(junctionRef221746560);
+ connRef606705960->setDestEndpoint(dstPt606705960);
+ connRef606705960->setRoutingType((ConnType)2);
+
+ ConnRef *connRef609832117 = new ConnRef(router, 609832117);
+ ConnEnd srcPt609832117(junctionRef990913310);
+ connRef609832117->setSourceEndpoint(srcPt609832117);
+ ConnEnd dstPt609832117(junctionRef295885488);
+ connRef609832117->setDestEndpoint(dstPt609832117);
+ connRef609832117->setRoutingType((ConnType)2);
+
+ ConnRef *connRef621742890 = new ConnRef(router, 621742890);
+ ConnEnd srcPt621742890(junctionRef639333280);
+ connRef621742890->setSourceEndpoint(srcPt621742890);
+ ConnEnd dstPt621742890(junctionRef394539723);
+ connRef621742890->setDestEndpoint(dstPt621742890);
+ connRef621742890->setRoutingType((ConnType)2);
+
+ ConnRef *connRef636523650 = new ConnRef(router, 636523650);
+ ConnEnd srcPt636523650(Point(23940, 26275), 8);
+ connRef636523650->setSourceEndpoint(srcPt636523650);
+ ConnEnd dstPt636523650(junctionRef639333280);
+ connRef636523650->setDestEndpoint(dstPt636523650);
+ connRef636523650->setRoutingType((ConnType)2);
+
+ ConnRef *connRef642950671 = new ConnRef(router, 642950671);
+ ConnEnd srcPt642950671(Point(23940, 26200), 8);
+ connRef642950671->setSourceEndpoint(srcPt642950671);
+ ConnEnd dstPt642950671(Point(24175, 26210), 1);
+ connRef642950671->setDestEndpoint(dstPt642950671);
+ connRef642950671->setRoutingType((ConnType)2);
+
+ ConnRef *connRef651115920 = new ConnRef(router, 651115920);
+ ConnEnd srcPt651115920(Point(27160, 28425), 4);
+ connRef651115920->setSourceEndpoint(srcPt651115920);
+ ConnEnd dstPt651115920(junctionRef255105144);
+ connRef651115920->setDestEndpoint(dstPt651115920);
+ connRef651115920->setRoutingType((ConnType)2);
+
+ ConnRef *connRef671449520 = new ConnRef(router, 671449520);
+ ConnEnd srcPt671449520(Point(24250, 28935), 1);
+ connRef671449520->setSourceEndpoint(srcPt671449520);
+ ConnEnd dstPt671449520(Point(23990, 28925), 8);
+ connRef671449520->setDestEndpoint(dstPt671449520);
+ connRef671449520->setRoutingType((ConnType)2);
+
+ ConnRef *connRef683989950 = new ConnRef(router, 683989950);
+ ConnEnd srcPt683989950(Point(27415, 26875), 8);
+ connRef683989950->setSourceEndpoint(srcPt683989950);
+ ConnEnd dstPt683989950(junctionRef373450980);
+ connRef683989950->setDestEndpoint(dstPt683989950);
+ connRef683989950->setRoutingType((ConnType)2);
+
+ ConnRef *connRef906470916 = new ConnRef(router, 906470916);
+ ConnEnd srcPt906470916(junctionRef275948952);
+ connRef906470916->setSourceEndpoint(srcPt906470916);
+ ConnEnd dstPt906470916(junctionRef147481188);
+ connRef906470916->setDestEndpoint(dstPt906470916);
+ connRef906470916->setRoutingType((ConnType)2);
+
+ ConnRef *connRef952154604 = new ConnRef(router, 952154604);
+ ConnEnd srcPt952154604(junctionRef504671094);
+ connRef952154604->setSourceEndpoint(srcPt952154604);
+ ConnEnd dstPt952154604(junctionRef1634752);
+ connRef952154604->setDestEndpoint(dstPt952154604);
+ connRef952154604->setRoutingType((ConnType)2);
+
+ ConnRef *connRef952588978 = new ConnRef(router, 952588978);
+ ConnEnd srcPt952588978(Point(23635, 28500), 4);
+ connRef952588978->setSourceEndpoint(srcPt952588978);
+ ConnEnd dstPt952588978(Point(25835, 28075), 4);
+ connRef952588978->setDestEndpoint(dstPt952588978);
+ connRef952588978->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/slowrouting");
+
+ /*
+ for (int i = 0; i < 1; ++i)
+ {
+ router->moveShape(shapeRef396658490, 0.1, 0.1);
+ router->processTransaction();
+ }
+ */
+
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/tjunct.cpp b/src/3rdparty/adaptagrams/libavoid/tests/tjunct.cpp
new file mode 100644
index 0000000..656d0de
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/tjunct.cpp
@@ -0,0 +1,48 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 105);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ JunctionRef *jRef1 = new JunctionRef(router, Point(50700, 51075));
+
+ Rectangle rect92712048(Point(51246, 50475), Point(51304, 50585));
+ new ShapeRef(router, rect92712048, 92712048);
+ Rectangle rect23127921(Point(50365, 50766), Point(50485, 50834));
+ new ShapeRef(router, rect23127921, 23127921);
+ Rectangle rect159957148(Point(51740, 50891), Point(51860, 50959));
+ new ShapeRef(router, rect159957148, 159957148);
+ Rectangle rect1350214(Point(50375, 51015), Point(50625, 51135));
+ new ShapeRef(router, rect1350214, 1350214);
+ Rectangle rect247197258(Point(50265, 51046), Point(50375, 51104));
+ new ShapeRef(router, rect247197258, 247197258);
+ Rectangle rect281096654(Point(50700, 50390), Point(51000, 50610));
+ new ShapeRef(router, rect281096654, 281096654);
+ ConnEnd srcPt342420237(Point(50425, 50800), 15);
+ ConnEnd dstPt342420237(Point(50710, 50450), 4);
+ new ConnRef(router, srcPt342420237, dstPt342420237, 342420237);
+ ConnEnd srcPt352019675(Point(50990, 50500), 8);
+ ConnEnd dstPt352019675(jRef1);
+ new ConnRef(router, srcPt352019675, dstPt352019675, 352019675);
+ ConnEnd srcPt42699400(jRef1);
+ ConnEnd dstPt42699400(Point(50615, 51075), 8);
+ new ConnRef(router, srcPt42699400, dstPt42699400, 42699400);
+ ConnEnd srcPt94712625(Point(50710, 50550), 4);
+ ConnEnd dstPt94712625(jRef1);
+ new ConnRef(router, srcPt94712625, dstPt94712625, 94712625);
+ ConnEnd srcPt92802970(Point(50990, 50450), 8);
+ ConnEnd dstPt92802970(Point(51275, 50485), 1);
+ new ConnRef(router, srcPt92802970, dstPt92802970, 92802970);
+ ConnEnd srcPt716502036(Point(50710, 50500), 4);
+ ConnEnd dstPt716502036(Point(51800, 50925), 15);
+ new ConnRef(router, srcPt716502036, dstPt716502036, 716502036);
+ router->processTransaction();
+ router->outputDiagram("output/tjunct");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash01.cpp
new file mode 100644
index 0000000..fc1f0a4
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash01.cpp
@@ -0,0 +1,140 @@
+#include "libavoid/libavoid.h"
+#include <sstream>
+
+void test()
+{
+ Avoid::ConnEnd end1_0;
+ Avoid::ConnEnd end2_0;
+ Avoid::Polygon poly0;
+ Avoid::Router * router0 = new Avoid::Router(Avoid::OrthogonalRouting);
+ Avoid::HyperedgeNewAndDeletedObjectLists newanddeletedobjects_0;
+ Avoid::ConnRefList::const_iterator connit_0;
+ Avoid::JunctionRefList::const_iterator junctionit_0;
+ router0->setTransactionUse(true);
+ router0->setRoutingPenalty(Avoid::segmentPenalty);
+ router0->setRoutingParameter(Avoid::portDirectionPenalty, 100);
+ router0->setRoutingParameter(Avoid::idealNudgingDistance, 25);
+ router0->setRoutingOption(Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::crossingPenalty);
+ router0->setRoutingOption(Avoid::performUnifyingNudgingPreprocessingStep, true);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::crossingPenalty);
+ router0->setRoutingOption(Avoid::performUnifyingNudgingPreprocessingStep, true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(50410, 49965));
+ poly0.setPoint(1, Avoid::Point(50410, 50710));
+ poly0.setPoint(2, Avoid::Point(49975, 50710));
+ poly0.setPoint(3, Avoid::Point(49975, 49965));
+ Avoid::ShapeRef * shape0_1023802233 = new Avoid::ShapeRef(router0, poly0, 1023802233);
+ Avoid::ShapeConnectionPin * pin0_1023802233_2 = new Avoid::ShapeConnectionPin(shape0_1023802233, 3, 0, 560, false, 10, 4);
+ pin0_1023802233_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_12 = new Avoid::ShapeConnectionPin(shape0_1023802233, 13, 0, 635, false, 10, 4);
+ pin0_1023802233_12->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_19 = new Avoid::ShapeConnectionPin(shape0_1023802233, 20, 0, 485, false, 10, 4);
+ pin0_1023802233_19->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49504, 50775));
+ poly0.setPoint(1, Avoid::Point(49504, 50860));
+ poly0.setPoint(2, Avoid::Point(49446, 50860));
+ poly0.setPoint(3, Avoid::Point(49446, 50775));
+ Avoid::ShapeRef * shape0_368159034 = new Avoid::ShapeRef(router0, poly0, 368159034);
+ Avoid::ShapeConnectionPin * pin0_368159034_0 = new Avoid::ShapeConnectionPin(shape0_368159034, 1, 29, 0, false, 10, 1);
+ pin0_368159034_0->setExclusive(true);
+
+ Avoid::JunctionRef * junction0_526491597 = new Avoid::JunctionRef(router0, Avoid::Point(49600, 50525), 526491597);
+ junction0_526491597->setPositionFixed(false);
+
+ Avoid::JunctionRef * junction0_30828132 = new Avoid::JunctionRef(router0, Avoid::Point(49600, 50650), 30828132);
+ junction0_30828132->setPositionFixed(false);
+
+ // Right, top - to top junction
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 20);
+ end2_0 = Avoid::ConnEnd(junction0_526491597);
+ Avoid::ConnRef * conn0_117136925 = new Avoid::ConnRef(router0, end1_0, end2_0, 117136925);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49975, 50450));
+ poly0.setPoint(1, Avoid::Point(49600, 50450));
+ poly0.setPoint(2, Avoid::Point(49600, 50525));
+ conn0_117136925->setFixedRoute(poly0);
+ conn0_117136925->setSourceEndpoint(end1_0);
+ conn0_117136925->setDestEndpoint(end2_0);
+
+ // Right, middle - to top junction.
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 3);
+ end2_0 = Avoid::ConnEnd(junction0_526491597);
+ Avoid::ConnRef * conn0_224626788 = new Avoid::ConnRef(router0, end1_0, end2_0, 224626788);
+
+ // Middle vertical from top junction point to lower junction.
+#ifdef CORRECTED
+ end1_0 = Avoid::ConnEnd(junction0_526491597);
+#else
+ end1_0 = Avoid::ConnEnd(Avoid::Point(49600, 50525), 15);
+#endif
+ end2_0 = Avoid::ConnEnd(junction0_30828132);
+ Avoid::ConnRef * conn0_446423927 = new Avoid::ConnRef(router0, end1_0, end2_0, 446423927);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49600, 50525));
+ poly0.setPoint(1, Avoid::Point(49600, 50587));
+ poly0.setPoint(2, Avoid::Point(49600, 50650));
+ conn0_446423927->setFixedRoute(poly0);
+ conn0_446423927->setSourceEndpoint(end1_0);
+ conn0_446423927->setDestEndpoint(end2_0);
+
+ // Bottom, right - to lower junction point.
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 13);
+#ifdef CORRECTED
+ end2_0 = Avoid::ConnEnd(junction0_30828132);
+#else
+ end2_0 = Avoid::ConnEnd(Avoid::Point(49600, 50650), 15);
+#endif
+ Avoid::ConnRef * conn0_11189244 = new Avoid::ConnRef(router0, end1_0, end2_0, 11189244);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49975, 50600));
+ poly0.setPoint(1, Avoid::Point(49600, 50600));
+ poly0.setPoint(2, Avoid::Point(49600, 50650));
+ conn0_11189244->setFixedRoute(poly0);
+ conn0_11189244->setSourceEndpoint(end1_0);
+ conn0_11189244->setDestEndpoint(end2_0);
+
+ // Left bottom - to lower junction.
+ end1_0 = Avoid::ConnEnd(shape0_368159034, 1);
+ end2_0 = Avoid::ConnEnd(junction0_30828132);
+ Avoid::ConnRef * conn0_280909026 = new Avoid::ConnRef(router0, end1_0, end2_0, 280909026);
+
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ router0->outputDiagram("output/treeRootCrash01-1");
+
+ conn0_117136925->clearFixedRoute();
+ conn0_224626788->makePathInvalid();
+ conn0_446423927->clearFixedRoute();
+ conn0_11189244->clearFixedRoute();
+ conn0_280909026->makePathInvalid();
+ junction0_526491597->setPositionFixed(false);
+ junction0_30828132->setPositionFixed(false);
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ router0->outputDiagram("output/treeRootCrash01-2");
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ router0->outputDiagram("output/treeRootCrash01-3");
+
+ router0->hyperedgeRerouter()->registerHyperedgeForRerouting(junction0_526491597);
+ router0->processTransaction();
+ router0->outputDiagram("output/treeRootCrash01-4");
+
+ delete router0;
+}
+
+
+extern "C" int main(int argc, char* argv[])
+{
+ test();
+ return 0;
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash02.cpp
new file mode 100644
index 0000000..5f26b3e
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/treeRootCrash02.cpp
@@ -0,0 +1,243 @@
+// Based on constructInterleavedCrash bug report.
+//
+#include "libavoid/libavoid.h"
+#include <sstream>
+
+void test()
+{
+ Avoid::ConnEnd end1_0;
+ Avoid::ConnEnd end2_0;
+ Avoid::Polygon poly0;
+ Avoid::Router * router0 = new Avoid::Router(Avoid::OrthogonalRouting);
+ Avoid::HyperedgeNewAndDeletedObjectLists newanddeletedobjects_0;
+ Avoid::ConnRefList::const_iterator connit_0;
+ Avoid::JunctionRefList::const_iterator junctionit_0;
+ router0->setTransactionUse(true);
+ router0->setRoutingPenalty(Avoid::segmentPenalty);
+ router0->setRoutingParameter(Avoid::portDirectionPenalty, 100);
+ router0->setRoutingParameter(Avoid::idealNudgingDistance, 25);
+ router0->setRoutingOption(Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, true);
+ router0->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
+ router0->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
+ router0->setRoutingParameter(Avoid::crossingPenalty);
+ router0->setRoutingOption(Avoid::performUnifyingNudgingPreprocessingStep, true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(50410, 49975));
+ poly0.setPoint(1, Avoid::Point(50410, 50710));
+ poly0.setPoint(2, Avoid::Point(49975, 50710));
+ poly0.setPoint(3, Avoid::Point(49975, 49975));
+ Avoid::ShapeRef * shape0_1023802233 = new Avoid::ShapeRef(router0, poly0, 1023802233);
+ Avoid::ShapeConnectionPin * pin0_1023802233_0 = new Avoid::ShapeConnectionPin(shape0_1023802233, 1, 0, 100, false, 10, 4);
+ pin0_1023802233_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_1 = new Avoid::ShapeConnectionPin(shape0_1023802233, 2, 0, 250, false, 10, 4);
+ pin0_1023802233_1->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_2 = new Avoid::ShapeConnectionPin(shape0_1023802233, 3, 0, 550, false, 10, 4);
+ pin0_1023802233_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_3 = new Avoid::ShapeConnectionPin(shape0_1023802233, 4, 425, 100, false, 10, 8);
+ pin0_1023802233_3->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_4 = new Avoid::ShapeConnectionPin(shape0_1023802233, 5, 250, 0, false, 10, 1);
+ pin0_1023802233_4->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_5 = new Avoid::ShapeConnectionPin(shape0_1023802233, 6, 425, 250, false, 10, 8);
+ pin0_1023802233_5->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_6 = new Avoid::ShapeConnectionPin(shape0_1023802233, 7, 250, 725, false, 10, 2);
+ pin0_1023802233_6->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_7 = new Avoid::ShapeConnectionPin(shape0_1023802233, 8, 100, 725, false, 10, 2);
+ pin0_1023802233_7->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_8 = new Avoid::ShapeConnectionPin(shape0_1023802233, 9, 100, 0, false, 10, 1);
+ pin0_1023802233_8->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_9 = new Avoid::ShapeConnectionPin(shape0_1023802233, 10, 0, 400, false, 10, 4);
+ pin0_1023802233_9->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_10 = new Avoid::ShapeConnectionPin(shape0_1023802233, 11, 0, 175, false, 10, 4);
+ pin0_1023802233_10->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_11 = new Avoid::ShapeConnectionPin(shape0_1023802233, 12, 0, 325, false, 10, 4);
+ pin0_1023802233_11->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_12 = new Avoid::ShapeConnectionPin(shape0_1023802233, 13, 0, 625, false, 10, 4);
+ pin0_1023802233_12->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_13 = new Avoid::ShapeConnectionPin(shape0_1023802233, 14, 425, 175, false, 10, 8);
+ pin0_1023802233_13->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_14 = new Avoid::ShapeConnectionPin(shape0_1023802233, 15, 325, 0, false, 10, 1);
+ pin0_1023802233_14->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_15 = new Avoid::ShapeConnectionPin(shape0_1023802233, 16, 425, 325, false, 10, 8);
+ pin0_1023802233_15->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_16 = new Avoid::ShapeConnectionPin(shape0_1023802233, 17, 325, 725, false, 10, 2);
+ pin0_1023802233_16->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_17 = new Avoid::ShapeConnectionPin(shape0_1023802233, 18, 175, 725, false, 10, 2);
+ pin0_1023802233_17->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_18 = new Avoid::ShapeConnectionPin(shape0_1023802233, 19, 175, 0, false, 10, 1);
+ pin0_1023802233_18->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_1023802233_19 = new Avoid::ShapeConnectionPin(shape0_1023802233, 20, 0, 475, false, 10, 4);
+ pin0_1023802233_19->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49535, 50540));
+ poly0.setPoint(1, Avoid::Point(49535, 50650));
+ poly0.setPoint(2, Avoid::Point(49415, 50650));
+ poly0.setPoint(3, Avoid::Point(49415, 50540));
+ Avoid::ShapeRef * shape0_145706592 = new Avoid::ShapeRef(router0, poly0, 145706592);
+ Avoid::ShapeConnectionPin * pin0_145706592_0 = new Avoid::ShapeConnectionPin(shape0_145706592, 1, 60, 10, false, 10, 1);
+ pin0_145706592_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_145706592_1 = new Avoid::ShapeConnectionPin(shape0_145706592, 2, 60, -1, false, 10, 2);
+ pin0_145706592_1->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(49504, 50775));
+ poly0.setPoint(1, Avoid::Point(49504, 50860));
+ poly0.setPoint(2, Avoid::Point(49446, 50860));
+ poly0.setPoint(3, Avoid::Point(49446, 50775));
+ Avoid::ShapeRef * shape0_368159034 = new Avoid::ShapeRef(router0, poly0, 368159034);
+ Avoid::ShapeConnectionPin * pin0_368159034_0 = new Avoid::ShapeConnectionPin(shape0_368159034, 1, 29, 0, false, 10, 1);
+ pin0_368159034_0->setExclusive(true);
+ Avoid::JunctionRef * junction0_144230940 = new Avoid::JunctionRef(router0, Avoid::Point(49475, 50725), 144230940);
+ junction0_144230940->setPositionFixed(true);
+ Avoid::JunctionRef * junction0_526491597 = new Avoid::JunctionRef(router0, Avoid::Point(49600, 50525), 526491597);
+ junction0_526491597->setPositionFixed(true);
+ Avoid::JunctionRef * junction0_30828132 = new Avoid::JunctionRef(router0, Avoid::Point(49600, 50650), 30828132);
+ junction0_30828132->setPositionFixed(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(50485, 49265));
+ poly0.setPoint(1, Avoid::Point(50485, 49550));
+ poly0.setPoint(2, Avoid::Point(50190, 49550));
+ poly0.setPoint(3, Avoid::Point(50190, 49265));
+ Avoid::ShapeRef * shape0_59732242 = new Avoid::ShapeRef(router0, poly0, 59732242);
+ Avoid::ShapeConnectionPin * pin0_59732242_0 = new Avoid::ShapeConnectionPin(shape0_59732242, 1, 110, 10, false, 10, 1);
+ pin0_59732242_0->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_59732242_1 = new Avoid::ShapeConnectionPin(shape0_59732242, 2, 10, 110, false, 10, 4);
+ pin0_59732242_1->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_59732242_2 = new Avoid::ShapeConnectionPin(shape0_59732242, 3, 110, -1, false, 10, 2);
+ pin0_59732242_2->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_59732242_3 = new Avoid::ShapeConnectionPin(shape0_59732242, 4, 285, 110, false, 10, 8);
+ pin0_59732242_3->setExclusive(true);
+ Avoid::ShapeConnectionPin * pin0_59732242_4 = new Avoid::ShapeConnectionPin(shape0_59732242, 5, 285, 185, false, 10, 8);
+ pin0_59732242_4->setExclusive(true);
+ poly0 = Avoid::Polygon(4);
+ poly0.setPoint(0, Avoid::Point(50610, 49646));
+ poly0.setPoint(1, Avoid::Point(50610, 49704));
+ poly0.setPoint(2, Avoid::Point(50525, 49704));
+ poly0.setPoint(3, Avoid::Point(50525, 49646));
+ Avoid::ShapeRef * shape0_152071508 = new Avoid::ShapeRef(router0, poly0, 152071508);
+ Avoid::ShapeConnectionPin * pin0_152071508_0 = new Avoid::ShapeConnectionPin(shape0_152071508, 1, 0, 29, false, 10, 4);
+ pin0_152071508_0->setExclusive(true);
+ Avoid::JunctionRef * junction0_24560921 = new Avoid::JunctionRef(router0, Avoid::Point(50300, 49675), 24560921);
+ junction0_24560921->setPositionFixed(true);
+ end1_0 = Avoid::ConnEnd(shape0_145706592, 2);
+ end2_0 = Avoid::ConnEnd(junction0_144230940);
+ Avoid::ConnRef * conn0_61425638 = new Avoid::ConnRef(router0, end1_0, end2_0, 61425638);
+ end1_0 = Avoid::ConnEnd(junction0_144230940);
+ end2_0 = Avoid::ConnEnd(shape0_368159034, 1);
+ Avoid::ConnRef * conn0_378385232 = new Avoid::ConnRef(router0, end1_0, end2_0, 378385232);
+ end1_0 = Avoid::ConnEnd(Avoid::Point(49975, 50450), 15);
+ end2_0 = Avoid::ConnEnd(Avoid::Point(49600, 50525), 15);
+ Avoid::ConnRef * conn0_117136925 = new Avoid::ConnRef(router0, end1_0, end2_0, 117136925);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49975, 50450));
+ poly0.setPoint(1, Avoid::Point(49600, 50450));
+ poly0.setPoint(2, Avoid::Point(49600, 50525));
+ conn0_117136925->setFixedRoute(poly0);
+ conn0_117136925->setSourceEndpoint(end1_0);
+ conn0_117136925->setDestEndpoint(end2_0);
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 3);
+ end2_0 = Avoid::ConnEnd(junction0_526491597);
+ Avoid::ConnRef * conn0_224626788 = new Avoid::ConnRef(router0, end1_0, end2_0, 224626788);
+ end1_0 = Avoid::ConnEnd(Avoid::Point(49600, 50525), 15);
+ end2_0 = Avoid::ConnEnd(Avoid::Point(49600, 50650), 15);
+ Avoid::ConnRef * conn0_446423927 = new Avoid::ConnRef(router0, end1_0, end2_0, 446423927);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49600, 50525));
+ poly0.setPoint(1, Avoid::Point(49600, 50587));
+ poly0.setPoint(2, Avoid::Point(49600, 50650));
+ conn0_446423927->setFixedRoute(poly0);
+ conn0_446423927->setSourceEndpoint(end1_0);
+ conn0_446423927->setDestEndpoint(end2_0);
+ end1_0 = Avoid::ConnEnd(Avoid::Point(49600, 50650), 15);
+ end2_0 = Avoid::ConnEnd(Avoid::Point(49475, 50725), 15);
+ Avoid::ConnRef * conn0_880789055 = new Avoid::ConnRef(router0, end1_0, end2_0, 880789055);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49600, 50650));
+ poly0.setPoint(1, Avoid::Point(49600, 50725));
+ poly0.setPoint(2, Avoid::Point(49475, 50725));
+ conn0_880789055->setFixedRoute(poly0);
+ conn0_880789055->setSourceEndpoint(end1_0);
+ conn0_880789055->setDestEndpoint(end2_0);
+ end1_0 = Avoid::ConnEnd(Avoid::Point(49975, 50600), 15);
+ end2_0 = Avoid::ConnEnd(Avoid::Point(49600, 50650), 15);
+ Avoid::ConnRef * conn0_11189244 = new Avoid::ConnRef(router0, end1_0, end2_0, 11189244);
+ poly0 = Avoid::PolyLine(3);
+ poly0.setPoint(0, Avoid::Point(49975, 50600));
+ poly0.setPoint(1, Avoid::Point(49600, 50600));
+ poly0.setPoint(2, Avoid::Point(49600, 50650));
+ conn0_11189244->setFixedRoute(poly0);
+ conn0_11189244->setSourceEndpoint(end1_0);
+ conn0_11189244->setDestEndpoint(end2_0);
+ end1_0 = Avoid::ConnEnd(shape0_59732242, 3);
+ end2_0 = Avoid::ConnEnd(junction0_24560921);
+ Avoid::ConnRef * conn0_605306624 = new Avoid::ConnRef(router0, end1_0, end2_0, 605306624);
+ end1_0 = Avoid::ConnEnd(junction0_24560921);
+ end2_0 = Avoid::ConnEnd(shape0_1023802233, 15);
+ Avoid::ConnRef * conn0_61198110 = new Avoid::ConnRef(router0, end1_0, end2_0, 61198110);
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 19);
+ end2_0 = Avoid::ConnEnd(junction0_24560921);
+ Avoid::ConnRef * conn0_323306544 = new Avoid::ConnRef(router0, end1_0, end2_0, 323306544);
+ end1_0 = Avoid::ConnEnd(shape0_152071508, 1);
+ end2_0 = Avoid::ConnEnd(junction0_24560921);
+ Avoid::ConnRef * conn0_2415000 = new Avoid::ConnRef(router0, end1_0, end2_0, 2415000);
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ router0->outputDiagram("output/treeRootCrash02-1");
+ end2_0 = Avoid::ConnEnd(junction0_144230940);
+ conn0_61425638->setDestEndpoint(end2_0);
+ conn0_61425638->makePathInvalid();
+ conn0_378385232->makePathInvalid();
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 20);
+ end2_0 = Avoid::ConnEnd(junction0_526491597);
+ conn0_117136925->setSourceEndpoint(end1_0);
+ conn0_117136925->setDestEndpoint(end2_0);
+ conn0_117136925->clearFixedRoute();
+ conn0_224626788->makePathInvalid();
+ end2_0 = Avoid::ConnEnd(junction0_30828132);
+ conn0_446423927->setDestEndpoint(end2_0);
+ conn0_446423927->clearFixedRoute();
+ conn0_880789055->clearFixedRoute();
+ end1_0 = Avoid::ConnEnd(shape0_1023802233, 13);
+ conn0_11189244->setSourceEndpoint(end1_0);
+ conn0_11189244->clearFixedRoute();
+ conn0_605306624->makePathInvalid();
+ conn0_61198110->makePathInvalid();
+ conn0_323306544->makePathInvalid();
+ conn0_2415000->makePathInvalid();
+ junction0_144230940->setPositionFixed(false);
+ junction0_30828132->setPositionFixed(false);
+ junction0_526491597->setPositionFixed(false);
+ end2_0 = Avoid::ConnEnd(junction0_144230940);
+ conn0_61425638->setDestEndpoint(end2_0);
+ conn0_61425638->makePathInvalid();
+ conn0_378385232->makePathInvalid();
+ end2_0 = Avoid::ConnEnd(junction0_526491597);
+ conn0_117136925->setDestEndpoint(end2_0);
+ conn0_117136925->makePathInvalid();
+ conn0_224626788->makePathInvalid();
+ end2_0 = Avoid::ConnEnd(junction0_30828132);
+ conn0_446423927->setDestEndpoint(end2_0);
+ conn0_446423927->makePathInvalid();
+ conn0_880789055->makePathInvalid();
+ conn0_11189244->makePathInvalid();
+ junction0_24560921->setPositionFixed(false);
+ end2_0 = Avoid::ConnEnd(junction0_24560921);
+ conn0_605306624->setDestEndpoint(end2_0);
+ conn0_605306624->makePathInvalid();
+ conn0_61198110->makePathInvalid();
+ conn0_323306544->makePathInvalid();
+ conn0_2415000->makePathInvalid();
+ router0->hyperedgeRerouter()->registerHyperedgeForRerouting(junction0_24560921);
+ router0->hyperedgeRerouter()->registerHyperedgeForRerouting(junction0_526491597);
+ router0->processTransaction();
+
+ newanddeletedobjects_0 = router0->newAndDeletedObjectListsFromHyperedgeImprovement();
+ router0->outputDiagram("output/treeRootCrash02-2");
+
+ delete router0;
+}
+
+extern "C" int main(int argc, char* argv[])
+{
+ test();
+ return 0;
+}
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/unsatisfiableRangeAssertion.cpp b/src/3rdparty/adaptagrams/libavoid/tests/unsatisfiableRangeAssertion.cpp
new file mode 100644
index 0000000..323c098
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/unsatisfiableRangeAssertion.cpp
@@ -0,0 +1,25789 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(OrthogonalRouting);
+ router->setRoutingParameter((RoutingParameter)0, 50);
+ router->setRoutingParameter((RoutingParameter)1, 0);
+ router->setRoutingParameter((RoutingParameter)2, 0);
+ router->setRoutingParameter((RoutingParameter)3, 4000);
+ router->setRoutingParameter((RoutingParameter)4, 0);
+ router->setRoutingParameter((RoutingParameter)5, 0);
+ router->setRoutingParameter((RoutingParameter)6, 0);
+ router->setRoutingParameter((RoutingParameter)7, 4);
+ router->setRoutingOption((RoutingOption)0, true);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingOption((RoutingOption)2, false);
+ router->setRoutingOption((RoutingOption)3, false);
+ router->setRoutingOption((RoutingOption)4, false);
+ router->setRoutingOption((RoutingOption)5, false);
+ Polygon polygon;
+ ConnRef *connRef = nullptr;
+ ConnEnd srcPt;
+ ConnEnd dstPt;
+ PolyLine newRoute;
+ // shapeRef1
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 12427.7);
+ polygon.ps[1] = Point(4056, 12489.7);
+ polygon.ps[2] = Point(3994, 12489.7);
+ polygon.ps[3] = Point(3994, 12427.7);
+ new ShapeRef(router, polygon, 1);
+
+ // shapeRef2
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 12427.7);
+ polygon.ps[1] = Point(1911, 12489.7);
+ polygon.ps[2] = Point(1849, 12489.7);
+ polygon.ps[3] = Point(1849, 12427.7);
+ new ShapeRef(router, polygon, 2);
+
+ // shapeRef3
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 2119.29);
+ polygon.ps[1] = Point(1449, 2181.29);
+ polygon.ps[2] = Point(1387, 2181.29);
+ polygon.ps[3] = Point(1387, 2119.29);
+ new ShapeRef(router, polygon, 3);
+
+ // shapeRef4
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 2317.29);
+ polygon.ps[1] = Point(1449, 2379.29);
+ polygon.ps[2] = Point(1387, 2379.29);
+ polygon.ps[3] = Point(1387, 2317.29);
+ new ShapeRef(router, polygon, 4);
+
+ // shapeRef5
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3561, 328.265);
+ polygon.ps[1] = Point(3561, 390.265);
+ polygon.ps[2] = Point(3499, 390.265);
+ polygon.ps[3] = Point(3499, 328.265);
+ new ShapeRef(router, polygon, 5);
+
+ // shapeRef6
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(360, 2119.29);
+ polygon.ps[1] = Point(360, 2181.29);
+ polygon.ps[2] = Point(298, 2181.29);
+ polygon.ps[3] = Point(298, 2119.29);
+ new ShapeRef(router, polygon, 6);
+
+ // shapeRef7
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1383, 678.091);
+ polygon.ps[1] = Point(1383, 740.091);
+ polygon.ps[2] = Point(1321, 740.091);
+ polygon.ps[3] = Point(1321, 678.091);
+ new ShapeRef(router, polygon, 7);
+
+ // shapeRef8
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(921, 678.091);
+ polygon.ps[1] = Point(921, 740.091);
+ polygon.ps[2] = Point(859, 740.091);
+ polygon.ps[3] = Point(859, 678.091);
+ new ShapeRef(router, polygon, 8);
+
+ // shapeRef9
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2670, 678.091);
+ polygon.ps[1] = Point(2670, 740.091);
+ polygon.ps[2] = Point(2608, 740.091);
+ polygon.ps[3] = Point(2608, 678.091);
+ new ShapeRef(router, polygon, 9);
+
+ // shapeRef10
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5758.1, 1480.29);
+ polygon.ps[1] = Point(5758.1, 1542.29);
+ polygon.ps[2] = Point(5696.1, 1542.29);
+ polygon.ps[3] = Point(5696.1, 1480.29);
+ new ShapeRef(router, polygon, 10);
+
+ // shapeRef11
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5310, 1480.29);
+ polygon.ps[1] = Point(5310, 1542.29);
+ polygon.ps[2] = Point(5248, 1542.29);
+ polygon.ps[3] = Point(5248, 1480.29);
+ new ShapeRef(router, polygon, 11);
+
+ // shapeRef12
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4881, 12427.7);
+ polygon.ps[1] = Point(4881, 12489.7);
+ polygon.ps[2] = Point(4819, 12489.7);
+ polygon.ps[3] = Point(4819, 12427.7);
+ new ShapeRef(router, polygon, 12);
+
+ // shapeRef13
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4881, 12129.3);
+ polygon.ps[1] = Point(4881, 12191.3);
+ polygon.ps[2] = Point(4819, 12191.3);
+ polygon.ps[3] = Point(4819, 12129.3);
+ new ShapeRef(router, polygon, 13);
+
+ // shapeRef14
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3330, 6252.51);
+ polygon.ps[1] = Point(3330, 6314.51);
+ polygon.ps[2] = Point(3268, 6314.51);
+ polygon.ps[3] = Point(3268, 6252.51);
+ new ShapeRef(router, polygon, 14);
+
+ // shapeRef15
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 7647.79);
+ polygon.ps[1] = Point(1416, 7709.79);
+ polygon.ps[2] = Point(1354, 7709.79);
+ polygon.ps[3] = Point(1354, 7647.79);
+ new ShapeRef(router, polygon, 15);
+
+ // shapeRef16
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 8109.79);
+ polygon.ps[1] = Point(1416, 8171.79);
+ polygon.ps[2] = Point(1354, 8171.79);
+ polygon.ps[3] = Point(1354, 8109.79);
+ new ShapeRef(router, polygon, 16);
+
+ // shapeRef17
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4650, 7097.4);
+ polygon.ps[1] = Point(4650, 7159.4);
+ polygon.ps[2] = Point(4588, 7159.4);
+ polygon.ps[3] = Point(4588, 7097.4);
+ new ShapeRef(router, polygon, 17);
+
+ // shapeRef18
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1284, 8482.99);
+ polygon.ps[1] = Point(1284, 8544.99);
+ polygon.ps[2] = Point(1222, 8544.99);
+ polygon.ps[3] = Point(1222, 8482.99);
+ new ShapeRef(router, polygon, 18);
+
+ // shapeRef19
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1647, 8109.79);
+ polygon.ps[1] = Point(1647, 8171.79);
+ polygon.ps[2] = Point(1585, 8171.79);
+ polygon.ps[3] = Point(1585, 8109.79);
+ new ShapeRef(router, polygon, 19);
+
+ // shapeRef20
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1647, 7163.4);
+ polygon.ps[1] = Point(1647, 7225.4);
+ polygon.ps[2] = Point(1585, 7225.4);
+ polygon.ps[3] = Point(1585, 7163.4);
+ new ShapeRef(router, polygon, 20);
+
+ // shapeRef21
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 4997.89);
+ polygon.ps[1] = Point(9289.03, 5037.89);
+ polygon.ps[2] = Point(9234.03, 5037.89);
+ polygon.ps[3] = Point(9234.03, 4997.89);
+ new ShapeRef(router, polygon, 21);
+
+ // shapeRef22
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 4997.89);
+ polygon.ps[1] = Point(9389.03, 5037.89);
+ polygon.ps[2] = Point(9334.03, 5037.89);
+ polygon.ps[3] = Point(9334.03, 4997.89);
+ new ShapeRef(router, polygon, 22);
+
+ // shapeRef23
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 5097.89);
+ polygon.ps[1] = Point(8389.03, 5137.89);
+ polygon.ps[2] = Point(8334.03, 5137.89);
+ polygon.ps[3] = Point(8334.03, 5097.89);
+ new ShapeRef(router, polygon, 23);
+
+ // shapeRef24
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 5039.4);
+ polygon.ps[1] = Point(4056, 5101.4);
+ polygon.ps[2] = Point(3994, 5101.4);
+ polygon.ps[3] = Point(3994, 5039.4);
+ new ShapeRef(router, polygon, 24);
+
+ // shapeRef25
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4452, 5039.4);
+ polygon.ps[1] = Point(4452, 5101.4);
+ polygon.ps[2] = Point(4390, 5101.4);
+ polygon.ps[3] = Point(4390, 5039.4);
+ new ShapeRef(router, polygon, 25);
+
+ // shapeRef26
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 5097.89);
+ polygon.ps[1] = Point(8689.03, 5137.89);
+ polygon.ps[2] = Point(8634.03, 5137.89);
+ polygon.ps[3] = Point(8634.03, 5097.89);
+ new ShapeRef(router, polygon, 26);
+
+ // shapeRef27
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 5097.89);
+ polygon.ps[1] = Point(8789.03, 5137.89);
+ polygon.ps[2] = Point(8734.03, 5137.89);
+ polygon.ps[3] = Point(8734.03, 5097.89);
+ new ShapeRef(router, polygon, 27);
+
+ // shapeRef28
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 10750.3);
+ polygon.ps[1] = Point(16753.8, 10812.3);
+ polygon.ps[2] = Point(16691.8, 10812.3);
+ polygon.ps[3] = Point(16691.8, 10750.3);
+ new ShapeRef(router, polygon, 28);
+
+ // shapeRef29
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16493.6, 10750.3);
+ polygon.ps[1] = Point(16493.6, 10812.3);
+ polygon.ps[2] = Point(16431.6, 10812.3);
+ polygon.ps[3] = Point(16431.6, 10750.3);
+ new ShapeRef(router, polygon, 29);
+
+ // shapeRef30
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 5481.67);
+ polygon.ps[1] = Point(1086, 5543.67);
+ polygon.ps[2] = Point(1024, 5543.67);
+ polygon.ps[3] = Point(1024, 5481.67);
+ new ShapeRef(router, polygon, 30);
+
+ // shapeRef31
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 6582.51);
+ polygon.ps[1] = Point(591, 6644.51);
+ polygon.ps[2] = Point(529, 6644.51);
+ polygon.ps[3] = Point(529, 6582.51);
+ new ShapeRef(router, polygon, 31);
+
+ // shapeRef32
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 7064.4);
+ polygon.ps[1] = Point(591, 7126.4);
+ polygon.ps[2] = Point(529, 7126.4);
+ polygon.ps[3] = Point(529, 7064.4);
+ new ShapeRef(router, polygon, 32);
+
+ // shapeRef33
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 7394.4);
+ polygon.ps[1] = Point(591, 7456.4);
+ polygon.ps[2] = Point(529, 7456.4);
+ polygon.ps[3] = Point(529, 7394.4);
+ new ShapeRef(router, polygon, 33);
+
+ // shapeRef34
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 7713.79);
+ polygon.ps[1] = Point(591, 7775.79);
+ polygon.ps[2] = Point(529, 7775.79);
+ polygon.ps[3] = Point(529, 7713.79);
+ new ShapeRef(router, polygon, 34);
+
+ // shapeRef35
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 6285.51);
+ polygon.ps[1] = Point(591, 6347.51);
+ polygon.ps[2] = Point(529, 6347.51);
+ polygon.ps[3] = Point(529, 6285.51);
+ new ShapeRef(router, polygon, 35);
+
+ // shapeRef36
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 5659.9);
+ polygon.ps[1] = Point(591, 5721.9);
+ polygon.ps[2] = Point(529, 5721.9);
+ polygon.ps[3] = Point(529, 5659.9);
+ new ShapeRef(router, polygon, 36);
+
+ // shapeRef37
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(591, 5966.59);
+ polygon.ps[1] = Point(591, 6028.59);
+ polygon.ps[2] = Point(529, 6028.59);
+ polygon.ps[3] = Point(529, 5966.59);
+ new ShapeRef(router, polygon, 37);
+
+ // shapeRef38
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 5197.89);
+ polygon.ps[1] = Point(8789.03, 5237.89);
+ polygon.ps[2] = Point(8734.03, 5237.89);
+ polygon.ps[3] = Point(8734.03, 5197.89);
+ new ShapeRef(router, polygon, 38);
+
+ // shapeRef39
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 5197.89);
+ polygon.ps[1] = Point(8889.03, 5237.89);
+ polygon.ps[2] = Point(8834.03, 5237.89);
+ polygon.ps[3] = Point(8834.03, 5197.89);
+ new ShapeRef(router, polygon, 39);
+
+ // shapeRef40
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 5197.89);
+ polygon.ps[1] = Point(8989.03, 5237.89);
+ polygon.ps[2] = Point(8934.03, 5237.89);
+ polygon.ps[3] = Point(8934.03, 5197.89);
+ new ShapeRef(router, polygon, 40);
+
+ // shapeRef41
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 5197.89);
+ polygon.ps[1] = Point(9089.03, 5237.89);
+ polygon.ps[2] = Point(9034.03, 5237.89);
+ polygon.ps[3] = Point(9034.03, 5197.89);
+ new ShapeRef(router, polygon, 41);
+
+ // shapeRef42
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(855, 7097.4);
+ polygon.ps[1] = Point(855, 7159.4);
+ polygon.ps[2] = Point(793, 7159.4);
+ polygon.ps[3] = Point(793, 7097.4);
+ new ShapeRef(router, polygon, 42);
+
+ // shapeRef43
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5178, 1150.29);
+ polygon.ps[1] = Point(5178, 1212.29);
+ polygon.ps[2] = Point(5116, 1212.29);
+ polygon.ps[3] = Point(5116, 1150.29);
+ new ShapeRef(router, polygon, 43);
+
+ // shapeRef44
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4716, 1051.29);
+ polygon.ps[1] = Point(4716, 1113.29);
+ polygon.ps[2] = Point(4654, 1113.29);
+ polygon.ps[3] = Point(4654, 1051.29);
+ new ShapeRef(router, polygon, 44);
+
+ // shapeRef45
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4419, 1645.29);
+ polygon.ps[1] = Point(4419, 1707.29);
+ polygon.ps[2] = Point(4357, 1707.29);
+ polygon.ps[3] = Point(4357, 1645.29);
+ new ShapeRef(router, polygon, 45);
+
+ // shapeRef46
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4716, 1645.29);
+ polygon.ps[1] = Point(4716, 1707.29);
+ polygon.ps[2] = Point(4654, 1707.29);
+ polygon.ps[3] = Point(4654, 1645.29);
+ new ShapeRef(router, polygon, 46);
+
+ // shapeRef47
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4419, 853.285);
+ polygon.ps[1] = Point(4419, 915.285);
+ polygon.ps[2] = Point(4357, 915.285);
+ polygon.ps[3] = Point(4357, 853.285);
+ new ShapeRef(router, polygon, 47);
+
+ // shapeRef48
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4419, 1183.29);
+ polygon.ps[1] = Point(4419, 1245.29);
+ polygon.ps[2] = Point(4357, 1245.29);
+ polygon.ps[3] = Point(4357, 1183.29);
+ new ShapeRef(router, polygon, 48);
+
+ // shapeRef49
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4716, 1183.29);
+ polygon.ps[1] = Point(4716, 1245.29);
+ polygon.ps[2] = Point(4654, 1245.29);
+ polygon.ps[3] = Point(4654, 1183.29);
+ new ShapeRef(router, polygon, 49);
+
+ // shapeRef50
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4716, 1381.29);
+ polygon.ps[1] = Point(4716, 1443.29);
+ polygon.ps[2] = Point(4654, 1443.29);
+ polygon.ps[3] = Point(4654, 1381.29);
+ new ShapeRef(router, polygon, 50);
+
+ // shapeRef51
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4419, 1381.29);
+ polygon.ps[1] = Point(4419, 1443.29);
+ polygon.ps[2] = Point(4357, 1443.29);
+ polygon.ps[3] = Point(4357, 1381.29);
+ new ShapeRef(router, polygon, 51);
+
+ // shapeRef52
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6385.1, 744.091);
+ polygon.ps[1] = Point(6385.1, 806.091);
+ polygon.ps[2] = Point(6323.1, 806.091);
+ polygon.ps[3] = Point(6323.1, 744.091);
+ new ShapeRef(router, polygon, 52);
+
+ // shapeRef53
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6715.1, 744.091);
+ polygon.ps[1] = Point(6715.1, 806.091);
+ polygon.ps[2] = Point(6653.1, 806.091);
+ polygon.ps[3] = Point(6653.1, 744.091);
+ new ShapeRef(router, polygon, 53);
+
+ // shapeRef54
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6715.1, 1117.29);
+ polygon.ps[1] = Point(6715.1, 1179.29);
+ polygon.ps[2] = Point(6653.1, 1179.29);
+ polygon.ps[3] = Point(6653.1, 1117.29);
+ new ShapeRef(router, polygon, 54);
+
+ // shapeRef55
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6715.1, 1414.29);
+ polygon.ps[1] = Point(6715.1, 1476.29);
+ polygon.ps[2] = Point(6653.1, 1476.29);
+ polygon.ps[3] = Point(6653.1, 1414.29);
+ new ShapeRef(router, polygon, 55);
+
+ // shapeRef56
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6418.1, 1414.29);
+ polygon.ps[1] = Point(6418.1, 1476.29);
+ polygon.ps[2] = Point(6356.1, 1476.29);
+ polygon.ps[3] = Point(6356.1, 1414.29);
+ new ShapeRef(router, polygon, 56);
+
+ // shapeRef57
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5046, 1480.29);
+ polygon.ps[1] = Point(5046, 1542.29);
+ polygon.ps[2] = Point(4984, 1542.29);
+ polygon.ps[3] = Point(4984, 1480.29);
+ new ShapeRef(router, polygon, 57);
+
+ // shapeRef58
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6715.1, 1645.29);
+ polygon.ps[1] = Point(6715.1, 1707.29);
+ polygon.ps[2] = Point(6653.1, 1707.29);
+ polygon.ps[3] = Point(6653.1, 1645.29);
+ new ShapeRef(router, polygon, 58);
+
+ // shapeRef59
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5310, 1645.29);
+ polygon.ps[1] = Point(5310, 1707.29);
+ polygon.ps[2] = Point(5248, 1707.29);
+ polygon.ps[3] = Point(5248, 1645.29);
+ new ShapeRef(router, polygon, 59);
+
+ // shapeRef60
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5758.1, 1645.29);
+ polygon.ps[1] = Point(5758.1, 1707.29);
+ polygon.ps[2] = Point(5696.1, 1707.29);
+ polygon.ps[3] = Point(5696.1, 1645.29);
+ new ShapeRef(router, polygon, 60);
+
+ // shapeRef61
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6121.1, 1645.29);
+ polygon.ps[1] = Point(6121.1, 1707.29);
+ polygon.ps[2] = Point(6059.1, 1707.29);
+ polygon.ps[3] = Point(6059.1, 1645.29);
+ new ShapeRef(router, polygon, 61);
+
+ // shapeRef62
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6418.1, 1645.29);
+ polygon.ps[1] = Point(6418.1, 1707.29);
+ polygon.ps[2] = Point(6356.1, 1707.29);
+ polygon.ps[3] = Point(6356.1, 1645.29);
+ new ShapeRef(router, polygon, 62);
+
+ // shapeRef63
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5046, 1813.29);
+ polygon.ps[1] = Point(5046, 1875.29);
+ polygon.ps[2] = Point(4984, 1875.29);
+ polygon.ps[3] = Point(4984, 1813.29);
+ new ShapeRef(router, polygon, 63);
+
+ // shapeRef64
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6715.1, 1813.29);
+ polygon.ps[1] = Point(6715.1, 1875.29);
+ polygon.ps[2] = Point(6653.1, 1875.29);
+ polygon.ps[3] = Point(6653.1, 1813.29);
+ new ShapeRef(router, polygon, 64);
+
+ // shapeRef65
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6418.1, 1813.29);
+ polygon.ps[1] = Point(6418.1, 1875.29);
+ polygon.ps[2] = Point(6356.1, 1875.29);
+ polygon.ps[3] = Point(6356.1, 1813.29);
+ new ShapeRef(router, polygon, 65);
+
+ // shapeRef66
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6121.1, 1813.29);
+ polygon.ps[1] = Point(6121.1, 1875.29);
+ polygon.ps[2] = Point(6059.1, 1875.29);
+ polygon.ps[3] = Point(6059.1, 1813.29);
+ new ShapeRef(router, polygon, 66);
+
+ // shapeRef67
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5758.1, 1813.29);
+ polygon.ps[1] = Point(5758.1, 1875.29);
+ polygon.ps[2] = Point(5696.1, 1875.29);
+ polygon.ps[3] = Point(5696.1, 1813.29);
+ new ShapeRef(router, polygon, 67);
+
+ // shapeRef68
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5310, 1813.29);
+ polygon.ps[1] = Point(5310, 1875.29);
+ polygon.ps[2] = Point(5248, 1875.29);
+ polygon.ps[3] = Point(5248, 1813.29);
+ new ShapeRef(router, polygon, 68);
+
+ // shapeRef69
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4650, 1813.29);
+ polygon.ps[1] = Point(4650, 1875.29);
+ polygon.ps[2] = Point(4588, 1875.29);
+ polygon.ps[3] = Point(4588, 1813.29);
+ new ShapeRef(router, polygon, 69);
+
+ // shapeRef70
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5923.1, 1150.29);
+ polygon.ps[1] = Point(5923.1, 1212.29);
+ polygon.ps[2] = Point(5861.1, 1212.29);
+ polygon.ps[3] = Point(5861.1, 1150.29);
+ new ShapeRef(router, polygon, 70);
+
+ // shapeRef71
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 1150.29);
+ polygon.ps[1] = Point(5626.1, 1212.29);
+ polygon.ps[2] = Point(5564.1, 1212.29);
+ polygon.ps[3] = Point(5564.1, 1150.29);
+ new ShapeRef(router, polygon, 71);
+
+ // shapeRef72
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5923.1, 919.285);
+ polygon.ps[1] = Point(5923.1, 981.285);
+ polygon.ps[2] = Point(5861.1, 981.285);
+ polygon.ps[3] = Point(5861.1, 919.285);
+ new ShapeRef(router, polygon, 72);
+
+ // shapeRef73
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 919.285);
+ polygon.ps[1] = Point(5626.1, 981.285);
+ polygon.ps[2] = Point(5564.1, 981.285);
+ polygon.ps[3] = Point(5564.1, 919.285);
+ new ShapeRef(router, polygon, 73);
+
+ // shapeRef74
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 678.091);
+ polygon.ps[1] = Point(5626.1, 740.091);
+ polygon.ps[2] = Point(5564.1, 740.091);
+ polygon.ps[3] = Point(5564.1, 678.091);
+ new ShapeRef(router, polygon, 74);
+
+ // shapeRef75
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4914, 678.091);
+ polygon.ps[1] = Point(4914, 740.091);
+ polygon.ps[2] = Point(4852, 740.091);
+ polygon.ps[3] = Point(4852, 678.091);
+ new ShapeRef(router, polygon, 75);
+
+ // shapeRef76
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5923.1, 678.091);
+ polygon.ps[1] = Point(5923.1, 740.091);
+ polygon.ps[2] = Point(5861.1, 740.091);
+ polygon.ps[3] = Point(5861.1, 678.091);
+ new ShapeRef(router, polygon, 76);
+
+ // shapeRef77
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5178, 678.091);
+ polygon.ps[1] = Point(5178, 740.091);
+ polygon.ps[2] = Point(5116, 740.091);
+ polygon.ps[3] = Point(5116, 678.091);
+ new ShapeRef(router, polygon, 77);
+
+ // shapeRef78
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5079, 513.091);
+ polygon.ps[1] = Point(5079, 575.091);
+ polygon.ps[2] = Point(5017, 575.091);
+ polygon.ps[3] = Point(5017, 513.091);
+ new ShapeRef(router, polygon, 78);
+
+ // shapeRef79
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4617, 513.091);
+ polygon.ps[1] = Point(4617, 575.091);
+ polygon.ps[2] = Point(4555, 575.091);
+ polygon.ps[3] = Point(4555, 513.091);
+ new ShapeRef(router, polygon, 79);
+
+ // shapeRef80
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4254, 513.091);
+ polygon.ps[1] = Point(4254, 575.091);
+ polygon.ps[2] = Point(4192, 575.091);
+ polygon.ps[3] = Point(4192, 513.091);
+ new ShapeRef(router, polygon, 80);
+
+ // shapeRef81
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3792, 513.091);
+ polygon.ps[1] = Point(3792, 575.091);
+ polygon.ps[2] = Point(3730, 575.091);
+ polygon.ps[3] = Point(3730, 513.091);
+ new ShapeRef(router, polygon, 81);
+
+ // shapeRef82
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4749, 328.265);
+ polygon.ps[1] = Point(4749, 390.265);
+ polygon.ps[2] = Point(4687, 390.265);
+ polygon.ps[3] = Point(4687, 328.265);
+ new ShapeRef(router, polygon, 82);
+
+ // shapeRef83
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3561, 249.265);
+ polygon.ps[1] = Point(3561, 311.265);
+ polygon.ps[2] = Point(3499, 311.265);
+ polygon.ps[3] = Point(3499, 249.265);
+ new ShapeRef(router, polygon, 83);
+
+ // shapeRef84
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3627, 361.265);
+ polygon.ps[1] = Point(3627, 423.265);
+ polygon.ps[2] = Point(3565, 423.265);
+ polygon.ps[3] = Point(3565, 361.265);
+ new ShapeRef(router, polygon, 84);
+
+ // shapeRef85
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3198, 361.265);
+ polygon.ps[1] = Point(3198, 423.265);
+ polygon.ps[2] = Point(3136, 423.265);
+ polygon.ps[3] = Point(3136, 361.265);
+ new ShapeRef(router, polygon, 85);
+
+ // shapeRef86
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2670, 328.265);
+ polygon.ps[1] = Point(2670, 390.265);
+ polygon.ps[2] = Point(2608, 390.265);
+ polygon.ps[3] = Point(2608, 328.265);
+ new ShapeRef(router, polygon, 86);
+
+ // shapeRef87
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2274, 513.091);
+ polygon.ps[1] = Point(2274, 575.091);
+ polygon.ps[2] = Point(2212, 575.091);
+ polygon.ps[3] = Point(2212, 513.091);
+ new ShapeRef(router, polygon, 87);
+
+ // shapeRef88
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2670, 513.091);
+ polygon.ps[1] = Point(2670, 575.091);
+ polygon.ps[2] = Point(2608, 575.091);
+ polygon.ps[3] = Point(2608, 513.091);
+ new ShapeRef(router, polygon, 88);
+
+ // shapeRef89
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2241, 678.091);
+ polygon.ps[1] = Point(2241, 740.091);
+ polygon.ps[2] = Point(2179, 740.091);
+ polygon.ps[3] = Point(2179, 678.091);
+ new ShapeRef(router, polygon, 89);
+
+ // shapeRef90
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3198, 678.091);
+ polygon.ps[1] = Point(3198, 740.091);
+ polygon.ps[2] = Point(3136, 740.091);
+ polygon.ps[3] = Point(3136, 678.091);
+ new ShapeRef(router, polygon, 90);
+
+ // shapeRef91
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3198, 513.091);
+ polygon.ps[1] = Point(3198, 575.091);
+ polygon.ps[2] = Point(3136, 575.091);
+ polygon.ps[3] = Point(3136, 513.091);
+ new ShapeRef(router, polygon, 91);
+
+ // shapeRef92
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 678.091);
+ polygon.ps[1] = Point(1779, 740.091);
+ polygon.ps[2] = Point(1717, 740.091);
+ polygon.ps[3] = Point(1717, 678.091);
+ new ShapeRef(router, polygon, 92);
+
+ // shapeRef93
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2340, 1282.29);
+ polygon.ps[1] = Point(2340, 1344.29);
+ polygon.ps[2] = Point(2278, 1344.29);
+ polygon.ps[3] = Point(2278, 1282.29);
+ new ShapeRef(router, polygon, 93);
+
+ // shapeRef94
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1152, 1282.29);
+ polygon.ps[1] = Point(1152, 1344.29);
+ polygon.ps[2] = Point(1090, 1344.29);
+ polygon.ps[3] = Point(1090, 1282.29);
+ new ShapeRef(router, polygon, 94);
+
+ // shapeRef95
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1515, 1282.29);
+ polygon.ps[1] = Point(1515, 1344.29);
+ polygon.ps[2] = Point(1453, 1344.29);
+ polygon.ps[3] = Point(1453, 1282.29);
+ new ShapeRef(router, polygon, 95);
+
+ // shapeRef96
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(789, 1018.29);
+ polygon.ps[1] = Point(789, 1080.29);
+ polygon.ps[2] = Point(727, 1080.29);
+ polygon.ps[3] = Point(727, 1018.29);
+ new ShapeRef(router, polygon, 96);
+
+ // shapeRef97
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1152, 1018.29);
+ polygon.ps[1] = Point(1152, 1080.29);
+ polygon.ps[2] = Point(1090, 1080.29);
+ polygon.ps[3] = Point(1090, 1018.29);
+ new ShapeRef(router, polygon, 97);
+
+ // shapeRef98
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1878, 1018.29);
+ polygon.ps[1] = Point(1878, 1080.29);
+ polygon.ps[2] = Point(1816, 1080.29);
+ polygon.ps[3] = Point(1816, 1018.29);
+ new ShapeRef(router, polygon, 98);
+
+ // shapeRef99
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2340, 1018.29);
+ polygon.ps[1] = Point(2340, 1080.29);
+ polygon.ps[2] = Point(2278, 1080.29);
+ polygon.ps[3] = Point(2278, 1018.29);
+ new ShapeRef(router, polygon, 99);
+
+ // shapeRef100
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2703, 1018.29);
+ polygon.ps[1] = Point(2703, 1080.29);
+ polygon.ps[2] = Point(2641, 1080.29);
+ polygon.ps[3] = Point(2641, 1018.29);
+ new ShapeRef(router, polygon, 100);
+
+ // shapeRef101
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3660, 1018.29);
+ polygon.ps[1] = Point(3660, 1080.29);
+ polygon.ps[2] = Point(3598, 1080.29);
+ polygon.ps[3] = Point(3598, 1018.29);
+ new ShapeRef(router, polygon, 101);
+
+ // shapeRef102
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1515, 1018.29);
+ polygon.ps[1] = Point(1515, 1080.29);
+ polygon.ps[2] = Point(1453, 1080.29);
+ polygon.ps[3] = Point(1453, 1018.29);
+ new ShapeRef(router, polygon, 102);
+
+ // shapeRef103
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 1018.29);
+ polygon.ps[1] = Point(492, 1080.29);
+ polygon.ps[2] = Point(430, 1080.29);
+ polygon.ps[3] = Point(430, 1018.29);
+ new ShapeRef(router, polygon, 103);
+
+ // shapeRef104
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4023, 1018.29);
+ polygon.ps[1] = Point(4023, 1080.29);
+ polygon.ps[2] = Point(3961, 1080.29);
+ polygon.ps[3] = Point(3961, 1018.29);
+ new ShapeRef(router, polygon, 104);
+
+ // shapeRef105
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(195, 1747.29);
+ polygon.ps[1] = Point(195, 1809.29);
+ polygon.ps[2] = Point(133, 1809.29);
+ polygon.ps[3] = Point(133, 1747.29);
+ new ShapeRef(router, polygon, 105);
+
+ // shapeRef106
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(195, 1480.29);
+ polygon.ps[1] = Point(195, 1542.29);
+ polygon.ps[2] = Point(133, 1542.29);
+ polygon.ps[3] = Point(133, 1480.29);
+ new ShapeRef(router, polygon, 106);
+
+ // shapeRef107
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(426, 1480.29);
+ polygon.ps[1] = Point(426, 1542.29);
+ polygon.ps[2] = Point(364, 1542.29);
+ polygon.ps[3] = Point(364, 1480.29);
+ new ShapeRef(router, polygon, 107);
+
+ // shapeRef108
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(690, 1480.29);
+ polygon.ps[1] = Point(690, 1542.29);
+ polygon.ps[2] = Point(628, 1542.29);
+ polygon.ps[3] = Point(628, 1480.29);
+ new ShapeRef(router, polygon, 108);
+
+ // shapeRef109
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 1480.29);
+ polygon.ps[1] = Point(1086, 1542.29);
+ polygon.ps[2] = Point(1024, 1542.29);
+ polygon.ps[3] = Point(1024, 1480.29);
+ new ShapeRef(router, polygon, 109);
+
+ // shapeRef110
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 1480.29);
+ polygon.ps[1] = Point(1449, 1542.29);
+ polygon.ps[2] = Point(1387, 1542.29);
+ polygon.ps[3] = Point(1387, 1480.29);
+ new ShapeRef(router, polygon, 110);
+
+ // shapeRef111
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1845, 1480.29);
+ polygon.ps[1] = Point(1845, 1542.29);
+ polygon.ps[2] = Point(1783, 1542.29);
+ polygon.ps[3] = Point(1783, 1480.29);
+ new ShapeRef(router, polygon, 111);
+
+ // shapeRef112
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2637, 1480.29);
+ polygon.ps[1] = Point(2637, 1542.29);
+ polygon.ps[2] = Point(2575, 1542.29);
+ polygon.ps[3] = Point(2575, 1480.29);
+ new ShapeRef(router, polygon, 112);
+
+ // shapeRef113
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3132, 1480.29);
+ polygon.ps[1] = Point(3132, 1542.29);
+ polygon.ps[2] = Point(3070, 1542.29);
+ polygon.ps[3] = Point(3070, 1480.29);
+ new ShapeRef(router, polygon, 113);
+
+ // shapeRef114
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3660, 1480.29);
+ polygon.ps[1] = Point(3660, 1542.29);
+ polygon.ps[2] = Point(3598, 1542.29);
+ polygon.ps[3] = Point(3598, 1480.29);
+ new ShapeRef(router, polygon, 114);
+
+ // shapeRef115
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4023, 1480.29);
+ polygon.ps[1] = Point(4023, 1542.29);
+ polygon.ps[2] = Point(3961, 1542.29);
+ polygon.ps[3] = Point(3961, 1480.29);
+ new ShapeRef(router, polygon, 115);
+
+ // shapeRef116
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2274, 1480.29);
+ polygon.ps[1] = Point(2274, 1542.29);
+ polygon.ps[2] = Point(2212, 1542.29);
+ polygon.ps[3] = Point(2212, 1480.29);
+ new ShapeRef(router, polygon, 116);
+
+ // shapeRef117
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 1645.29);
+ polygon.ps[1] = Point(1449, 1707.29);
+ polygon.ps[2] = Point(1387, 1707.29);
+ polygon.ps[3] = Point(1387, 1645.29);
+ new ShapeRef(router, polygon, 117);
+
+ // shapeRef118
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1845, 1645.29);
+ polygon.ps[1] = Point(1845, 1707.29);
+ polygon.ps[2] = Point(1783, 1707.29);
+ polygon.ps[3] = Point(1783, 1645.29);
+ new ShapeRef(router, polygon, 118);
+
+ // shapeRef119
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2274, 1645.29);
+ polygon.ps[1] = Point(2274, 1707.29);
+ polygon.ps[2] = Point(2212, 1707.29);
+ polygon.ps[3] = Point(2212, 1645.29);
+ new ShapeRef(router, polygon, 119);
+
+ // shapeRef120
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 1813.29);
+ polygon.ps[1] = Point(1086, 1875.29);
+ polygon.ps[2] = Point(1024, 1875.29);
+ polygon.ps[3] = Point(1024, 1813.29);
+ new ShapeRef(router, polygon, 120);
+
+ // shapeRef121
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 1813.29);
+ polygon.ps[1] = Point(1449, 1875.29);
+ polygon.ps[2] = Point(1387, 1875.29);
+ polygon.ps[3] = Point(1387, 1813.29);
+ new ShapeRef(router, polygon, 121);
+
+ // shapeRef122
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1845, 1813.29);
+ polygon.ps[1] = Point(1845, 1875.29);
+ polygon.ps[2] = Point(1783, 1875.29);
+ polygon.ps[3] = Point(1783, 1813.29);
+ new ShapeRef(router, polygon, 122);
+
+ // shapeRef123
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2274, 1813.29);
+ polygon.ps[1] = Point(2274, 1875.29);
+ polygon.ps[2] = Point(2212, 1875.29);
+ polygon.ps[3] = Point(2212, 1813.29);
+ new ShapeRef(router, polygon, 123);
+
+ // shapeRef124
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2637, 1813.29);
+ polygon.ps[1] = Point(2637, 1875.29);
+ polygon.ps[2] = Point(2575, 1875.29);
+ polygon.ps[3] = Point(2575, 1813.29);
+ new ShapeRef(router, polygon, 124);
+
+ // shapeRef125
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3132, 1813.29);
+ polygon.ps[1] = Point(3132, 1875.29);
+ polygon.ps[2] = Point(3070, 1875.29);
+ polygon.ps[3] = Point(3070, 1813.29);
+ new ShapeRef(router, polygon, 125);
+
+ // shapeRef126
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3660, 1813.29);
+ polygon.ps[1] = Point(3660, 1875.29);
+ polygon.ps[2] = Point(3598, 1875.29);
+ polygon.ps[3] = Point(3598, 1813.29);
+ new ShapeRef(router, polygon, 126);
+
+ // shapeRef127
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4023, 1813.29);
+ polygon.ps[1] = Point(4023, 1875.29);
+ polygon.ps[2] = Point(3961, 1875.29);
+ polygon.ps[3] = Point(3961, 1813.29);
+ new ShapeRef(router, polygon, 127);
+
+ // shapeRef128
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4353, 1813.29);
+ polygon.ps[1] = Point(4353, 1875.29);
+ polygon.ps[2] = Point(4291, 1875.29);
+ polygon.ps[3] = Point(4291, 1813.29);
+ new ShapeRef(router, polygon, 128);
+
+ // shapeRef129
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(360, 1813.29);
+ polygon.ps[1] = Point(360, 1875.29);
+ polygon.ps[2] = Point(298, 1875.29);
+ polygon.ps[3] = Point(298, 1813.29);
+ new ShapeRef(router, polygon, 129);
+
+ // shapeRef130
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(360, 2317.29);
+ polygon.ps[1] = Point(360, 2379.29);
+ polygon.ps[2] = Point(298, 2379.29);
+ polygon.ps[3] = Point(298, 2317.29);
+ new ShapeRef(router, polygon, 130);
+
+ // shapeRef131
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(624, 2317.29);
+ polygon.ps[1] = Point(624, 2379.29);
+ polygon.ps[2] = Point(562, 2379.29);
+ polygon.ps[3] = Point(562, 2317.29);
+ new ShapeRef(router, polygon, 131);
+
+ // shapeRef132
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 2317.29);
+ polygon.ps[1] = Point(1086, 2379.29);
+ polygon.ps[2] = Point(1024, 2379.29);
+ polygon.ps[3] = Point(1024, 2317.29);
+ new ShapeRef(router, polygon, 132);
+
+ // shapeRef133
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1845, 2317.29);
+ polygon.ps[1] = Point(1845, 2379.29);
+ polygon.ps[2] = Point(1783, 2379.29);
+ polygon.ps[3] = Point(1783, 2317.29);
+ new ShapeRef(router, polygon, 133);
+
+ // shapeRef134
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(162, 2581.29);
+ polygon.ps[1] = Point(162, 2643.29);
+ polygon.ps[2] = Point(100, 2643.29);
+ polygon.ps[3] = Point(100, 2581.29);
+ new ShapeRef(router, polygon, 134);
+
+ // shapeRef135
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(162, 2383.29);
+ polygon.ps[1] = Point(162, 2445.29);
+ polygon.ps[2] = Point(100, 2445.29);
+ polygon.ps[3] = Point(100, 2383.29);
+ new ShapeRef(router, polygon, 135);
+
+ // shapeRef136
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(162, 2119.29);
+ polygon.ps[1] = Point(162, 2181.29);
+ polygon.ps[2] = Point(100, 2181.29);
+ polygon.ps[3] = Point(100, 2119.29);
+ new ShapeRef(router, polygon, 136);
+
+ // shapeRef137
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(624, 2119.29);
+ polygon.ps[1] = Point(624, 2181.29);
+ polygon.ps[2] = Point(562, 2181.29);
+ polygon.ps[3] = Point(562, 2119.29);
+ new ShapeRef(router, polygon, 137);
+
+ // shapeRef138
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1845, 2119.29);
+ polygon.ps[1] = Point(1845, 2181.29);
+ polygon.ps[2] = Point(1783, 2181.29);
+ polygon.ps[3] = Point(1783, 2119.29);
+ new ShapeRef(router, polygon, 138);
+
+ // shapeRef139
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 2119.29);
+ polygon.ps[1] = Point(1086, 2181.29);
+ polygon.ps[2] = Point(1024, 2181.29);
+ polygon.ps[3] = Point(1024, 2119.29);
+ new ShapeRef(router, polygon, 139);
+
+ // shapeRef140
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2274, 2119.29);
+ polygon.ps[1] = Point(2274, 2181.29);
+ polygon.ps[2] = Point(2212, 2181.29);
+ polygon.ps[3] = Point(2212, 2119.29);
+ new ShapeRef(router, polygon, 140);
+
+ // shapeRef141
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2637, 2119.29);
+ polygon.ps[1] = Point(2637, 2181.29);
+ polygon.ps[2] = Point(2575, 2181.29);
+ polygon.ps[3] = Point(2575, 2119.29);
+ new ShapeRef(router, polygon, 141);
+
+ // shapeRef142
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3132, 2119.29);
+ polygon.ps[1] = Point(3132, 2181.29);
+ polygon.ps[2] = Point(3070, 2181.29);
+ polygon.ps[3] = Point(3070, 2119.29);
+ new ShapeRef(router, polygon, 142);
+
+ // shapeRef143
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4023, 2119.29);
+ polygon.ps[1] = Point(4023, 2181.29);
+ polygon.ps[2] = Point(3961, 2181.29);
+ polygon.ps[3] = Point(3961, 2119.29);
+ new ShapeRef(router, polygon, 143);
+
+ // shapeRef144
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3660, 2119.29);
+ polygon.ps[1] = Point(3660, 2181.29);
+ polygon.ps[2] = Point(3598, 2181.29);
+ polygon.ps[3] = Point(3598, 2119.29);
+ new ShapeRef(router, polygon, 144);
+
+ // shapeRef145
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5923.1, 1348.29);
+ polygon.ps[1] = Point(5923.1, 1410.29);
+ polygon.ps[2] = Point(5861.1, 1410.29);
+ polygon.ps[3] = Point(5861.1, 1348.29);
+ new ShapeRef(router, polygon, 145);
+
+ // shapeRef146
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6616.1, 1150.29);
+ polygon.ps[1] = Point(6616.1, 1212.29);
+ polygon.ps[2] = Point(6554.1, 1212.29);
+ polygon.ps[3] = Point(6554.1, 1150.29);
+ new ShapeRef(router, polygon, 146);
+
+ // shapeRef147
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6220.1, 1150.29);
+ polygon.ps[1] = Point(6220.1, 1212.29);
+ polygon.ps[2] = Point(6158.1, 1212.29);
+ polygon.ps[3] = Point(6158.1, 1150.29);
+ new ShapeRef(router, polygon, 147);
+
+ // shapeRef148
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5593.1, 513.091);
+ polygon.ps[1] = Point(5593.1, 575.091);
+ polygon.ps[2] = Point(5531.1, 575.091);
+ polygon.ps[3] = Point(5531.1, 513.091);
+ new ShapeRef(router, polygon, 148);
+
+ // shapeRef149
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4254, 328.265);
+ polygon.ps[1] = Point(4254, 390.265);
+ polygon.ps[2] = Point(4192, 390.265);
+ polygon.ps[3] = Point(4192, 328.265);
+ new ShapeRef(router, polygon, 149);
+
+ // shapeRef150
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(525, 678.091);
+ polygon.ps[1] = Point(525, 740.091);
+ polygon.ps[2] = Point(463, 740.091);
+ polygon.ps[3] = Point(463, 678.091);
+ new ShapeRef(router, polygon, 150);
+
+ // shapeRef151
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3198, 1018.29);
+ polygon.ps[1] = Point(3198, 1080.29);
+ polygon.ps[2] = Point(3136, 1080.29);
+ polygon.ps[3] = Point(3136, 1018.29);
+ new ShapeRef(router, polygon, 151);
+
+ // shapeRef152
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8986.36, 6197.89);
+ polygon.ps[1] = Point(8986.36, 6237.89);
+ polygon.ps[2] = Point(8931.36, 6237.89);
+ polygon.ps[3] = Point(8931.36, 6197.89);
+ new ShapeRef(router, polygon, 152);
+
+ // shapeRef153
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9063.36, 6197.89);
+ polygon.ps[1] = Point(9063.36, 6237.89);
+ polygon.ps[2] = Point(9008.36, 6237.89);
+ polygon.ps[3] = Point(9008.36, 6197.89);
+ new ShapeRef(router, polygon, 153);
+
+ // shapeRef154
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 6197.89);
+ polygon.ps[1] = Point(9389.03, 6237.89);
+ polygon.ps[2] = Point(9334.03, 6237.89);
+ polygon.ps[3] = Point(9334.03, 6197.89);
+ new ShapeRef(router, polygon, 154);
+
+ // shapeRef155
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 6297.89);
+ polygon.ps[1] = Point(8389.03, 6337.89);
+ polygon.ps[2] = Point(8334.03, 6337.89);
+ polygon.ps[3] = Point(8334.03, 6297.89);
+ new ShapeRef(router, polygon, 155);
+
+ // shapeRef156
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 6297.89);
+ polygon.ps[1] = Point(8589.03, 6337.89);
+ polygon.ps[2] = Point(8534.03, 6337.89);
+ polygon.ps[3] = Point(8534.03, 6297.89);
+ new ShapeRef(router, polygon, 156);
+
+ // shapeRef157
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 6297.89);
+ polygon.ps[1] = Point(8689.03, 6337.89);
+ polygon.ps[2] = Point(8634.03, 6337.89);
+ polygon.ps[3] = Point(8634.03, 6297.89);
+ new ShapeRef(router, polygon, 157);
+
+ // shapeRef158
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 6297.89);
+ polygon.ps[1] = Point(8789.03, 6337.89);
+ polygon.ps[2] = Point(8734.03, 6337.89);
+ polygon.ps[3] = Point(8734.03, 6297.89);
+ new ShapeRef(router, polygon, 158);
+
+ // shapeRef159
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 6297.89);
+ polygon.ps[1] = Point(8889.03, 6337.89);
+ polygon.ps[2] = Point(8834.03, 6337.89);
+ polygon.ps[3] = Point(8834.03, 6297.89);
+ new ShapeRef(router, polygon, 159);
+
+ // shapeRef160
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 6297.89);
+ polygon.ps[1] = Point(8989.03, 6337.89);
+ polygon.ps[2] = Point(8934.03, 6337.89);
+ polygon.ps[3] = Point(8934.03, 6297.89);
+ new ShapeRef(router, polygon, 160);
+
+ // shapeRef161
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 6297.89);
+ polygon.ps[1] = Point(9089.03, 6337.89);
+ polygon.ps[2] = Point(9034.03, 6337.89);
+ polygon.ps[3] = Point(9034.03, 6297.89);
+ new ShapeRef(router, polygon, 161);
+
+ // shapeRef162
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4881, 11796.9);
+ polygon.ps[1] = Point(4881, 11858.9);
+ polygon.ps[2] = Point(4819, 11858.9);
+ polygon.ps[3] = Point(4819, 11796.9);
+ new ShapeRef(router, polygon, 162);
+
+ // shapeRef163
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2538, 10275);
+ polygon.ps[1] = Point(2538, 10337);
+ polygon.ps[2] = Point(2476, 10337);
+ polygon.ps[3] = Point(2476, 10275);
+ new ShapeRef(router, polygon, 163);
+
+ // shapeRef164
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3231, 10275);
+ polygon.ps[1] = Point(3231, 10337);
+ polygon.ps[2] = Point(3169, 10337);
+ polygon.ps[3] = Point(3169, 10275);
+ new ShapeRef(router, polygon, 164);
+
+ // shapeRef165
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3231, 10982.6);
+ polygon.ps[1] = Point(3231, 11044.6);
+ polygon.ps[2] = Point(3169, 11044.6);
+ polygon.ps[3] = Point(3169, 10982.6);
+ new ShapeRef(router, polygon, 165);
+
+ // shapeRef166
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11137.2, 2011.29);
+ polygon.ps[1] = Point(11137.2, 2073.29);
+ polygon.ps[2] = Point(11075.2, 2073.29);
+ polygon.ps[3] = Point(11075.2, 2011.29);
+ new ShapeRef(router, polygon, 166);
+
+ // shapeRef167
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 2011.29);
+ polygon.ps[1] = Point(11460.1, 2073.29);
+ polygon.ps[2] = Point(11398.1, 2073.29);
+ polygon.ps[3] = Point(11398.1, 2011.29);
+ new ShapeRef(router, polygon, 167);
+
+ // shapeRef168
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 6397.89);
+ polygon.ps[1] = Point(8689.03, 6437.89);
+ polygon.ps[2] = Point(8634.03, 6437.89);
+ polygon.ps[3] = Point(8634.03, 6397.89);
+ new ShapeRef(router, polygon, 168);
+
+ // shapeRef169
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10939.2, 2011.29);
+ polygon.ps[1] = Point(10939.2, 2073.29);
+ polygon.ps[2] = Point(10877.2, 2073.29);
+ polygon.ps[3] = Point(10877.2, 2011.29);
+ new ShapeRef(router, polygon, 169);
+
+ // shapeRef170
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 1711.29);
+ polygon.ps[1] = Point(11460.1, 1773.29);
+ polygon.ps[2] = Point(11398.1, 1773.29);
+ polygon.ps[3] = Point(11398.1, 1711.29);
+ new ShapeRef(router, polygon, 170);
+
+ // shapeRef171
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11856.1, 1711.29);
+ polygon.ps[1] = Point(11856.1, 1773.29);
+ polygon.ps[2] = Point(11794.1, 1773.29);
+ polygon.ps[3] = Point(11794.1, 1711.29);
+ new ShapeRef(router, polygon, 171);
+
+ // shapeRef172
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13705, 4808.4);
+ polygon.ps[1] = Point(13705, 4870.4);
+ polygon.ps[2] = Point(13643, 4870.4);
+ polygon.ps[3] = Point(13643, 4808.4);
+ new ShapeRef(router, polygon, 172);
+
+ // shapeRef173
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12986.5, 4808.4);
+ polygon.ps[1] = Point(12986.5, 4870.4);
+ polygon.ps[2] = Point(12924.5, 4870.4);
+ polygon.ps[3] = Point(12924.5, 4808.4);
+ new ShapeRef(router, polygon, 173);
+
+ // shapeRef174
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12986.5, 4330.11);
+ polygon.ps[1] = Point(12986.5, 4392.11);
+ polygon.ps[2] = Point(12924.5, 4392.11);
+ polygon.ps[3] = Point(12924.5, 4330.11);
+ new ShapeRef(router, polygon, 174);
+
+ // shapeRef175
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12986.5, 3996.51);
+ polygon.ps[1] = Point(12986.5, 4058.51);
+ polygon.ps[2] = Point(12924.5, 4058.51);
+ polygon.ps[3] = Point(12924.5, 3996.51);
+ new ShapeRef(router, polygon, 175);
+
+ // shapeRef176
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12986.5, 3732.51);
+ polygon.ps[1] = Point(12986.5, 3794.51);
+ polygon.ps[2] = Point(12924.5, 3794.51);
+ polygon.ps[3] = Point(12924.5, 3732.51);
+ new ShapeRef(router, polygon, 176);
+
+ // shapeRef177
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8422.29, 6497.89);
+ polygon.ps[1] = Point(8422.29, 6537.89);
+ polygon.ps[2] = Point(8367.29, 6537.89);
+ polygon.ps[3] = Point(8367.29, 6497.89);
+ new ShapeRef(router, polygon, 177);
+
+ // shapeRef178
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8499.29, 6497.89);
+ polygon.ps[1] = Point(8499.29, 6537.89);
+ polygon.ps[2] = Point(8444.29, 6537.89);
+ polygon.ps[3] = Point(8444.29, 6497.89);
+ new ShapeRef(router, polygon, 178);
+
+ // shapeRef179
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8576.29, 6497.89);
+ polygon.ps[1] = Point(8576.29, 6537.89);
+ polygon.ps[2] = Point(8521.29, 6537.89);
+ polygon.ps[3] = Point(8521.29, 6497.89);
+ new ShapeRef(router, polygon, 179);
+
+ // shapeRef180
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11203.2, 2548.29);
+ polygon.ps[1] = Point(11203.2, 2610.29);
+ polygon.ps[2] = Point(11141.2, 2610.29);
+ polygon.ps[3] = Point(11141.2, 2548.29);
+ new ShapeRef(router, polygon, 180);
+
+ // shapeRef181
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10906.2, 2548.29);
+ polygon.ps[1] = Point(10906.2, 2610.29);
+ polygon.ps[2] = Point(10844.2, 2610.29);
+ polygon.ps[3] = Point(10844.2, 2548.29);
+ new ShapeRef(router, polygon, 181);
+
+ // shapeRef182
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11203.2, 2911.29);
+ polygon.ps[1] = Point(11203.2, 2973.29);
+ polygon.ps[2] = Point(11141.2, 2973.29);
+ polygon.ps[3] = Point(11141.2, 2911.29);
+ new ShapeRef(router, polygon, 182);
+
+ // shapeRef183
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10906.2, 2911.29);
+ polygon.ps[1] = Point(10906.2, 2973.29);
+ polygon.ps[2] = Point(10844.2, 2973.29);
+ polygon.ps[3] = Point(10844.2, 2911.29);
+ new ShapeRef(router, polygon, 183);
+
+ // shapeRef184
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10421.9, 2548.29);
+ polygon.ps[1] = Point(10421.9, 2610.29);
+ polygon.ps[2] = Point(10359.9, 2610.29);
+ polygon.ps[3] = Point(10359.9, 2548.29);
+ new ShapeRef(router, polygon, 184);
+
+ // shapeRef185
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10421.9, 2911.29);
+ polygon.ps[1] = Point(10421.9, 2973.29);
+ polygon.ps[2] = Point(10359.9, 2973.29);
+ polygon.ps[3] = Point(10359.9, 2911.29);
+ new ShapeRef(router, polygon, 185);
+
+ // shapeRef186
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10421.9, 3274.29);
+ polygon.ps[1] = Point(10421.9, 3336.29);
+ polygon.ps[2] = Point(10359.9, 3336.29);
+ polygon.ps[3] = Point(10359.9, 3274.29);
+ new ShapeRef(router, polygon, 186);
+
+ // shapeRef187
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10421.9, 3633.51);
+ polygon.ps[1] = Point(10421.9, 3695.51);
+ polygon.ps[2] = Point(10359.9, 3695.51);
+ polygon.ps[3] = Point(10359.9, 3633.51);
+ new ShapeRef(router, polygon, 187);
+
+ // shapeRef188
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 3633.51);
+ polygon.ps[1] = Point(9532.59, 3695.51);
+ polygon.ps[2] = Point(9470.59, 3695.51);
+ polygon.ps[3] = Point(9470.59, 3633.51);
+ new ShapeRef(router, polygon, 188);
+
+ // shapeRef189
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 3402.51);
+ polygon.ps[1] = Point(9532.59, 3464.51);
+ polygon.ps[2] = Point(9470.59, 3464.51);
+ polygon.ps[3] = Point(9470.59, 3402.51);
+ new ShapeRef(router, polygon, 189);
+
+ // shapeRef190
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 3142.29);
+ polygon.ps[1] = Point(9532.59, 3204.29);
+ polygon.ps[2] = Point(9470.59, 3204.29);
+ polygon.ps[3] = Point(9470.59, 3142.29);
+ new ShapeRef(router, polygon, 190);
+
+ // shapeRef191
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 2911.29);
+ polygon.ps[1] = Point(9532.59, 2973.29);
+ polygon.ps[2] = Point(9470.59, 2973.29);
+ polygon.ps[3] = Point(9470.59, 2911.29);
+ new ShapeRef(router, polygon, 191);
+
+ // shapeRef192
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 2548.29);
+ polygon.ps[1] = Point(9532.59, 2610.29);
+ polygon.ps[2] = Point(9470.59, 2610.29);
+ polygon.ps[3] = Point(9470.59, 2548.29);
+ new ShapeRef(router, polygon, 192);
+
+ // shapeRef193
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 2548.29);
+ polygon.ps[1] = Point(9202.59, 2610.29);
+ polygon.ps[2] = Point(9140.59, 2610.29);
+ polygon.ps[3] = Point(9140.59, 2548.29);
+ new ShapeRef(router, polygon, 193);
+
+ // shapeRef194
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 2911.29);
+ polygon.ps[1] = Point(9202.59, 2973.29);
+ polygon.ps[2] = Point(9140.59, 2973.29);
+ polygon.ps[3] = Point(9140.59, 2911.29);
+ new ShapeRef(router, polygon, 194);
+
+ // shapeRef195
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 3142.29);
+ polygon.ps[1] = Point(9202.59, 3204.29);
+ polygon.ps[2] = Point(9140.59, 3204.29);
+ polygon.ps[3] = Point(9140.59, 3142.29);
+ new ShapeRef(router, polygon, 195);
+
+ // shapeRef196
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 3402.51);
+ polygon.ps[1] = Point(9202.59, 3464.51);
+ polygon.ps[2] = Point(9140.59, 3464.51);
+ polygon.ps[3] = Point(9140.59, 3402.51);
+ new ShapeRef(router, polygon, 196);
+
+ // shapeRef197
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 3633.51);
+ polygon.ps[1] = Point(9202.59, 3695.51);
+ polygon.ps[2] = Point(9140.59, 3695.51);
+ polygon.ps[3] = Point(9140.59, 3633.51);
+ new ShapeRef(router, polygon, 197);
+
+ // shapeRef198
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 3963.51);
+ polygon.ps[1] = Point(9202.59, 4025.51);
+ polygon.ps[2] = Point(9140.59, 4025.51);
+ polygon.ps[3] = Point(9140.59, 3963.51);
+ new ShapeRef(router, polygon, 198);
+
+ // shapeRef199
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3396, 2515.29);
+ polygon.ps[1] = Point(3396, 2577.29);
+ polygon.ps[2] = Point(3334, 2577.29);
+ polygon.ps[3] = Point(3334, 2515.29);
+ new ShapeRef(router, polygon, 199);
+
+ // shapeRef200
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2571, 3666.51);
+ polygon.ps[1] = Point(2571, 3728.51);
+ polygon.ps[2] = Point(2509, 3728.51);
+ polygon.ps[3] = Point(2509, 3666.51);
+ new ShapeRef(router, polygon, 200);
+
+ // shapeRef201
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3726, 2779.29);
+ polygon.ps[1] = Point(3726, 2841.29);
+ polygon.ps[2] = Point(3664, 2841.29);
+ polygon.ps[3] = Point(3664, 2779.29);
+ new ShapeRef(router, polygon, 201);
+
+ // shapeRef202
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7928.29, 952.285);
+ polygon.ps[1] = Point(7928.29, 1014.29);
+ polygon.ps[2] = Point(7866.29, 1014.29);
+ polygon.ps[3] = Point(7866.29, 952.285);
+ new ShapeRef(router, polygon, 202);
+
+ // shapeRef203
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4551, 3666.51);
+ polygon.ps[1] = Point(4551, 3728.51);
+ polygon.ps[2] = Point(4489, 3728.51);
+ polygon.ps[3] = Point(4489, 3666.51);
+ new ShapeRef(router, polygon, 203);
+
+ // shapeRef204
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3561, 4297.11);
+ polygon.ps[1] = Point(3561, 4359.11);
+ polygon.ps[2] = Point(3499, 4359.11);
+ polygon.ps[3] = Point(3499, 4297.11);
+ new ShapeRef(router, polygon, 204);
+
+ // shapeRef205
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3759, 3930.51);
+ polygon.ps[1] = Point(3759, 3992.51);
+ polygon.ps[2] = Point(3697, 3992.51);
+ polygon.ps[3] = Point(3697, 3930.51);
+ new ShapeRef(router, polygon, 205);
+
+ // shapeRef206
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4353, 2119.29);
+ polygon.ps[1] = Point(4353, 2181.29);
+ polygon.ps[2] = Point(4291, 2181.29);
+ polygon.ps[3] = Point(4291, 2119.29);
+ new ShapeRef(router, polygon, 206);
+
+ // shapeRef207
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3990, 3666.51);
+ polygon.ps[1] = Point(3990, 3728.51);
+ polygon.ps[2] = Point(3928, 3728.51);
+ polygon.ps[3] = Point(3928, 3666.51);
+ new ShapeRef(router, polygon, 207);
+
+ // shapeRef208
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3396, 3109.29);
+ polygon.ps[1] = Point(3396, 3171.29);
+ polygon.ps[2] = Point(3334, 3171.29);
+ polygon.ps[3] = Point(3334, 3109.29);
+ new ShapeRef(router, polygon, 208);
+
+ // shapeRef209
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 6697.89);
+ polygon.ps[1] = Point(9289.03, 6737.89);
+ polygon.ps[2] = Point(9234.03, 6737.89);
+ polygon.ps[3] = Point(9234.03, 6697.89);
+ new ShapeRef(router, polygon, 209);
+
+ // shapeRef210
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4815, 5481.67);
+ polygon.ps[1] = Point(4815, 5543.67);
+ polygon.ps[2] = Point(4753, 5543.67);
+ polygon.ps[3] = Point(4753, 5481.67);
+ new ShapeRef(router, polygon, 210);
+
+ // shapeRef211
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16328.6, 5072.4);
+ polygon.ps[1] = Point(16328.6, 5134.4);
+ polygon.ps[2] = Point(16266.6, 5134.4);
+ polygon.ps[3] = Point(16266.6, 5072.4);
+ new ShapeRef(router, polygon, 211);
+
+ // shapeRef212
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15932.6, 5072.4);
+ polygon.ps[1] = Point(15932.6, 5134.4);
+ polygon.ps[2] = Point(15870.6, 5134.4);
+ polygon.ps[3] = Point(15870.6, 5072.4);
+ new ShapeRef(router, polygon, 212);
+
+ // shapeRef213
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15438.5, 4676.4);
+ polygon.ps[1] = Point(15438.5, 4738.4);
+ polygon.ps[2] = Point(15376.5, 4738.4);
+ polygon.ps[3] = Point(15376.5, 4676.4);
+ new ShapeRef(router, polygon, 213);
+
+ // shapeRef214
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15438.5, 5448.67);
+ polygon.ps[1] = Point(15438.5, 5510.67);
+ polygon.ps[2] = Point(15376.5, 5510.67);
+ polygon.ps[3] = Point(15376.5, 5448.67);
+ new ShapeRef(router, polygon, 214);
+
+ // shapeRef215
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15438.5, 6186.51);
+ polygon.ps[1] = Point(15438.5, 6248.51);
+ polygon.ps[2] = Point(15376.5, 6248.51);
+ polygon.ps[3] = Point(15376.5, 6186.51);
+ new ShapeRef(router, polygon, 215);
+
+ // shapeRef216
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15438.5, 6549.51);
+ polygon.ps[1] = Point(15438.5, 6611.51);
+ polygon.ps[2] = Point(15376.5, 6611.51);
+ polygon.ps[3] = Point(15376.5, 6549.51);
+ new ShapeRef(router, polygon, 216);
+
+ // shapeRef217
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4650, 8908.22);
+ polygon.ps[1] = Point(4650, 8970.22);
+ polygon.ps[2] = Point(4588, 8970.22);
+ polygon.ps[3] = Point(4588, 8908.22);
+ new ShapeRef(router, polygon, 217);
+
+ // shapeRef218
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4287, 8677.22);
+ polygon.ps[1] = Point(4287, 8739.22);
+ polygon.ps[2] = Point(4225, 8739.22);
+ polygon.ps[3] = Point(4225, 8677.22);
+ new ShapeRef(router, polygon, 218);
+
+ // shapeRef219
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4287, 8383.99);
+ polygon.ps[1] = Point(4287, 8445.99);
+ polygon.ps[2] = Point(4225, 8445.99);
+ polygon.ps[3] = Point(4225, 8383.99);
+ new ShapeRef(router, polygon, 219);
+
+ // shapeRef220
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 6797.89);
+ polygon.ps[1] = Point(9289.03, 6837.89);
+ polygon.ps[2] = Point(9234.03, 6837.89);
+ polygon.ps[3] = Point(9234.03, 6797.89);
+ new ShapeRef(router, polygon, 220);
+
+ // shapeRef221
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 6797.89);
+ polygon.ps[1] = Point(9389.03, 6837.89);
+ polygon.ps[2] = Point(9334.03, 6837.89);
+ polygon.ps[3] = Point(9334.03, 6797.89);
+ new ShapeRef(router, polygon, 221);
+
+ // shapeRef222
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 6897.89);
+ polygon.ps[1] = Point(8389.03, 6937.89);
+ polygon.ps[2] = Point(8334.03, 6937.89);
+ polygon.ps[3] = Point(8334.03, 6897.89);
+ new ShapeRef(router, polygon, 222);
+
+ // shapeRef223
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4848, 8076.79);
+ polygon.ps[1] = Point(4848, 8138.79);
+ polygon.ps[2] = Point(4786, 8138.79);
+ polygon.ps[3] = Point(4786, 8076.79);
+ new ShapeRef(router, polygon, 223);
+
+ // shapeRef224
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4848, 7548.79);
+ polygon.ps[1] = Point(4848, 7610.79);
+ polygon.ps[2] = Point(4786, 7610.79);
+ polygon.ps[3] = Point(4786, 7548.79);
+ new ShapeRef(router, polygon, 224);
+
+ // shapeRef225
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3924, 6965.4);
+ polygon.ps[1] = Point(3924, 7027.4);
+ polygon.ps[2] = Point(3862, 7027.4);
+ polygon.ps[3] = Point(3862, 6965.4);
+ new ShapeRef(router, polygon, 225);
+
+ // shapeRef226
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4188, 6965.4);
+ polygon.ps[1] = Point(4188, 7027.4);
+ polygon.ps[2] = Point(4126, 7027.4);
+ polygon.ps[3] = Point(4126, 6965.4);
+ new ShapeRef(router, polygon, 226);
+
+ // shapeRef227
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4452, 6965.4);
+ polygon.ps[1] = Point(4452, 7027.4);
+ polygon.ps[2] = Point(4390, 7027.4);
+ polygon.ps[3] = Point(4390, 6965.4);
+ new ShapeRef(router, polygon, 227);
+
+ // shapeRef228
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2967, 6582.51);
+ polygon.ps[1] = Point(2967, 6644.51);
+ polygon.ps[2] = Point(2905, 6644.51);
+ polygon.ps[3] = Point(2905, 6582.51);
+ new ShapeRef(router, polygon, 228);
+
+ // shapeRef229
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3759, 7097.4);
+ polygon.ps[1] = Point(3759, 7159.4);
+ polygon.ps[2] = Point(3697, 7159.4);
+ polygon.ps[3] = Point(3697, 7097.4);
+ new ShapeRef(router, polygon, 229);
+
+ // shapeRef230
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3495, 7097.4);
+ polygon.ps[1] = Point(3495, 7159.4);
+ polygon.ps[2] = Point(3433, 7159.4);
+ polygon.ps[3] = Point(3433, 7097.4);
+ new ShapeRef(router, polygon, 230);
+
+ // shapeRef231
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 6897.89);
+ polygon.ps[1] = Point(9289.03, 6937.89);
+ polygon.ps[2] = Point(9234.03, 6937.89);
+ polygon.ps[3] = Point(9234.03, 6897.89);
+ new ShapeRef(router, polygon, 231);
+
+ // shapeRef232
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 6897.89);
+ polygon.ps[1] = Point(9389.03, 6937.89);
+ polygon.ps[2] = Point(9334.03, 6937.89);
+ polygon.ps[3] = Point(9334.03, 6897.89);
+ new ShapeRef(router, polygon, 232);
+
+ // shapeRef233
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 6997.89);
+ polygon.ps[1] = Point(8389.03, 7037.89);
+ polygon.ps[2] = Point(8334.03, 7037.89);
+ polygon.ps[3] = Point(8334.03, 6997.89);
+ new ShapeRef(router, polygon, 233);
+
+ // shapeRef234
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 6997.89);
+ polygon.ps[1] = Point(8489.03, 7037.89);
+ polygon.ps[2] = Point(8434.03, 7037.89);
+ polygon.ps[3] = Point(8434.03, 6997.89);
+ new ShapeRef(router, polygon, 234);
+
+ // shapeRef235
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5494.1, 8515.99);
+ polygon.ps[1] = Point(5494.1, 8577.99);
+ polygon.ps[2] = Point(5432.1, 8577.99);
+ polygon.ps[3] = Point(5432.1, 8515.99);
+ new ShapeRef(router, polygon, 235);
+
+ // shapeRef236
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5494.1, 8076.79);
+ polygon.ps[1] = Point(5494.1, 8138.79);
+ polygon.ps[2] = Point(5432.1, 8138.79);
+ polygon.ps[3] = Point(5432.1, 8076.79);
+ new ShapeRef(router, polygon, 236);
+
+ // shapeRef237
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5112, 8076.79);
+ polygon.ps[1] = Point(5112, 8138.79);
+ polygon.ps[2] = Point(5050, 8138.79);
+ polygon.ps[3] = Point(5050, 8076.79);
+ new ShapeRef(router, polygon, 237);
+
+ // shapeRef238
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5244, 6153.51);
+ polygon.ps[1] = Point(5244, 6215.51);
+ polygon.ps[2] = Point(5182, 6215.51);
+ polygon.ps[3] = Point(5182, 6153.51);
+ new ShapeRef(router, polygon, 238);
+
+ // shapeRef239
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5244, 8908.22);
+ polygon.ps[1] = Point(5244, 8970.22);
+ polygon.ps[2] = Point(5182, 8970.22);
+ polygon.ps[3] = Point(5182, 8908.22);
+ new ShapeRef(router, polygon, 239);
+
+ // shapeRef240
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5244, 8515.99);
+ polygon.ps[1] = Point(5244, 8577.99);
+ polygon.ps[2] = Point(5182, 8577.99);
+ polygon.ps[3] = Point(5182, 8515.99);
+ new ShapeRef(router, polygon, 240);
+
+ // shapeRef241
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5244, 8076.79);
+ polygon.ps[1] = Point(5244, 8138.79);
+ polygon.ps[2] = Point(5182, 8138.79);
+ polygon.ps[3] = Point(5182, 8076.79);
+ new ShapeRef(router, polygon, 241);
+
+ // shapeRef242
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5244, 7548.79);
+ polygon.ps[1] = Point(5244, 7610.79);
+ polygon.ps[2] = Point(5182, 7610.79);
+ polygon.ps[3] = Point(5182, 7548.79);
+ new ShapeRef(router, polygon, 242);
+
+ // shapeRef243
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 6997.89);
+ polygon.ps[1] = Point(9389.03, 7037.89);
+ polygon.ps[2] = Point(9334.03, 7037.89);
+ polygon.ps[3] = Point(9334.03, 6997.89);
+ new ShapeRef(router, polygon, 243);
+
+ // shapeRef244
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 7097.89);
+ polygon.ps[1] = Point(8389.03, 7137.89);
+ polygon.ps[2] = Point(8334.03, 7137.89);
+ polygon.ps[3] = Point(8334.03, 7097.89);
+ new ShapeRef(router, polygon, 244);
+
+ // shapeRef245
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 7097.89);
+ polygon.ps[1] = Point(8489.03, 7137.89);
+ polygon.ps[2] = Point(8434.03, 7137.89);
+ polygon.ps[3] = Point(8434.03, 7097.89);
+ new ShapeRef(router, polygon, 245);
+
+ // shapeRef246
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 7097.89);
+ polygon.ps[1] = Point(8589.03, 7137.89);
+ polygon.ps[2] = Point(8534.03, 7137.89);
+ polygon.ps[3] = Point(8534.03, 7097.89);
+ new ShapeRef(router, polygon, 246);
+
+ // shapeRef247
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 7097.89);
+ polygon.ps[1] = Point(8789.03, 7137.89);
+ polygon.ps[2] = Point(8734.03, 7137.89);
+ polygon.ps[3] = Point(8734.03, 7097.89);
+ new ShapeRef(router, polygon, 247);
+
+ // shapeRef248
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 7097.89);
+ polygon.ps[1] = Point(8889.03, 7137.89);
+ polygon.ps[2] = Point(8834.03, 7137.89);
+ polygon.ps[3] = Point(8834.03, 7097.89);
+ new ShapeRef(router, polygon, 248);
+
+ // shapeRef249
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2109, 7097.4);
+ polygon.ps[1] = Point(2109, 7159.4);
+ polygon.ps[2] = Point(2047, 7159.4);
+ polygon.ps[3] = Point(2047, 7097.4);
+ new ShapeRef(router, polygon, 249);
+
+ // shapeRef250
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2406, 6998.4);
+ polygon.ps[1] = Point(2406, 7060.4);
+ polygon.ps[2] = Point(2344, 7060.4);
+ polygon.ps[3] = Point(2344, 6998.4);
+ new ShapeRef(router, polygon, 250);
+
+ // shapeRef251
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 6998.4);
+ polygon.ps[1] = Point(1911, 7060.4);
+ polygon.ps[2] = Point(1849, 7060.4);
+ polygon.ps[3] = Point(1849, 6998.4);
+ new ShapeRef(router, polygon, 251);
+
+ // shapeRef252
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 7097.89);
+ polygon.ps[1] = Point(9289.03, 7137.89);
+ polygon.ps[2] = Point(9234.03, 7137.89);
+ polygon.ps[3] = Point(9234.03, 7097.89);
+ new ShapeRef(router, polygon, 252);
+
+ // shapeRef253
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 7097.89);
+ polygon.ps[1] = Point(9389.03, 7137.89);
+ polygon.ps[2] = Point(9334.03, 7137.89);
+ polygon.ps[3] = Point(9334.03, 7097.89);
+ new ShapeRef(router, polygon, 253);
+
+ // shapeRef254
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2406, 7097.4);
+ polygon.ps[1] = Point(2406, 7159.4);
+ polygon.ps[2] = Point(2344, 7159.4);
+ polygon.ps[3] = Point(2344, 7097.4);
+ new ShapeRef(router, polygon, 254);
+
+ // shapeRef255
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 7614.79);
+ polygon.ps[1] = Point(1779, 7676.79);
+ polygon.ps[2] = Point(1717, 7676.79);
+ polygon.ps[3] = Point(1717, 7614.79);
+ new ShapeRef(router, polygon, 255);
+
+ // shapeRef256
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 7097.4);
+ polygon.ps[1] = Point(1779, 7159.4);
+ polygon.ps[2] = Point(1717, 7159.4);
+ polygon.ps[3] = Point(1717, 7097.4);
+ new ShapeRef(router, polygon, 256);
+
+ // shapeRef257
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 8142.79);
+ polygon.ps[1] = Point(1779, 8204.79);
+ polygon.ps[2] = Point(1717, 8204.79);
+ polygon.ps[3] = Point(1717, 8142.79);
+ new ShapeRef(router, polygon, 257);
+
+ // shapeRef258
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 6582.51);
+ polygon.ps[1] = Point(1779, 6644.51);
+ polygon.ps[2] = Point(1717, 6644.51);
+ polygon.ps[3] = Point(1717, 6582.51);
+ new ShapeRef(router, polygon, 258);
+
+ // shapeRef259
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2109, 8142.79);
+ polygon.ps[1] = Point(2109, 8204.79);
+ polygon.ps[2] = Point(2047, 8204.79);
+ polygon.ps[3] = Point(2047, 8142.79);
+ new ShapeRef(router, polygon, 259);
+
+ // shapeRef260
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2109, 7614.79);
+ polygon.ps[1] = Point(2109, 7676.79);
+ polygon.ps[2] = Point(2047, 7676.79);
+ polygon.ps[3] = Point(2047, 7614.79);
+ new ShapeRef(router, polygon, 260);
+
+ // shapeRef261
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2109, 8548.99);
+ polygon.ps[1] = Point(2109, 8610.99);
+ polygon.ps[2] = Point(2047, 8610.99);
+ polygon.ps[3] = Point(2047, 8548.99);
+ new ShapeRef(router, polygon, 261);
+
+ // shapeRef262
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2406, 8142.79);
+ polygon.ps[1] = Point(2406, 8204.79);
+ polygon.ps[2] = Point(2344, 8204.79);
+ polygon.ps[3] = Point(2344, 8142.79);
+ new ShapeRef(router, polygon, 262);
+
+ // shapeRef263
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2406, 7614.79);
+ polygon.ps[1] = Point(2406, 7676.79);
+ polygon.ps[2] = Point(2344, 7676.79);
+ polygon.ps[3] = Point(2344, 7614.79);
+ new ShapeRef(router, polygon, 263);
+
+ // shapeRef264
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2406, 8548.99);
+ polygon.ps[1] = Point(2406, 8610.99);
+ polygon.ps[2] = Point(2344, 8610.99);
+ polygon.ps[3] = Point(2344, 8548.99);
+ new ShapeRef(router, polygon, 264);
+
+ // shapeRef265
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2604, 8548.99);
+ polygon.ps[1] = Point(2604, 8610.99);
+ polygon.ps[2] = Point(2542, 8610.99);
+ polygon.ps[3] = Point(2542, 8548.99);
+ new ShapeRef(router, polygon, 265);
+
+ // shapeRef266
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2604, 8142.79);
+ polygon.ps[1] = Point(2604, 8204.79);
+ polygon.ps[2] = Point(2542, 8204.79);
+ polygon.ps[3] = Point(2542, 8142.79);
+ new ShapeRef(router, polygon, 266);
+
+ // shapeRef267
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2604, 9017.42);
+ polygon.ps[1] = Point(2604, 9079.42);
+ polygon.ps[2] = Point(2542, 9079.42);
+ polygon.ps[3] = Point(2542, 9017.42);
+ new ShapeRef(router, polygon, 267);
+
+ // shapeRef268
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2604, 7614.79);
+ polygon.ps[1] = Point(2604, 7676.79);
+ polygon.ps[2] = Point(2542, 7676.79);
+ polygon.ps[3] = Point(2542, 7614.79);
+ new ShapeRef(router, polygon, 268);
+
+ // shapeRef269
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4155, 5481.67);
+ polygon.ps[1] = Point(4155, 5543.67);
+ polygon.ps[2] = Point(4093, 5543.67);
+ polygon.ps[3] = Point(4093, 5481.67);
+ new ShapeRef(router, polygon, 269);
+
+ // shapeRef270
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 7297.89);
+ polygon.ps[1] = Point(8889.03, 7337.89);
+ polygon.ps[2] = Point(8834.03, 7337.89);
+ polygon.ps[3] = Point(8834.03, 7297.89);
+ new ShapeRef(router, polygon, 270);
+
+ // shapeRef271
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3825, 5481.67);
+ polygon.ps[1] = Point(3825, 5543.67);
+ polygon.ps[2] = Point(3763, 5543.67);
+ polygon.ps[3] = Point(3763, 5481.67);
+ new ShapeRef(router, polygon, 271);
+
+ // shapeRef272
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3462, 5481.67);
+ polygon.ps[1] = Point(3462, 5543.67);
+ polygon.ps[2] = Point(3400, 5543.67);
+ polygon.ps[3] = Point(3400, 5481.67);
+ new ShapeRef(router, polygon, 272);
+
+ // shapeRef273
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3033, 5481.67);
+ polygon.ps[1] = Point(3033, 5543.67);
+ polygon.ps[2] = Point(2971, 5543.67);
+ polygon.ps[3] = Point(2971, 5481.67);
+ new ShapeRef(router, polygon, 273);
+
+ // shapeRef274
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2538, 5481.67);
+ polygon.ps[1] = Point(2538, 5543.67);
+ polygon.ps[2] = Point(2476, 5543.67);
+ polygon.ps[3] = Point(2476, 5481.67);
+ new ShapeRef(router, polygon, 274);
+
+ // shapeRef275
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 7297.89);
+ polygon.ps[1] = Point(9389.03, 7337.89);
+ polygon.ps[2] = Point(9334.03, 7337.89);
+ polygon.ps[3] = Point(9334.03, 7297.89);
+ new ShapeRef(router, polygon, 275);
+
+ // shapeRef276
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(129, 5758.9);
+ polygon.ps[1] = Point(129, 5820.9);
+ polygon.ps[2] = Point(67, 5820.9);
+ polygon.ps[3] = Point(67, 5758.9);
+ new ShapeRef(router, polygon, 276);
+
+ // shapeRef277
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(129, 6318.51);
+ polygon.ps[1] = Point(129, 6380.51);
+ polygon.ps[2] = Point(67, 6380.51);
+ polygon.ps[3] = Point(67, 6318.51);
+ new ShapeRef(router, polygon, 277);
+
+ // shapeRef278
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(393, 7614.79);
+ polygon.ps[1] = Point(393, 7676.79);
+ polygon.ps[2] = Point(331, 7676.79);
+ polygon.ps[3] = Point(331, 7614.79);
+ new ShapeRef(router, polygon, 278);
+
+ // shapeRef279
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(393, 7163.4);
+ polygon.ps[1] = Point(393, 7225.4);
+ polygon.ps[2] = Point(331, 7225.4);
+ polygon.ps[3] = Point(331, 7163.4);
+ new ShapeRef(router, polygon, 279);
+
+ // shapeRef280
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(393, 6648.51);
+ polygon.ps[1] = Point(393, 6710.51);
+ polygon.ps[2] = Point(331, 6710.51);
+ polygon.ps[3] = Point(331, 6648.51);
+ new ShapeRef(router, polygon, 280);
+
+ // shapeRef281
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(393, 6318.51);
+ polygon.ps[1] = Point(393, 6380.51);
+ polygon.ps[2] = Point(331, 6380.51);
+ polygon.ps[3] = Point(331, 6318.51);
+ new ShapeRef(router, polygon, 281);
+
+ // shapeRef282
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(855, 7977.79);
+ polygon.ps[1] = Point(855, 8039.79);
+ polygon.ps[2] = Point(793, 8039.79);
+ polygon.ps[3] = Point(793, 7977.79);
+ new ShapeRef(router, polygon, 282);
+
+ // shapeRef283
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(855, 7581.79);
+ polygon.ps[1] = Point(855, 7643.79);
+ polygon.ps[2] = Point(793, 7643.79);
+ polygon.ps[3] = Point(793, 7581.79);
+ new ShapeRef(router, polygon, 283);
+
+ // shapeRef284
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(855, 6582.51);
+ polygon.ps[1] = Point(855, 6644.51);
+ polygon.ps[2] = Point(793, 6644.51);
+ polygon.ps[3] = Point(793, 6582.51);
+ new ShapeRef(router, polygon, 284);
+
+ // shapeRef285
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(855, 6219.51);
+ polygon.ps[1] = Point(855, 6281.51);
+ polygon.ps[2] = Point(793, 6281.51);
+ polygon.ps[3] = Point(793, 6219.51);
+ new ShapeRef(router, polygon, 285);
+
+ // shapeRef286
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(855, 5758.9);
+ polygon.ps[1] = Point(855, 5820.9);
+ polygon.ps[2] = Point(793, 5820.9);
+ polygon.ps[3] = Point(793, 5758.9);
+ new ShapeRef(router, polygon, 286);
+
+ // shapeRef287
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 8515.99);
+ polygon.ps[1] = Point(1086, 8577.99);
+ polygon.ps[2] = Point(1024, 8577.99);
+ polygon.ps[3] = Point(1024, 8515.99);
+ new ShapeRef(router, polygon, 287);
+
+ // shapeRef288
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 8142.79);
+ polygon.ps[1] = Point(1086, 8204.79);
+ polygon.ps[2] = Point(1024, 8204.79);
+ polygon.ps[3] = Point(1024, 8142.79);
+ new ShapeRef(router, polygon, 288);
+
+ // shapeRef289
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 7680.79);
+ polygon.ps[1] = Point(1086, 7742.79);
+ polygon.ps[2] = Point(1024, 7742.79);
+ polygon.ps[3] = Point(1024, 7680.79);
+ new ShapeRef(router, polygon, 289);
+
+ // shapeRef290
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 7229.4);
+ polygon.ps[1] = Point(1086, 7291.4);
+ polygon.ps[2] = Point(1024, 7291.4);
+ polygon.ps[3] = Point(1024, 7229.4);
+ new ShapeRef(router, polygon, 290);
+
+ // shapeRef291
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 6790.21);
+ polygon.ps[1] = Point(1086, 6852.21);
+ polygon.ps[2] = Point(1024, 6852.21);
+ polygon.ps[3] = Point(1024, 6790.21);
+ new ShapeRef(router, polygon, 291);
+
+ // shapeRef292
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 6384.51);
+ polygon.ps[1] = Point(1086, 6446.51);
+ polygon.ps[2] = Point(1024, 6446.51);
+ polygon.ps[3] = Point(1024, 6384.51);
+ new ShapeRef(router, polygon, 292);
+
+ // shapeRef293
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 5966.59);
+ polygon.ps[1] = Point(1086, 6028.59);
+ polygon.ps[2] = Point(1024, 6028.59);
+ polygon.ps[3] = Point(1024, 5966.59);
+ new ShapeRef(router, polygon, 293);
+
+ // shapeRef294
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 5481.67);
+ polygon.ps[1] = Point(1416, 5543.67);
+ polygon.ps[2] = Point(1354, 5543.67);
+ polygon.ps[3] = Point(1354, 5481.67);
+ new ShapeRef(router, polygon, 294);
+
+ // shapeRef295
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 7497.89);
+ polygon.ps[1] = Point(9189.03, 7537.89);
+ polygon.ps[2] = Point(9134.03, 7537.89);
+ polygon.ps[3] = Point(9134.03, 7497.89);
+ new ShapeRef(router, polygon, 295);
+
+ // shapeRef296
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 7497.89);
+ polygon.ps[1] = Point(9289.03, 7537.89);
+ polygon.ps[2] = Point(9234.03, 7537.89);
+ polygon.ps[3] = Point(9234.03, 7497.89);
+ new ShapeRef(router, polygon, 296);
+
+ // shapeRef297
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 7497.89);
+ polygon.ps[1] = Point(9389.03, 7537.89);
+ polygon.ps[2] = Point(9334.03, 7537.89);
+ polygon.ps[3] = Point(9334.03, 7497.89);
+ new ShapeRef(router, polygon, 297);
+
+ // shapeRef298
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 7597.89);
+ polygon.ps[1] = Point(8389.03, 7637.89);
+ polygon.ps[2] = Point(8334.03, 7637.89);
+ polygon.ps[3] = Point(8334.03, 7597.89);
+ new ShapeRef(router, polygon, 298);
+
+ // shapeRef299
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 7597.89);
+ polygon.ps[1] = Point(8489.03, 7637.89);
+ polygon.ps[2] = Point(8434.03, 7637.89);
+ polygon.ps[3] = Point(8434.03, 7597.89);
+ new ShapeRef(router, polygon, 299);
+
+ // shapeRef300
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 7597.89);
+ polygon.ps[1] = Point(8589.03, 7637.89);
+ polygon.ps[2] = Point(8534.03, 7637.89);
+ polygon.ps[3] = Point(8534.03, 7597.89);
+ new ShapeRef(router, polygon, 300);
+
+ // shapeRef301
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 7597.89);
+ polygon.ps[1] = Point(8689.03, 7637.89);
+ polygon.ps[2] = Point(8634.03, 7637.89);
+ polygon.ps[3] = Point(8634.03, 7597.89);
+ new ShapeRef(router, polygon, 301);
+
+ // shapeRef302
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 7597.89);
+ polygon.ps[1] = Point(8789.03, 7637.89);
+ polygon.ps[2] = Point(8734.03, 7637.89);
+ polygon.ps[3] = Point(8734.03, 7597.89);
+ new ShapeRef(router, polygon, 302);
+
+ // shapeRef303
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(954, 5039.4);
+ polygon.ps[1] = Point(954, 5101.4);
+ polygon.ps[2] = Point(892, 5101.4);
+ polygon.ps[3] = Point(892, 5039.4);
+ new ShapeRef(router, polygon, 303);
+
+ // shapeRef304
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 5039.4);
+ polygon.ps[1] = Point(1416, 5101.4);
+ polygon.ps[2] = Point(1354, 5101.4);
+ polygon.ps[3] = Point(1354, 5039.4);
+ new ShapeRef(router, polygon, 304);
+
+ // shapeRef305
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 5316.67);
+ polygon.ps[1] = Point(492, 5378.67);
+ polygon.ps[2] = Point(430, 5378.67);
+ polygon.ps[3] = Point(430, 5316.67);
+ new ShapeRef(router, polygon, 305);
+
+ // shapeRef306
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 5217.67);
+ polygon.ps[1] = Point(492, 5279.67);
+ polygon.ps[2] = Point(430, 5279.67);
+ polygon.ps[3] = Point(430, 5217.67);
+ new ShapeRef(router, polygon, 306);
+
+ // shapeRef307
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 5217.67);
+ polygon.ps[1] = Point(228, 5279.67);
+ polygon.ps[2] = Point(166, 5279.67);
+ polygon.ps[3] = Point(166, 5217.67);
+ new ShapeRef(router, polygon, 307);
+
+ // shapeRef308
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2472, 4742.4);
+ polygon.ps[1] = Point(2472, 4804.4);
+ polygon.ps[2] = Point(2410, 4804.4);
+ polygon.ps[3] = Point(2410, 4742.4);
+ new ShapeRef(router, polygon, 308);
+
+ // shapeRef309
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 5039.4);
+ polygon.ps[1] = Point(492, 5101.4);
+ polygon.ps[2] = Point(430, 5101.4);
+ polygon.ps[3] = Point(430, 5039.4);
+ new ShapeRef(router, polygon, 309);
+
+ // shapeRef310
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2142, 4742.4);
+ polygon.ps[1] = Point(2142, 4804.4);
+ polygon.ps[2] = Point(2080, 4804.4);
+ polygon.ps[3] = Point(2080, 4742.4);
+ new ShapeRef(router, polygon, 310);
+
+ // shapeRef311
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 4742.4);
+ polygon.ps[1] = Point(1086, 4804.4);
+ polygon.ps[2] = Point(1024, 4804.4);
+ polygon.ps[3] = Point(1024, 4742.4);
+ new ShapeRef(router, polygon, 311);
+
+ // shapeRef312
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 4742.4);
+ polygon.ps[1] = Point(228, 4804.4);
+ polygon.ps[2] = Point(166, 4804.4);
+ polygon.ps[3] = Point(166, 4742.4);
+ new ShapeRef(router, polygon, 312);
+
+ // shapeRef313
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(756, 4742.4);
+ polygon.ps[1] = Point(756, 4804.4);
+ polygon.ps[2] = Point(694, 4804.4);
+ polygon.ps[3] = Point(694, 4742.4);
+ new ShapeRef(router, polygon, 313);
+
+ // shapeRef314
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2901, 5039.4);
+ polygon.ps[1] = Point(2901, 5101.4);
+ polygon.ps[2] = Point(2839, 5101.4);
+ polygon.ps[3] = Point(2839, 5039.4);
+ new ShapeRef(router, polygon, 314);
+
+ // shapeRef315
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1944, 5039.4);
+ polygon.ps[1] = Point(1944, 5101.4);
+ polygon.ps[2] = Point(1882, 5101.4);
+ polygon.ps[3] = Point(1882, 5039.4);
+ new ShapeRef(router, polygon, 315);
+
+ // shapeRef316
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 7697.89);
+ polygon.ps[1] = Point(9189.03, 7737.89);
+ polygon.ps[2] = Point(9134.03, 7737.89);
+ polygon.ps[3] = Point(9134.03, 7697.89);
+ new ShapeRef(router, polygon, 316);
+
+ // shapeRef317
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 7697.89);
+ polygon.ps[1] = Point(9289.03, 7737.89);
+ polygon.ps[2] = Point(9234.03, 7737.89);
+ polygon.ps[3] = Point(9234.03, 7697.89);
+ new ShapeRef(router, polygon, 317);
+
+ // shapeRef318
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 7697.89);
+ polygon.ps[1] = Point(9389.03, 7737.89);
+ polygon.ps[2] = Point(9334.03, 7737.89);
+ polygon.ps[3] = Point(9334.03, 7697.89);
+ new ShapeRef(router, polygon, 318);
+
+ // shapeRef319
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 7797.89);
+ polygon.ps[1] = Point(8389.03, 7837.89);
+ polygon.ps[2] = Point(8334.03, 7837.89);
+ polygon.ps[3] = Point(8334.03, 7797.89);
+ new ShapeRef(router, polygon, 319);
+
+ // shapeRef320
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 7797.89);
+ polygon.ps[1] = Point(8489.03, 7837.89);
+ polygon.ps[2] = Point(8434.03, 7837.89);
+ polygon.ps[3] = Point(8434.03, 7797.89);
+ new ShapeRef(router, polygon, 320);
+
+ // shapeRef321
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 7797.89);
+ polygon.ps[1] = Point(8589.03, 7837.89);
+ polygon.ps[2] = Point(8534.03, 7837.89);
+ polygon.ps[3] = Point(8534.03, 7797.89);
+ new ShapeRef(router, polygon, 321);
+
+ // shapeRef322
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 7797.89);
+ polygon.ps[1] = Point(8789.03, 7837.89);
+ polygon.ps[2] = Point(8734.03, 7837.89);
+ polygon.ps[3] = Point(8734.03, 7797.89);
+ new ShapeRef(router, polygon, 322);
+
+ // shapeRef323
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 7797.89);
+ polygon.ps[1] = Point(8889.03, 7837.89);
+ polygon.ps[2] = Point(8834.03, 7837.89);
+ polygon.ps[3] = Point(8834.03, 7797.89);
+ new ShapeRef(router, polygon, 323);
+
+ // shapeRef324
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 7797.89);
+ polygon.ps[1] = Point(9089.03, 7837.89);
+ polygon.ps[2] = Point(9034.03, 7837.89);
+ polygon.ps[3] = Point(9034.03, 7797.89);
+ new ShapeRef(router, polygon, 324);
+
+ // shapeRef325
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18366.5, 3534.51);
+ polygon.ps[1] = Point(18366.5, 3596.51);
+ polygon.ps[2] = Point(18304.5, 3596.51);
+ polygon.ps[3] = Point(18304.5, 3534.51);
+ new ShapeRef(router, polygon, 325);
+
+ // shapeRef326
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 3534.51);
+ polygon.ps[1] = Point(18580, 3596.51);
+ polygon.ps[2] = Point(18518, 3596.51);
+ polygon.ps[3] = Point(18518, 3534.51);
+ new ShapeRef(router, polygon, 326);
+
+ // shapeRef327
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 3307.29);
+ polygon.ps[1] = Point(18580, 3369.29);
+ polygon.ps[2] = Point(18518, 3369.29);
+ polygon.ps[3] = Point(18518, 3307.29);
+ new ShapeRef(router, polygon, 327);
+
+ // shapeRef328
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18797.5, 3307.29);
+ polygon.ps[1] = Point(18797.5, 3369.29);
+ polygon.ps[2] = Point(18735.5, 3369.29);
+ polygon.ps[3] = Point(18735.5, 3307.29);
+ new ShapeRef(router, polygon, 328);
+
+ // shapeRef329
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18797.5, 3534.51);
+ polygon.ps[1] = Point(18797.5, 3596.51);
+ polygon.ps[2] = Point(18735.5, 3596.51);
+ polygon.ps[3] = Point(18735.5, 3534.51);
+ new ShapeRef(router, polygon, 329);
+
+ // shapeRef330
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18797.5, 3798.51);
+ polygon.ps[1] = Point(18797.5, 3860.51);
+ polygon.ps[2] = Point(18735.5, 3860.51);
+ polygon.ps[3] = Point(18735.5, 3798.51);
+ new ShapeRef(router, polygon, 330);
+
+ // shapeRef331
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16031.6, 9248.42);
+ polygon.ps[1] = Point(16031.6, 9310.42);
+ polygon.ps[2] = Point(15969.6, 9310.42);
+ polygon.ps[3] = Point(15969.6, 9248.42);
+ new ShapeRef(router, polygon, 331);
+
+ // shapeRef332
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 7897.89);
+ polygon.ps[1] = Point(8889.03, 7937.89);
+ polygon.ps[2] = Point(8834.03, 7937.89);
+ polygon.ps[3] = Point(8834.03, 7897.89);
+ new ShapeRef(router, polygon, 332);
+
+ // shapeRef333
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 3435.51);
+ polygon.ps[1] = Point(7639.1, 3497.51);
+ polygon.ps[2] = Point(7577.1, 3497.51);
+ polygon.ps[3] = Point(7577.1, 3435.51);
+ new ShapeRef(router, polygon, 333);
+
+ // shapeRef334
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 2482.29);
+ polygon.ps[1] = Point(7639.1, 2544.29);
+ polygon.ps[2] = Point(7577.1, 2544.29);
+ polygon.ps[3] = Point(7577.1, 2482.29);
+ new ShapeRef(router, polygon, 334);
+
+ // shapeRef335
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 1945.29);
+ polygon.ps[1] = Point(7639.1, 2007.29);
+ polygon.ps[2] = Point(7577.1, 2007.29);
+ polygon.ps[3] = Point(7577.1, 1945.29);
+ new ShapeRef(router, polygon, 335);
+
+ // shapeRef336
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 7897.89);
+ polygon.ps[1] = Point(9289.03, 7937.89);
+ polygon.ps[2] = Point(9234.03, 7937.89);
+ polygon.ps[3] = Point(9234.03, 7897.89);
+ new ShapeRef(router, polygon, 336);
+
+ // shapeRef337
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 7897.89);
+ polygon.ps[1] = Point(9389.03, 7937.89);
+ polygon.ps[2] = Point(9334.03, 7937.89);
+ polygon.ps[3] = Point(9334.03, 7897.89);
+ new ShapeRef(router, polygon, 337);
+
+ // shapeRef338
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6088.1, 8548.99);
+ polygon.ps[1] = Point(6088.1, 8610.99);
+ polygon.ps[2] = Point(6026.1, 8610.99);
+ polygon.ps[3] = Point(6026.1, 8548.99);
+ new ShapeRef(router, polygon, 338);
+
+ // shapeRef339
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6088.1, 8251.99);
+ polygon.ps[1] = Point(6088.1, 8313.99);
+ polygon.ps[2] = Point(6026.1, 8313.99);
+ polygon.ps[3] = Point(6026.1, 8251.99);
+ new ShapeRef(router, polygon, 339);
+
+ // shapeRef340
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5791.1, 8875.22);
+ polygon.ps[1] = Point(5791.1, 8937.22);
+ polygon.ps[2] = Point(5729.1, 8937.22);
+ polygon.ps[3] = Point(5729.1, 8875.22);
+ new ShapeRef(router, polygon, 340);
+
+ // shapeRef341
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5791.1, 8548.99);
+ polygon.ps[1] = Point(5791.1, 8610.99);
+ polygon.ps[2] = Point(5729.1, 8610.99);
+ polygon.ps[3] = Point(5729.1, 8548.99);
+ new ShapeRef(router, polygon, 341);
+
+ // shapeRef342
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5791.1, 8251.99);
+ polygon.ps[1] = Point(5791.1, 8313.99);
+ polygon.ps[2] = Point(5729.1, 8313.99);
+ polygon.ps[3] = Point(5729.1, 8251.99);
+ new ShapeRef(router, polygon, 342);
+
+ // shapeRef343
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5791.1, 7812.79);
+ polygon.ps[1] = Point(5791.1, 7874.79);
+ polygon.ps[2] = Point(5729.1, 7874.79);
+ polygon.ps[3] = Point(5729.1, 7812.79);
+ new ShapeRef(router, polygon, 343);
+
+ // shapeRef344
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 7997.89);
+ polygon.ps[1] = Point(8989.03, 8037.89);
+ polygon.ps[2] = Point(8934.03, 8037.89);
+ polygon.ps[3] = Point(8934.03, 7997.89);
+ new ShapeRef(router, polygon, 344);
+
+ // shapeRef345
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 7997.89);
+ polygon.ps[1] = Point(9089.03, 8037.89);
+ polygon.ps[2] = Point(9034.03, 8037.89);
+ polygon.ps[3] = Point(9034.03, 7997.89);
+ new ShapeRef(router, polygon, 345);
+
+ // shapeRef346
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 7997.89);
+ polygon.ps[1] = Point(9189.03, 8037.89);
+ polygon.ps[2] = Point(9134.03, 8037.89);
+ polygon.ps[3] = Point(9134.03, 7997.89);
+ new ShapeRef(router, polygon, 346);
+
+ // shapeRef347
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 7997.89);
+ polygon.ps[1] = Point(9289.03, 8037.89);
+ polygon.ps[2] = Point(9234.03, 8037.89);
+ polygon.ps[3] = Point(9234.03, 7997.89);
+ new ShapeRef(router, polygon, 347);
+
+ // shapeRef348
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 10585.3);
+ polygon.ps[1] = Point(1911, 10647.3);
+ polygon.ps[2] = Point(1849, 10647.3);
+ polygon.ps[3] = Point(1849, 10585.3);
+ new ShapeRef(router, polygon, 348);
+
+ // shapeRef349
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 10982.6);
+ polygon.ps[1] = Point(1911, 11044.6);
+ polygon.ps[2] = Point(1849, 11044.6);
+ polygon.ps[3] = Point(1849, 10982.6);
+ new ShapeRef(router, polygon, 349);
+
+ // shapeRef350
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18003.5, 8743.22);
+ polygon.ps[1] = Point(18003.5, 8805.22);
+ polygon.ps[2] = Point(17941.5, 8805.22);
+ polygon.ps[3] = Point(17941.5, 8743.22);
+ new ShapeRef(router, polygon, 350);
+
+ // shapeRef351
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17772.5, 8743.22);
+ polygon.ps[1] = Point(17772.5, 8805.22);
+ polygon.ps[2] = Point(17710.5, 8805.22);
+ polygon.ps[3] = Point(17710.5, 8743.22);
+ new ShapeRef(router, polygon, 351);
+
+ // shapeRef352
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1581, 183.265);
+ polygon.ps[1] = Point(1581, 245.265);
+ polygon.ps[2] = Point(1519, 245.265);
+ polygon.ps[3] = Point(1519, 183.265);
+ new ShapeRef(router, polygon, 352);
+
+ // shapeRef353
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4221, 11114.6);
+ polygon.ps[1] = Point(4221, 11176.6);
+ polygon.ps[2] = Point(4159, 11176.6);
+ polygon.ps[3] = Point(4159, 11114.6);
+ new ShapeRef(router, polygon, 353);
+
+ // shapeRef354
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3726, 11114.6);
+ polygon.ps[1] = Point(3726, 11176.6);
+ polygon.ps[2] = Point(3664, 11176.6);
+ polygon.ps[3] = Point(3664, 11114.6);
+ new ShapeRef(router, polygon, 354);
+
+ // shapeRef355
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 8097.89);
+ polygon.ps[1] = Point(8989.03, 8137.89);
+ polygon.ps[2] = Point(8934.03, 8137.89);
+ polygon.ps[3] = Point(8934.03, 8097.89);
+ new ShapeRef(router, polygon, 355);
+
+ // shapeRef356
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 9083.42);
+ polygon.ps[1] = Point(4584, 9145.42);
+ polygon.ps[2] = Point(4522, 9145.42);
+ polygon.ps[3] = Point(4522, 9083.42);
+ new ShapeRef(router, polygon, 356);
+
+ // shapeRef357
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 7361.4);
+ polygon.ps[1] = Point(4584, 7423.4);
+ polygon.ps[2] = Point(4522, 7423.4);
+ polygon.ps[3] = Point(4522, 7361.4);
+ new ShapeRef(router, polygon, 357);
+
+ // shapeRef358
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 4874.4);
+ polygon.ps[1] = Point(10013.7, 4936.4);
+ polygon.ps[2] = Point(9951.69, 4936.4);
+ polygon.ps[3] = Point(9951.69, 4874.4);
+ new ShapeRef(router, polygon, 358);
+
+ // shapeRef359
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 5283.67);
+ polygon.ps[1] = Point(10013.7, 5345.67);
+ polygon.ps[2] = Point(9951.69, 5345.67);
+ polygon.ps[3] = Point(9951.69, 5283.67);
+ new ShapeRef(router, polygon, 359);
+
+ // shapeRef360
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11988.1, 3996.51);
+ polygon.ps[1] = Point(11988.1, 4058.51);
+ polygon.ps[2] = Point(11926.1, 4058.51);
+ polygon.ps[3] = Point(11926.1, 3996.51);
+ new ShapeRef(router, polygon, 360);
+
+ // shapeRef361
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 3765.51);
+ polygon.ps[1] = Point(11658.1, 3827.51);
+ polygon.ps[2] = Point(11596.1, 3827.51);
+ polygon.ps[3] = Point(11596.1, 3765.51);
+ new ShapeRef(router, polygon, 361);
+
+ // shapeRef362
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 4128.51);
+ polygon.ps[1] = Point(11658.1, 4190.51);
+ polygon.ps[2] = Point(11596.1, 4190.51);
+ polygon.ps[3] = Point(11596.1, 4128.51);
+ new ShapeRef(router, polygon, 362);
+
+ // shapeRef363
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12219.1, 3732.51);
+ polygon.ps[1] = Point(12219.1, 3794.51);
+ polygon.ps[2] = Point(12157.1, 3794.51);
+ polygon.ps[3] = Point(12157.1, 3732.51);
+ new ShapeRef(router, polygon, 363);
+
+ // shapeRef364
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 12129.3);
+ polygon.ps[1] = Point(4584, 12191.3);
+ polygon.ps[2] = Point(4522, 12191.3);
+ polygon.ps[3] = Point(4522, 12129.3);
+ new ShapeRef(router, polygon, 364);
+
+ // shapeRef365
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 11147.6);
+ polygon.ps[1] = Point(4584, 11209.6);
+ polygon.ps[2] = Point(4522, 11209.6);
+ polygon.ps[3] = Point(4522, 11147.6);
+ new ShapeRef(router, polygon, 365);
+
+ // shapeRef366
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 11796.9);
+ polygon.ps[1] = Point(4584, 11858.9);
+ polygon.ps[2] = Point(4522, 11858.9);
+ polygon.ps[3] = Point(4522, 11796.9);
+ new ShapeRef(router, polygon, 366);
+
+ // shapeRef367
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 8197.89);
+ polygon.ps[1] = Point(9089.03, 8237.89);
+ polygon.ps[2] = Point(9034.03, 8237.89);
+ polygon.ps[3] = Point(9034.03, 8197.89);
+ new ShapeRef(router, polygon, 367);
+
+ // shapeRef368
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 8424.22);
+ polygon.ps[1] = Point(9189.03, 8464.22);
+ polygon.ps[2] = Point(9134.03, 8464.22);
+ polygon.ps[3] = Point(9134.03, 8424.22);
+ new ShapeRef(router, polygon, 368);
+
+ // shapeRef369
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2967, 9017.42);
+ polygon.ps[1] = Point(2967, 9079.42);
+ polygon.ps[2] = Point(2905, 9079.42);
+ polygon.ps[3] = Point(2905, 9017.42);
+ new ShapeRef(router, polygon, 369);
+
+ // shapeRef370
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2967, 8548.99);
+ polygon.ps[1] = Point(2967, 8610.99);
+ polygon.ps[2] = Point(2905, 8610.99);
+ polygon.ps[3] = Point(2905, 8548.99);
+ new ShapeRef(router, polygon, 370);
+
+ // shapeRef371
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2967, 9380.42);
+ polygon.ps[1] = Point(2967, 9442.42);
+ polygon.ps[2] = Point(2905, 9442.42);
+ polygon.ps[3] = Point(2905, 9380.42);
+ new ShapeRef(router, polygon, 371);
+
+ // shapeRef372
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2967, 8142.79);
+ polygon.ps[1] = Point(2967, 8204.79);
+ polygon.ps[2] = Point(2905, 8204.79);
+ polygon.ps[3] = Point(2905, 8142.79);
+ new ShapeRef(router, polygon, 372);
+
+ // shapeRef373
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 12195.3);
+ polygon.ps[1] = Point(4056, 12257.3);
+ polygon.ps[2] = Point(3994, 12257.3);
+ polygon.ps[3] = Point(3994, 12195.3);
+ new ShapeRef(router, polygon, 373);
+
+ // shapeRef374
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 8297.89);
+ polygon.ps[1] = Point(8689.03, 8337.89);
+ polygon.ps[2] = Point(8634.03, 8337.89);
+ polygon.ps[3] = Point(8634.03, 8297.89);
+ new ShapeRef(router, polygon, 374);
+
+ // shapeRef375
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 12195.3);
+ polygon.ps[1] = Point(1911, 12257.3);
+ polygon.ps[2] = Point(1849, 12257.3);
+ polygon.ps[3] = Point(1849, 12195.3);
+ new ShapeRef(router, polygon, 375);
+
+ // shapeRef376
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 10651.3);
+ polygon.ps[1] = Point(12021.1, 10713.3);
+ polygon.ps[2] = Point(11959.1, 10713.3);
+ polygon.ps[3] = Point(11959.1, 10651.3);
+ new ShapeRef(router, polygon, 376);
+
+ // shapeRef377
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 11048.6);
+ polygon.ps[1] = Point(12021.1, 11110.6);
+ polygon.ps[2] = Point(11959.1, 11110.6);
+ polygon.ps[3] = Point(11959.1, 11048.6);
+ new ShapeRef(router, polygon, 377);
+
+ // shapeRef378
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11724.1, 1813.29);
+ polygon.ps[1] = Point(11724.1, 1875.29);
+ polygon.ps[2] = Point(11662.1, 1875.29);
+ polygon.ps[3] = Point(11662.1, 1813.29);
+ new ShapeRef(router, polygon, 378);
+
+ // shapeRef379
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11889.1, 9677.42);
+ polygon.ps[1] = Point(11889.1, 9739.42);
+ polygon.ps[2] = Point(11827.1, 9739.42);
+ polygon.ps[3] = Point(11827.1, 9677.42);
+ new ShapeRef(router, polygon, 379);
+
+ // shapeRef380
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 9677.42);
+ polygon.ps[1] = Point(11460.1, 9739.42);
+ polygon.ps[2] = Point(11398.1, 9739.42);
+ polygon.ps[3] = Point(11398.1, 9677.42);
+ new ShapeRef(router, polygon, 380);
+
+ // shapeRef381
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 9644.42);
+ polygon.ps[1] = Point(12562.5, 9706.42);
+ polygon.ps[2] = Point(12500.5, 9706.42);
+ polygon.ps[3] = Point(12500.5, 9644.42);
+ new ShapeRef(router, polygon, 381);
+
+ // shapeRef382
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12318.1, 9347.42);
+ polygon.ps[1] = Point(12318.1, 9409.42);
+ polygon.ps[2] = Point(12256.1, 9409.42);
+ polygon.ps[3] = Point(12256.1, 9347.42);
+ new ShapeRef(router, polygon, 382);
+
+ // shapeRef383
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12054.1, 7581.79);
+ polygon.ps[1] = Point(12054.1, 7643.79);
+ polygon.ps[2] = Point(11992.1, 7643.79);
+ polygon.ps[3] = Point(11992.1, 7581.79);
+ new ShapeRef(router, polygon, 383);
+
+ // shapeRef384
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 8809.22);
+ polygon.ps[1] = Point(228, 8871.22);
+ polygon.ps[2] = Point(166, 8871.22);
+ polygon.ps[3] = Point(166, 8809.22);
+ new ShapeRef(router, polygon, 384);
+
+ // shapeRef385
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 5316.67);
+ polygon.ps[1] = Point(228, 5378.67);
+ polygon.ps[2] = Point(166, 5378.67);
+ polygon.ps[3] = Point(166, 5316.67);
+ new ShapeRef(router, polygon, 385);
+
+ // shapeRef386
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 5791.9);
+ polygon.ps[1] = Point(492, 5853.9);
+ polygon.ps[2] = Point(430, 5853.9);
+ polygon.ps[3] = Point(430, 5791.9);
+ new ShapeRef(router, polygon, 386);
+
+ // shapeRef387
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13019.5, 12261.3);
+ polygon.ps[1] = Point(13019.5, 12323.3);
+ polygon.ps[2] = Point(12957.5, 12323.3);
+ polygon.ps[3] = Point(12957.5, 12261.3);
+ new ShapeRef(router, polygon, 387);
+
+ // shapeRef388
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13573, 12261.3);
+ polygon.ps[1] = Point(13573, 12323.3);
+ polygon.ps[2] = Point(13511, 12323.3);
+ polygon.ps[3] = Point(13511, 12261.3);
+ new ShapeRef(router, polygon, 388);
+
+ // shapeRef389
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13264, 11951.3);
+ polygon.ps[1] = Point(13264, 12013.3);
+ polygon.ps[2] = Point(13202, 12013.3);
+ polygon.ps[3] = Point(13202, 11951.3);
+ new ShapeRef(router, polygon, 389);
+
+ // shapeRef390
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13936, 12096.3);
+ polygon.ps[1] = Point(13936, 12158.3);
+ polygon.ps[2] = Point(13874, 12158.3);
+ polygon.ps[3] = Point(13874, 12096.3);
+ new ShapeRef(router, polygon, 390);
+
+ // shapeRef391
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 8611.22);
+ polygon.ps[1] = Point(14827, 8673.22);
+ polygon.ps[2] = Point(14765, 8673.22);
+ polygon.ps[3] = Point(14765, 8611.22);
+ new ShapeRef(router, polygon, 391);
+
+ // shapeRef392
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14464, 8611.22);
+ polygon.ps[1] = Point(14464, 8673.22);
+ polygon.ps[2] = Point(14402, 8673.22);
+ polygon.ps[3] = Point(14402, 8611.22);
+ new ShapeRef(router, polygon, 392);
+
+ // shapeRef393
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 9182.42);
+ polygon.ps[1] = Point(14827, 9244.42);
+ polygon.ps[2] = Point(14765, 9244.42);
+ polygon.ps[3] = Point(14765, 9182.42);
+ new ShapeRef(router, polygon, 393);
+
+ // shapeRef394
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 9116.42);
+ polygon.ps[1] = Point(15899.6, 9178.42);
+ polygon.ps[2] = Point(15837.6, 9178.42);
+ polygon.ps[3] = Point(15837.6, 9116.42);
+ new ShapeRef(router, polygon, 394);
+
+ // shapeRef395
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16295.6, 9116.42);
+ polygon.ps[1] = Point(16295.6, 9178.42);
+ polygon.ps[2] = Point(16233.6, 9178.42);
+ polygon.ps[3] = Point(16233.6, 9116.42);
+ new ShapeRef(router, polygon, 395);
+
+ // shapeRef396
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 9978.02);
+ polygon.ps[1] = Point(16130.6, 10040);
+ polygon.ps[2] = Point(16068.6, 10040);
+ polygon.ps[3] = Point(16068.6, 9978.02);
+ new ShapeRef(router, polygon, 396);
+
+ // shapeRef397
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16493.6, 9978.02);
+ polygon.ps[1] = Point(16493.6, 10040);
+ polygon.ps[2] = Point(16431.6, 10040);
+ polygon.ps[3] = Point(16431.6, 9978.02);
+ new ShapeRef(router, polygon, 397);
+
+ // shapeRef398
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 10275);
+ polygon.ps[1] = Point(16753.8, 10337);
+ polygon.ps[2] = Point(16691.8, 10337);
+ polygon.ps[3] = Point(16691.8, 10275);
+ new ShapeRef(router, polygon, 398);
+
+ // shapeRef399
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17871.5, 7031.4);
+ polygon.ps[1] = Point(17871.5, 7093.4);
+ polygon.ps[2] = Point(17809.5, 7093.4);
+ polygon.ps[3] = Point(17809.5, 7031.4);
+ new ShapeRef(router, polygon, 399);
+
+ // shapeRef400
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18036.5, 7911.79);
+ polygon.ps[1] = Point(18036.5, 7973.79);
+ polygon.ps[2] = Point(17974.5, 7973.79);
+ polygon.ps[3] = Point(17974.5, 7911.79);
+ new ShapeRef(router, polygon, 400);
+
+ // shapeRef401
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18234.5, 8743.22);
+ polygon.ps[1] = Point(18234.5, 8805.22);
+ polygon.ps[2] = Point(18172.5, 8805.22);
+ polygon.ps[3] = Point(18172.5, 8743.22);
+ new ShapeRef(router, polygon, 401);
+
+ // shapeRef402
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11724.1, 2449.29);
+ polygon.ps[1] = Point(11724.1, 2511.29);
+ polygon.ps[2] = Point(11662.1, 2511.29);
+ polygon.ps[3] = Point(11662.1, 2449.29);
+ new ShapeRef(router, polygon, 402);
+
+ // shapeRef403
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16361.6, 11015.6);
+ polygon.ps[1] = Point(16361.6, 11077.6);
+ polygon.ps[2] = Point(16299.6, 11077.6);
+ polygon.ps[3] = Point(16299.6, 11015.6);
+ new ShapeRef(router, polygon, 403);
+
+ // shapeRef404
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16361.6, 10473);
+ polygon.ps[1] = Point(16361.6, 10535);
+ polygon.ps[2] = Point(16299.6, 10535);
+ polygon.ps[3] = Point(16299.6, 10473);
+ new ShapeRef(router, polygon, 404);
+
+ // shapeRef405
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16361.6, 9644.42);
+ polygon.ps[1] = Point(16361.6, 9706.42);
+ polygon.ps[2] = Point(16299.6, 9706.42);
+ polygon.ps[3] = Point(16299.6, 9644.42);
+ new ShapeRef(router, polygon, 405);
+
+ // shapeRef406
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11104.2, 4643.4);
+ polygon.ps[1] = Point(11104.2, 4705.4);
+ polygon.ps[2] = Point(11042.2, 4705.4);
+ polygon.ps[3] = Point(11042.2, 4643.4);
+ new ShapeRef(router, polygon, 406);
+
+ // shapeRef407
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5013, 4907.4);
+ polygon.ps[1] = Point(5013, 4969.4);
+ polygon.ps[2] = Point(4951, 4969.4);
+ polygon.ps[3] = Point(4951, 4907.4);
+ new ShapeRef(router, polygon, 407);
+
+ // shapeRef408
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3330, 6790.21);
+ polygon.ps[1] = Point(3330, 6852.21);
+ polygon.ps[2] = Point(3268, 6852.21);
+ polygon.ps[3] = Point(3268, 6790.21);
+ new ShapeRef(router, polygon, 408);
+
+ // shapeRef409
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3990, 5626.9);
+ polygon.ps[1] = Point(3990, 5688.9);
+ polygon.ps[2] = Point(3928, 5688.9);
+ polygon.ps[3] = Point(3928, 5626.9);
+ new ShapeRef(router, polygon, 409);
+
+ // shapeRef410
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3165, 5626.9);
+ polygon.ps[1] = Point(3165, 5688.9);
+ polygon.ps[2] = Point(3103, 5688.9);
+ polygon.ps[3] = Point(3103, 5626.9);
+ new ShapeRef(router, polygon, 410);
+
+ // shapeRef411
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3660, 5626.9);
+ polygon.ps[1] = Point(3660, 5688.9);
+ polygon.ps[2] = Point(3598, 5688.9);
+ polygon.ps[3] = Point(3598, 5626.9);
+ new ShapeRef(router, polygon, 411);
+
+ // shapeRef412
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5659.1, 7581.79);
+ polygon.ps[1] = Point(5659.1, 7643.79);
+ polygon.ps[2] = Point(5597.1, 7643.79);
+ polygon.ps[3] = Point(5597.1, 7581.79);
+ new ShapeRef(router, polygon, 412);
+
+ // shapeRef413
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5659.1, 6965.4);
+ polygon.ps[1] = Point(5659.1, 7027.4);
+ polygon.ps[2] = Point(5597.1, 7027.4);
+ polygon.ps[3] = Point(5597.1, 6965.4);
+ new ShapeRef(router, polygon, 413);
+
+ // shapeRef414
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 6153.51);
+ polygon.ps[1] = Point(1911, 6215.51);
+ polygon.ps[2] = Point(1849, 6215.51);
+ polygon.ps[3] = Point(1849, 6153.51);
+ new ShapeRef(router, polygon, 414);
+
+ // shapeRef415
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 7196.4);
+ polygon.ps[1] = Point(1911, 7258.4);
+ polygon.ps[2] = Point(1849, 7258.4);
+ polygon.ps[3] = Point(1849, 7196.4);
+ new ShapeRef(router, polygon, 415);
+
+ // shapeRef416
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12285.1, 2449.29);
+ polygon.ps[1] = Point(12285.1, 2511.29);
+ polygon.ps[2] = Point(12223.1, 2511.29);
+ polygon.ps[3] = Point(12223.1, 2449.29);
+ new ShapeRef(router, polygon, 416);
+
+ // shapeRef417
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11724.1, 2185.29);
+ polygon.ps[1] = Point(11724.1, 2247.29);
+ polygon.ps[2] = Point(11662.1, 2247.29);
+ polygon.ps[3] = Point(11662.1, 2185.29);
+ new ShapeRef(router, polygon, 417);
+
+ // shapeRef418
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17508.5, 3600.51);
+ polygon.ps[1] = Point(17508.5, 3662.51);
+ polygon.ps[2] = Point(17446.5, 3662.51);
+ polygon.ps[3] = Point(17446.5, 3600.51);
+ new ShapeRef(router, polygon, 418);
+
+ // shapeRef419
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12186.1, 2185.29);
+ polygon.ps[1] = Point(12186.1, 2247.29);
+ polygon.ps[2] = Point(12124.1, 2247.29);
+ polygon.ps[3] = Point(12124.1, 2185.29);
+ new ShapeRef(router, polygon, 419);
+
+ // shapeRef420
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12854.5, 1846.29);
+ polygon.ps[1] = Point(12854.5, 1908.29);
+ polygon.ps[2] = Point(12792.5, 1908.29);
+ polygon.ps[3] = Point(12792.5, 1846.29);
+ new ShapeRef(router, polygon, 420);
+
+ // shapeRef421
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13507, 2185.29);
+ polygon.ps[1] = Point(13507, 2247.29);
+ polygon.ps[2] = Point(13445, 2247.29);
+ polygon.ps[3] = Point(13445, 2185.29);
+ new ShapeRef(router, polygon, 421);
+
+ // shapeRef422
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12854.5, 2185.29);
+ polygon.ps[1] = Point(12854.5, 2247.29);
+ polygon.ps[2] = Point(12792.5, 2247.29);
+ polygon.ps[3] = Point(12792.5, 2185.29);
+ new ShapeRef(router, polygon, 422);
+
+ // shapeRef423
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12854.5, 2515.29);
+ polygon.ps[1] = Point(12854.5, 2577.29);
+ polygon.ps[2] = Point(12792.5, 2577.29);
+ polygon.ps[3] = Point(12792.5, 2515.29);
+ new ShapeRef(router, polygon, 423);
+
+ // shapeRef424
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12854.5, 2944.29);
+ polygon.ps[1] = Point(12854.5, 3006.29);
+ polygon.ps[2] = Point(12792.5, 3006.29);
+ polygon.ps[3] = Point(12792.5, 2944.29);
+ new ShapeRef(router, polygon, 424);
+
+ // shapeRef425
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 6516.51);
+ polygon.ps[1] = Point(11658.1, 6578.51);
+ polygon.ps[2] = Point(11596.1, 6578.51);
+ polygon.ps[3] = Point(11596.1, 6516.51);
+ new ShapeRef(router, polygon, 425);
+
+ // shapeRef426
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 6186.51);
+ polygon.ps[1] = Point(17083.8, 6248.51);
+ polygon.ps[2] = Point(17021.8, 6248.51);
+ polygon.ps[3] = Point(17021.8, 6186.51);
+ new ShapeRef(router, polygon, 426);
+
+ // shapeRef427
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 6516.51);
+ polygon.ps[1] = Point(17083.8, 6578.51);
+ polygon.ps[2] = Point(17021.8, 6578.51);
+ polygon.ps[3] = Point(17021.8, 6516.51);
+ new ShapeRef(router, polygon, 427);
+
+ // shapeRef428
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 8797.89);
+ polygon.ps[1] = Point(8589.03, 8837.89);
+ polygon.ps[2] = Point(8534.03, 8837.89);
+ polygon.ps[3] = Point(8534.03, 8797.89);
+ new ShapeRef(router, polygon, 428);
+
+ // shapeRef429
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 8797.89);
+ polygon.ps[1] = Point(8689.03, 8837.89);
+ polygon.ps[2] = Point(8634.03, 8837.89);
+ polygon.ps[3] = Point(8634.03, 8797.89);
+ new ShapeRef(router, polygon, 429);
+
+ // shapeRef430
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 12017.3);
+ polygon.ps[1] = Point(1911, 12079.3);
+ polygon.ps[2] = Point(1849, 12079.3);
+ polygon.ps[3] = Point(1849, 12017.3);
+ new ShapeRef(router, polygon, 430);
+
+ // shapeRef431
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 11549.7);
+ polygon.ps[1] = Point(1911, 11611.7);
+ polygon.ps[2] = Point(1849, 11611.7);
+ polygon.ps[3] = Point(1849, 11549.7);
+ new ShapeRef(router, polygon, 431);
+
+ // shapeRef432
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 10585.3);
+ polygon.ps[1] = Point(1350, 10647.3);
+ polygon.ps[2] = Point(1288, 10647.3);
+ polygon.ps[3] = Point(1288, 10585.3);
+ new ShapeRef(router, polygon, 432);
+
+ // shapeRef433
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 10275);
+ polygon.ps[1] = Point(1350, 10337);
+ polygon.ps[2] = Point(1288, 10337);
+ polygon.ps[3] = Point(1288, 10275);
+ new ShapeRef(router, polygon, 433);
+
+ // shapeRef434
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 9945.02);
+ polygon.ps[1] = Point(1350, 10007);
+ polygon.ps[2] = Point(1288, 10007);
+ polygon.ps[3] = Point(1288, 9945.02);
+ new ShapeRef(router, polygon, 434);
+
+ // shapeRef435
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 9479.42);
+ polygon.ps[1] = Point(1350, 9541.42);
+ polygon.ps[2] = Point(1288, 9541.42);
+ polygon.ps[3] = Point(1288, 9479.42);
+ new ShapeRef(router, polygon, 435);
+
+ // shapeRef436
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 9116.42);
+ polygon.ps[1] = Point(1350, 9178.42);
+ polygon.ps[2] = Point(1288, 9178.42);
+ polygon.ps[3] = Point(1288, 9116.42);
+ new ShapeRef(router, polygon, 436);
+
+ // shapeRef437
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 10275);
+ polygon.ps[1] = Point(1911, 10337);
+ polygon.ps[2] = Point(1849, 10337);
+ polygon.ps[3] = Point(1849, 10275);
+ new ShapeRef(router, polygon, 437);
+
+ // shapeRef438
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 9945.02);
+ polygon.ps[1] = Point(1911, 10007);
+ polygon.ps[2] = Point(1849, 10007);
+ polygon.ps[3] = Point(1849, 9945.02);
+ new ShapeRef(router, polygon, 438);
+
+ // shapeRef439
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 9479.42);
+ polygon.ps[1] = Point(1911, 9541.42);
+ polygon.ps[2] = Point(1849, 9541.42);
+ polygon.ps[3] = Point(1849, 9479.42);
+ new ShapeRef(router, polygon, 439);
+
+ // shapeRef440
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 9116.42);
+ polygon.ps[1] = Point(1911, 9178.42);
+ polygon.ps[2] = Point(1849, 9178.42);
+ polygon.ps[3] = Point(1849, 9116.42);
+ new ShapeRef(router, polygon, 440);
+
+ // shapeRef441
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 8897.89);
+ polygon.ps[1] = Point(8789.03, 8937.89);
+ polygon.ps[2] = Point(8734.03, 8937.89);
+ polygon.ps[3] = Point(8734.03, 8897.89);
+ new ShapeRef(router, polygon, 441);
+
+ // shapeRef442
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 8897.89);
+ polygon.ps[1] = Point(8889.03, 8937.89);
+ polygon.ps[2] = Point(8834.03, 8937.89);
+ polygon.ps[3] = Point(8834.03, 8897.89);
+ new ShapeRef(router, polygon, 442);
+
+ // shapeRef443
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 8897.89);
+ polygon.ps[1] = Point(8989.03, 8937.89);
+ polygon.ps[2] = Point(8934.03, 8937.89);
+ polygon.ps[3] = Point(8934.03, 8897.89);
+ new ShapeRef(router, polygon, 443);
+
+ // shapeRef444
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 8897.89);
+ polygon.ps[1] = Point(9089.03, 8937.89);
+ polygon.ps[2] = Point(9034.03, 8937.89);
+ polygon.ps[3] = Point(9034.03, 8897.89);
+ new ShapeRef(router, polygon, 444);
+
+ // shapeRef445
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 8897.89);
+ polygon.ps[1] = Point(9189.03, 8937.89);
+ polygon.ps[2] = Point(9134.03, 8937.89);
+ polygon.ps[3] = Point(9134.03, 8897.89);
+ new ShapeRef(router, polygon, 445);
+
+ // shapeRef446
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2043, 2779.29);
+ polygon.ps[1] = Point(2043, 2841.29);
+ polygon.ps[2] = Point(1981, 2841.29);
+ polygon.ps[3] = Point(1981, 2779.29);
+ new ShapeRef(router, polygon, 446);
+
+ // shapeRef447
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 4029.51);
+ polygon.ps[1] = Point(4980, 4091.51);
+ polygon.ps[2] = Point(4918, 4091.51);
+ polygon.ps[3] = Point(4918, 4029.51);
+ new ShapeRef(router, polygon, 447);
+
+ // shapeRef448
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 3307.29);
+ polygon.ps[1] = Point(1779, 3369.29);
+ polygon.ps[2] = Point(1717, 3369.29);
+ polygon.ps[3] = Point(1717, 3307.29);
+ new ShapeRef(router, polygon, 448);
+
+ // shapeRef449
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1053, 3435.51);
+ polygon.ps[1] = Point(1053, 3497.51);
+ polygon.ps[2] = Point(991, 3497.51);
+ polygon.ps[3] = Point(991, 3435.51);
+ new ShapeRef(router, polygon, 449);
+
+ // shapeRef450
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 3567.51);
+ polygon.ps[1] = Point(1449, 3629.51);
+ polygon.ps[2] = Point(1387, 3629.51);
+ polygon.ps[3] = Point(1387, 3567.51);
+ new ShapeRef(router, polygon, 450);
+
+ // shapeRef451
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2307, 3897.51);
+ polygon.ps[1] = Point(2307, 3959.51);
+ polygon.ps[2] = Point(2245, 3959.51);
+ polygon.ps[3] = Point(2245, 3897.51);
+ new ShapeRef(router, polygon, 451);
+
+ // shapeRef452
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(327, 3666.51);
+ polygon.ps[1] = Point(327, 3728.51);
+ polygon.ps[2] = Point(265, 3728.51);
+ polygon.ps[3] = Point(265, 3666.51);
+ new ShapeRef(router, polygon, 452);
+
+ // shapeRef453
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(558, 3666.51);
+ polygon.ps[1] = Point(558, 3728.51);
+ polygon.ps[2] = Point(496, 3728.51);
+ polygon.ps[3] = Point(496, 3666.51);
+ new ShapeRef(router, polygon, 453);
+
+ // shapeRef454
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(888, 3666.51);
+ polygon.ps[1] = Point(888, 3728.51);
+ polygon.ps[2] = Point(826, 3728.51);
+ polygon.ps[3] = Point(826, 3666.51);
+ new ShapeRef(router, polygon, 454);
+
+ // shapeRef455
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1284, 3666.51);
+ polygon.ps[1] = Point(1284, 3728.51);
+ polygon.ps[2] = Point(1222, 3728.51);
+ polygon.ps[3] = Point(1222, 3666.51);
+ new ShapeRef(router, polygon, 455);
+
+ // shapeRef456
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1713, 3666.51);
+ polygon.ps[1] = Point(1713, 3728.51);
+ polygon.ps[2] = Point(1651, 3728.51);
+ polygon.ps[3] = Point(1651, 3666.51);
+ new ShapeRef(router, polygon, 456);
+
+ // shapeRef457
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2043, 3666.51);
+ polygon.ps[1] = Point(2043, 3728.51);
+ polygon.ps[2] = Point(1981, 3728.51);
+ polygon.ps[3] = Point(1981, 3666.51);
+ new ShapeRef(router, polygon, 457);
+
+ // shapeRef458
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 3109.29);
+ polygon.ps[1] = Point(228, 3171.29);
+ polygon.ps[2] = Point(166, 3171.29);
+ polygon.ps[3] = Point(166, 3109.29);
+ new ShapeRef(router, polygon, 458);
+
+ // shapeRef459
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1119, 2614.29);
+ polygon.ps[1] = Point(1119, 2676.29);
+ polygon.ps[2] = Point(1057, 2676.29);
+ polygon.ps[3] = Point(1057, 2614.29);
+ new ShapeRef(router, polygon, 459);
+
+ // shapeRef460
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(459, 2614.29);
+ polygon.ps[1] = Point(459, 2676.29);
+ polygon.ps[2] = Point(397, 2676.29);
+ polygon.ps[3] = Point(397, 2614.29);
+ new ShapeRef(router, polygon, 460);
+
+ // shapeRef461
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(723, 1813.29);
+ polygon.ps[1] = Point(723, 1875.29);
+ polygon.ps[2] = Point(661, 1875.29);
+ polygon.ps[3] = Point(661, 1813.29);
+ new ShapeRef(router, polygon, 461);
+
+ // shapeRef462
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(723, 2614.29);
+ polygon.ps[1] = Point(723, 2676.29);
+ polygon.ps[2] = Point(661, 2676.29);
+ polygon.ps[3] = Point(661, 2614.29);
+ new ShapeRef(router, polygon, 462);
+
+ // shapeRef463
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(723, 2911.29);
+ polygon.ps[1] = Point(723, 2973.29);
+ polygon.ps[2] = Point(661, 2973.29);
+ polygon.ps[3] = Point(661, 2911.29);
+ new ShapeRef(router, polygon, 463);
+
+ // shapeRef464
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(459, 3109.29);
+ polygon.ps[1] = Point(459, 3171.29);
+ polygon.ps[2] = Point(397, 3171.29);
+ polygon.ps[3] = Point(397, 3109.29);
+ new ShapeRef(router, polygon, 464);
+
+ // shapeRef465
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(723, 3241.29);
+ polygon.ps[1] = Point(723, 3303.29);
+ polygon.ps[2] = Point(661, 3303.29);
+ polygon.ps[3] = Point(661, 3241.29);
+ new ShapeRef(router, polygon, 465);
+
+ // shapeRef466
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1086, 3109.29);
+ polygon.ps[1] = Point(1086, 3171.29);
+ polygon.ps[2] = Point(1024, 3171.29);
+ polygon.ps[3] = Point(1024, 3109.29);
+ new ShapeRef(router, polygon, 466);
+
+ // shapeRef467
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2043, 3109.29);
+ polygon.ps[1] = Point(2043, 3171.29);
+ polygon.ps[2] = Point(1981, 3171.29);
+ polygon.ps[3] = Point(1981, 3109.29);
+ new ShapeRef(router, polygon, 467);
+
+ // shapeRef468
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2637, 3109.29);
+ polygon.ps[1] = Point(2637, 3171.29);
+ polygon.ps[2] = Point(2575, 3171.29);
+ polygon.ps[3] = Point(2575, 3109.29);
+ new ShapeRef(router, polygon, 468);
+
+ // shapeRef469
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(987, 4297.11);
+ polygon.ps[1] = Point(987, 4359.11);
+ polygon.ps[2] = Point(925, 4359.11);
+ polygon.ps[3] = Point(925, 4297.11);
+ new ShapeRef(router, polygon, 469);
+
+ // shapeRef470
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1482, 4297.11);
+ polygon.ps[1] = Point(1482, 4359.11);
+ polygon.ps[2] = Point(1420, 4359.11);
+ polygon.ps[3] = Point(1420, 4297.11);
+ new ShapeRef(router, polygon, 470);
+
+ // shapeRef471
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6055.1, 3666.51);
+ polygon.ps[1] = Point(6055.1, 3728.51);
+ polygon.ps[2] = Point(5993.1, 3728.51);
+ polygon.ps[3] = Point(5993.1, 3666.51);
+ new ShapeRef(router, polygon, 471);
+
+ // shapeRef472
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5560.1, 3666.51);
+ polygon.ps[1] = Point(5560.1, 3728.51);
+ polygon.ps[2] = Point(5498.1, 3728.51);
+ polygon.ps[3] = Point(5498.1, 3666.51);
+ new ShapeRef(router, polygon, 472);
+
+ // shapeRef473
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5178, 3666.51);
+ polygon.ps[1] = Point(5178, 3728.51);
+ polygon.ps[2] = Point(5116, 3728.51);
+ polygon.ps[3] = Point(5116, 3666.51);
+ new ShapeRef(router, polygon, 473);
+
+ // shapeRef474
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4914, 3666.51);
+ polygon.ps[1] = Point(4914, 3728.51);
+ polygon.ps[2] = Point(4852, 3728.51);
+ polygon.ps[3] = Point(4852, 3666.51);
+ new ShapeRef(router, polygon, 474);
+
+ // shapeRef475
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 2515.29);
+ polygon.ps[1] = Point(1779, 2577.29);
+ polygon.ps[2] = Point(1717, 2577.29);
+ polygon.ps[3] = Point(1717, 2515.29);
+ new ShapeRef(router, polygon, 475);
+
+ // shapeRef476
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2208, 2515.29);
+ polygon.ps[1] = Point(2208, 2577.29);
+ polygon.ps[2] = Point(2146, 2577.29);
+ polygon.ps[3] = Point(2146, 2515.29);
+ new ShapeRef(router, polygon, 476);
+
+ // shapeRef477
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2538, 2515.29);
+ polygon.ps[1] = Point(2538, 2577.29);
+ polygon.ps[2] = Point(2476, 2577.29);
+ polygon.ps[3] = Point(2476, 2515.29);
+ new ShapeRef(router, polygon, 477);
+
+ // shapeRef478
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3000, 2515.29);
+ polygon.ps[1] = Point(3000, 2577.29);
+ polygon.ps[2] = Point(2938, 2577.29);
+ polygon.ps[3] = Point(2938, 2515.29);
+ new ShapeRef(router, polygon, 478);
+
+ // shapeRef479
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3858, 2284.29);
+ polygon.ps[1] = Point(3858, 2346.29);
+ polygon.ps[2] = Point(3796, 2346.29);
+ polygon.ps[3] = Point(3796, 2284.29);
+ new ShapeRef(router, polygon, 479);
+
+ // shapeRef480
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7045.1, 3798.51);
+ polygon.ps[1] = Point(7045.1, 3860.51);
+ polygon.ps[2] = Point(6983.1, 3860.51);
+ polygon.ps[3] = Point(6983.1, 3798.51);
+ new ShapeRef(router, polygon, 480);
+
+ // shapeRef481
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6451.1, 2482.29);
+ polygon.ps[1] = Point(6451.1, 2544.29);
+ polygon.ps[2] = Point(6389.1, 2544.29);
+ polygon.ps[3] = Point(6389.1, 2482.29);
+ new ShapeRef(router, polygon, 481);
+
+ // shapeRef482
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6847.1, 2482.29);
+ polygon.ps[1] = Point(6847.1, 2544.29);
+ polygon.ps[2] = Point(6785.1, 2544.29);
+ polygon.ps[3] = Point(6785.1, 2482.29);
+ new ShapeRef(router, polygon, 482);
+
+ // shapeRef483
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6451.1, 2746.29);
+ polygon.ps[1] = Point(6451.1, 2808.29);
+ polygon.ps[2] = Point(6389.1, 2808.29);
+ polygon.ps[3] = Point(6389.1, 2746.29);
+ new ShapeRef(router, polygon, 483);
+
+ // shapeRef484
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 3043.29);
+ polygon.ps[1] = Point(7375.1, 3105.29);
+ polygon.ps[2] = Point(7313.1, 3105.29);
+ polygon.ps[3] = Point(7313.1, 3043.29);
+ new ShapeRef(router, polygon, 484);
+
+ // shapeRef485
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8060.29, 3043.29);
+ polygon.ps[1] = Point(8060.29, 3105.29);
+ polygon.ps[2] = Point(7998.29, 3105.29);
+ polygon.ps[3] = Point(7998.29, 3043.29);
+ new ShapeRef(router, polygon, 485);
+
+ // shapeRef486
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6286.1, 3043.29);
+ polygon.ps[1] = Point(6286.1, 3105.29);
+ polygon.ps[2] = Point(6224.1, 3105.29);
+ polygon.ps[3] = Point(6224.1, 3043.29);
+ new ShapeRef(router, polygon, 486);
+
+ // shapeRef487
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5857.1, 3043.29);
+ polygon.ps[1] = Point(5857.1, 3105.29);
+ polygon.ps[2] = Point(5795.1, 3105.29);
+ polygon.ps[3] = Point(5795.1, 3043.29);
+ new ShapeRef(router, polygon, 487);
+
+ // shapeRef488
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 2746.29);
+ polygon.ps[1] = Point(7375.1, 2808.29);
+ polygon.ps[2] = Point(7313.1, 2808.29);
+ polygon.ps[3] = Point(7313.1, 2746.29);
+ new ShapeRef(router, polygon, 488);
+
+ // shapeRef489
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 2482.29);
+ polygon.ps[1] = Point(7375.1, 2544.29);
+ polygon.ps[2] = Point(7313.1, 2544.29);
+ polygon.ps[3] = Point(7313.1, 2482.29);
+ new ShapeRef(router, polygon, 489);
+
+ // shapeRef490
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 1945.29);
+ polygon.ps[1] = Point(7375.1, 2007.29);
+ polygon.ps[2] = Point(7313.1, 2007.29);
+ polygon.ps[3] = Point(7313.1, 1945.29);
+ new ShapeRef(router, polygon, 490);
+
+ // shapeRef491
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 1579.29);
+ polygon.ps[1] = Point(7375.1, 1641.29);
+ polygon.ps[2] = Point(7313.1, 1641.29);
+ polygon.ps[3] = Point(7313.1, 1579.29);
+ new ShapeRef(router, polygon, 491);
+
+ // shapeRef492
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 1249.29);
+ polygon.ps[1] = Point(7375.1, 1311.29);
+ polygon.ps[2] = Point(7313.1, 1311.29);
+ polygon.ps[3] = Point(7313.1, 1249.29);
+ new ShapeRef(router, polygon, 492);
+
+ // shapeRef493
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(822, 216.265);
+ polygon.ps[1] = Point(822, 278.265);
+ polygon.ps[2] = Point(760, 278.265);
+ polygon.ps[3] = Point(760, 216.265);
+ new ShapeRef(router, polygon, 493);
+
+ // shapeRef494
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(822, 84.2652);
+ polygon.ps[1] = Point(822, 146.265);
+ polygon.ps[2] = Point(760, 146.265);
+ polygon.ps[3] = Point(760, 84.2652);
+ new ShapeRef(router, polygon, 494);
+
+ // shapeRef495
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1218, 183.265);
+ polygon.ps[1] = Point(1218, 245.265);
+ polygon.ps[2] = Point(1156, 245.265);
+ polygon.ps[3] = Point(1156, 183.265);
+ new ShapeRef(router, polygon, 495);
+
+ // shapeRef496
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1977, 183.265);
+ polygon.ps[1] = Point(1977, 245.265);
+ polygon.ps[2] = Point(1915, 245.265);
+ polygon.ps[3] = Point(1915, 183.265);
+ new ShapeRef(router, polygon, 496);
+
+ // shapeRef497
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2439, 183.265);
+ polygon.ps[1] = Point(2439, 245.265);
+ polygon.ps[2] = Point(2377, 245.265);
+ polygon.ps[3] = Point(2377, 183.265);
+ new ShapeRef(router, polygon, 497);
+
+ // shapeRef498
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2835, 216.265);
+ polygon.ps[1] = Point(2835, 278.265);
+ polygon.ps[2] = Point(2773, 278.265);
+ polygon.ps[3] = Point(2773, 216.265);
+ new ShapeRef(router, polygon, 498);
+
+ // shapeRef499
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2835, 84.2652);
+ polygon.ps[1] = Point(2835, 146.265);
+ polygon.ps[2] = Point(2773, 146.265);
+ polygon.ps[3] = Point(2773, 84.2652);
+ new ShapeRef(router, polygon, 499);
+
+ // shapeRef500
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3363, 183.265);
+ polygon.ps[1] = Point(3363, 245.265);
+ polygon.ps[2] = Point(3301, 245.265);
+ polygon.ps[3] = Point(3301, 183.265);
+ new ShapeRef(router, polygon, 500);
+
+ // shapeRef501
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3792, 183.265);
+ polygon.ps[1] = Point(3792, 245.265);
+ polygon.ps[2] = Point(3730, 245.265);
+ polygon.ps[3] = Point(3730, 183.265);
+ new ShapeRef(router, polygon, 501);
+
+ // shapeRef502
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4518, 183.265);
+ polygon.ps[1] = Point(4518, 245.265);
+ polygon.ps[2] = Point(4456, 245.265);
+ polygon.ps[3] = Point(4456, 183.265);
+ new ShapeRef(router, polygon, 502);
+
+ // shapeRef503
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4914, 183.265);
+ polygon.ps[1] = Point(4914, 245.265);
+ polygon.ps[2] = Point(4852, 245.265);
+ polygon.ps[3] = Point(4852, 183.265);
+ new ShapeRef(router, polygon, 503);
+
+ // shapeRef504
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5211, 183.265);
+ polygon.ps[1] = Point(5211, 245.265);
+ polygon.ps[2] = Point(5149, 245.265);
+ polygon.ps[3] = Point(5149, 183.265);
+ new ShapeRef(router, polygon, 504);
+
+ // shapeRef505
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5659.1, 183.265);
+ polygon.ps[1] = Point(5659.1, 245.265);
+ polygon.ps[2] = Point(5597.1, 245.265);
+ polygon.ps[3] = Point(5597.1, 183.265);
+ new ShapeRef(router, polygon, 505);
+
+ // shapeRef506
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6616.1, 183.265);
+ polygon.ps[1] = Point(6616.1, 245.265);
+ polygon.ps[2] = Point(6554.1, 245.265);
+ polygon.ps[3] = Point(6554.1, 183.265);
+ new ShapeRef(router, polygon, 506);
+
+ // shapeRef507
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6913.1, 183.265);
+ polygon.ps[1] = Point(6913.1, 245.265);
+ polygon.ps[2] = Point(6851.1, 245.265);
+ polygon.ps[3] = Point(6851.1, 183.265);
+ new ShapeRef(router, polygon, 507);
+
+ // shapeRef508
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7309.1, 183.265);
+ polygon.ps[1] = Point(7309.1, 245.265);
+ polygon.ps[2] = Point(7247.1, 245.265);
+ polygon.ps[3] = Point(7247.1, 183.265);
+ new ShapeRef(router, polygon, 508);
+
+ // shapeRef509
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 183.265);
+ polygon.ps[1] = Point(7796.29, 245.265);
+ polygon.ps[2] = Point(7734.29, 245.265);
+ polygon.ps[3] = Point(7734.29, 183.265);
+ new ShapeRef(router, polygon, 509);
+
+ // shapeRef510
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5343, 9248.42);
+ polygon.ps[1] = Point(5343, 9310.42);
+ polygon.ps[2] = Point(5281, 9310.42);
+ polygon.ps[3] = Point(5281, 9248.42);
+ new ShapeRef(router, polygon, 510);
+
+ // shapeRef511
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5343, 9677.42);
+ polygon.ps[1] = Point(5343, 9739.42);
+ polygon.ps[2] = Point(5281, 9739.42);
+ polygon.ps[3] = Point(5281, 9677.42);
+ new ShapeRef(router, polygon, 511);
+
+ // shapeRef512
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5824.1, 9248.42);
+ polygon.ps[1] = Point(5824.1, 9310.42);
+ polygon.ps[2] = Point(5762.1, 9310.42);
+ polygon.ps[3] = Point(5762.1, 9248.42);
+ new ShapeRef(router, polygon, 512);
+
+ // shapeRef513
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5824.1, 9677.42);
+ polygon.ps[1] = Point(5824.1, 9739.42);
+ polygon.ps[2] = Point(5762.1, 9739.42);
+ polygon.ps[3] = Point(5762.1, 9677.42);
+ new ShapeRef(router, polygon, 513);
+
+ // shapeRef514
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 10407);
+ polygon.ps[1] = Point(5626.1, 10469);
+ polygon.ps[2] = Point(5564.1, 10469);
+ polygon.ps[3] = Point(5564.1, 10407);
+ new ShapeRef(router, polygon, 514);
+
+ // shapeRef515
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 10143);
+ polygon.ps[1] = Point(5626.1, 10205);
+ polygon.ps[2] = Point(5564.1, 10205);
+ polygon.ps[3] = Point(5564.1, 10143);
+ new ShapeRef(router, polygon, 515);
+
+ // shapeRef516
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5145, 10143);
+ polygon.ps[1] = Point(5145, 10205);
+ polygon.ps[2] = Point(5083, 10205);
+ polygon.ps[3] = Point(5083, 10143);
+ new ShapeRef(router, polygon, 516);
+
+ // shapeRef517
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5145, 10407);
+ polygon.ps[1] = Point(5145, 10469);
+ polygon.ps[2] = Point(5083, 10469);
+ polygon.ps[3] = Point(5083, 10407);
+ new ShapeRef(router, polygon, 517);
+
+ // shapeRef518
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5145, 10684.3);
+ polygon.ps[1] = Point(5145, 10746.3);
+ polygon.ps[2] = Point(5083, 10746.3);
+ polygon.ps[3] = Point(5083, 10684.3);
+ new ShapeRef(router, polygon, 518);
+
+ // shapeRef519
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 11984.3);
+ polygon.ps[1] = Point(7796.29, 12046.3);
+ polygon.ps[2] = Point(7734.29, 12046.3);
+ polygon.ps[3] = Point(7734.29, 11984.3);
+ new ShapeRef(router, polygon, 519);
+
+ // shapeRef520
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8225.29, 11984.3);
+ polygon.ps[1] = Point(8225.29, 12046.3);
+ polygon.ps[2] = Point(8163.29, 12046.3);
+ polygon.ps[3] = Point(8163.29, 11984.3);
+ new ShapeRef(router, polygon, 520);
+
+ // shapeRef521
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 11180.6);
+ polygon.ps[1] = Point(5626.1, 11242.6);
+ polygon.ps[2] = Point(5564.1, 11242.6);
+ polygon.ps[3] = Point(5564.1, 11180.6);
+ new ShapeRef(router, polygon, 521);
+
+ // shapeRef522
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5626.1, 10684.3);
+ polygon.ps[1] = Point(5626.1, 10746.3);
+ polygon.ps[2] = Point(5564.1, 10746.3);
+ polygon.ps[3] = Point(5564.1, 10684.3);
+ new ShapeRef(router, polygon, 522);
+
+ // shapeRef523
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5989.1, 10684.3);
+ polygon.ps[1] = Point(5989.1, 10746.3);
+ polygon.ps[2] = Point(5927.1, 10746.3);
+ polygon.ps[3] = Point(5927.1, 10684.3);
+ new ShapeRef(router, polygon, 523);
+
+ // shapeRef524
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5989.1, 11180.6);
+ polygon.ps[1] = Point(5989.1, 11242.6);
+ polygon.ps[2] = Point(5927.1, 11242.6);
+ polygon.ps[3] = Point(5927.1, 11180.6);
+ new ShapeRef(router, polygon, 524);
+
+ // shapeRef525
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 11180.6);
+ polygon.ps[1] = Point(6253.1, 11242.6);
+ polygon.ps[2] = Point(6191.1, 11242.6);
+ polygon.ps[3] = Point(6191.1, 11180.6);
+ new ShapeRef(router, polygon, 525);
+
+ // shapeRef526
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6649.1, 11180.6);
+ polygon.ps[1] = Point(6649.1, 11242.6);
+ polygon.ps[2] = Point(6587.1, 11242.6);
+ polygon.ps[3] = Point(6587.1, 11180.6);
+ new ShapeRef(router, polygon, 526);
+
+ // shapeRef527
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7078.1, 11180.6);
+ polygon.ps[1] = Point(7078.1, 11242.6);
+ polygon.ps[2] = Point(7016.1, 11242.6);
+ polygon.ps[3] = Point(7016.1, 11180.6);
+ new ShapeRef(router, polygon, 527);
+
+ // shapeRef528
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7573.1, 11180.6);
+ polygon.ps[1] = Point(7573.1, 11242.6);
+ polygon.ps[2] = Point(7511.1, 11242.6);
+ polygon.ps[3] = Point(7511.1, 11180.6);
+ new ShapeRef(router, polygon, 528);
+
+ // shapeRef529
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 10150.2);
+ polygon.ps[1] = Point(8789.03, 10190.2);
+ polygon.ps[2] = Point(8734.03, 10190.2);
+ polygon.ps[3] = Point(8734.03, 10150.2);
+ new ShapeRef(router, polygon, 529);
+
+ // shapeRef530
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 9697.89);
+ polygon.ps[1] = Point(8889.03, 9737.89);
+ polygon.ps[2] = Point(8834.03, 9737.89);
+ polygon.ps[3] = Point(8834.03, 9697.89);
+ new ShapeRef(router, polygon, 530);
+
+ // shapeRef531
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 9697.89);
+ polygon.ps[1] = Point(8989.03, 9737.89);
+ polygon.ps[2] = Point(8934.03, 9737.89);
+ polygon.ps[3] = Point(8934.03, 9697.89);
+ new ShapeRef(router, polygon, 531);
+
+ // shapeRef532
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 9697.89);
+ polygon.ps[1] = Point(9089.03, 9737.89);
+ polygon.ps[2] = Point(9034.03, 9737.89);
+ polygon.ps[3] = Point(9034.03, 9697.89);
+ new ShapeRef(router, polygon, 532);
+
+ // shapeRef533
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 9697.89);
+ polygon.ps[1] = Point(9189.03, 9737.89);
+ polygon.ps[2] = Point(9134.03, 9737.89);
+ polygon.ps[3] = Point(9134.03, 9697.89);
+ new ShapeRef(router, polygon, 533);
+
+ // shapeRef534
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 9765.77);
+ polygon.ps[1] = Point(9289.03, 9805.77);
+ polygon.ps[2] = Point(9234.03, 9805.77);
+ polygon.ps[3] = Point(9234.03, 9765.77);
+ new ShapeRef(router, polygon, 534);
+
+ // shapeRef535
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 9942.61);
+ polygon.ps[1] = Point(8389.03, 9982.61);
+ polygon.ps[2] = Point(8334.03, 9982.61);
+ polygon.ps[3] = Point(8334.03, 9942.61);
+ new ShapeRef(router, polygon, 535);
+
+ // shapeRef536
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 9942.61);
+ polygon.ps[1] = Point(8489.03, 9982.61);
+ polygon.ps[2] = Point(8434.03, 9982.61);
+ polygon.ps[3] = Point(8434.03, 9942.61);
+ new ShapeRef(router, polygon, 536);
+
+ // shapeRef537
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 9942.61);
+ polygon.ps[1] = Point(8589.03, 9982.61);
+ polygon.ps[2] = Point(8534.03, 9982.61);
+ polygon.ps[3] = Point(8534.03, 9942.61);
+ new ShapeRef(router, polygon, 537);
+
+ // shapeRef538
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 9797.89);
+ polygon.ps[1] = Point(8689.03, 9837.89);
+ polygon.ps[2] = Point(8634.03, 9837.89);
+ polygon.ps[3] = Point(8634.03, 9797.89);
+ new ShapeRef(router, polygon, 538);
+
+ // shapeRef539
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 9797.89);
+ polygon.ps[1] = Point(8789.03, 9837.89);
+ polygon.ps[2] = Point(8734.03, 9837.89);
+ polygon.ps[3] = Point(8734.03, 9797.89);
+ new ShapeRef(router, polygon, 539);
+
+ // shapeRef540
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 10150.2);
+ polygon.ps[1] = Point(8889.03, 10190.2);
+ polygon.ps[2] = Point(8834.03, 10190.2);
+ polygon.ps[3] = Point(8834.03, 10150.2);
+ new ShapeRef(router, polygon, 540);
+
+ // shapeRef541
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 10150.2);
+ polygon.ps[1] = Point(8989.03, 10190.2);
+ polygon.ps[2] = Point(8934.03, 10190.2);
+ polygon.ps[3] = Point(8934.03, 10150.2);
+ new ShapeRef(router, polygon, 541);
+
+ // shapeRef542
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 10150.2);
+ polygon.ps[1] = Point(9089.03, 10190.2);
+ polygon.ps[2] = Point(9034.03, 10190.2);
+ polygon.ps[3] = Point(9034.03, 10150.2);
+ new ShapeRef(router, polygon, 542);
+
+ // shapeRef543
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 9797.89);
+ polygon.ps[1] = Point(9189.03, 9837.89);
+ polygon.ps[2] = Point(9134.03, 9837.89);
+ polygon.ps[3] = Point(9134.03, 9797.89);
+ new ShapeRef(router, polygon, 543);
+
+ // shapeRef544
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11856.1, 150.265);
+ polygon.ps[1] = Point(11856.1, 212.265);
+ polygon.ps[2] = Point(11794.1, 212.265);
+ polygon.ps[3] = Point(11794.1, 150.265);
+ new ShapeRef(router, polygon, 544);
+
+ // shapeRef545
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11302.2, 150.265);
+ polygon.ps[1] = Point(11302.2, 212.265);
+ polygon.ps[2] = Point(11240.2, 212.265);
+ polygon.ps[3] = Point(11240.2, 150.265);
+ new ShapeRef(router, polygon, 545);
+
+ // shapeRef546
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10807.2, 150.265);
+ polygon.ps[1] = Point(10807.2, 212.265);
+ polygon.ps[2] = Point(10745.2, 212.265);
+ polygon.ps[3] = Point(10745.2, 150.265);
+ new ShapeRef(router, polygon, 546);
+
+ // shapeRef547
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9947.69, 150.265);
+ polygon.ps[1] = Point(9947.69, 212.265);
+ polygon.ps[2] = Point(9885.69, 212.265);
+ polygon.ps[3] = Point(9885.69, 150.265);
+ new ShapeRef(router, polygon, 547);
+
+ // shapeRef548
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9268.59, 150.265);
+ polygon.ps[1] = Point(9268.59, 212.265);
+ polygon.ps[2] = Point(9206.59, 212.265);
+ polygon.ps[3] = Point(9206.59, 150.265);
+ new ShapeRef(router, polygon, 548);
+
+ // shapeRef549
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14365, 282.265);
+ polygon.ps[1] = Point(14365, 344.265);
+ polygon.ps[2] = Point(14303, 344.265);
+ polygon.ps[3] = Point(14303, 282.265);
+ new ShapeRef(router, polygon, 549);
+
+ // shapeRef550
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14002, 282.265);
+ polygon.ps[1] = Point(14002, 344.265);
+ polygon.ps[2] = Point(13940, 344.265);
+ polygon.ps[3] = Point(13940, 282.265);
+ new ShapeRef(router, polygon, 550);
+
+ // shapeRef551
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13672, 282.265);
+ polygon.ps[1] = Point(13672, 344.265);
+ polygon.ps[2] = Point(13610, 344.265);
+ polygon.ps[3] = Point(13610, 282.265);
+ new ShapeRef(router, polygon, 551);
+
+ // shapeRef552
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13231, 282.265);
+ polygon.ps[1] = Point(13231, 344.265);
+ polygon.ps[2] = Point(13169, 344.265);
+ polygon.ps[3] = Point(13169, 282.265);
+ new ShapeRef(router, polygon, 552);
+
+ // shapeRef553
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12821.5, 282.265);
+ polygon.ps[1] = Point(12821.5, 344.265);
+ polygon.ps[2] = Point(12759.5, 344.265);
+ polygon.ps[3] = Point(12759.5, 282.265);
+ new ShapeRef(router, polygon, 553);
+
+ // shapeRef554
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14398, 150.265);
+ polygon.ps[1] = Point(14398, 212.265);
+ polygon.ps[2] = Point(14336, 212.265);
+ polygon.ps[3] = Point(14336, 150.265);
+ new ShapeRef(router, polygon, 554);
+
+ // shapeRef555
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13804, 150.265);
+ polygon.ps[1] = Point(13804, 212.265);
+ polygon.ps[2] = Point(13742, 212.265);
+ polygon.ps[3] = Point(13742, 150.265);
+ new ShapeRef(router, polygon, 555);
+
+ // shapeRef556
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12953.5, 150.265);
+ polygon.ps[1] = Point(12953.5, 212.265);
+ polygon.ps[2] = Point(12891.5, 212.265);
+ polygon.ps[3] = Point(12891.5, 150.265);
+ new ShapeRef(router, polygon, 556);
+
+ // shapeRef557
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12318.1, 282.265);
+ polygon.ps[1] = Point(12318.1, 344.265);
+ polygon.ps[2] = Point(12256.1, 344.265);
+ polygon.ps[3] = Point(12256.1, 282.265);
+ new ShapeRef(router, polygon, 557);
+
+ // shapeRef558
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12054.1, 282.265);
+ polygon.ps[1] = Point(12054.1, 344.265);
+ polygon.ps[2] = Point(11992.1, 344.265);
+ polygon.ps[3] = Point(11992.1, 282.265);
+ new ShapeRef(router, polygon, 558);
+
+ // shapeRef559
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11856.1, 282.265);
+ polygon.ps[1] = Point(11856.1, 344.265);
+ polygon.ps[2] = Point(11794.1, 344.265);
+ polygon.ps[3] = Point(11794.1, 282.265);
+ new ShapeRef(router, polygon, 559);
+
+ // shapeRef560
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11592.1, 282.265);
+ polygon.ps[1] = Point(11592.1, 344.265);
+ polygon.ps[2] = Point(11530.1, 344.265);
+ polygon.ps[3] = Point(11530.1, 282.265);
+ new ShapeRef(router, polygon, 560);
+
+ // shapeRef561
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11302.2, 282.265);
+ polygon.ps[1] = Point(11302.2, 344.265);
+ polygon.ps[2] = Point(11240.2, 344.265);
+ polygon.ps[3] = Point(11240.2, 282.265);
+ new ShapeRef(router, polygon, 561);
+
+ // shapeRef562
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11005.2, 282.265);
+ polygon.ps[1] = Point(11005.2, 344.265);
+ polygon.ps[2] = Point(10943.2, 344.265);
+ polygon.ps[3] = Point(10943.2, 282.265);
+ new ShapeRef(router, polygon, 562);
+
+ // shapeRef563
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10807.2, 282.265);
+ polygon.ps[1] = Point(10807.2, 344.265);
+ polygon.ps[2] = Point(10745.2, 344.265);
+ polygon.ps[3] = Point(10745.2, 282.265);
+ new ShapeRef(router, polygon, 563);
+
+ // shapeRef564
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10487.9, 282.265);
+ polygon.ps[1] = Point(10487.9, 344.265);
+ polygon.ps[2] = Point(10425.9, 344.265);
+ polygon.ps[3] = Point(10425.9, 282.265);
+ new ShapeRef(router, polygon, 564);
+
+ // shapeRef565
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9947.69, 282.265);
+ polygon.ps[1] = Point(9947.69, 344.265);
+ polygon.ps[2] = Point(9885.69, 344.265);
+ polygon.ps[3] = Point(9885.69, 282.265);
+ new ShapeRef(router, polygon, 565);
+
+ // shapeRef566
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9499.59, 282.265);
+ polygon.ps[1] = Point(9499.59, 344.265);
+ polygon.ps[2] = Point(9437.59, 344.265);
+ polygon.ps[3] = Point(9437.59, 282.265);
+ new ShapeRef(router, polygon, 566);
+
+ // shapeRef567
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16786.8, 5900.59);
+ polygon.ps[1] = Point(16786.8, 5962.59);
+ polygon.ps[2] = Point(16724.8, 5962.59);
+ polygon.ps[3] = Point(16724.8, 5900.59);
+ new ShapeRef(router, polygon, 567);
+
+ // shapeRef568
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3330, 7328.4);
+ polygon.ps[1] = Point(3330, 7390.4);
+ polygon.ps[2] = Point(3268, 7390.4);
+ polygon.ps[3] = Point(3268, 7328.4);
+ new ShapeRef(router, polygon, 568);
+
+ // shapeRef569
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 8449.99);
+ polygon.ps[1] = Point(12562.5, 8511.99);
+ polygon.ps[2] = Point(12500.5, 8511.99);
+ polygon.ps[3] = Point(12500.5, 8449.99);
+ new ShapeRef(router, polygon, 569);
+
+ // shapeRef570
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12054.1, 7031.4);
+ polygon.ps[1] = Point(12054.1, 7093.4);
+ polygon.ps[2] = Point(11992.1, 7093.4);
+ polygon.ps[3] = Point(11992.1, 7031.4);
+ new ShapeRef(router, polygon, 570);
+
+ // shapeRef571
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(129, 8383.99);
+ polygon.ps[1] = Point(129, 8445.99);
+ polygon.ps[2] = Point(67, 8445.99);
+ polygon.ps[3] = Point(67, 8383.99);
+ new ShapeRef(router, polygon, 571);
+
+ // shapeRef572
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(129, 7911.79);
+ polygon.ps[1] = Point(129, 7973.79);
+ polygon.ps[2] = Point(67, 7973.79);
+ polygon.ps[3] = Point(67, 7911.79);
+ new ShapeRef(router, polygon, 572);
+
+ // shapeRef573
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(129, 7394.4);
+ polygon.ps[1] = Point(129, 7456.4);
+ polygon.ps[2] = Point(67, 7456.4);
+ polygon.ps[3] = Point(67, 7394.4);
+ new ShapeRef(router, polygon, 573);
+
+ // shapeRef574
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 12096.3);
+ polygon.ps[1] = Point(15270.5, 12158.3);
+ polygon.ps[2] = Point(15208.5, 12158.3);
+ polygon.ps[3] = Point(15208.5, 12096.3);
+ new ShapeRef(router, polygon, 574);
+
+ // shapeRef575
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14431, 12096.3);
+ polygon.ps[1] = Point(14431, 12158.3);
+ polygon.ps[2] = Point(14369, 12158.3);
+ polygon.ps[3] = Point(14369, 12096.3);
+ new ShapeRef(router, polygon, 575);
+
+ // shapeRef576
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 11601.9);
+ polygon.ps[1] = Point(16753.8, 11663.9);
+ polygon.ps[2] = Point(16691.8, 11663.9);
+ polygon.ps[3] = Point(16691.8, 11601.9);
+ new ShapeRef(router, polygon, 576);
+
+ // shapeRef577
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16493.6, 11601.9);
+ polygon.ps[1] = Point(16493.6, 11663.9);
+ polygon.ps[2] = Point(16431.6, 11663.9);
+ polygon.ps[3] = Point(16431.6, 11601.9);
+ new ShapeRef(router, polygon, 577);
+
+ // shapeRef578
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13870, 3864.51);
+ polygon.ps[1] = Point(13870, 3926.51);
+ polygon.ps[2] = Point(13808, 3926.51);
+ polygon.ps[3] = Point(13808, 3864.51);
+ new ShapeRef(router, polygon, 578);
+
+ // shapeRef579
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16621.8, 9578.42);
+ polygon.ps[1] = Point(16621.8, 9640.42);
+ polygon.ps[2] = Point(16559.8, 9640.42);
+ polygon.ps[3] = Point(16559.8, 9578.42);
+ new ShapeRef(router, polygon, 579);
+
+ // shapeRef580
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17838.5, 11634.9);
+ polygon.ps[1] = Point(17838.5, 11696.9);
+ polygon.ps[2] = Point(17776.5, 11696.9);
+ polygon.ps[3] = Point(17776.5, 11634.9);
+ new ShapeRef(router, polygon, 580);
+
+ // shapeRef581
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 11634.9);
+ polygon.ps[1] = Point(17083.8, 11696.9);
+ polygon.ps[2] = Point(17021.8, 11696.9);
+ polygon.ps[3] = Point(17021.8, 11634.9);
+ new ShapeRef(router, polygon, 581);
+
+ // shapeRef582
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17838.5, 11081.6);
+ polygon.ps[1] = Point(17838.5, 11143.6);
+ polygon.ps[2] = Point(17776.5, 11143.6);
+ polygon.ps[3] = Point(17776.5, 11081.6);
+ new ShapeRef(router, polygon, 582);
+
+ // shapeRef583
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 11081.6);
+ polygon.ps[1] = Point(17083.8, 11143.6);
+ polygon.ps[2] = Point(17021.8, 11143.6);
+ polygon.ps[3] = Point(17021.8, 11081.6);
+ new ShapeRef(router, polygon, 583);
+
+ // shapeRef584
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17838.5, 10717.3);
+ polygon.ps[1] = Point(17838.5, 10779.3);
+ polygon.ps[2] = Point(17776.5, 10779.3);
+ polygon.ps[3] = Point(17776.5, 10717.3);
+ new ShapeRef(router, polygon, 584);
+
+ // shapeRef585
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 10717.3);
+ polygon.ps[1] = Point(17083.8, 10779.3);
+ polygon.ps[2] = Point(17021.8, 10779.3);
+ polygon.ps[3] = Point(17021.8, 10717.3);
+ new ShapeRef(router, polygon, 585);
+
+ // shapeRef586
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17838.5, 10440);
+ polygon.ps[1] = Point(17838.5, 10502);
+ polygon.ps[2] = Point(17776.5, 10502);
+ polygon.ps[3] = Point(17776.5, 10440);
+ new ShapeRef(router, polygon, 586);
+
+ // shapeRef587
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 10440);
+ polygon.ps[1] = Point(17083.8, 10502);
+ polygon.ps[2] = Point(17021.8, 10502);
+ polygon.ps[3] = Point(17021.8, 10440);
+ new ShapeRef(router, polygon, 587);
+
+ // shapeRef588
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17838.5, 10209);
+ polygon.ps[1] = Point(17838.5, 10271);
+ polygon.ps[2] = Point(17776.5, 10271);
+ polygon.ps[3] = Point(17776.5, 10209);
+ new ShapeRef(router, polygon, 588);
+
+ // shapeRef589
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 10209);
+ polygon.ps[1] = Point(17083.8, 10271);
+ polygon.ps[2] = Point(17021.8, 10271);
+ polygon.ps[3] = Point(17021.8, 10209);
+ new ShapeRef(router, polygon, 589);
+
+ // shapeRef590
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16885.8, 10209);
+ polygon.ps[1] = Point(16885.8, 10271);
+ polygon.ps[2] = Point(16823.8, 10271);
+ polygon.ps[3] = Point(16823.8, 10209);
+ new ShapeRef(router, polygon, 590);
+
+ // shapeRef591
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16885.8, 9578.42);
+ polygon.ps[1] = Point(16885.8, 9640.42);
+ polygon.ps[2] = Point(16823.8, 9640.42);
+ polygon.ps[3] = Point(16823.8, 9578.42);
+ new ShapeRef(router, polygon, 591);
+
+ // shapeRef592
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16885.8, 9083.42);
+ polygon.ps[1] = Point(16885.8, 9145.42);
+ polygon.ps[2] = Point(16823.8, 9145.42);
+ polygon.ps[3] = Point(16823.8, 9083.42);
+ new ShapeRef(router, polygon, 592);
+
+ // shapeRef593
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16885.8, 8449.99);
+ polygon.ps[1] = Point(16885.8, 8511.99);
+ polygon.ps[2] = Point(16823.8, 8511.99);
+ polygon.ps[3] = Point(16823.8, 8449.99);
+ new ShapeRef(router, polygon, 593);
+
+ // shapeRef594
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16885.8, 7878.79);
+ polygon.ps[1] = Point(16885.8, 7940.79);
+ polygon.ps[2] = Point(16823.8, 7940.79);
+ polygon.ps[3] = Point(16823.8, 7878.79);
+ new ShapeRef(router, polygon, 594);
+
+ // shapeRef595
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 6219.51);
+ polygon.ps[1] = Point(7796.29, 6281.51);
+ polygon.ps[2] = Point(7734.29, 6281.51);
+ polygon.ps[3] = Point(7734.29, 6219.51);
+ new ShapeRef(router, polygon, 595);
+
+ // shapeRef596
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8159.29, 6219.51);
+ polygon.ps[1] = Point(8159.29, 6281.51);
+ polygon.ps[2] = Point(8097.29, 6281.51);
+ polygon.ps[3] = Point(8097.29, 6219.51);
+ new ShapeRef(router, polygon, 596);
+
+ // shapeRef597
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8649.29, 6219.51);
+ polygon.ps[1] = Point(8649.29, 6281.51);
+ polygon.ps[2] = Point(8587.29, 6281.51);
+ polygon.ps[3] = Point(8587.29, 6219.51);
+ new ShapeRef(router, polygon, 597);
+
+ // shapeRef598
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9301.59, 6219.51);
+ polygon.ps[1] = Point(9301.59, 6281.51);
+ polygon.ps[2] = Point(9239.59, 6281.51);
+ polygon.ps[3] = Point(9239.59, 6219.51);
+ new ShapeRef(router, polygon, 598);
+
+ // shapeRef599
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9815.69, 6219.51);
+ polygon.ps[1] = Point(9815.69, 6281.51);
+ polygon.ps[2] = Point(9753.69, 6281.51);
+ polygon.ps[3] = Point(9753.69, 6219.51);
+ new ShapeRef(router, polygon, 599);
+
+ // shapeRef600
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6814.1, 8644.22);
+ polygon.ps[1] = Point(6814.1, 8706.22);
+ polygon.ps[2] = Point(6752.1, 8706.22);
+ polygon.ps[3] = Point(6752.1, 8644.22);
+ new ShapeRef(router, polygon, 600);
+
+ // shapeRef601
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6814.1, 8284.99);
+ polygon.ps[1] = Point(6814.1, 8346.99);
+ polygon.ps[2] = Point(6752.1, 8346.99);
+ polygon.ps[3] = Point(6752.1, 8284.99);
+ new ShapeRef(router, polygon, 601);
+
+ // shapeRef602
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 10684.3);
+ polygon.ps[1] = Point(6583.1, 10746.3);
+ polygon.ps[2] = Point(6521.1, 10746.3);
+ polygon.ps[3] = Point(6521.1, 10684.3);
+ new ShapeRef(router, polygon, 602);
+
+ // shapeRef603
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 10374);
+ polygon.ps[1] = Point(6583.1, 10436);
+ polygon.ps[2] = Point(6521.1, 10436);
+ polygon.ps[3] = Point(6521.1, 10374);
+ new ShapeRef(router, polygon, 603);
+
+ // shapeRef604
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 9116.42);
+ polygon.ps[1] = Point(6583.1, 9178.42);
+ polygon.ps[2] = Point(6521.1, 9178.42);
+ polygon.ps[3] = Point(6521.1, 9116.42);
+ new ShapeRef(router, polygon, 604);
+
+ // shapeRef605
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 8644.22);
+ polygon.ps[1] = Point(6583.1, 8706.22);
+ polygon.ps[2] = Point(6521.1, 8706.22);
+ polygon.ps[3] = Point(6521.1, 8644.22);
+ new ShapeRef(router, polygon, 605);
+
+ // shapeRef606
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7012.1, 7614.79);
+ polygon.ps[1] = Point(7012.1, 7676.79);
+ polygon.ps[2] = Point(6950.1, 7676.79);
+ polygon.ps[3] = Point(6950.1, 7614.79);
+ new ShapeRef(router, polygon, 606);
+
+ // shapeRef607
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 10275);
+ polygon.ps[1] = Point(7243.1, 10337);
+ polygon.ps[2] = Point(7181.1, 10337);
+ polygon.ps[3] = Point(7181.1, 10275);
+ new ShapeRef(router, polygon, 607);
+
+ // shapeRef608
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 9912.02);
+ polygon.ps[1] = Point(7243.1, 9974.02);
+ polygon.ps[2] = Point(7181.1, 9974.02);
+ polygon.ps[3] = Point(7181.1, 9912.02);
+ new ShapeRef(router, polygon, 608);
+
+ // shapeRef609
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 8548.99);
+ polygon.ps[1] = Point(7243.1, 8610.99);
+ polygon.ps[2] = Point(7181.1, 8610.99);
+ polygon.ps[3] = Point(7181.1, 8548.99);
+ new ShapeRef(router, polygon, 609);
+
+ // shapeRef610
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 8142.79);
+ polygon.ps[1] = Point(7243.1, 8204.79);
+ polygon.ps[2] = Point(7181.1, 8204.79);
+ polygon.ps[3] = Point(7181.1, 8142.79);
+ new ShapeRef(router, polygon, 610);
+
+ // shapeRef611
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 10684.3);
+ polygon.ps[1] = Point(6253.1, 10746.3);
+ polygon.ps[2] = Point(6191.1, 10746.3);
+ polygon.ps[3] = Point(6191.1, 10684.3);
+ new ShapeRef(router, polygon, 611);
+
+ // shapeRef612
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 10374);
+ polygon.ps[1] = Point(6253.1, 10436);
+ polygon.ps[2] = Point(6191.1, 10436);
+ polygon.ps[3] = Point(6191.1, 10374);
+ new ShapeRef(router, polygon, 612);
+
+ // shapeRef613
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 10077);
+ polygon.ps[1] = Point(6253.1, 10139);
+ polygon.ps[2] = Point(6191.1, 10139);
+ polygon.ps[3] = Point(6191.1, 10077);
+ new ShapeRef(router, polygon, 613);
+
+ // shapeRef614
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 9512.42);
+ polygon.ps[1] = Point(6253.1, 9574.42);
+ polygon.ps[2] = Point(6191.1, 9574.42);
+ polygon.ps[3] = Point(6191.1, 9512.42);
+ new ShapeRef(router, polygon, 614);
+
+ // shapeRef615
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 9116.42);
+ polygon.ps[1] = Point(6253.1, 9178.42);
+ polygon.ps[2] = Point(6191.1, 9178.42);
+ polygon.ps[3] = Point(6191.1, 9116.42);
+ new ShapeRef(router, polygon, 615);
+
+ // shapeRef616
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 8644.22);
+ polygon.ps[1] = Point(6253.1, 8706.22);
+ polygon.ps[2] = Point(6191.1, 8706.22);
+ polygon.ps[3] = Point(6191.1, 8644.22);
+ new ShapeRef(router, polygon, 616);
+
+ // shapeRef617
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 8284.99);
+ polygon.ps[1] = Point(6253.1, 8346.99);
+ polygon.ps[2] = Point(6191.1, 8346.99);
+ polygon.ps[3] = Point(6191.1, 8284.99);
+ new ShapeRef(router, polygon, 617);
+
+ // shapeRef618
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 7779.79);
+ polygon.ps[1] = Point(6253.1, 7841.79);
+ polygon.ps[2] = Point(6191.1, 7841.79);
+ polygon.ps[3] = Point(6191.1, 7779.79);
+ new ShapeRef(router, polygon, 618);
+
+ // shapeRef619
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 10497.9);
+ polygon.ps[1] = Point(9089.03, 10537.9);
+ polygon.ps[2] = Point(9034.03, 10537.9);
+ polygon.ps[3] = Point(9034.03, 10497.9);
+ new ShapeRef(router, polygon, 619);
+
+ // shapeRef620
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 10497.9);
+ polygon.ps[1] = Point(9189.03, 10537.9);
+ polygon.ps[2] = Point(9134.03, 10537.9);
+ polygon.ps[3] = Point(9134.03, 10497.9);
+ new ShapeRef(router, polygon, 620);
+
+ // shapeRef621
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 10497.9);
+ polygon.ps[1] = Point(9289.03, 10537.9);
+ polygon.ps[2] = Point(9234.03, 10537.9);
+ polygon.ps[3] = Point(9234.03, 10497.9);
+ new ShapeRef(router, polygon, 621);
+
+ // shapeRef622
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 10497.9);
+ polygon.ps[1] = Point(9389.03, 10537.9);
+ polygon.ps[2] = Point(9334.03, 10537.9);
+ polygon.ps[3] = Point(9334.03, 10497.9);
+ new ShapeRef(router, polygon, 622);
+
+ // shapeRef623
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8456.29, 5316.67);
+ polygon.ps[1] = Point(8456.29, 5378.67);
+ polygon.ps[2] = Point(8394.29, 5378.67);
+ polygon.ps[3] = Point(8394.29, 5316.67);
+ new ShapeRef(router, polygon, 623);
+
+ // shapeRef624
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8126.29, 5316.67);
+ polygon.ps[1] = Point(8126.29, 5378.67);
+ polygon.ps[2] = Point(8064.29, 5378.67);
+ polygon.ps[3] = Point(8064.29, 5316.67);
+ new ShapeRef(router, polygon, 624);
+
+ // shapeRef625
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 5316.67);
+ polygon.ps[1] = Point(7796.29, 5378.67);
+ polygon.ps[2] = Point(7734.29, 5378.67);
+ polygon.ps[3] = Point(7734.29, 5316.67);
+ new ShapeRef(router, polygon, 625);
+
+ // shapeRef626
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7342.1, 5316.67);
+ polygon.ps[1] = Point(7342.1, 5378.67);
+ polygon.ps[2] = Point(7280.1, 5378.67);
+ polygon.ps[3] = Point(7280.1, 5316.67);
+ new ShapeRef(router, polygon, 626);
+
+ // shapeRef627
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6946.1, 5316.67);
+ polygon.ps[1] = Point(6946.1, 5378.67);
+ polygon.ps[2] = Point(6884.1, 5378.67);
+ polygon.ps[3] = Point(6884.1, 5316.67);
+ new ShapeRef(router, polygon, 627);
+
+ // shapeRef628
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7507.1, 4095.51);
+ polygon.ps[1] = Point(7507.1, 4157.51);
+ polygon.ps[2] = Point(7445.1, 4157.51);
+ polygon.ps[3] = Point(7445.1, 4095.51);
+ new ShapeRef(router, polygon, 628);
+
+ // shapeRef629
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7012.1, 4095.51);
+ polygon.ps[1] = Point(7012.1, 4157.51);
+ polygon.ps[2] = Point(6950.1, 4157.51);
+ polygon.ps[3] = Point(6950.1, 4095.51);
+ new ShapeRef(router, polygon, 629);
+
+ // shapeRef630
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6484.1, 4095.51);
+ polygon.ps[1] = Point(6484.1, 4157.51);
+ polygon.ps[2] = Point(6422.1, 4157.51);
+ polygon.ps[3] = Point(6422.1, 4095.51);
+ new ShapeRef(router, polygon, 630);
+
+ // shapeRef631
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6187.1, 4095.51);
+ polygon.ps[1] = Point(6187.1, 4157.51);
+ polygon.ps[2] = Point(6125.1, 4157.51);
+ polygon.ps[3] = Point(6125.1, 4095.51);
+ new ShapeRef(router, polygon, 631);
+
+ // shapeRef632
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11889.1, 10506);
+ polygon.ps[1] = Point(11889.1, 10568);
+ polygon.ps[2] = Point(11827.1, 10568);
+ polygon.ps[3] = Point(11827.1, 10506);
+ new ShapeRef(router, polygon, 632);
+
+ // shapeRef633
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14266, 1945.29);
+ polygon.ps[1] = Point(14266, 2007.29);
+ polygon.ps[2] = Point(14204, 2007.29);
+ polygon.ps[3] = Point(14204, 1945.29);
+ new ShapeRef(router, polygon, 633);
+
+ // shapeRef634
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13771, 1945.29);
+ polygon.ps[1] = Point(13771, 2007.29);
+ polygon.ps[2] = Point(13709, 2007.29);
+ polygon.ps[3] = Point(13709, 1945.29);
+ new ShapeRef(router, polygon, 634);
+
+ // shapeRef635
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14695, 1780.29);
+ polygon.ps[1] = Point(14695, 1842.29);
+ polygon.ps[2] = Point(14633, 1842.29);
+ polygon.ps[3] = Point(14633, 1780.29);
+ new ShapeRef(router, polygon, 635);
+
+ // shapeRef636
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14497, 1579.29);
+ polygon.ps[1] = Point(14497, 1641.29);
+ polygon.ps[2] = Point(14435, 1641.29);
+ polygon.ps[3] = Point(14435, 1579.29);
+ new ShapeRef(router, polygon, 636);
+
+ // shapeRef637
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13771, 1579.29);
+ polygon.ps[1] = Point(13771, 1641.29);
+ polygon.ps[2] = Point(13709, 1641.29);
+ polygon.ps[3] = Point(13709, 1579.29);
+ new ShapeRef(router, polygon, 637);
+
+ // shapeRef638
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14167, 1579.29);
+ polygon.ps[1] = Point(14167, 1641.29);
+ polygon.ps[2] = Point(14105, 1641.29);
+ polygon.ps[3] = Point(14105, 1579.29);
+ new ShapeRef(router, polygon, 638);
+
+ // shapeRef639
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13771, 1780.29);
+ polygon.ps[1] = Point(13771, 1842.29);
+ polygon.ps[2] = Point(13709, 1842.29);
+ polygon.ps[3] = Point(13709, 1780.29);
+ new ShapeRef(router, polygon, 639);
+
+ // shapeRef640
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12285.1, 3402.51);
+ polygon.ps[1] = Point(12285.1, 3464.51);
+ polygon.ps[2] = Point(12223.1, 3464.51);
+ polygon.ps[3] = Point(12223.1, 3402.51);
+ new ShapeRef(router, polygon, 640);
+
+ // shapeRef641
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11493.1, 2812.29);
+ polygon.ps[1] = Point(11493.1, 2874.29);
+ polygon.ps[2] = Point(11431.1, 2874.29);
+ polygon.ps[3] = Point(11431.1, 2812.29);
+ new ShapeRef(router, polygon, 641);
+
+ // shapeRef642
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11823.1, 2812.29);
+ polygon.ps[1] = Point(11823.1, 2874.29);
+ polygon.ps[2] = Point(11761.1, 2874.29);
+ polygon.ps[3] = Point(11761.1, 2812.29);
+ new ShapeRef(router, polygon, 642);
+
+ // shapeRef643
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11493.1, 3402.51);
+ polygon.ps[1] = Point(11493.1, 3464.51);
+ polygon.ps[2] = Point(11431.1, 3464.51);
+ polygon.ps[3] = Point(11431.1, 3402.51);
+ new ShapeRef(router, polygon, 643);
+
+ // shapeRef644
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11823.1, 3402.51);
+ polygon.ps[1] = Point(11823.1, 3464.51);
+ polygon.ps[2] = Point(11761.1, 3464.51);
+ polygon.ps[3] = Point(11761.1, 3402.51);
+ new ShapeRef(router, polygon, 644);
+
+ // shapeRef645
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 3402.51);
+ polygon.ps[1] = Point(12021.1, 3464.51);
+ polygon.ps[2] = Point(11959.1, 3464.51);
+ polygon.ps[3] = Point(11959.1, 3402.51);
+ new ShapeRef(router, polygon, 645);
+
+ // shapeRef646
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 1912.29);
+ polygon.ps[1] = Point(10675.2, 1974.29);
+ polygon.ps[2] = Point(10613.2, 1974.29);
+ polygon.ps[3] = Point(10613.2, 1912.29);
+ new ShapeRef(router, polygon, 646);
+
+ // shapeRef647
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 2152.29);
+ polygon.ps[1] = Point(10675.2, 2214.29);
+ polygon.ps[2] = Point(10613.2, 2214.29);
+ polygon.ps[3] = Point(10613.2, 2152.29);
+ new ShapeRef(router, polygon, 647);
+
+ // shapeRef648
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 2416.29);
+ polygon.ps[1] = Point(10675.2, 2478.29);
+ polygon.ps[2] = Point(10613.2, 2478.29);
+ polygon.ps[3] = Point(10613.2, 2416.29);
+ new ShapeRef(router, polygon, 648);
+
+ // shapeRef649
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 2680.29);
+ polygon.ps[1] = Point(10675.2, 2742.29);
+ polygon.ps[2] = Point(10613.2, 2742.29);
+ polygon.ps[3] = Point(10613.2, 2680.29);
+ new ShapeRef(router, polygon, 649);
+
+ // shapeRef650
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 3274.29);
+ polygon.ps[1] = Point(10675.2, 3336.29);
+ polygon.ps[2] = Point(10613.2, 3336.29);
+ polygon.ps[3] = Point(10613.2, 3274.29);
+ new ShapeRef(router, polygon, 650);
+
+ // shapeRef651
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 3274.29);
+ polygon.ps[1] = Point(10972.2, 3336.29);
+ polygon.ps[2] = Point(10910.2, 3336.29);
+ polygon.ps[3] = Point(10910.2, 3274.29);
+ new ShapeRef(router, polygon, 651);
+
+ // shapeRef652
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11203.2, 3274.29);
+ polygon.ps[1] = Point(11203.2, 3336.29);
+ polygon.ps[2] = Point(11141.2, 3336.29);
+ polygon.ps[3] = Point(11141.2, 3274.29);
+ new ShapeRef(router, polygon, 652);
+
+ // shapeRef653
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10046.7, 3076.29);
+ polygon.ps[1] = Point(10046.7, 3138.29);
+ polygon.ps[2] = Point(9984.69, 3138.29);
+ polygon.ps[3] = Point(9984.69, 3076.29);
+ new ShapeRef(router, polygon, 653);
+
+ // shapeRef654
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 3076.29);
+ polygon.ps[1] = Point(10675.2, 3138.29);
+ polygon.ps[2] = Point(10613.2, 3138.29);
+ polygon.ps[3] = Point(10613.2, 3076.29);
+ new ShapeRef(router, polygon, 654);
+
+ // shapeRef655
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 3076.29);
+ polygon.ps[1] = Point(10972.2, 3138.29);
+ polygon.ps[2] = Point(10910.2, 3138.29);
+ polygon.ps[3] = Point(10910.2, 3076.29);
+ new ShapeRef(router, polygon, 655);
+
+ // shapeRef656
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11203.2, 3076.29);
+ polygon.ps[1] = Point(11203.2, 3138.29);
+ polygon.ps[2] = Point(11141.2, 3138.29);
+ polygon.ps[3] = Point(11141.2, 3076.29);
+ new ShapeRef(router, polygon, 656);
+
+ // shapeRef657
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11493.1, 3076.29);
+ polygon.ps[1] = Point(11493.1, 3138.29);
+ polygon.ps[2] = Point(11431.1, 3138.29);
+ polygon.ps[3] = Point(11431.1, 3076.29);
+ new ShapeRef(router, polygon, 657);
+
+ // shapeRef658
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14101, 1216.29);
+ polygon.ps[1] = Point(14101, 1278.29);
+ polygon.ps[2] = Point(14039, 1278.29);
+ polygon.ps[3] = Point(14039, 1216.29);
+ new ShapeRef(router, polygon, 658);
+
+ // shapeRef659
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13738, 1216.29);
+ polygon.ps[1] = Point(13738, 1278.29);
+ polygon.ps[2] = Point(13676, 1278.29);
+ polygon.ps[3] = Point(13676, 1216.29);
+ new ShapeRef(router, polygon, 659);
+
+ // shapeRef660
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13231, 1216.29);
+ polygon.ps[1] = Point(13231, 1278.29);
+ polygon.ps[2] = Point(13169, 1278.29);
+ polygon.ps[3] = Point(13169, 1216.29);
+ new ShapeRef(router, polygon, 660);
+
+ // shapeRef661
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13231, 1480.29);
+ polygon.ps[1] = Point(13231, 1542.29);
+ polygon.ps[2] = Point(13169, 1542.29);
+ polygon.ps[3] = Point(13169, 1480.29);
+ new ShapeRef(router, polygon, 661);
+
+ // shapeRef662
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13231, 1780.29);
+ polygon.ps[1] = Point(13231, 1842.29);
+ polygon.ps[2] = Point(13169, 1842.29);
+ polygon.ps[3] = Point(13169, 1780.29);
+ new ShapeRef(router, polygon, 662);
+
+ // shapeRef663
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11823.1, 3076.29);
+ polygon.ps[1] = Point(11823.1, 3138.29);
+ polygon.ps[2] = Point(11761.1, 3138.29);
+ polygon.ps[3] = Point(11761.1, 3076.29);
+ new ShapeRef(router, polygon, 663);
+
+ // shapeRef664
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 3076.29);
+ polygon.ps[1] = Point(12021.1, 3138.29);
+ polygon.ps[2] = Point(11959.1, 3138.29);
+ polygon.ps[3] = Point(11959.1, 3076.29);
+ new ShapeRef(router, polygon, 664);
+
+ // shapeRef665
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 2614.29);
+ polygon.ps[1] = Point(12021.1, 2676.29);
+ polygon.ps[2] = Point(11959.1, 2676.29);
+ polygon.ps[3] = Point(11959.1, 2614.29);
+ new ShapeRef(router, polygon, 665);
+
+ // shapeRef666
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 2449.29);
+ polygon.ps[1] = Point(12021.1, 2511.29);
+ polygon.ps[2] = Point(11959.1, 2511.29);
+ polygon.ps[3] = Point(11959.1, 2449.29);
+ new ShapeRef(router, polygon, 666);
+
+ // shapeRef667
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 2185.29);
+ polygon.ps[1] = Point(12021.1, 2247.29);
+ polygon.ps[2] = Point(11959.1, 2247.29);
+ polygon.ps[3] = Point(11959.1, 2185.29);
+ new ShapeRef(router, polygon, 667);
+
+ // shapeRef668
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(294, 10717.3);
+ polygon.ps[1] = Point(294, 10779.3);
+ polygon.ps[2] = Point(232, 10779.3);
+ polygon.ps[3] = Point(232, 10717.3);
+ new ShapeRef(router, polygon, 668);
+
+ // shapeRef669
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(657, 10717.3);
+ polygon.ps[1] = Point(657, 10779.3);
+ polygon.ps[2] = Point(595, 10779.3);
+ polygon.ps[3] = Point(595, 10717.3);
+ new ShapeRef(router, polygon, 669);
+
+ // shapeRef670
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1449, 10717.3);
+ polygon.ps[1] = Point(1449, 10779.3);
+ polygon.ps[2] = Point(1387, 10779.3);
+ polygon.ps[3] = Point(1387, 10717.3);
+ new ShapeRef(router, polygon, 670);
+
+ // shapeRef671
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2076, 10717.3);
+ polygon.ps[1] = Point(2076, 10779.3);
+ polygon.ps[2] = Point(2014, 10779.3);
+ polygon.ps[3] = Point(2014, 10717.3);
+ new ShapeRef(router, polygon, 671);
+
+ // shapeRef672
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(294, 11667.9);
+ polygon.ps[1] = Point(294, 11729.9);
+ polygon.ps[2] = Point(232, 11729.9);
+ polygon.ps[3] = Point(232, 11667.9);
+ new ShapeRef(router, polygon, 672);
+
+ // shapeRef673
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(657, 11667.9);
+ polygon.ps[1] = Point(657, 11729.9);
+ polygon.ps[2] = Point(595, 11729.9);
+ polygon.ps[3] = Point(595, 11667.9);
+ new ShapeRef(router, polygon, 673);
+
+ // shapeRef674
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(294, 11114.6);
+ polygon.ps[1] = Point(294, 11176.6);
+ polygon.ps[2] = Point(232, 11176.6);
+ polygon.ps[3] = Point(232, 11114.6);
+ new ShapeRef(router, polygon, 674);
+
+ // shapeRef675
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(657, 11114.6);
+ polygon.ps[1] = Point(657, 11176.6);
+ polygon.ps[2] = Point(595, 11176.6);
+ polygon.ps[3] = Point(595, 11114.6);
+ new ShapeRef(router, polygon, 675);
+
+ // shapeRef676
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1251, 11114.6);
+ polygon.ps[1] = Point(1251, 11176.6);
+ polygon.ps[2] = Point(1189, 11176.6);
+ polygon.ps[3] = Point(1189, 11114.6);
+ new ShapeRef(router, polygon, 676);
+
+ // shapeRef677
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 11114.6);
+ polygon.ps[1] = Point(1779, 11176.6);
+ polygon.ps[2] = Point(1717, 11176.6);
+ polygon.ps[3] = Point(1717, 11114.6);
+ new ShapeRef(router, polygon, 677);
+
+ // shapeRef678
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2439, 11114.6);
+ polygon.ps[1] = Point(2439, 11176.6);
+ polygon.ps[2] = Point(2377, 11176.6);
+ polygon.ps[3] = Point(2377, 11114.6);
+ new ShapeRef(router, polygon, 678);
+
+ // shapeRef679
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3066, 11114.6);
+ polygon.ps[1] = Point(3066, 11176.6);
+ polygon.ps[2] = Point(3004, 11176.6);
+ polygon.ps[3] = Point(3004, 11114.6);
+ new ShapeRef(router, polygon, 679);
+
+ // shapeRef680
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1020, 9677.42);
+ polygon.ps[1] = Point(1020, 9739.42);
+ polygon.ps[2] = Point(958, 9739.42);
+ polygon.ps[3] = Point(958, 9677.42);
+ new ShapeRef(router, polygon, 680);
+
+ // shapeRef681
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2142, 9677.42);
+ polygon.ps[1] = Point(2142, 9739.42);
+ polygon.ps[2] = Point(2080, 9739.42);
+ polygon.ps[3] = Point(2080, 9677.42);
+ new ShapeRef(router, polygon, 681);
+
+ // shapeRef682
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1020, 10308);
+ polygon.ps[1] = Point(1020, 10370);
+ polygon.ps[2] = Point(958, 10370);
+ polygon.ps[3] = Point(958, 10308);
+ new ShapeRef(router, polygon, 682);
+
+ // shapeRef683
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 10176);
+ polygon.ps[1] = Point(492, 10238);
+ polygon.ps[2] = Point(430, 10238);
+ polygon.ps[3] = Point(430, 10176);
+ new ShapeRef(router, polygon, 683);
+
+ // shapeRef684
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1020, 10176);
+ polygon.ps[1] = Point(1020, 10238);
+ polygon.ps[2] = Point(958, 10238);
+ polygon.ps[3] = Point(958, 10176);
+ new ShapeRef(router, polygon, 684);
+
+ // shapeRef685
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1548, 10176);
+ polygon.ps[1] = Point(1548, 10238);
+ polygon.ps[2] = Point(1486, 10238);
+ polygon.ps[3] = Point(1486, 10176);
+ new ShapeRef(router, polygon, 685);
+
+ // shapeRef686
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2142, 10176);
+ polygon.ps[1] = Point(2142, 10238);
+ polygon.ps[2] = Point(2080, 10238);
+ polygon.ps[3] = Point(2080, 10176);
+ new ShapeRef(router, polygon, 686);
+
+ // shapeRef687
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 6384.51);
+ polygon.ps[1] = Point(10972.2, 6446.51);
+ polygon.ps[2] = Point(10910.2, 6446.51);
+ polygon.ps[3] = Point(10910.2, 6384.51);
+ new ShapeRef(router, polygon, 687);
+
+ // shapeRef688
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 5725.9);
+ polygon.ps[1] = Point(10972.2, 5787.9);
+ polygon.ps[2] = Point(10910.2, 5787.9);
+ polygon.ps[3] = Point(10910.2, 5725.9);
+ new ShapeRef(router, polygon, 688);
+
+ // shapeRef689
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 5382.67);
+ polygon.ps[1] = Point(10972.2, 5444.67);
+ polygon.ps[2] = Point(10910.2, 5444.67);
+ polygon.ps[3] = Point(10910.2, 5382.67);
+ new ShapeRef(router, polygon, 689);
+
+ // shapeRef690
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 5138.4);
+ polygon.ps[1] = Point(10972.2, 5200.4);
+ polygon.ps[2] = Point(10910.2, 5200.4);
+ polygon.ps[3] = Point(10910.2, 5138.4);
+ new ShapeRef(router, polygon, 690);
+
+ // shapeRef691
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10972.2, 4643.4);
+ polygon.ps[1] = Point(10972.2, 4705.4);
+ polygon.ps[2] = Point(10910.2, 4705.4);
+ polygon.ps[3] = Point(10910.2, 4643.4);
+ new ShapeRef(router, polygon, 691);
+
+ // shapeRef692
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11236.2, 5966.59);
+ polygon.ps[1] = Point(11236.2, 6028.59);
+ polygon.ps[2] = Point(11174.2, 6028.59);
+ polygon.ps[3] = Point(11174.2, 5966.59);
+ new ShapeRef(router, polygon, 692);
+
+ // shapeRef693
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11236.2, 6384.51);
+ polygon.ps[1] = Point(11236.2, 6446.51);
+ polygon.ps[2] = Point(11174.2, 6446.51);
+ polygon.ps[3] = Point(11174.2, 6384.51);
+ new ShapeRef(router, polygon, 693);
+
+ // shapeRef694
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 6757.21);
+ polygon.ps[1] = Point(11658.1, 6819.21);
+ polygon.ps[2] = Point(11596.1, 6819.21);
+ polygon.ps[3] = Point(11596.1, 6757.21);
+ new ShapeRef(router, polygon, 694);
+
+ // shapeRef695
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 6417.51);
+ polygon.ps[1] = Point(10013.7, 6479.51);
+ polygon.ps[2] = Point(9951.69, 6479.51);
+ polygon.ps[3] = Point(9951.69, 6417.51);
+ new ShapeRef(router, polygon, 695);
+
+ // shapeRef696
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 6058.29);
+ polygon.ps[1] = Point(10013.7, 6120.29);
+ polygon.ps[2] = Point(9951.69, 6120.29);
+ polygon.ps[3] = Point(9951.69, 6058.29);
+ new ShapeRef(router, polygon, 696);
+
+ // shapeRef697
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 4478.4);
+ polygon.ps[1] = Point(10013.7, 4540.4);
+ polygon.ps[2] = Point(9951.69, 4540.4);
+ polygon.ps[3] = Point(9951.69, 4478.4);
+ new ShapeRef(router, polygon, 697);
+
+ // shapeRef698
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 3534.51);
+ polygon.ps[1] = Point(10013.7, 3596.51);
+ polygon.ps[2] = Point(9951.69, 3596.51);
+ polygon.ps[3] = Point(9951.69, 3534.51);
+ new ShapeRef(router, polygon, 698);
+
+ // shapeRef699
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 6384.51);
+ polygon.ps[1] = Point(11658.1, 6446.51);
+ polygon.ps[2] = Point(11596.1, 6446.51);
+ polygon.ps[3] = Point(11596.1, 6384.51);
+ new ShapeRef(router, polygon, 699);
+
+ // shapeRef700
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 5725.9);
+ polygon.ps[1] = Point(11658.1, 5787.9);
+ polygon.ps[2] = Point(11596.1, 5787.9);
+ polygon.ps[3] = Point(11596.1, 5725.9);
+ new ShapeRef(router, polygon, 700);
+
+ // shapeRef701
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 5382.67);
+ polygon.ps[1] = Point(11658.1, 5444.67);
+ polygon.ps[2] = Point(11596.1, 5444.67);
+ polygon.ps[3] = Point(11596.1, 5382.67);
+ new ShapeRef(router, polygon, 701);
+
+ // shapeRef702
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 5138.4);
+ polygon.ps[1] = Point(11658.1, 5200.4);
+ polygon.ps[2] = Point(11596.1, 5200.4);
+ polygon.ps[3] = Point(11596.1, 5138.4);
+ new ShapeRef(router, polygon, 702);
+
+ // shapeRef703
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 4577.4);
+ polygon.ps[1] = Point(11658.1, 4639.4);
+ polygon.ps[2] = Point(11596.1, 4639.4);
+ polygon.ps[3] = Point(11596.1, 4577.4);
+ new ShapeRef(router, polygon, 703);
+
+ // shapeRef704
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11658.1, 3534.51);
+ polygon.ps[1] = Point(11658.1, 3596.51);
+ polygon.ps[2] = Point(11596.1, 3596.51);
+ polygon.ps[3] = Point(11596.1, 3534.51);
+ new ShapeRef(router, polygon, 704);
+
+ // shapeRef705
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11988.1, 5006.4);
+ polygon.ps[1] = Point(11988.1, 5068.4);
+ polygon.ps[2] = Point(11926.1, 5068.4);
+ polygon.ps[3] = Point(11926.1, 5006.4);
+ new ShapeRef(router, polygon, 705);
+
+ // shapeRef706
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12219.1, 3996.51);
+ polygon.ps[1] = Point(12219.1, 4058.51);
+ polygon.ps[2] = Point(12157.1, 4058.51);
+ polygon.ps[3] = Point(12157.1, 3996.51);
+ new ShapeRef(router, polygon, 706);
+
+ // shapeRef707
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12219.1, 5006.4);
+ polygon.ps[1] = Point(12219.1, 5068.4);
+ polygon.ps[2] = Point(12157.1, 5068.4);
+ polygon.ps[3] = Point(12157.1, 5006.4);
+ new ShapeRef(router, polygon, 707);
+
+ // shapeRef708
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12219.1, 3534.51);
+ polygon.ps[1] = Point(12219.1, 3596.51);
+ polygon.ps[2] = Point(12157.1, 3596.51);
+ polygon.ps[3] = Point(12157.1, 3534.51);
+ new ShapeRef(router, polygon, 708);
+
+ // shapeRef709
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12986.5, 3534.51);
+ polygon.ps[1] = Point(12986.5, 3596.51);
+ polygon.ps[2] = Point(12924.5, 3596.51);
+ polygon.ps[3] = Point(12924.5, 3534.51);
+ new ShapeRef(router, polygon, 709);
+
+ // shapeRef710
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17871.5, 2044.29);
+ polygon.ps[1] = Point(17871.5, 2106.29);
+ polygon.ps[2] = Point(17809.5, 2106.29);
+ polygon.ps[3] = Point(17809.5, 2044.29);
+ new ShapeRef(router, polygon, 710);
+
+ // shapeRef711
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17640.5, 2044.29);
+ polygon.ps[1] = Point(17640.5, 2106.29);
+ polygon.ps[2] = Point(17578.5, 2106.29);
+ polygon.ps[3] = Point(17578.5, 2044.29);
+ new ShapeRef(router, polygon, 711);
+
+ // shapeRef712
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17376.5, 2044.29);
+ polygon.ps[1] = Point(17376.5, 2106.29);
+ polygon.ps[2] = Point(17314.5, 2106.29);
+ polygon.ps[3] = Point(17314.5, 2044.29);
+ new ShapeRef(router, polygon, 712);
+
+ // shapeRef713
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17017.8, 2044.29);
+ polygon.ps[1] = Point(17017.8, 2106.29);
+ polygon.ps[2] = Point(16955.8, 2106.29);
+ polygon.ps[3] = Point(16955.8, 2044.29);
+ new ShapeRef(router, polygon, 713);
+
+ // shapeRef714
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 2044.29);
+ polygon.ps[1] = Point(16753.8, 2106.29);
+ polygon.ps[2] = Point(16691.8, 2106.29);
+ polygon.ps[3] = Point(16691.8, 2044.29);
+ new ShapeRef(router, polygon, 714);
+
+ // shapeRef715
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16588.8, 2044.29);
+ polygon.ps[1] = Point(16588.8, 2106.29);
+ polygon.ps[2] = Point(16526.8, 2106.29);
+ polygon.ps[3] = Point(16526.8, 2044.29);
+ new ShapeRef(router, polygon, 715);
+
+ // shapeRef716
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16262.6, 2044.29);
+ polygon.ps[1] = Point(16262.6, 2106.29);
+ polygon.ps[2] = Point(16200.6, 2106.29);
+ polygon.ps[3] = Point(16200.6, 2044.29);
+ new ShapeRef(router, polygon, 716);
+
+ // shapeRef717
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15932.6, 2044.29);
+ polygon.ps[1] = Point(15932.6, 2106.29);
+ polygon.ps[2] = Point(15870.6, 2106.29);
+ polygon.ps[3] = Point(15870.6, 2044.29);
+ new ShapeRef(router, polygon, 717);
+
+ // shapeRef718
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 2044.29);
+ polygon.ps[1] = Point(15270.5, 2106.29);
+ polygon.ps[2] = Point(15208.5, 2106.29);
+ polygon.ps[3] = Point(15208.5, 2044.29);
+ new ShapeRef(router, polygon, 718);
+
+ // shapeRef719
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 1780.29);
+ polygon.ps[1] = Point(15270.5, 1842.29);
+ polygon.ps[2] = Point(15208.5, 1842.29);
+ polygon.ps[3] = Point(15208.5, 1780.29);
+ new ShapeRef(router, polygon, 719);
+
+ // shapeRef720
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 10651.3);
+ polygon.ps[1] = Point(18756.5, 10713.3);
+ polygon.ps[2] = Point(18694.5, 10713.3);
+ polygon.ps[3] = Point(18694.5, 10651.3);
+ new ShapeRef(router, polygon, 720);
+
+ // shapeRef721
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 10242);
+ polygon.ps[1] = Point(18756.5, 10304);
+ polygon.ps[2] = Point(18694.5, 10304);
+ polygon.ps[3] = Point(18694.5, 10242);
+ new ShapeRef(router, polygon, 721);
+
+ // shapeRef722
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 9644.42);
+ polygon.ps[1] = Point(18756.5, 9706.42);
+ polygon.ps[2] = Point(18694.5, 9706.42);
+ polygon.ps[3] = Point(18694.5, 9644.42);
+ new ShapeRef(router, polygon, 722);
+
+ // shapeRef723
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 9149.42);
+ polygon.ps[1] = Point(18756.5, 9211.42);
+ polygon.ps[2] = Point(18694.5, 9211.42);
+ polygon.ps[3] = Point(18694.5, 9149.42);
+ new ShapeRef(router, polygon, 723);
+
+ // shapeRef724
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 8611.22);
+ polygon.ps[1] = Point(18756.5, 8673.22);
+ polygon.ps[2] = Point(18694.5, 8673.22);
+ polygon.ps[3] = Point(18694.5, 8611.22);
+ new ShapeRef(router, polygon, 724);
+
+ // shapeRef725
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 8218.99);
+ polygon.ps[1] = Point(18756.5, 8280.99);
+ polygon.ps[2] = Point(18694.5, 8280.99);
+ polygon.ps[3] = Point(18694.5, 8218.99);
+ new ShapeRef(router, polygon, 725);
+
+ // shapeRef726
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 7581.79);
+ polygon.ps[1] = Point(18756.5, 7643.79);
+ polygon.ps[2] = Point(18694.5, 7643.79);
+ polygon.ps[3] = Point(18694.5, 7581.79);
+ new ShapeRef(router, polygon, 726);
+
+ // shapeRef727
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 6757.21);
+ polygon.ps[1] = Point(18756.5, 6819.21);
+ polygon.ps[2] = Point(18694.5, 6819.21);
+ polygon.ps[3] = Point(18694.5, 6757.21);
+ new ShapeRef(router, polygon, 727);
+
+ // shapeRef728
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3957, 394.265);
+ polygon.ps[1] = Point(3957, 456.265);
+ polygon.ps[2] = Point(3895, 456.265);
+ polygon.ps[3] = Point(3895, 394.265);
+ new ShapeRef(router, polygon, 728);
+
+ // shapeRef729
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4254, 394.265);
+ polygon.ps[1] = Point(4254, 456.265);
+ polygon.ps[2] = Point(4192, 456.265);
+ polygon.ps[3] = Point(4192, 394.265);
+ new ShapeRef(router, polygon, 729);
+
+ // shapeRef730
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 394.265);
+ polygon.ps[1] = Point(4584, 456.265);
+ polygon.ps[2] = Point(4522, 456.265);
+ polygon.ps[3] = Point(4522, 394.265);
+ new ShapeRef(router, polygon, 730);
+
+ // shapeRef731
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4947, 394.265);
+ polygon.ps[1] = Point(4947, 456.265);
+ polygon.ps[2] = Point(4885, 456.265);
+ polygon.ps[3] = Point(4885, 394.265);
+ new ShapeRef(router, polygon, 731);
+
+ // shapeRef732
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5659.1, 394.265);
+ polygon.ps[1] = Point(5659.1, 456.265);
+ polygon.ps[2] = Point(5597.1, 456.265);
+ polygon.ps[3] = Point(5597.1, 394.265);
+ new ShapeRef(router, polygon, 732);
+
+ // shapeRef733
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5277, 282.265);
+ polygon.ps[1] = Point(5277, 344.265);
+ polygon.ps[2] = Point(5215, 344.265);
+ polygon.ps[3] = Point(5215, 282.265);
+ new ShapeRef(router, polygon, 733);
+
+ // shapeRef734
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5659.1, 282.265);
+ polygon.ps[1] = Point(5659.1, 344.265);
+ polygon.ps[2] = Point(5597.1, 344.265);
+ polygon.ps[3] = Point(5597.1, 282.265);
+ new ShapeRef(router, polygon, 734);
+
+ // shapeRef735
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5857.1, 282.265);
+ polygon.ps[1] = Point(5857.1, 344.265);
+ polygon.ps[2] = Point(5795.1, 344.265);
+ polygon.ps[3] = Point(5795.1, 282.265);
+ new ShapeRef(router, polygon, 735);
+
+ // shapeRef736
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6121.1, 282.265);
+ polygon.ps[1] = Point(6121.1, 344.265);
+ polygon.ps[2] = Point(6059.1, 344.265);
+ polygon.ps[3] = Point(6059.1, 282.265);
+ new ShapeRef(router, polygon, 736);
+
+ // shapeRef737
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6319.1, 282.265);
+ polygon.ps[1] = Point(6319.1, 344.265);
+ polygon.ps[2] = Point(6257.1, 344.265);
+ polygon.ps[3] = Point(6257.1, 282.265);
+ new ShapeRef(router, polygon, 737);
+
+ // shapeRef738
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6616.1, 282.265);
+ polygon.ps[1] = Point(6616.1, 344.265);
+ polygon.ps[2] = Point(6554.1, 344.265);
+ polygon.ps[3] = Point(6554.1, 282.265);
+ new ShapeRef(router, polygon, 738);
+
+ // shapeRef739
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6880.1, 282.265);
+ polygon.ps[1] = Point(6880.1, 344.265);
+ polygon.ps[2] = Point(6818.1, 344.265);
+ polygon.ps[3] = Point(6818.1, 282.265);
+ new ShapeRef(router, polygon, 739);
+
+ // shapeRef740
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7210.1, 282.265);
+ polygon.ps[1] = Point(7210.1, 344.265);
+ polygon.ps[2] = Point(7148.1, 344.265);
+ polygon.ps[3] = Point(7148.1, 282.265);
+ new ShapeRef(router, polygon, 740);
+
+ // shapeRef741
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7573.1, 282.265);
+ polygon.ps[1] = Point(7573.1, 344.265);
+ polygon.ps[2] = Point(7511.1, 344.265);
+ polygon.ps[3] = Point(7511.1, 282.265);
+ new ShapeRef(router, polygon, 741);
+
+ // shapeRef742
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12186.1, 11984.3);
+ polygon.ps[1] = Point(12186.1, 12046.3);
+ polygon.ps[2] = Point(12124.1, 12046.3);
+ polygon.ps[3] = Point(12124.1, 11984.3);
+ new ShapeRef(router, polygon, 742);
+
+ // shapeRef743
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11889.1, 11984.3);
+ polygon.ps[1] = Point(11889.1, 12046.3);
+ polygon.ps[2] = Point(11827.1, 12046.3);
+ polygon.ps[3] = Point(11827.1, 11984.3);
+ new ShapeRef(router, polygon, 743);
+
+ // shapeRef744
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11889.1, 11355.8);
+ polygon.ps[1] = Point(11889.1, 11417.8);
+ polygon.ps[2] = Point(11827.1, 11417.8);
+ polygon.ps[3] = Point(11827.1, 11355.8);
+ new ShapeRef(router, polygon, 744);
+
+ // shapeRef745
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 11984.3);
+ polygon.ps[1] = Point(11460.1, 12046.3);
+ polygon.ps[2] = Point(11398.1, 12046.3);
+ polygon.ps[3] = Point(11398.1, 11984.3);
+ new ShapeRef(router, polygon, 745);
+
+ // shapeRef746
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 11355.8);
+ polygon.ps[1] = Point(11460.1, 11417.8);
+ polygon.ps[2] = Point(11398.1, 11417.8);
+ polygon.ps[3] = Point(11398.1, 11355.8);
+ new ShapeRef(router, polygon, 746);
+
+ // shapeRef747
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 10916.6);
+ polygon.ps[1] = Point(11460.1, 10978.6);
+ polygon.ps[2] = Point(11398.1, 10978.6);
+ polygon.ps[3] = Point(11398.1, 10916.6);
+ new ShapeRef(router, polygon, 747);
+
+ // shapeRef748
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 10506);
+ polygon.ps[1] = Point(11460.1, 10568);
+ polygon.ps[2] = Point(11398.1, 10568);
+ polygon.ps[3] = Point(11398.1, 10506);
+ new ShapeRef(router, polygon, 748);
+
+ // shapeRef749
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11889.1, 10209);
+ polygon.ps[1] = Point(11889.1, 10271);
+ polygon.ps[2] = Point(11827.1, 10271);
+ polygon.ps[3] = Point(11827.1, 10209);
+ new ShapeRef(router, polygon, 749);
+
+ // shapeRef750
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 10209);
+ polygon.ps[1] = Point(11460.1, 10271);
+ polygon.ps[2] = Point(11398.1, 10271);
+ polygon.ps[3] = Point(11398.1, 10209);
+ new ShapeRef(router, polygon, 750);
+
+ // shapeRef751
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 9182.42);
+ polygon.ps[1] = Point(11460.1, 9244.42);
+ polygon.ps[2] = Point(11398.1, 9244.42);
+ polygon.ps[3] = Point(11398.1, 9182.42);
+ new ShapeRef(router, polygon, 751);
+
+ // shapeRef752
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12920.5, 9182.42);
+ polygon.ps[1] = Point(12920.5, 9244.42);
+ polygon.ps[2] = Point(12858.5, 9244.42);
+ polygon.ps[3] = Point(12858.5, 9182.42);
+ new ShapeRef(router, polygon, 752);
+
+ // shapeRef753
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4683, 4511.4);
+ polygon.ps[1] = Point(4683, 4573.4);
+ polygon.ps[2] = Point(4621, 4573.4);
+ polygon.ps[3] = Point(4621, 4511.4);
+ new ShapeRef(router, polygon, 753);
+
+ // shapeRef754
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17706.5, 11829.9);
+ polygon.ps[1] = Point(17706.5, 11891.9);
+ polygon.ps[2] = Point(17644.5, 11891.9);
+ polygon.ps[3] = Point(17644.5, 11829.9);
+ new ShapeRef(router, polygon, 754);
+
+ // shapeRef755
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17409.5, 11829.9);
+ polygon.ps[1] = Point(17409.5, 11891.9);
+ polygon.ps[2] = Point(17347.5, 11891.9);
+ polygon.ps[3] = Point(17347.5, 11829.9);
+ new ShapeRef(router, polygon, 755);
+
+ // shapeRef756
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16984.8, 11829.9);
+ polygon.ps[1] = Point(16984.8, 11891.9);
+ polygon.ps[2] = Point(16922.8, 11891.9);
+ polygon.ps[3] = Point(16922.8, 11829.9);
+ new ShapeRef(router, polygon, 756);
+
+ // shapeRef757
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16295.6, 2548.29);
+ polygon.ps[1] = Point(16295.6, 2610.29);
+ polygon.ps[2] = Point(16233.6, 2610.29);
+ polygon.ps[3] = Point(16233.6, 2548.29);
+ new ShapeRef(router, polygon, 757);
+
+ // shapeRef758
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15965.6, 2548.29);
+ polygon.ps[1] = Point(15965.6, 2610.29);
+ polygon.ps[2] = Point(15903.6, 2610.29);
+ polygon.ps[3] = Point(15903.6, 2548.29);
+ new ShapeRef(router, polygon, 758);
+
+ // shapeRef759
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 2548.29);
+ polygon.ps[1] = Point(15270.5, 2610.29);
+ polygon.ps[2] = Point(15208.5, 2610.29);
+ polygon.ps[3] = Point(15208.5, 2548.29);
+ new ShapeRef(router, polygon, 759);
+
+ // shapeRef760
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14629, 2548.29);
+ polygon.ps[1] = Point(14629, 2610.29);
+ polygon.ps[2] = Point(14567, 2610.29);
+ polygon.ps[3] = Point(14567, 2548.29);
+ new ShapeRef(router, polygon, 760);
+
+ // shapeRef761
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13837, 2845.29);
+ polygon.ps[1] = Point(13837, 2907.29);
+ polygon.ps[2] = Point(13775, 2907.29);
+ polygon.ps[3] = Point(13775, 2845.29);
+ new ShapeRef(router, polygon, 761);
+
+ // shapeRef762
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14200, 2548.29);
+ polygon.ps[1] = Point(14200, 2610.29);
+ polygon.ps[2] = Point(14138, 2610.29);
+ polygon.ps[3] = Point(14138, 2548.29);
+ new ShapeRef(router, polygon, 762);
+
+ // shapeRef763
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18498.5, 9644.42);
+ polygon.ps[1] = Point(18498.5, 9706.42);
+ polygon.ps[2] = Point(18436.5, 9706.42);
+ polygon.ps[3] = Point(18436.5, 9644.42);
+ new ShapeRef(router, polygon, 763);
+
+ // shapeRef764
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18300.5, 9644.42);
+ polygon.ps[1] = Point(18300.5, 9706.42);
+ polygon.ps[2] = Point(18238.5, 9706.42);
+ polygon.ps[3] = Point(18238.5, 9644.42);
+ new ShapeRef(router, polygon, 764);
+
+ // shapeRef765
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18069.5, 9644.42);
+ polygon.ps[1] = Point(18069.5, 9706.42);
+ polygon.ps[2] = Point(18007.5, 9706.42);
+ polygon.ps[3] = Point(18007.5, 9644.42);
+ new ShapeRef(router, polygon, 765);
+
+ // shapeRef766
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17838.5, 9644.42);
+ polygon.ps[1] = Point(17838.5, 9706.42);
+ polygon.ps[2] = Point(17776.5, 9706.42);
+ polygon.ps[3] = Point(17776.5, 9644.42);
+ new ShapeRef(router, polygon, 766);
+
+ // shapeRef767
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17673.5, 9644.42);
+ polygon.ps[1] = Point(17673.5, 9706.42);
+ polygon.ps[2] = Point(17611.5, 9706.42);
+ polygon.ps[3] = Point(17611.5, 9644.42);
+ new ShapeRef(router, polygon, 767);
+
+ // shapeRef768
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17442.5, 9644.42);
+ polygon.ps[1] = Point(17442.5, 9706.42);
+ polygon.ps[2] = Point(17380.5, 9706.42);
+ polygon.ps[3] = Point(17380.5, 9644.42);
+ new ShapeRef(router, polygon, 768);
+
+ // shapeRef769
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 9644.42);
+ polygon.ps[1] = Point(17083.8, 9706.42);
+ polygon.ps[2] = Point(17021.8, 9706.42);
+ polygon.ps[3] = Point(17021.8, 9644.42);
+ new ShapeRef(router, polygon, 769);
+
+ // shapeRef770
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 9083.42);
+ polygon.ps[1] = Point(17083.8, 9145.42);
+ polygon.ps[2] = Point(17021.8, 9145.42);
+ polygon.ps[3] = Point(17021.8, 9083.42);
+ new ShapeRef(router, polygon, 770);
+
+ // shapeRef771
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 8449.99);
+ polygon.ps[1] = Point(17083.8, 8511.99);
+ polygon.ps[2] = Point(17021.8, 8511.99);
+ polygon.ps[3] = Point(17021.8, 8449.99);
+ new ShapeRef(router, polygon, 771);
+
+ // shapeRef772
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 7878.79);
+ polygon.ps[1] = Point(17083.8, 7940.79);
+ polygon.ps[2] = Point(17021.8, 7940.79);
+ polygon.ps[3] = Point(17021.8, 7878.79);
+ new ShapeRef(router, polygon, 772);
+
+ // shapeRef773
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17310.5, 1879.29);
+ polygon.ps[1] = Point(17310.5, 1941.29);
+ polygon.ps[2] = Point(17248.5, 1941.29);
+ polygon.ps[3] = Point(17248.5, 1879.29);
+ new ShapeRef(router, polygon, 773);
+
+ // shapeRef774
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17574.5, 1513.29);
+ polygon.ps[1] = Point(17574.5, 1575.29);
+ polygon.ps[2] = Point(17512.5, 1575.29);
+ polygon.ps[3] = Point(17512.5, 1513.29);
+ new ShapeRef(router, polygon, 774);
+
+ // shapeRef775
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17310.5, 1513.29);
+ polygon.ps[1] = Point(17310.5, 1575.29);
+ polygon.ps[2] = Point(17248.5, 1575.29);
+ polygon.ps[3] = Point(17248.5, 1513.29);
+ new ShapeRef(router, polygon, 775);
+
+ // shapeRef776
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16687.8, 1513.29);
+ polygon.ps[1] = Point(16687.8, 1575.29);
+ polygon.ps[2] = Point(16625.8, 1575.29);
+ polygon.ps[3] = Point(16625.8, 1513.29);
+ new ShapeRef(router, polygon, 776);
+
+ // shapeRef777
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16687.8, 1249.29);
+ polygon.ps[1] = Point(16687.8, 1311.29);
+ polygon.ps[2] = Point(16625.8, 1311.29);
+ polygon.ps[3] = Point(16625.8, 1249.29);
+ new ShapeRef(router, polygon, 777);
+
+ // shapeRef778
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16918.8, 1249.29);
+ polygon.ps[1] = Point(16918.8, 1311.29);
+ polygon.ps[2] = Point(16856.8, 1311.29);
+ polygon.ps[3] = Point(16856.8, 1249.29);
+ new ShapeRef(router, polygon, 778);
+
+ // shapeRef779
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17310.5, 1018.29);
+ polygon.ps[1] = Point(17310.5, 1080.29);
+ polygon.ps[2] = Point(17248.5, 1080.29);
+ polygon.ps[3] = Point(17248.5, 1018.29);
+ new ShapeRef(router, polygon, 779);
+
+ // shapeRef780
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17310.5, 645.091);
+ polygon.ps[1] = Point(17310.5, 707.091);
+ polygon.ps[2] = Point(17248.5, 707.091);
+ polygon.ps[3] = Point(17248.5, 645.091);
+ new ShapeRef(router, polygon, 780);
+
+ // shapeRef781
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16918.8, 427.265);
+ polygon.ps[1] = Point(16918.8, 489.265);
+ polygon.ps[2] = Point(16856.8, 489.265);
+ polygon.ps[3] = Point(16856.8, 427.265);
+ new ShapeRef(router, polygon, 781);
+
+ // shapeRef782
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16687.8, 427.265);
+ polygon.ps[1] = Point(16687.8, 489.265);
+ polygon.ps[2] = Point(16625.8, 489.265);
+ polygon.ps[3] = Point(16625.8, 427.265);
+ new ShapeRef(router, polygon, 782);
+
+ // shapeRef783
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5890.1, 12427.7);
+ polygon.ps[1] = Point(5890.1, 12489.7);
+ polygon.ps[2] = Point(5828.1, 12489.7);
+ polygon.ps[3] = Point(5828.1, 12427.7);
+ new ShapeRef(router, polygon, 783);
+
+ // shapeRef784
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5593.1, 12427.7);
+ polygon.ps[1] = Point(5593.1, 12489.7);
+ polygon.ps[2] = Point(5531.1, 12489.7);
+ polygon.ps[3] = Point(5531.1, 12427.7);
+ new ShapeRef(router, polygon, 784);
+
+ // shapeRef785
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5178, 12427.7);
+ polygon.ps[1] = Point(5178, 12489.7);
+ polygon.ps[2] = Point(5116, 12489.7);
+ polygon.ps[3] = Point(5116, 12427.7);
+ new ShapeRef(router, polygon, 785);
+
+ // shapeRef786
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 11796.9);
+ polygon.ps[1] = Point(4980, 11858.9);
+ polygon.ps[2] = Point(4918, 11858.9);
+ polygon.ps[3] = Point(4918, 11796.9);
+ new ShapeRef(router, polygon, 786);
+
+ // shapeRef787
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 11147.6);
+ polygon.ps[1] = Point(4980, 11209.6);
+ polygon.ps[2] = Point(4918, 11209.6);
+ polygon.ps[3] = Point(4918, 11147.6);
+ new ShapeRef(router, polygon, 787);
+
+ // shapeRef788
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 10717.3);
+ polygon.ps[1] = Point(4980, 10779.3);
+ polygon.ps[2] = Point(4918, 10779.3);
+ polygon.ps[3] = Point(4918, 10717.3);
+ new ShapeRef(router, polygon, 788);
+
+ // shapeRef789
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 10110);
+ polygon.ps[1] = Point(4980, 10172);
+ polygon.ps[2] = Point(4918, 10172);
+ polygon.ps[3] = Point(4918, 10110);
+ new ShapeRef(router, polygon, 789);
+
+ // shapeRef790
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4617, 10110);
+ polygon.ps[1] = Point(4617, 10172);
+ polygon.ps[2] = Point(4555, 10172);
+ polygon.ps[3] = Point(4555, 10110);
+ new ShapeRef(router, polygon, 790);
+
+ // shapeRef791
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4320, 10341);
+ polygon.ps[1] = Point(4320, 10403);
+ polygon.ps[2] = Point(4258, 10403);
+ polygon.ps[3] = Point(4258, 10341);
+ new ShapeRef(router, polygon, 791);
+
+ // shapeRef792
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4617, 9545.42);
+ polygon.ps[1] = Point(4617, 9607.42);
+ polygon.ps[2] = Point(4555, 9607.42);
+ polygon.ps[3] = Point(4555, 9545.42);
+ new ShapeRef(router, polygon, 792);
+
+ // shapeRef793
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3429, 10618.3);
+ polygon.ps[1] = Point(3429, 10680.3);
+ polygon.ps[2] = Point(3367, 10680.3);
+ polygon.ps[3] = Point(3367, 10618.3);
+ new ShapeRef(router, polygon, 793);
+
+ // shapeRef794
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 10618.3);
+ polygon.ps[1] = Point(4056, 10680.3);
+ polygon.ps[2] = Point(3994, 10680.3);
+ polygon.ps[3] = Point(3994, 10618.3);
+ new ShapeRef(router, polygon, 794);
+
+ // shapeRef795
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3429, 10275);
+ polygon.ps[1] = Point(3429, 10337);
+ polygon.ps[2] = Point(3367, 10337);
+ polygon.ps[3] = Point(3367, 10275);
+ new ShapeRef(router, polygon, 795);
+
+ // shapeRef796
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3429, 9879.02);
+ polygon.ps[1] = Point(3429, 9941.02);
+ polygon.ps[2] = Point(3367, 9941.02);
+ polygon.ps[3] = Point(3367, 9879.02);
+ new ShapeRef(router, polygon, 796);
+
+ // shapeRef797
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3429, 9380.42);
+ polygon.ps[1] = Point(3429, 9442.42);
+ polygon.ps[2] = Point(3367, 9442.42);
+ polygon.ps[3] = Point(3367, 9380.42);
+ new ShapeRef(router, polygon, 797);
+
+ // shapeRef798
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3429, 9017.42);
+ polygon.ps[1] = Point(3429, 9079.42);
+ polygon.ps[2] = Point(3367, 9079.42);
+ polygon.ps[3] = Point(3367, 9017.42);
+ new ShapeRef(router, polygon, 798);
+
+ // shapeRef799
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 10275);
+ polygon.ps[1] = Point(4056, 10337);
+ polygon.ps[2] = Point(3994, 10337);
+ polygon.ps[3] = Point(3994, 10275);
+ new ShapeRef(router, polygon, 799);
+
+ // shapeRef800
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 9879.02);
+ polygon.ps[1] = Point(4056, 9941.02);
+ polygon.ps[2] = Point(3994, 9941.02);
+ polygon.ps[3] = Point(3994, 9879.02);
+ new ShapeRef(router, polygon, 800);
+
+ // shapeRef801
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 9380.42);
+ polygon.ps[1] = Point(4056, 9442.42);
+ polygon.ps[2] = Point(3994, 9442.42);
+ polygon.ps[3] = Point(3994, 9380.42);
+ new ShapeRef(router, polygon, 801);
+
+ // shapeRef802
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 9017.42);
+ polygon.ps[1] = Point(4056, 9079.42);
+ polygon.ps[2] = Point(3994, 9079.42);
+ polygon.ps[3] = Point(3994, 9017.42);
+ new ShapeRef(router, polygon, 802);
+
+ // shapeRef803
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 8548.99);
+ polygon.ps[1] = Point(4056, 8610.99);
+ polygon.ps[2] = Point(3994, 8610.99);
+ polygon.ps[3] = Point(3994, 8548.99);
+ new ShapeRef(router, polygon, 803);
+
+ // shapeRef804
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 8142.79);
+ polygon.ps[1] = Point(4056, 8204.79);
+ polygon.ps[2] = Point(3994, 8204.79);
+ polygon.ps[3] = Point(3994, 8142.79);
+ new ShapeRef(router, polygon, 804);
+
+ // shapeRef805
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4485, 8142.79);
+ polygon.ps[1] = Point(4485, 8204.79);
+ polygon.ps[2] = Point(4423, 8204.79);
+ polygon.ps[3] = Point(4423, 8142.79);
+ new ShapeRef(router, polygon, 805);
+
+ // shapeRef806
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4485, 7614.79);
+ polygon.ps[1] = Point(4485, 7676.79);
+ polygon.ps[2] = Point(4423, 7676.79);
+ polygon.ps[3] = Point(4423, 7614.79);
+ new ShapeRef(router, polygon, 806);
+
+ // shapeRef807
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 7614.79);
+ polygon.ps[1] = Point(4056, 7676.79);
+ polygon.ps[2] = Point(3994, 7676.79);
+ polygon.ps[3] = Point(3994, 7614.79);
+ new ShapeRef(router, polygon, 807);
+
+ // shapeRef808
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3099, 9380.42);
+ polygon.ps[1] = Point(3099, 9442.42);
+ polygon.ps[2] = Point(3037, 9442.42);
+ polygon.ps[3] = Point(3037, 9380.42);
+ new ShapeRef(router, polygon, 808);
+
+ // shapeRef809
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3099, 9017.42);
+ polygon.ps[1] = Point(3099, 9079.42);
+ polygon.ps[2] = Point(3037, 9079.42);
+ polygon.ps[3] = Point(3037, 9017.42);
+ new ShapeRef(router, polygon, 809);
+
+ // shapeRef810
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3099, 8548.99);
+ polygon.ps[1] = Point(3099, 8610.99);
+ polygon.ps[2] = Point(3037, 8610.99);
+ polygon.ps[3] = Point(3037, 8548.99);
+ new ShapeRef(router, polygon, 810);
+
+ // shapeRef811
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3759, 8548.99);
+ polygon.ps[1] = Point(3759, 8610.99);
+ polygon.ps[2] = Point(3697, 8610.99);
+ polygon.ps[3] = Point(3697, 8548.99);
+ new ShapeRef(router, polygon, 811);
+
+ // shapeRef812
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3759, 8142.79);
+ polygon.ps[1] = Point(3759, 8204.79);
+ polygon.ps[2] = Point(3697, 8204.79);
+ polygon.ps[3] = Point(3697, 8142.79);
+ new ShapeRef(router, polygon, 812);
+
+ // shapeRef813
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3099, 8142.79);
+ polygon.ps[1] = Point(3099, 8204.79);
+ polygon.ps[2] = Point(3037, 8204.79);
+ polygon.ps[3] = Point(3037, 8142.79);
+ new ShapeRef(router, polygon, 813);
+
+ // shapeRef814
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3099, 7614.79);
+ polygon.ps[1] = Point(3099, 7676.79);
+ polygon.ps[2] = Point(3037, 7676.79);
+ polygon.ps[3] = Point(3037, 7614.79);
+ new ShapeRef(router, polygon, 814);
+
+ // shapeRef815
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3759, 7614.79);
+ polygon.ps[1] = Point(3759, 7676.79);
+ polygon.ps[2] = Point(3697, 7676.79);
+ polygon.ps[3] = Point(3697, 7614.79);
+ new ShapeRef(router, polygon, 815);
+
+ // shapeRef816
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1614, 5933.59);
+ polygon.ps[1] = Point(1614, 5995.59);
+ polygon.ps[2] = Point(1552, 5995.59);
+ polygon.ps[3] = Point(1552, 5933.59);
+ new ShapeRef(router, polygon, 816);
+
+ // shapeRef817
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1812, 6252.51);
+ polygon.ps[1] = Point(1812, 6314.51);
+ polygon.ps[2] = Point(1750, 6314.51);
+ polygon.ps[3] = Point(1750, 6252.51);
+ new ShapeRef(router, polygon, 817);
+
+ // shapeRef818
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2175, 6252.51);
+ polygon.ps[1] = Point(2175, 6314.51);
+ polygon.ps[2] = Point(2113, 6314.51);
+ polygon.ps[3] = Point(2113, 6252.51);
+ new ShapeRef(router, polygon, 818);
+
+ // shapeRef819
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2505, 6252.51);
+ polygon.ps[1] = Point(2505, 6314.51);
+ polygon.ps[2] = Point(2443, 6314.51);
+ polygon.ps[3] = Point(2443, 6252.51);
+ new ShapeRef(router, polygon, 819);
+
+ // shapeRef820
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2934, 6252.51);
+ polygon.ps[1] = Point(2934, 6314.51);
+ polygon.ps[2] = Point(2872, 6314.51);
+ polygon.ps[3] = Point(2872, 6252.51);
+ new ShapeRef(router, polygon, 820);
+
+ // shapeRef821
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3726, 6252.51);
+ polygon.ps[1] = Point(3726, 6314.51);
+ polygon.ps[2] = Point(3664, 6314.51);
+ polygon.ps[3] = Point(3664, 6252.51);
+ new ShapeRef(router, polygon, 821);
+
+ // shapeRef822
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4287, 6252.51);
+ polygon.ps[1] = Point(4287, 6314.51);
+ polygon.ps[2] = Point(4225, 6314.51);
+ polygon.ps[3] = Point(4225, 6252.51);
+ new ShapeRef(router, polygon, 822);
+
+ // shapeRef823
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 8383.99);
+ polygon.ps[1] = Point(228, 8445.99);
+ polygon.ps[2] = Point(166, 8445.99);
+ polygon.ps[3] = Point(166, 8383.99);
+ new ShapeRef(router, polygon, 823);
+
+ // shapeRef824
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 7911.79);
+ polygon.ps[1] = Point(228, 7973.79);
+ polygon.ps[2] = Point(166, 7973.79);
+ polygon.ps[3] = Point(166, 7911.79);
+ new ShapeRef(router, polygon, 824);
+
+ // shapeRef825
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 7394.4);
+ polygon.ps[1] = Point(228, 7456.4);
+ polygon.ps[2] = Point(166, 7456.4);
+ polygon.ps[3] = Point(166, 7394.4);
+ new ShapeRef(router, polygon, 825);
+
+ // shapeRef826
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 6965.4);
+ polygon.ps[1] = Point(228, 7027.4);
+ polygon.ps[2] = Point(166, 7027.4);
+ polygon.ps[3] = Point(166, 6965.4);
+ new ShapeRef(router, polygon, 826);
+
+ // shapeRef827
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 6417.51);
+ polygon.ps[1] = Point(228, 6479.51);
+ polygon.ps[2] = Point(166, 6479.51);
+ polygon.ps[3] = Point(166, 6417.51);
+ new ShapeRef(router, polygon, 827);
+
+ // shapeRef828
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 6025.29);
+ polygon.ps[1] = Point(228, 6087.29);
+ polygon.ps[2] = Point(166, 6087.29);
+ polygon.ps[3] = Point(166, 6025.29);
+ new ShapeRef(router, polygon, 828);
+
+ // shapeRef829
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(228, 5626.9);
+ polygon.ps[1] = Point(228, 5688.9);
+ polygon.ps[2] = Point(166, 5688.9);
+ polygon.ps[3] = Point(166, 5626.9);
+ new ShapeRef(router, polygon, 829);
+
+ // shapeRef830
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 8482.99);
+ polygon.ps[1] = Point(1416, 8544.99);
+ polygon.ps[2] = Point(1354, 8544.99);
+ polygon.ps[3] = Point(1354, 8482.99);
+ new ShapeRef(router, polygon, 830);
+
+ // shapeRef831
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 6648.51);
+ polygon.ps[1] = Point(1416, 6710.51);
+ polygon.ps[2] = Point(1354, 6710.51);
+ polygon.ps[3] = Point(1354, 6648.51);
+ new ShapeRef(router, polygon, 831);
+
+ // shapeRef832
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 6252.51);
+ polygon.ps[1] = Point(1416, 6314.51);
+ polygon.ps[2] = Point(1354, 6314.51);
+ polygon.ps[3] = Point(1354, 6252.51);
+ new ShapeRef(router, polygon, 832);
+
+ // shapeRef833
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4386, 12427.7);
+ polygon.ps[1] = Point(4386, 12489.7);
+ polygon.ps[2] = Point(4324, 12489.7);
+ polygon.ps[3] = Point(4324, 12427.7);
+ new ShapeRef(router, polygon, 833);
+
+ // shapeRef834
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3693, 12427.7);
+ polygon.ps[1] = Point(3693, 12489.7);
+ polygon.ps[2] = Point(3631, 12489.7);
+ polygon.ps[3] = Point(3631, 12427.7);
+ new ShapeRef(router, polygon, 834);
+
+ // shapeRef835
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3231, 12427.7);
+ polygon.ps[1] = Point(3231, 12489.7);
+ polygon.ps[2] = Point(3169, 12489.7);
+ polygon.ps[3] = Point(3169, 12427.7);
+ new ShapeRef(router, polygon, 835);
+
+ // shapeRef836
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2736, 12427.7);
+ polygon.ps[1] = Point(2736, 12489.7);
+ polygon.ps[2] = Point(2674, 12489.7);
+ polygon.ps[3] = Point(2674, 12427.7);
+ new ShapeRef(router, polygon, 836);
+
+ // shapeRef837
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2373, 12427.7);
+ polygon.ps[1] = Point(2373, 12489.7);
+ polygon.ps[2] = Point(2311, 12489.7);
+ polygon.ps[3] = Point(2311, 12427.7);
+ new ShapeRef(router, polygon, 837);
+
+ // shapeRef838
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 12017.3);
+ polygon.ps[1] = Point(4056, 12079.3);
+ polygon.ps[2] = Point(3994, 12079.3);
+ polygon.ps[3] = Point(3994, 12017.3);
+ new ShapeRef(router, polygon, 838);
+
+ // shapeRef839
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3693, 12017.3);
+ polygon.ps[1] = Point(3693, 12079.3);
+ polygon.ps[2] = Point(3631, 12079.3);
+ polygon.ps[3] = Point(3631, 12017.3);
+ new ShapeRef(router, polygon, 839);
+
+ // shapeRef840
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3231, 12017.3);
+ polygon.ps[1] = Point(3231, 12079.3);
+ polygon.ps[2] = Point(3169, 12079.3);
+ polygon.ps[3] = Point(3169, 12017.3);
+ new ShapeRef(router, polygon, 840);
+
+ // shapeRef841
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2736, 12017.3);
+ polygon.ps[1] = Point(2736, 12079.3);
+ polygon.ps[2] = Point(2674, 12079.3);
+ polygon.ps[3] = Point(2674, 12017.3);
+ new ShapeRef(router, polygon, 841);
+
+ // shapeRef842
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2373, 12017.3);
+ polygon.ps[1] = Point(2373, 12079.3);
+ polygon.ps[2] = Point(2311, 12079.3);
+ polygon.ps[3] = Point(2311, 12017.3);
+ new ShapeRef(router, polygon, 842);
+
+ // shapeRef843
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 8677.22);
+ polygon.ps[1] = Point(1350, 8739.22);
+ polygon.ps[2] = Point(1288, 8739.22);
+ polygon.ps[3] = Point(1288, 8677.22);
+ new ShapeRef(router, polygon, 843);
+
+ // shapeRef844
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 8677.22);
+ polygon.ps[1] = Point(1911, 8739.22);
+ polygon.ps[2] = Point(1849, 8739.22);
+ polygon.ps[3] = Point(1849, 8677.22);
+ new ShapeRef(router, polygon, 844);
+
+ // shapeRef845
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 8350.99);
+ polygon.ps[1] = Point(1911, 8412.99);
+ polygon.ps[2] = Point(1849, 8412.99);
+ polygon.ps[3] = Point(1849, 8350.99);
+ new ShapeRef(router, polygon, 845);
+
+ // shapeRef846
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 7845.79);
+ polygon.ps[1] = Point(1350, 7907.79);
+ polygon.ps[2] = Point(1288, 7907.79);
+ polygon.ps[3] = Point(1288, 7845.79);
+ new ShapeRef(router, polygon, 846);
+
+ // shapeRef847
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 7845.79);
+ polygon.ps[1] = Point(1911, 7907.79);
+ polygon.ps[2] = Point(1849, 7907.79);
+ polygon.ps[3] = Point(1849, 7845.79);
+ new ShapeRef(router, polygon, 847);
+
+ // shapeRef848
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 7394.4);
+ polygon.ps[1] = Point(1911, 7456.4);
+ polygon.ps[2] = Point(1849, 7456.4);
+ polygon.ps[3] = Point(1849, 7394.4);
+ new ShapeRef(router, polygon, 848);
+
+ // shapeRef849
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 7394.4);
+ polygon.ps[1] = Point(1350, 7456.4);
+ polygon.ps[2] = Point(1288, 7456.4);
+ polygon.ps[3] = Point(1288, 7394.4);
+ new ShapeRef(router, polygon, 849);
+
+ // shapeRef850
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1350, 6998.4);
+ polygon.ps[1] = Point(1350, 7060.4);
+ polygon.ps[2] = Point(1288, 7060.4);
+ polygon.ps[3] = Point(1288, 6998.4);
+ new ShapeRef(router, polygon, 850);
+
+ // shapeRef851
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1680, 6417.51);
+ polygon.ps[1] = Point(1680, 6479.51);
+ polygon.ps[2] = Point(1618, 6479.51);
+ polygon.ps[3] = Point(1618, 6417.51);
+ new ShapeRef(router, polygon, 851);
+
+ // shapeRef852
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1911, 6417.51);
+ polygon.ps[1] = Point(1911, 6479.51);
+ polygon.ps[2] = Point(1849, 6479.51);
+ polygon.ps[3] = Point(1849, 6417.51);
+ new ShapeRef(router, polygon, 852);
+
+ // shapeRef853
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3528, 6417.51);
+ polygon.ps[1] = Point(3528, 6479.51);
+ polygon.ps[2] = Point(3466, 6479.51);
+ polygon.ps[3] = Point(3466, 6417.51);
+ new ShapeRef(router, polygon, 853);
+
+ // shapeRef854
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8159.29, 4907.4);
+ polygon.ps[1] = Point(8159.29, 4969.4);
+ polygon.ps[2] = Point(8097.29, 4969.4);
+ polygon.ps[3] = Point(8097.29, 4907.4);
+ new ShapeRef(router, polygon, 854);
+
+ // shapeRef855
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7862.29, 4907.4);
+ polygon.ps[1] = Point(7862.29, 4969.4);
+ polygon.ps[2] = Point(7800.29, 4969.4);
+ polygon.ps[3] = Point(7800.29, 4907.4);
+ new ShapeRef(router, polygon, 855);
+
+ // shapeRef856
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7507.1, 4907.4);
+ polygon.ps[1] = Point(7507.1, 4969.4);
+ polygon.ps[2] = Point(7445.1, 4969.4);
+ polygon.ps[3] = Point(7445.1, 4907.4);
+ new ShapeRef(router, polygon, 856);
+
+ // shapeRef857
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7111.1, 4907.4);
+ polygon.ps[1] = Point(7111.1, 4969.4);
+ polygon.ps[2] = Point(7049.1, 4969.4);
+ polygon.ps[3] = Point(7049.1, 4907.4);
+ new ShapeRef(router, polygon, 857);
+
+ // shapeRef858
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6748.1, 4907.4);
+ polygon.ps[1] = Point(6748.1, 4969.4);
+ polygon.ps[2] = Point(6686.1, 4969.4);
+ polygon.ps[3] = Point(6686.1, 4907.4);
+ new ShapeRef(router, polygon, 858);
+
+ // shapeRef859
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6517.1, 4907.4);
+ polygon.ps[1] = Point(6517.1, 4969.4);
+ polygon.ps[2] = Point(6455.1, 4969.4);
+ polygon.ps[3] = Point(6455.1, 4907.4);
+ new ShapeRef(router, polygon, 859);
+
+ // shapeRef860
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6220.1, 4907.4);
+ polygon.ps[1] = Point(6220.1, 4969.4);
+ polygon.ps[2] = Point(6158.1, 4969.4);
+ polygon.ps[3] = Point(6158.1, 4907.4);
+ new ShapeRef(router, polygon, 860);
+
+ // shapeRef861
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6055.1, 4907.4);
+ polygon.ps[1] = Point(6055.1, 4969.4);
+ polygon.ps[2] = Point(5993.1, 4969.4);
+ polygon.ps[3] = Point(5993.1, 4907.4);
+ new ShapeRef(router, polygon, 861);
+
+ // shapeRef862
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7012.1, 7097.4);
+ polygon.ps[1] = Point(7012.1, 7159.4);
+ polygon.ps[2] = Point(6950.1, 7159.4);
+ polygon.ps[3] = Point(6950.1, 7097.4);
+ new ShapeRef(router, polygon, 862);
+
+ // shapeRef863
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 5250.67);
+ polygon.ps[1] = Point(4584, 5312.67);
+ polygon.ps[2] = Point(4522, 5312.67);
+ polygon.ps[3] = Point(4522, 5250.67);
+ new ShapeRef(router, polygon, 863);
+
+ // shapeRef864
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6253.1, 6582.51);
+ polygon.ps[1] = Point(6253.1, 6644.51);
+ polygon.ps[2] = Point(6191.1, 6644.51);
+ polygon.ps[3] = Point(6191.1, 6582.51);
+ new ShapeRef(router, polygon, 864);
+
+ // shapeRef865
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6121.1, 5933.59);
+ polygon.ps[1] = Point(6121.1, 5995.59);
+ polygon.ps[2] = Point(6059.1, 5995.59);
+ polygon.ps[3] = Point(6059.1, 5933.59);
+ new ShapeRef(router, polygon, 865);
+
+ // shapeRef866
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6484.1, 5933.59);
+ polygon.ps[1] = Point(6484.1, 5995.59);
+ polygon.ps[2] = Point(6422.1, 5995.59);
+ polygon.ps[3] = Point(6422.1, 5933.59);
+ new ShapeRef(router, polygon, 866);
+
+ // shapeRef867
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7144.1, 5933.59);
+ polygon.ps[1] = Point(7144.1, 5995.59);
+ polygon.ps[2] = Point(7082.1, 5995.59);
+ polygon.ps[3] = Point(7082.1, 5933.59);
+ new ShapeRef(router, polygon, 867);
+
+ // shapeRef868
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 5933.59);
+ polygon.ps[1] = Point(7796.29, 5995.59);
+ polygon.ps[2] = Point(7734.29, 5995.59);
+ polygon.ps[3] = Point(7734.29, 5933.59);
+ new ShapeRef(router, polygon, 868);
+
+ // shapeRef869
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13672, 985.285);
+ polygon.ps[1] = Point(13672, 1047.29);
+ polygon.ps[2] = Point(13610, 1047.29);
+ polygon.ps[3] = Point(13610, 985.285);
+ new ShapeRef(router, polygon, 869);
+
+ // shapeRef870
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13165, 985.285);
+ polygon.ps[1] = Point(13165, 1047.29);
+ polygon.ps[2] = Point(13103, 1047.29);
+ polygon.ps[3] = Point(13103, 985.285);
+ new ShapeRef(router, polygon, 870);
+
+ // shapeRef871
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 985.285);
+ polygon.ps[1] = Point(12562.5, 1047.29);
+ polygon.ps[2] = Point(12500.5, 1047.29);
+ polygon.ps[3] = Point(12500.5, 985.285);
+ new ShapeRef(router, polygon, 871);
+
+ // shapeRef872
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 985.285);
+ polygon.ps[1] = Point(12021.1, 1047.29);
+ polygon.ps[2] = Point(11959.1, 1047.29);
+ polygon.ps[3] = Point(11959.1, 985.285);
+ new ShapeRef(router, polygon, 872);
+
+ // shapeRef873
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 9978.02);
+ polygon.ps[1] = Point(16753.8, 10040);
+ polygon.ps[2] = Point(16691.8, 10040);
+ polygon.ps[3] = Point(16691.8, 9978.02);
+ new ShapeRef(router, polygon, 873);
+
+ // shapeRef874
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 8842.22);
+ polygon.ps[1] = Point(16130.6, 8904.22);
+ polygon.ps[2] = Point(16068.6, 8904.22);
+ polygon.ps[3] = Point(16068.6, 8842.22);
+ new ShapeRef(router, polygon, 874);
+
+ // shapeRef875
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14464, 8842.22);
+ polygon.ps[1] = Point(14464, 8904.22);
+ polygon.ps[2] = Point(14402, 8904.22);
+ polygon.ps[3] = Point(14402, 8842.22);
+ new ShapeRef(router, polygon, 875);
+
+ // shapeRef876
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17541.5, 9248.42);
+ polygon.ps[1] = Point(17541.5, 9310.42);
+ polygon.ps[2] = Point(17479.5, 9310.42);
+ polygon.ps[3] = Point(17479.5, 9248.42);
+ new ShapeRef(router, polygon, 876);
+
+ // shapeRef877
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17541.5, 8743.22);
+ polygon.ps[1] = Point(17541.5, 8805.22);
+ polygon.ps[2] = Point(17479.5, 8805.22);
+ polygon.ps[3] = Point(17479.5, 8743.22);
+ new ShapeRef(router, polygon, 877);
+
+ // shapeRef878
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17475.5, 7581.79);
+ polygon.ps[1] = Point(17475.5, 7643.79);
+ polygon.ps[2] = Point(17413.5, 7643.79);
+ polygon.ps[3] = Point(17413.5, 7581.79);
+ new ShapeRef(router, polygon, 878);
+
+ // shapeRef879
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18333.5, 9446.42);
+ polygon.ps[1] = Point(18333.5, 9508.42);
+ polygon.ps[2] = Point(18271.5, 9508.42);
+ polygon.ps[3] = Point(18271.5, 9446.42);
+ new ShapeRef(router, polygon, 879);
+
+ // shapeRef880
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18333.5, 9050.42);
+ polygon.ps[1] = Point(18333.5, 9112.42);
+ polygon.ps[2] = Point(18271.5, 9112.42);
+ polygon.ps[3] = Point(18271.5, 9050.42);
+ new ShapeRef(router, polygon, 880);
+
+ // shapeRef881
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18333.5, 8611.22);
+ polygon.ps[1] = Point(18333.5, 8673.22);
+ polygon.ps[2] = Point(18271.5, 8673.22);
+ polygon.ps[3] = Point(18271.5, 8611.22);
+ new ShapeRef(router, polygon, 881);
+
+ // shapeRef882
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18333.5, 8218.99);
+ polygon.ps[1] = Point(18333.5, 8280.99);
+ polygon.ps[2] = Point(18271.5, 8280.99);
+ polygon.ps[3] = Point(18271.5, 8218.99);
+ new ShapeRef(router, polygon, 882);
+
+ // shapeRef883
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18694.5, 9149.42);
+ polygon.ps[1] = Point(18694.5, 9211.42);
+ polygon.ps[2] = Point(18632.5, 9211.42);
+ polygon.ps[3] = Point(18632.5, 9149.42);
+ new ShapeRef(router, polygon, 883);
+
+ // shapeRef884
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18465.5, 9149.42);
+ polygon.ps[1] = Point(18465.5, 9211.42);
+ polygon.ps[2] = Point(18403.5, 9211.42);
+ polygon.ps[3] = Point(18403.5, 9149.42);
+ new ShapeRef(router, polygon, 884);
+
+ // shapeRef885
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17904.5, 9347.42);
+ polygon.ps[1] = Point(17904.5, 9409.42);
+ polygon.ps[2] = Point(17842.5, 9409.42);
+ polygon.ps[3] = Point(17842.5, 9347.42);
+ new ShapeRef(router, polygon, 885);
+
+ // shapeRef886
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17739.5, 9149.42);
+ polygon.ps[1] = Point(17739.5, 9211.42);
+ polygon.ps[2] = Point(17677.5, 9211.42);
+ polygon.ps[3] = Point(17677.5, 9149.42);
+ new ShapeRef(router, polygon, 886);
+
+ // shapeRef887
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17739.5, 8611.22);
+ polygon.ps[1] = Point(17739.5, 8673.22);
+ polygon.ps[2] = Point(17677.5, 8673.22);
+ polygon.ps[3] = Point(17677.5, 8611.22);
+ new ShapeRef(router, polygon, 887);
+
+ // shapeRef888
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17739.5, 8218.99);
+ polygon.ps[1] = Point(17739.5, 8280.99);
+ polygon.ps[2] = Point(17677.5, 8280.99);
+ polygon.ps[3] = Point(17677.5, 8218.99);
+ new ShapeRef(router, polygon, 888);
+
+ // shapeRef889
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 5900.59);
+ polygon.ps[1] = Point(16130.6, 5962.59);
+ polygon.ps[2] = Point(16068.6, 5962.59);
+ polygon.ps[3] = Point(16068.6, 5900.59);
+ new ShapeRef(router, polygon, 889);
+
+ // shapeRef890
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17739.5, 7581.79);
+ polygon.ps[1] = Point(17739.5, 7643.79);
+ polygon.ps[2] = Point(17677.5, 7643.79);
+ polygon.ps[3] = Point(17677.5, 7581.79);
+ new ShapeRef(router, polygon, 890);
+
+ // shapeRef891
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18036.5, 7581.79);
+ polygon.ps[1] = Point(18036.5, 7643.79);
+ polygon.ps[2] = Point(17974.5, 7643.79);
+ polygon.ps[3] = Point(17974.5, 7581.79);
+ new ShapeRef(router, polygon, 891);
+
+ // shapeRef892
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18333.5, 7581.79);
+ polygon.ps[1] = Point(18333.5, 7643.79);
+ polygon.ps[2] = Point(18271.5, 7643.79);
+ polygon.ps[3] = Point(18271.5, 7581.79);
+ new ShapeRef(router, polygon, 892);
+
+ // shapeRef893
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15763.9, 5692.9);
+ polygon.ps[1] = Point(15763.9, 5754.9);
+ polygon.ps[2] = Point(15701.9, 5754.9);
+ polygon.ps[3] = Point(15701.9, 5692.9);
+ new ShapeRef(router, polygon, 893);
+
+ // shapeRef894
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14794, 5692.9);
+ polygon.ps[1] = Point(14794, 5754.9);
+ polygon.ps[2] = Point(14732, 5754.9);
+ polygon.ps[3] = Point(14732, 5692.9);
+ new ShapeRef(router, polygon, 894);
+
+ // shapeRef895
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14266, 5692.9);
+ polygon.ps[1] = Point(14266, 5754.9);
+ polygon.ps[2] = Point(14204, 5754.9);
+ polygon.ps[3] = Point(14204, 5692.9);
+ new ShapeRef(router, polygon, 895);
+
+ // shapeRef896
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13705, 5692.9);
+ polygon.ps[1] = Point(13705, 5754.9);
+ polygon.ps[2] = Point(13643, 5754.9);
+ polygon.ps[3] = Point(13643, 5692.9);
+ new ShapeRef(router, polygon, 896);
+
+ // shapeRef897
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14266, 5415.67);
+ polygon.ps[1] = Point(14266, 5477.67);
+ polygon.ps[2] = Point(14204, 5477.67);
+ polygon.ps[3] = Point(14204, 5415.67);
+ new ShapeRef(router, polygon, 897);
+
+ // shapeRef898
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13705, 5415.67);
+ polygon.ps[1] = Point(13705, 5477.67);
+ polygon.ps[2] = Point(13643, 5477.67);
+ polygon.ps[3] = Point(13643, 5415.67);
+ new ShapeRef(router, polygon, 898);
+
+ // shapeRef899
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15763.9, 4841.4);
+ polygon.ps[1] = Point(15763.9, 4903.4);
+ polygon.ps[2] = Point(15701.9, 4903.4);
+ polygon.ps[3] = Point(15701.9, 4841.4);
+ new ShapeRef(router, polygon, 899);
+
+ // shapeRef900
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14794, 4841.4);
+ polygon.ps[1] = Point(14794, 4903.4);
+ polygon.ps[2] = Point(14732, 4903.4);
+ polygon.ps[3] = Point(14732, 4841.4);
+ new ShapeRef(router, polygon, 900);
+
+ // shapeRef901
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13705, 4511.4);
+ polygon.ps[1] = Point(13705, 4573.4);
+ polygon.ps[2] = Point(13643, 4573.4);
+ polygon.ps[3] = Point(13643, 4511.4);
+ new ShapeRef(router, polygon, 901);
+
+ // shapeRef902
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17277.5, 4511.4);
+ polygon.ps[1] = Point(17277.5, 4573.4);
+ polygon.ps[2] = Point(17215.5, 4573.4);
+ polygon.ps[3] = Point(17215.5, 4511.4);
+ new ShapeRef(router, polygon, 902);
+
+ // shapeRef903
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16852.8, 4511.4);
+ polygon.ps[1] = Point(16852.8, 4573.4);
+ polygon.ps[2] = Point(16790.8, 4573.4);
+ polygon.ps[3] = Point(16790.8, 4511.4);
+ new ShapeRef(router, polygon, 903);
+
+ // shapeRef904
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16654.8, 4511.4);
+ polygon.ps[1] = Point(16654.8, 4573.4);
+ polygon.ps[2] = Point(16592.8, 4573.4);
+ polygon.ps[3] = Point(16592.8, 4511.4);
+ new ShapeRef(router, polygon, 904);
+
+ // shapeRef905
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16262.6, 4511.4);
+ polygon.ps[1] = Point(16262.6, 4573.4);
+ polygon.ps[2] = Point(16200.6, 4573.4);
+ polygon.ps[3] = Point(16200.6, 4511.4);
+ new ShapeRef(router, polygon, 905);
+
+ // shapeRef906
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15763.9, 4511.4);
+ polygon.ps[1] = Point(15763.9, 4573.4);
+ polygon.ps[2] = Point(15701.9, 4573.4);
+ polygon.ps[3] = Point(15701.9, 4511.4);
+ new ShapeRef(router, polygon, 906);
+
+ // shapeRef907
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14794, 4511.4);
+ polygon.ps[1] = Point(14794, 4573.4);
+ polygon.ps[2] = Point(14732, 4573.4);
+ polygon.ps[3] = Point(14732, 4511.4);
+ new ShapeRef(router, polygon, 907);
+
+ // shapeRef908
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14266, 4511.4);
+ polygon.ps[1] = Point(14266, 4573.4);
+ polygon.ps[2] = Point(14204, 4573.4);
+ polygon.ps[3] = Point(14204, 4511.4);
+ new ShapeRef(router, polygon, 908);
+
+ // shapeRef909
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16654.8, 5217.67);
+ polygon.ps[1] = Point(16654.8, 5279.67);
+ polygon.ps[2] = Point(16592.8, 5279.67);
+ polygon.ps[3] = Point(16592.8, 5217.67);
+ new ShapeRef(router, polygon, 909);
+
+ // shapeRef910
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16262.6, 5217.67);
+ polygon.ps[1] = Point(16262.6, 5279.67);
+ polygon.ps[2] = Point(16200.6, 5279.67);
+ polygon.ps[3] = Point(16200.6, 5217.67);
+ new ShapeRef(router, polygon, 910);
+
+ // shapeRef911
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15763.9, 5217.67);
+ polygon.ps[1] = Point(15763.9, 5279.67);
+ polygon.ps[2] = Point(15701.9, 5279.67);
+ polygon.ps[3] = Point(15701.9, 5217.67);
+ new ShapeRef(router, polygon, 911);
+
+ // shapeRef912
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14794, 5217.67);
+ polygon.ps[1] = Point(14794, 5279.67);
+ polygon.ps[2] = Point(14732, 5279.67);
+ polygon.ps[3] = Point(14732, 5217.67);
+ new ShapeRef(router, polygon, 912);
+
+ // shapeRef913
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14266, 5217.67);
+ polygon.ps[1] = Point(14266, 5279.67);
+ polygon.ps[2] = Point(14204, 5279.67);
+ polygon.ps[3] = Point(14204, 5217.67);
+ new ShapeRef(router, polygon, 913);
+
+ // shapeRef914
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13705, 5217.67);
+ polygon.ps[1] = Point(13705, 5279.67);
+ polygon.ps[2] = Point(13643, 5279.67);
+ polygon.ps[3] = Point(13643, 5217.67);
+ new ShapeRef(router, polygon, 914);
+
+ // shapeRef915
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12953.5, 5217.67);
+ polygon.ps[1] = Point(12953.5, 5279.67);
+ polygon.ps[2] = Point(12891.5, 5279.67);
+ polygon.ps[3] = Point(12891.5, 5217.67);
+ new ShapeRef(router, polygon, 915);
+
+ // shapeRef916
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 10506);
+ polygon.ps[1] = Point(12562.5, 10568);
+ polygon.ps[2] = Point(12500.5, 10568);
+ polygon.ps[3] = Point(12500.5, 10506);
+ new ShapeRef(router, polygon, 916);
+
+ // shapeRef917
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 10209);
+ polygon.ps[1] = Point(12562.5, 10271);
+ polygon.ps[2] = Point(12500.5, 10271);
+ polygon.ps[3] = Point(12500.5, 10209);
+ new ShapeRef(router, polygon, 917);
+
+ // shapeRef918
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 10011);
+ polygon.ps[1] = Point(14827, 10073);
+ polygon.ps[2] = Point(14765, 10073);
+ polygon.ps[3] = Point(14765, 10011);
+ new ShapeRef(router, polygon, 918);
+
+ // shapeRef919
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 10275);
+ polygon.ps[1] = Point(15471.5, 10337);
+ polygon.ps[2] = Point(15409.5, 10337);
+ polygon.ps[3] = Point(15409.5, 10275);
+ new ShapeRef(router, polygon, 919);
+
+ // shapeRef920
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14728, 10275);
+ polygon.ps[1] = Point(14728, 10337);
+ polygon.ps[2] = Point(14666, 10337);
+ polygon.ps[3] = Point(14666, 10275);
+ new ShapeRef(router, polygon, 920);
+
+ // shapeRef921
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17805.5, 3468.51);
+ polygon.ps[1] = Point(17805.5, 3530.51);
+ polygon.ps[2] = Point(17743.5, 3530.51);
+ polygon.ps[3] = Point(17743.5, 3468.51);
+ new ShapeRef(router, polygon, 921);
+
+ // shapeRef922
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17508.5, 3468.51);
+ polygon.ps[1] = Point(17508.5, 3530.51);
+ polygon.ps[2] = Point(17446.5, 3530.51);
+ polygon.ps[3] = Point(17446.5, 3468.51);
+ new ShapeRef(router, polygon, 922);
+
+ // shapeRef923
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17050.8, 3468.51);
+ polygon.ps[1] = Point(17050.8, 3530.51);
+ polygon.ps[2] = Point(16988.8, 3530.51);
+ polygon.ps[3] = Point(16988.8, 3468.51);
+ new ShapeRef(router, polygon, 923);
+
+ // shapeRef924
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18797.5, 4709.4);
+ polygon.ps[1] = Point(18797.5, 4771.4);
+ polygon.ps[2] = Point(18735.5, 4771.4);
+ polygon.ps[3] = Point(18735.5, 4709.4);
+ new ShapeRef(router, polygon, 924);
+
+ // shapeRef925
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18797.5, 4478.4);
+ polygon.ps[1] = Point(18797.5, 4540.4);
+ polygon.ps[2] = Point(18735.5, 4540.4);
+ polygon.ps[3] = Point(18735.5, 4478.4);
+ new ShapeRef(router, polygon, 925);
+
+ // shapeRef926
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18797.5, 4095.51);
+ polygon.ps[1] = Point(18797.5, 4157.51);
+ polygon.ps[2] = Point(18735.5, 4157.51);
+ polygon.ps[3] = Point(18735.5, 4095.51);
+ new ShapeRef(router, polygon, 926);
+
+ // shapeRef927
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 3798.51);
+ polygon.ps[1] = Point(18580, 3860.51);
+ polygon.ps[2] = Point(18518, 3860.51);
+ polygon.ps[3] = Point(18518, 3798.51);
+ new ShapeRef(router, polygon, 927);
+
+ // shapeRef928
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18366.5, 3798.51);
+ polygon.ps[1] = Point(18366.5, 3860.51);
+ polygon.ps[2] = Point(18304.5, 3860.51);
+ polygon.ps[3] = Point(18304.5, 3798.51);
+ new ShapeRef(router, polygon, 928);
+
+ // shapeRef929
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18135.5, 3798.51);
+ polygon.ps[1] = Point(18135.5, 3860.51);
+ polygon.ps[2] = Point(18073.5, 3860.51);
+ polygon.ps[3] = Point(18073.5, 3798.51);
+ new ShapeRef(router, polygon, 929);
+
+ // shapeRef930
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17805.5, 3798.51);
+ polygon.ps[1] = Point(17805.5, 3860.51);
+ polygon.ps[2] = Point(17743.5, 3860.51);
+ polygon.ps[3] = Point(17743.5, 3798.51);
+ new ShapeRef(router, polygon, 930);
+
+ // shapeRef931
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17508.5, 3798.51);
+ polygon.ps[1] = Point(17508.5, 3860.51);
+ polygon.ps[2] = Point(17446.5, 3860.51);
+ polygon.ps[3] = Point(17446.5, 3798.51);
+ new ShapeRef(router, polygon, 931);
+
+ // shapeRef932
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17050.8, 3798.51);
+ polygon.ps[1] = Point(17050.8, 3860.51);
+ polygon.ps[2] = Point(16988.8, 3860.51);
+ polygon.ps[3] = Point(16988.8, 3798.51);
+ new ShapeRef(router, polygon, 932);
+
+ // shapeRef933
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 5006.4);
+ polygon.ps[1] = Point(18580, 5068.4);
+ polygon.ps[2] = Point(18518, 5068.4);
+ polygon.ps[3] = Point(18518, 5006.4);
+ new ShapeRef(router, polygon, 933);
+
+ // shapeRef934
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 4709.4);
+ polygon.ps[1] = Point(18580, 4771.4);
+ polygon.ps[2] = Point(18518, 4771.4);
+ polygon.ps[3] = Point(18518, 4709.4);
+ new ShapeRef(router, polygon, 934);
+
+ // shapeRef935
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 4478.4);
+ polygon.ps[1] = Point(18580, 4540.4);
+ polygon.ps[2] = Point(18518, 4540.4);
+ polygon.ps[3] = Point(18518, 4478.4);
+ new ShapeRef(router, polygon, 935);
+
+ // shapeRef936
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18580, 4095.51);
+ polygon.ps[1] = Point(18580, 4157.51);
+ polygon.ps[2] = Point(18518, 4157.51);
+ polygon.ps[3] = Point(18518, 4095.51);
+ new ShapeRef(router, polygon, 936);
+
+ // shapeRef937
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18366.5, 4095.51);
+ polygon.ps[1] = Point(18366.5, 4157.51);
+ polygon.ps[2] = Point(18304.5, 4157.51);
+ polygon.ps[3] = Point(18304.5, 4095.51);
+ new ShapeRef(router, polygon, 937);
+
+ // shapeRef938
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18135.5, 4095.51);
+ polygon.ps[1] = Point(18135.5, 4157.51);
+ polygon.ps[2] = Point(18073.5, 4157.51);
+ polygon.ps[3] = Point(18073.5, 4095.51);
+ new ShapeRef(router, polygon, 938);
+
+ // shapeRef939
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17050.8, 4095.51);
+ polygon.ps[1] = Point(17050.8, 4157.51);
+ polygon.ps[2] = Point(16988.8, 4157.51);
+ polygon.ps[3] = Point(16988.8, 4095.51);
+ new ShapeRef(router, polygon, 939);
+
+ // shapeRef940
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18102.5, 3307.29);
+ polygon.ps[1] = Point(18102.5, 3369.29);
+ polygon.ps[2] = Point(18040.5, 3369.29);
+ polygon.ps[3] = Point(18040.5, 3307.29);
+ new ShapeRef(router, polygon, 940);
+
+ // shapeRef941
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17739.5, 3307.29);
+ polygon.ps[1] = Point(17739.5, 3369.29);
+ polygon.ps[2] = Point(17677.5, 3369.29);
+ polygon.ps[3] = Point(17677.5, 3307.29);
+ new ShapeRef(router, polygon, 941);
+
+ // shapeRef942
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17343.5, 3307.29);
+ polygon.ps[1] = Point(17343.5, 3369.29);
+ polygon.ps[2] = Point(17281.5, 3369.29);
+ polygon.ps[3] = Point(17281.5, 3307.29);
+ new ShapeRef(router, polygon, 942);
+
+ // shapeRef943
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16885.8, 3307.29);
+ polygon.ps[1] = Point(16885.8, 3369.29);
+ polygon.ps[2] = Point(16823.8, 3369.29);
+ polygon.ps[3] = Point(16823.8, 3307.29);
+ new ShapeRef(router, polygon, 943);
+
+ // shapeRef944
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16588.8, 3307.29);
+ polygon.ps[1] = Point(16588.8, 3369.29);
+ polygon.ps[2] = Point(16526.8, 3369.29);
+ polygon.ps[3] = Point(16526.8, 3307.29);
+ new ShapeRef(router, polygon, 944);
+
+ // shapeRef945
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16064.6, 3307.29);
+ polygon.ps[1] = Point(16064.6, 3369.29);
+ polygon.ps[2] = Point(16002.6, 3369.29);
+ polygon.ps[3] = Point(16002.6, 3307.29);
+ new ShapeRef(router, polygon, 945);
+
+ // shapeRef946
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15146.3, 3307.29);
+ polygon.ps[1] = Point(15146.3, 3369.29);
+ polygon.ps[2] = Point(15084.3, 3369.29);
+ polygon.ps[3] = Point(15084.3, 3307.29);
+ new ShapeRef(router, polygon, 946);
+
+ // shapeRef947
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17050.8, 4775.4);
+ polygon.ps[1] = Point(17050.8, 4837.4);
+ polygon.ps[2] = Point(16988.8, 4837.4);
+ polygon.ps[3] = Point(16988.8, 4775.4);
+ new ShapeRef(router, polygon, 947);
+
+ // shapeRef948
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16786.8, 4775.4);
+ polygon.ps[1] = Point(16786.8, 4837.4);
+ polygon.ps[2] = Point(16724.8, 4837.4);
+ polygon.ps[3] = Point(16724.8, 4775.4);
+ new ShapeRef(router, polygon, 948);
+
+ // shapeRef949
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16427.6, 3864.51);
+ polygon.ps[1] = Point(16427.6, 3926.51);
+ polygon.ps[2] = Point(16365.6, 3926.51);
+ polygon.ps[3] = Point(16365.6, 3864.51);
+ new ShapeRef(router, polygon, 949);
+
+ // shapeRef950
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15998.6, 3864.51);
+ polygon.ps[1] = Point(15998.6, 3926.51);
+ polygon.ps[2] = Point(15936.6, 3926.51);
+ polygon.ps[3] = Point(15936.6, 3864.51);
+ new ShapeRef(router, polygon, 950);
+
+ // shapeRef951
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15146.3, 3864.51);
+ polygon.ps[1] = Point(15146.3, 3926.51);
+ polygon.ps[2] = Point(15084.3, 3926.51);
+ polygon.ps[3] = Point(15084.3, 3864.51);
+ new ShapeRef(router, polygon, 951);
+
+ // shapeRef952
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16786.8, 3600.51);
+ polygon.ps[1] = Point(16786.8, 3662.51);
+ polygon.ps[2] = Point(16724.8, 3662.51);
+ polygon.ps[3] = Point(16724.8, 3600.51);
+ new ShapeRef(router, polygon, 952);
+
+ // shapeRef953
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16361.6, 3600.51);
+ polygon.ps[1] = Point(16361.6, 3662.51);
+ polygon.ps[2] = Point(16299.6, 3662.51);
+ polygon.ps[3] = Point(16299.6, 3600.51);
+ new ShapeRef(router, polygon, 953);
+
+ // shapeRef954
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15541.3, 3600.51);
+ polygon.ps[1] = Point(15541.3, 3662.51);
+ polygon.ps[2] = Point(15479.3, 3662.51);
+ polygon.ps[3] = Point(15479.3, 3600.51);
+ new ShapeRef(router, polygon, 954);
+
+ // shapeRef955
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16786.8, 4095.51);
+ polygon.ps[1] = Point(16786.8, 4157.51);
+ polygon.ps[2] = Point(16724.8, 4157.51);
+ polygon.ps[3] = Point(16724.8, 4095.51);
+ new ShapeRef(router, polygon, 955);
+
+ // shapeRef956
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16588.8, 4095.51);
+ polygon.ps[1] = Point(16588.8, 4157.51);
+ polygon.ps[2] = Point(16526.8, 4157.51);
+ polygon.ps[3] = Point(16526.8, 4095.51);
+ new ShapeRef(router, polygon, 956);
+
+ // shapeRef957
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16163.6, 4095.51);
+ polygon.ps[1] = Point(16163.6, 4157.51);
+ polygon.ps[2] = Point(16101.6, 4157.51);
+ polygon.ps[3] = Point(16101.6, 4095.51);
+ new ShapeRef(router, polygon, 957);
+
+ // shapeRef958
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15541.3, 4095.51);
+ polygon.ps[1] = Point(15541.3, 4157.51);
+ polygon.ps[2] = Point(15479.3, 4157.51);
+ polygon.ps[3] = Point(15479.3, 4095.51);
+ new ShapeRef(router, polygon, 958);
+
+ // shapeRef959
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15635.3, 2713.29);
+ polygon.ps[1] = Point(15635.3, 2775.29);
+ polygon.ps[2] = Point(15573.3, 2775.29);
+ polygon.ps[3] = Point(15573.3, 2713.29);
+ new ShapeRef(router, polygon, 959);
+
+ // shapeRef960
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14662, 3208.29);
+ polygon.ps[1] = Point(14662, 3270.29);
+ polygon.ps[2] = Point(14600, 3270.29);
+ polygon.ps[3] = Point(14600, 3208.29);
+ new ShapeRef(router, polygon, 960);
+
+ // shapeRef961
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16720.8, 2944.29);
+ polygon.ps[1] = Point(16720.8, 3006.29);
+ polygon.ps[2] = Point(16658.8, 3006.29);
+ polygon.ps[3] = Point(16658.8, 2944.29);
+ new ShapeRef(router, polygon, 961);
+
+ // shapeRef962
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16295.6, 2944.29);
+ polygon.ps[1] = Point(16295.6, 3006.29);
+ polygon.ps[2] = Point(16233.6, 3006.29);
+ polygon.ps[3] = Point(16233.6, 2944.29);
+ new ShapeRef(router, polygon, 962);
+
+ // shapeRef963
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15635.3, 2944.29);
+ polygon.ps[1] = Point(15635.3, 3006.29);
+ polygon.ps[2] = Point(15573.3, 3006.29);
+ polygon.ps[3] = Point(15573.3, 2944.29);
+ new ShapeRef(router, polygon, 963);
+
+ // shapeRef964
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14662, 2944.29);
+ polygon.ps[1] = Point(14662, 3006.29);
+ polygon.ps[2] = Point(14600, 3006.29);
+ polygon.ps[3] = Point(14600, 2944.29);
+ new ShapeRef(router, polygon, 964);
+
+ // shapeRef965
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 2944.29);
+ polygon.ps[1] = Point(13969, 3006.29);
+ polygon.ps[2] = Point(13907, 3006.29);
+ polygon.ps[3] = Point(13907, 2944.29);
+ new ShapeRef(router, polygon, 965);
+
+ // shapeRef966
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 3307.29);
+ polygon.ps[1] = Point(13969, 3369.29);
+ polygon.ps[2] = Point(13907, 3369.29);
+ polygon.ps[3] = Point(13907, 3307.29);
+ new ShapeRef(router, polygon, 966);
+
+ // shapeRef967
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 3600.51);
+ polygon.ps[1] = Point(13969, 3662.51);
+ polygon.ps[2] = Point(13907, 3662.51);
+ polygon.ps[3] = Point(13907, 3600.51);
+ new ShapeRef(router, polygon, 967);
+
+ // shapeRef968
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14728, 4095.51);
+ polygon.ps[1] = Point(14728, 4157.51);
+ polygon.ps[2] = Point(14666, 4157.51);
+ polygon.ps[3] = Point(14666, 4095.51);
+ new ShapeRef(router, polygon, 968);
+
+ // shapeRef969
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 4095.51);
+ polygon.ps[1] = Point(13969, 4157.51);
+ polygon.ps[2] = Point(13907, 4157.51);
+ polygon.ps[3] = Point(13907, 4095.51);
+ new ShapeRef(router, polygon, 969);
+
+ // shapeRef970
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 6549.51);
+ polygon.ps[1] = Point(16130.6, 6611.51);
+ polygon.ps[2] = Point(16068.6, 6611.51);
+ polygon.ps[3] = Point(16068.6, 6549.51);
+ new ShapeRef(router, polygon, 970);
+
+ // shapeRef971
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13540, 6549.51);
+ polygon.ps[1] = Point(13540, 6611.51);
+ polygon.ps[2] = Point(13478, 6611.51);
+ polygon.ps[3] = Point(13478, 6549.51);
+ new ShapeRef(router, polygon, 971);
+
+ // shapeRef972
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16031.6, 11015.6);
+ polygon.ps[1] = Point(16031.6, 11077.6);
+ polygon.ps[2] = Point(15969.6, 11077.6);
+ polygon.ps[3] = Point(15969.6, 11015.6);
+ new ShapeRef(router, polygon, 972);
+
+ // shapeRef973
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16031.6, 10473);
+ polygon.ps[1] = Point(16031.6, 10535);
+ polygon.ps[2] = Point(15969.6, 10535);
+ polygon.ps[3] = Point(15969.6, 10473);
+ new ShapeRef(router, polygon, 973);
+
+ // shapeRef974
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16031.6, 9644.42);
+ polygon.ps[1] = Point(16031.6, 9706.42);
+ polygon.ps[2] = Point(15969.6, 9706.42);
+ polygon.ps[3] = Point(15969.6, 9644.42);
+ new ShapeRef(router, polygon, 974);
+
+ // shapeRef975
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 10684.3);
+ polygon.ps[1] = Point(15471.5, 10746.3);
+ polygon.ps[2] = Point(15409.5, 10746.3);
+ polygon.ps[3] = Point(15409.5, 10684.3);
+ new ShapeRef(router, polygon, 975);
+
+ // shapeRef976
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 10044);
+ polygon.ps[1] = Point(15471.5, 10106);
+ polygon.ps[2] = Point(15409.5, 10106);
+ polygon.ps[3] = Point(15409.5, 10044);
+ new ShapeRef(router, polygon, 976);
+
+ // shapeRef977
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 11015.6);
+ polygon.ps[1] = Point(15471.5, 11077.6);
+ polygon.ps[2] = Point(15409.5, 11077.6);
+ polygon.ps[3] = Point(15409.5, 11015.6);
+ new ShapeRef(router, polygon, 977);
+
+ // shapeRef978
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 10473);
+ polygon.ps[1] = Point(15471.5, 10535);
+ polygon.ps[2] = Point(15409.5, 10535);
+ polygon.ps[3] = Point(15409.5, 10473);
+ new ShapeRef(router, polygon, 978);
+
+ // shapeRef979
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 9644.42);
+ polygon.ps[1] = Point(15471.5, 9706.42);
+ polygon.ps[2] = Point(15409.5, 9706.42);
+ polygon.ps[3] = Point(15409.5, 9644.42);
+ new ShapeRef(router, polygon, 979);
+
+ // shapeRef980
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14299, 10275);
+ polygon.ps[1] = Point(14299, 10337);
+ polygon.ps[2] = Point(14237, 10337);
+ polygon.ps[3] = Point(14237, 10275);
+ new ShapeRef(router, polygon, 980);
+
+ // shapeRef981
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14299, 10011);
+ polygon.ps[1] = Point(14299, 10073);
+ polygon.ps[2] = Point(14237, 10073);
+ polygon.ps[3] = Point(14237, 10011);
+ new ShapeRef(router, polygon, 981);
+
+ // shapeRef982
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13507, 10275);
+ polygon.ps[1] = Point(13507, 10337);
+ polygon.ps[2] = Point(13445, 10337);
+ polygon.ps[3] = Point(13445, 10275);
+ new ShapeRef(router, polygon, 982);
+
+ // shapeRef983
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13507, 10011);
+ polygon.ps[1] = Point(13507, 10073);
+ polygon.ps[2] = Point(13445, 10073);
+ polygon.ps[3] = Point(13445, 10011);
+ new ShapeRef(router, polygon, 983);
+
+ // shapeRef984
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 11015.6);
+ polygon.ps[1] = Point(13969, 11077.6);
+ polygon.ps[2] = Point(13907, 11077.6);
+ polygon.ps[3] = Point(13907, 11015.6);
+ new ShapeRef(router, polygon, 984);
+
+ // shapeRef985
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 10473);
+ polygon.ps[1] = Point(13969, 10535);
+ polygon.ps[2] = Point(13907, 10535);
+ polygon.ps[3] = Point(13907, 10473);
+ new ShapeRef(router, polygon, 985);
+
+ // shapeRef986
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 9644.42);
+ polygon.ps[1] = Point(13969, 9706.42);
+ polygon.ps[2] = Point(13907, 9706.42);
+ polygon.ps[3] = Point(13907, 9644.42);
+ new ShapeRef(router, polygon, 986);
+
+ // shapeRef987
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13198, 11015.6);
+ polygon.ps[1] = Point(13198, 11077.6);
+ polygon.ps[2] = Point(13136, 11077.6);
+ polygon.ps[3] = Point(13136, 11015.6);
+ new ShapeRef(router, polygon, 987);
+
+ // shapeRef988
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13198, 10473);
+ polygon.ps[1] = Point(13198, 10535);
+ polygon.ps[2] = Point(13136, 10535);
+ polygon.ps[3] = Point(13136, 10473);
+ new ShapeRef(router, polygon, 988);
+
+ // shapeRef989
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13198, 9644.42);
+ polygon.ps[1] = Point(13198, 9706.42);
+ polygon.ps[2] = Point(13136, 9706.42);
+ polygon.ps[3] = Point(13136, 9644.42);
+ new ShapeRef(router, polygon, 989);
+
+ // shapeRef990
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 7581.79);
+ polygon.ps[1] = Point(16753.8, 7643.79);
+ polygon.ps[2] = Point(16691.8, 7643.79);
+ polygon.ps[3] = Point(16691.8, 7581.79);
+ new ShapeRef(router, polygon, 990);
+
+ // shapeRef991
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 7031.4);
+ polygon.ps[1] = Point(16753.8, 7093.4);
+ polygon.ps[2] = Point(16691.8, 7093.4);
+ polygon.ps[3] = Point(16691.8, 7031.4);
+ new ShapeRef(router, polygon, 991);
+
+ // shapeRef992
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 6384.51);
+ polygon.ps[1] = Point(16753.8, 6446.51);
+ polygon.ps[2] = Point(16691.8, 6446.51);
+ polygon.ps[3] = Point(16691.8, 6384.51);
+ new ShapeRef(router, polygon, 992);
+
+ // shapeRef993
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16460.6, 8218.99);
+ polygon.ps[1] = Point(16460.6, 8280.99);
+ polygon.ps[2] = Point(16398.6, 8280.99);
+ polygon.ps[3] = Point(16398.6, 8218.99);
+ new ShapeRef(router, polygon, 993);
+
+ // shapeRef994
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16460.6, 7581.79);
+ polygon.ps[1] = Point(16460.6, 7643.79);
+ polygon.ps[2] = Point(16398.6, 7643.79);
+ polygon.ps[3] = Point(16398.6, 7581.79);
+ new ShapeRef(router, polygon, 994);
+
+ // shapeRef995
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16460.6, 7031.4);
+ polygon.ps[1] = Point(16460.6, 7093.4);
+ polygon.ps[2] = Point(16398.6, 7093.4);
+ polygon.ps[3] = Point(16398.6, 7031.4);
+ new ShapeRef(router, polygon, 995);
+
+ // shapeRef996
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16460.6, 6384.51);
+ polygon.ps[1] = Point(16460.6, 6446.51);
+ polygon.ps[2] = Point(16398.6, 6446.51);
+ polygon.ps[3] = Point(16398.6, 6384.51);
+ new ShapeRef(router, polygon, 996);
+
+ // shapeRef997
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 7581.79);
+ polygon.ps[1] = Point(15899.6, 7643.79);
+ polygon.ps[2] = Point(15837.6, 7643.79);
+ polygon.ps[3] = Point(15837.6, 7581.79);
+ new ShapeRef(router, polygon, 997);
+
+ // shapeRef998
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 7031.4);
+ polygon.ps[1] = Point(15899.6, 7093.4);
+ polygon.ps[2] = Point(15837.6, 7093.4);
+ polygon.ps[3] = Point(15837.6, 7031.4);
+ new ShapeRef(router, polygon, 998);
+
+ // shapeRef999
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 6384.51);
+ polygon.ps[1] = Point(15899.6, 6446.51);
+ polygon.ps[2] = Point(15837.6, 6446.51);
+ polygon.ps[3] = Point(15837.6, 6384.51);
+ new ShapeRef(router, polygon, 999);
+
+ // shapeRef1000
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14530, 7262.4);
+ polygon.ps[1] = Point(14530, 7324.4);
+ polygon.ps[2] = Point(14468, 7324.4);
+ polygon.ps[3] = Point(14468, 7262.4);
+ new ShapeRef(router, polygon, 1000);
+
+ // shapeRef1001
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14134, 7262.4);
+ polygon.ps[1] = Point(14134, 7324.4);
+ polygon.ps[2] = Point(14072, 7324.4);
+ polygon.ps[3] = Point(14072, 7262.4);
+ new ShapeRef(router, polygon, 1001);
+
+ // shapeRef1002
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14530, 6615.51);
+ polygon.ps[1] = Point(14530, 6677.51);
+ polygon.ps[2] = Point(14468, 6677.51);
+ polygon.ps[3] = Point(14468, 6615.51);
+ new ShapeRef(router, polygon, 1002);
+
+ // shapeRef1003
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14134, 6615.51);
+ polygon.ps[1] = Point(14134, 6677.51);
+ polygon.ps[2] = Point(14072, 6677.51);
+ polygon.ps[3] = Point(14072, 6615.51);
+ new ShapeRef(router, polygon, 1003);
+
+ // shapeRef1004
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 8218.99);
+ polygon.ps[1] = Point(14827, 8280.99);
+ polygon.ps[2] = Point(14765, 8280.99);
+ polygon.ps[3] = Point(14765, 8218.99);
+ new ShapeRef(router, polygon, 1004);
+
+ // shapeRef1005
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 7581.79);
+ polygon.ps[1] = Point(14827, 7643.79);
+ polygon.ps[2] = Point(14765, 7643.79);
+ polygon.ps[3] = Point(14765, 7581.79);
+ new ShapeRef(router, polygon, 1005);
+
+ // shapeRef1006
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 7031.4);
+ polygon.ps[1] = Point(14827, 7093.4);
+ polygon.ps[2] = Point(14765, 7093.4);
+ polygon.ps[3] = Point(14765, 7031.4);
+ new ShapeRef(router, polygon, 1006);
+
+ // shapeRef1007
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14827, 6384.51);
+ polygon.ps[1] = Point(14827, 6446.51);
+ polygon.ps[2] = Point(14765, 6446.51);
+ polygon.ps[3] = Point(14765, 6384.51);
+ new ShapeRef(router, polygon, 1007);
+
+ // shapeRef1008
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11955.1, 8710.22);
+ polygon.ps[1] = Point(11955.1, 8772.22);
+ polygon.ps[2] = Point(11893.1, 8772.22);
+ polygon.ps[3] = Point(11893.1, 8710.22);
+ new ShapeRef(router, polygon, 1008);
+
+ // shapeRef1009
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11955.1, 7031.4);
+ polygon.ps[1] = Point(11955.1, 7093.4);
+ polygon.ps[2] = Point(11893.1, 7093.4);
+ polygon.ps[3] = Point(11893.1, 7031.4);
+ new ShapeRef(router, polygon, 1009);
+
+ // shapeRef1010
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11955.1, 6384.51);
+ polygon.ps[1] = Point(11955.1, 6446.51);
+ polygon.ps[2] = Point(11893.1, 6446.51);
+ polygon.ps[3] = Point(11893.1, 6384.51);
+ new ShapeRef(router, polygon, 1010);
+
+ // shapeRef1011
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13903, 7581.79);
+ polygon.ps[1] = Point(13903, 7643.79);
+ polygon.ps[2] = Point(13841, 7643.79);
+ polygon.ps[3] = Point(13841, 7581.79);
+ new ShapeRef(router, polygon, 1011);
+
+ // shapeRef1012
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 7581.79);
+ polygon.ps[1] = Point(12562.5, 7643.79);
+ polygon.ps[2] = Point(12500.5, 7643.79);
+ polygon.ps[3] = Point(12500.5, 7581.79);
+ new ShapeRef(router, polygon, 1012);
+
+ // shapeRef1013
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 7031.4);
+ polygon.ps[1] = Point(12562.5, 7093.4);
+ polygon.ps[2] = Point(12500.5, 7093.4);
+ polygon.ps[3] = Point(12500.5, 7031.4);
+ new ShapeRef(router, polygon, 1013);
+
+ // shapeRef1014
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 6384.51);
+ polygon.ps[1] = Point(12562.5, 6446.51);
+ polygon.ps[2] = Point(12500.5, 6446.51);
+ polygon.ps[3] = Point(12500.5, 6384.51);
+ new ShapeRef(router, polygon, 1014);
+
+ // shapeRef1015
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11203.2, 5481.67);
+ polygon.ps[1] = Point(11203.2, 5543.67);
+ polygon.ps[2] = Point(11141.2, 5543.67);
+ polygon.ps[3] = Point(11141.2, 5481.67);
+ new ShapeRef(router, polygon, 1015);
+
+ // shapeRef1016
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10675.2, 5481.67);
+ polygon.ps[1] = Point(10675.2, 5543.67);
+ polygon.ps[2] = Point(10613.2, 5543.67);
+ polygon.ps[3] = Point(10613.2, 5481.67);
+ new ShapeRef(router, polygon, 1016);
+
+ // shapeRef1017
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9815.69, 4973.4);
+ polygon.ps[1] = Point(9815.69, 5035.4);
+ polygon.ps[2] = Point(9753.69, 5035.4);
+ polygon.ps[3] = Point(9753.69, 4973.4);
+ new ShapeRef(router, polygon, 1017);
+
+ // shapeRef1018
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15471.5, 11355.8);
+ polygon.ps[1] = Point(15471.5, 11417.8);
+ polygon.ps[2] = Point(15409.5, 11417.8);
+ polygon.ps[3] = Point(15409.5, 11355.8);
+ new ShapeRef(router, polygon, 1018);
+
+ // shapeRef1019
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14662, 7878.79);
+ polygon.ps[1] = Point(14662, 7940.79);
+ polygon.ps[2] = Point(14600, 7940.79);
+ polygon.ps[3] = Point(14600, 7878.79);
+ new ShapeRef(router, polygon, 1019);
+
+ // shapeRef1020
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 8449.99);
+ polygon.ps[1] = Point(16130.6, 8511.99);
+ polygon.ps[2] = Point(16068.6, 8511.99);
+ polygon.ps[3] = Point(16068.6, 8449.99);
+ new ShapeRef(router, polygon, 1020);
+
+ // shapeRef1021
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 7878.79);
+ polygon.ps[1] = Point(16130.6, 7940.79);
+ polygon.ps[2] = Point(16068.6, 7940.79);
+ polygon.ps[3] = Point(16068.6, 7878.79);
+ new ShapeRef(router, polygon, 1021);
+
+ // shapeRef1022
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14662, 8449.99);
+ polygon.ps[1] = Point(14662, 8511.99);
+ polygon.ps[2] = Point(14600, 8511.99);
+ polygon.ps[3] = Point(14600, 8449.99);
+ new ShapeRef(router, polygon, 1022);
+
+ // shapeRef1023
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13540, 8449.99);
+ polygon.ps[1] = Point(13540, 8511.99);
+ polygon.ps[2] = Point(13478, 8511.99);
+ polygon.ps[3] = Point(13478, 8449.99);
+ new ShapeRef(router, polygon, 1023);
+
+ // shapeRef1024
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13540, 7878.79);
+ polygon.ps[1] = Point(13540, 7940.79);
+ polygon.ps[2] = Point(13478, 7940.79);
+ polygon.ps[3] = Point(13478, 7878.79);
+ new ShapeRef(router, polygon, 1024);
+
+ // shapeRef1025
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16130.6, 6058.29);
+ polygon.ps[1] = Point(16130.6, 6120.29);
+ polygon.ps[2] = Point(16068.6, 6120.29);
+ polygon.ps[3] = Point(16068.6, 6058.29);
+ new ShapeRef(router, polygon, 1025);
+
+ // shapeRef1026
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14662, 6058.29);
+ polygon.ps[1] = Point(14662, 6120.29);
+ polygon.ps[2] = Point(14600, 6120.29);
+ polygon.ps[3] = Point(14600, 6058.29);
+ new ShapeRef(router, polygon, 1026);
+
+ // shapeRef1027
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13540, 6058.29);
+ polygon.ps[1] = Point(13540, 6120.29);
+ polygon.ps[2] = Point(13478, 6120.29);
+ polygon.ps[3] = Point(13478, 6058.29);
+ new ShapeRef(router, polygon, 1027);
+
+ // shapeRef1028
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16588.8, 3468.51);
+ polygon.ps[1] = Point(16588.8, 3530.51);
+ polygon.ps[2] = Point(16526.8, 3530.51);
+ polygon.ps[3] = Point(16526.8, 3468.51);
+ new ShapeRef(router, polygon, 1028);
+
+ // shapeRef1029
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16064.6, 3468.51);
+ polygon.ps[1] = Point(16064.6, 3530.51);
+ polygon.ps[2] = Point(16002.6, 3530.51);
+ polygon.ps[3] = Point(16002.6, 3468.51);
+ new ShapeRef(router, polygon, 1029);
+
+ // shapeRef1030
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15146.3, 3468.51);
+ polygon.ps[1] = Point(15146.3, 3530.51);
+ polygon.ps[2] = Point(15084.3, 3530.51);
+ polygon.ps[3] = Point(15084.3, 3468.51);
+ new ShapeRef(router, polygon, 1030);
+
+ // shapeRef1031
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17805.5, 4095.51);
+ polygon.ps[1] = Point(17805.5, 4157.51);
+ polygon.ps[2] = Point(17743.5, 4157.51);
+ polygon.ps[3] = Point(17743.5, 4095.51);
+ new ShapeRef(router, polygon, 1031);
+
+ // shapeRef1032
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17508.5, 4095.51);
+ polygon.ps[1] = Point(17508.5, 4157.51);
+ polygon.ps[2] = Point(17446.5, 4157.51);
+ polygon.ps[3] = Point(17446.5, 4095.51);
+ new ShapeRef(router, polygon, 1032);
+
+ // shapeRef1033
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14662, 9479.42);
+ polygon.ps[1] = Point(14662, 9541.42);
+ polygon.ps[2] = Point(14600, 9541.42);
+ polygon.ps[3] = Point(14600, 9479.42);
+ new ShapeRef(router, polygon, 1033);
+
+ // shapeRef1034
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 8842.22);
+ polygon.ps[1] = Point(16753.8, 8904.22);
+ polygon.ps[2] = Point(16691.8, 8904.22);
+ polygon.ps[3] = Point(16691.8, 8842.22);
+ new ShapeRef(router, polygon, 1034);
+
+ // shapeRef1035
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12953.5, 6058.29);
+ polygon.ps[1] = Point(12953.5, 6120.29);
+ polygon.ps[2] = Point(12891.5, 6120.29);
+ polygon.ps[3] = Point(12891.5, 6058.29);
+ new ShapeRef(router, polygon, 1035);
+
+ // shapeRef1036
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12953.5, 5692.9);
+ polygon.ps[1] = Point(12953.5, 5754.9);
+ polygon.ps[2] = Point(12891.5, 5754.9);
+ polygon.ps[3] = Point(12891.5, 5692.9);
+ new ShapeRef(router, polygon, 1036);
+
+ // shapeRef1037
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 7163.4);
+ polygon.ps[1] = Point(1416, 7225.4);
+ polygon.ps[2] = Point(1354, 7225.4);
+ polygon.ps[3] = Point(1354, 7163.4);
+ new ShapeRef(router, polygon, 1037);
+
+ // shapeRef1038
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4023, 6252.51);
+ polygon.ps[1] = Point(4023, 6314.51);
+ polygon.ps[2] = Point(3961, 6314.51);
+ polygon.ps[3] = Point(3961, 6252.51);
+ new ShapeRef(router, polygon, 1038);
+
+ // shapeRef1039
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13969, 3864.51);
+ polygon.ps[1] = Point(13969, 3926.51);
+ polygon.ps[2] = Point(13907, 3926.51);
+ polygon.ps[3] = Point(13907, 3864.51);
+ new ShapeRef(router, polygon, 1039);
+
+ // shapeRef1040
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14497, 3600.51);
+ polygon.ps[1] = Point(14497, 3662.51);
+ polygon.ps[2] = Point(14435, 3662.51);
+ polygon.ps[3] = Point(14435, 3600.51);
+ new ShapeRef(router, polygon, 1040);
+
+ // shapeRef1041
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17607.5, 6757.21);
+ polygon.ps[1] = Point(17607.5, 6819.21);
+ polygon.ps[2] = Point(17545.5, 6819.21);
+ polygon.ps[3] = Point(17545.5, 6757.21);
+ new ShapeRef(router, polygon, 1041);
+
+ // shapeRef1042
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12054.1, 6757.21);
+ polygon.ps[1] = Point(12054.1, 6819.21);
+ polygon.ps[2] = Point(11992.1, 6819.21);
+ polygon.ps[3] = Point(11992.1, 6757.21);
+ new ShapeRef(router, polygon, 1042);
+
+ // shapeRef1043
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10013.7, 5626.9);
+ polygon.ps[1] = Point(10013.7, 5688.9);
+ polygon.ps[2] = Point(9951.69, 5688.9);
+ polygon.ps[3] = Point(9951.69, 5626.9);
+ new ShapeRef(router, polygon, 1043);
+
+ // shapeRef1044
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2769, 10176);
+ polygon.ps[1] = Point(2769, 10238);
+ polygon.ps[2] = Point(2707, 10238);
+ polygon.ps[3] = Point(2707, 10176);
+ new ShapeRef(router, polygon, 1044);
+
+ // shapeRef1045
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5758.1, 5184.67);
+ polygon.ps[1] = Point(5758.1, 5246.67);
+ polygon.ps[2] = Point(5696.1, 5246.67);
+ polygon.ps[3] = Point(5696.1, 5184.67);
+ new ShapeRef(router, polygon, 1045);
+
+ // shapeRef1046
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 1480.29);
+ polygon.ps[1] = Point(15270.5, 1542.29);
+ polygon.ps[2] = Point(15208.5, 1542.29);
+ polygon.ps[3] = Point(15208.5, 1480.29);
+ new ShapeRef(router, polygon, 1046);
+
+ // shapeRef1047
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13903, 6384.51);
+ polygon.ps[1] = Point(13903, 6446.51);
+ polygon.ps[2] = Point(13841, 6446.51);
+ polygon.ps[3] = Point(13841, 6384.51);
+ new ShapeRef(router, polygon, 1047);
+
+ // shapeRef1048
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13297, 5105.4);
+ polygon.ps[1] = Point(13297, 5167.4);
+ polygon.ps[2] = Point(13235, 5167.4);
+ polygon.ps[3] = Point(13235, 5105.4);
+ new ShapeRef(router, polygon, 1048);
+
+ // shapeRef1049
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11427.1, 7262.4);
+ polygon.ps[1] = Point(11427.1, 7324.4);
+ polygon.ps[2] = Point(11365.1, 7324.4);
+ polygon.ps[3] = Point(11365.1, 7262.4);
+ new ShapeRef(router, polygon, 1049);
+
+ // shapeRef1050
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17937.5, 11829.9);
+ polygon.ps[1] = Point(17937.5, 11891.9);
+ polygon.ps[2] = Point(17875.5, 11891.9);
+ polygon.ps[3] = Point(17875.5, 11829.9);
+ new ShapeRef(router, polygon, 1050);
+
+ // shapeRef1051
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18201.5, 11829.9);
+ polygon.ps[1] = Point(18201.5, 11891.9);
+ polygon.ps[2] = Point(18139.5, 11891.9);
+ polygon.ps[3] = Point(18139.5, 11829.9);
+ new ShapeRef(router, polygon, 1051);
+
+ // shapeRef1052
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16621.8, 8743.22);
+ polygon.ps[1] = Point(16621.8, 8805.22);
+ polygon.ps[2] = Point(16559.8, 8805.22);
+ polygon.ps[3] = Point(16559.8, 8743.22);
+ new ShapeRef(router, polygon, 1052);
+
+ // shapeRef1053
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13198, 5382.67);
+ polygon.ps[1] = Point(13198, 5444.67);
+ polygon.ps[2] = Point(13136, 5444.67);
+ polygon.ps[3] = Point(13136, 5382.67);
+ new ShapeRef(router, polygon, 1053);
+
+ // shapeRef1054
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11922.1, 5382.67);
+ polygon.ps[1] = Point(11922.1, 5444.67);
+ polygon.ps[2] = Point(11860.1, 5444.67);
+ polygon.ps[3] = Point(11860.1, 5382.67);
+ new ShapeRef(router, polygon, 1054);
+
+ // shapeRef1055
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11922.1, 5725.9);
+ polygon.ps[1] = Point(11922.1, 5787.9);
+ polygon.ps[2] = Point(11860.1, 5787.9);
+ polygon.ps[3] = Point(11860.1, 5725.9);
+ new ShapeRef(router, polygon, 1055);
+
+ // shapeRef1056
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12219.1, 5382.67);
+ polygon.ps[1] = Point(12219.1, 5444.67);
+ polygon.ps[2] = Point(12157.1, 5444.67);
+ polygon.ps[3] = Point(12157.1, 5382.67);
+ new ShapeRef(router, polygon, 1056);
+
+ // shapeRef1057
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11922.1, 6186.51);
+ polygon.ps[1] = Point(11922.1, 6248.51);
+ polygon.ps[2] = Point(11860.1, 6248.51);
+ polygon.ps[3] = Point(11860.1, 6186.51);
+ new ShapeRef(router, polygon, 1057);
+
+ // shapeRef1058
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12219.1, 6186.51);
+ polygon.ps[1] = Point(12219.1, 6248.51);
+ polygon.ps[2] = Point(12157.1, 6248.51);
+ polygon.ps[3] = Point(12157.1, 6186.51);
+ new ShapeRef(router, polygon, 1058);
+
+ // shapeRef1059
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 7746.79);
+ polygon.ps[1] = Point(12562.5, 7808.79);
+ polygon.ps[2] = Point(12500.5, 7808.79);
+ polygon.ps[3] = Point(12500.5, 7746.79);
+ new ShapeRef(router, polygon, 1059);
+
+ // shapeRef1060
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16295.6, 8449.99);
+ polygon.ps[1] = Point(16295.6, 8511.99);
+ polygon.ps[2] = Point(16233.6, 8511.99);
+ polygon.ps[3] = Point(16233.6, 8449.99);
+ new ShapeRef(router, polygon, 1060);
+
+ // shapeRef1061
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16295.6, 8743.22);
+ polygon.ps[1] = Point(16295.6, 8805.22);
+ polygon.ps[2] = Point(16233.6, 8805.22);
+ polygon.ps[3] = Point(16233.6, 8743.22);
+ new ShapeRef(router, polygon, 1061);
+
+ // shapeRef1062
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16588.8, 8449.99);
+ polygon.ps[1] = Point(16588.8, 8511.99);
+ polygon.ps[2] = Point(16526.8, 8511.99);
+ polygon.ps[3] = Point(16526.8, 8449.99);
+ new ShapeRef(router, polygon, 1062);
+
+ // shapeRef1063
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2175, 5481.67);
+ polygon.ps[1] = Point(2175, 5543.67);
+ polygon.ps[2] = Point(2113, 5543.67);
+ polygon.ps[3] = Point(2113, 5481.67);
+ new ShapeRef(router, polygon, 1063);
+
+ // shapeRef1064
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1779, 5481.67);
+ polygon.ps[1] = Point(1779, 5543.67);
+ polygon.ps[2] = Point(1717, 5543.67);
+ polygon.ps[3] = Point(1717, 5481.67);
+ new ShapeRef(router, polygon, 1064);
+
+ // shapeRef1065
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(723, 5481.67);
+ polygon.ps[1] = Point(723, 5543.67);
+ polygon.ps[2] = Point(661, 5543.67);
+ polygon.ps[3] = Point(661, 5481.67);
+ new ShapeRef(router, polygon, 1065);
+
+ // shapeRef1066
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5013, 5039.4);
+ polygon.ps[1] = Point(5013, 5101.4);
+ polygon.ps[2] = Point(4951, 5101.4);
+ polygon.ps[3] = Point(4951, 5039.4);
+ new ShapeRef(router, polygon, 1066);
+
+ // shapeRef1067
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3594, 5039.4);
+ polygon.ps[1] = Point(3594, 5101.4);
+ polygon.ps[2] = Point(3532, 5101.4);
+ polygon.ps[3] = Point(3532, 5039.4);
+ new ShapeRef(router, polygon, 1067);
+
+ // shapeRef1068
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3891, 7911.79);
+ polygon.ps[1] = Point(3891, 7973.79);
+ polygon.ps[2] = Point(3829, 7973.79);
+ polygon.ps[3] = Point(3829, 7911.79);
+ new ShapeRef(router, polygon, 1068);
+
+ // shapeRef1069
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4056, 7097.4);
+ polygon.ps[1] = Point(4056, 7159.4);
+ polygon.ps[2] = Point(3994, 7159.4);
+ polygon.ps[3] = Point(3994, 7097.4);
+ new ShapeRef(router, polygon, 1069);
+
+ // shapeRef1070
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17970.5, 9149.42);
+ polygon.ps[1] = Point(17970.5, 9211.42);
+ polygon.ps[2] = Point(17908.5, 9211.42);
+ polygon.ps[3] = Point(17908.5, 9149.42);
+ new ShapeRef(router, polygon, 1070);
+
+ // shapeRef1071
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18234.5, 9149.42);
+ polygon.ps[1] = Point(18234.5, 9211.42);
+ polygon.ps[2] = Point(18172.5, 9211.42);
+ polygon.ps[3] = Point(18172.5, 9149.42);
+ new ShapeRef(router, polygon, 1071);
+
+ // shapeRef1072
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 9677.42);
+ polygon.ps[1] = Point(12021.1, 9739.42);
+ polygon.ps[2] = Point(11959.1, 9739.42);
+ polygon.ps[3] = Point(11959.1, 9677.42);
+ new ShapeRef(router, polygon, 1072);
+
+ // shapeRef1073
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 10308);
+ polygon.ps[1] = Point(12021.1, 10370);
+ polygon.ps[2] = Point(11959.1, 10370);
+ polygon.ps[3] = Point(11959.1, 10308);
+ new ShapeRef(router, polygon, 1073);
+
+ // shapeRef1074
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 9182.42);
+ polygon.ps[1] = Point(12021.1, 9244.42);
+ polygon.ps[2] = Point(11959.1, 9244.42);
+ polygon.ps[3] = Point(11959.1, 9182.42);
+ new ShapeRef(router, polygon, 1074);
+
+ // shapeRef1075
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4518, 51.2652);
+ polygon.ps[1] = Point(4518, 113.265);
+ polygon.ps[2] = Point(4456, 113.265);
+ polygon.ps[3] = Point(4456, 51.2652);
+ new ShapeRef(router, polygon, 1075);
+
+ // shapeRef1076
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4122, 183.265);
+ polygon.ps[1] = Point(4122, 245.265);
+ polygon.ps[2] = Point(4060, 245.265);
+ polygon.ps[3] = Point(4060, 183.265);
+ new ShapeRef(router, polygon, 1076);
+
+ // shapeRef1077
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8060.29, 4095.51);
+ polygon.ps[1] = Point(8060.29, 4157.51);
+ polygon.ps[2] = Point(7998.29, 4157.51);
+ polygon.ps[3] = Point(7998.29, 4095.51);
+ new ShapeRef(router, polygon, 1077);
+
+ // shapeRef1078
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5277, 3043.29);
+ polygon.ps[1] = Point(5277, 3105.29);
+ polygon.ps[2] = Point(5215, 3105.29);
+ polygon.ps[3] = Point(5215, 3043.29);
+ new ShapeRef(router, polygon, 1078);
+
+ // shapeRef1079
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10741.2, 6998.4);
+ polygon.ps[1] = Point(10741.2, 7060.4);
+ polygon.ps[2] = Point(10679.2, 7060.4);
+ polygon.ps[3] = Point(10679.2, 6998.4);
+ new ShapeRef(router, polygon, 1079);
+
+ // shapeRef1080
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9914.69, 6516.51);
+ polygon.ps[1] = Point(9914.69, 6578.51);
+ polygon.ps[2] = Point(9852.69, 6578.51);
+ polygon.ps[3] = Point(9852.69, 6516.51);
+ new ShapeRef(router, polygon, 1080);
+
+ // shapeRef1081
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10454.9, 6998.4);
+ polygon.ps[1] = Point(10454.9, 7060.4);
+ polygon.ps[2] = Point(10392.9, 7060.4);
+ polygon.ps[3] = Point(10392.9, 6998.4);
+ new ShapeRef(router, polygon, 1081);
+
+ // shapeRef1082
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7408.1, 3600.51);
+ polygon.ps[1] = Point(7408.1, 3662.51);
+ polygon.ps[2] = Point(7346.1, 3662.51);
+ polygon.ps[3] = Point(7346.1, 3600.51);
+ new ShapeRef(router, polygon, 1082);
+
+ // shapeRef1083
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7408.1, 3996.51);
+ polygon.ps[1] = Point(7408.1, 4058.51);
+ polygon.ps[2] = Point(7346.1, 4058.51);
+ polygon.ps[3] = Point(7346.1, 3996.51);
+ new ShapeRef(router, polygon, 1083);
+
+ // shapeRef1084
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7408.1, 3798.51);
+ polygon.ps[1] = Point(7408.1, 3860.51);
+ polygon.ps[2] = Point(7346.1, 3860.51);
+ polygon.ps[3] = Point(7346.1, 3798.51);
+ new ShapeRef(router, polygon, 1084);
+
+ // shapeRef1085
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7829.29, 3798.51);
+ polygon.ps[1] = Point(7829.29, 3860.51);
+ polygon.ps[2] = Point(7767.29, 3860.51);
+ polygon.ps[3] = Point(7767.29, 3798.51);
+ new ShapeRef(router, polygon, 1085);
+
+ // shapeRef1086
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7928.29, 11763.9);
+ polygon.ps[1] = Point(7928.29, 11825.9);
+ polygon.ps[2] = Point(7866.29, 11825.9);
+ polygon.ps[3] = Point(7866.29, 11763.9);
+ new ShapeRef(router, polygon, 1086);
+
+ // shapeRef1087
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 11763.9);
+ polygon.ps[1] = Point(12562.5, 11825.9);
+ polygon.ps[2] = Point(12500.5, 11825.9);
+ polygon.ps[3] = Point(12500.5, 11763.9);
+ new ShapeRef(router, polygon, 1087);
+
+ // shapeRef1088
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1317, 2515.29);
+ polygon.ps[1] = Point(1317, 2577.29);
+ polygon.ps[2] = Point(1255, 2577.29);
+ polygon.ps[3] = Point(1255, 2515.29);
+ new ShapeRef(router, polygon, 1088);
+
+ // shapeRef1089
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 14797.9);
+ polygon.ps[1] = Point(8689.03, 14837.9);
+ polygon.ps[2] = Point(8634.03, 14837.9);
+ polygon.ps[3] = Point(8634.03, 14797.9);
+ new ShapeRef(router, polygon, 1089);
+
+ // shapeRef1090
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 14797.9);
+ polygon.ps[1] = Point(8789.03, 14837.9);
+ polygon.ps[2] = Point(8734.03, 14837.9);
+ polygon.ps[3] = Point(8734.03, 14797.9);
+ new ShapeRef(router, polygon, 1090);
+
+ // shapeRef1091
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 14797.9);
+ polygon.ps[1] = Point(8889.03, 14837.9);
+ polygon.ps[2] = Point(8834.03, 14837.9);
+ polygon.ps[3] = Point(8834.03, 14797.9);
+ new ShapeRef(router, polygon, 1091);
+
+ // shapeRef1092
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 14797.9);
+ polygon.ps[1] = Point(8989.03, 14837.9);
+ polygon.ps[2] = Point(8934.03, 14837.9);
+ polygon.ps[3] = Point(8934.03, 14797.9);
+ new ShapeRef(router, polygon, 1092);
+
+ // shapeRef1093
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 14797.9);
+ polygon.ps[1] = Point(9089.03, 14837.9);
+ polygon.ps[2] = Point(9034.03, 14837.9);
+ polygon.ps[3] = Point(9034.03, 14797.9);
+ new ShapeRef(router, polygon, 1093);
+
+ // shapeRef1094
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 14797.9);
+ polygon.ps[1] = Point(9189.03, 14837.9);
+ polygon.ps[2] = Point(9134.03, 14837.9);
+ polygon.ps[3] = Point(9134.03, 14797.9);
+ new ShapeRef(router, polygon, 1094);
+
+ // shapeRef1095
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 14797.9);
+ polygon.ps[1] = Point(9289.03, 14837.9);
+ polygon.ps[2] = Point(9234.03, 14837.9);
+ polygon.ps[3] = Point(9234.03, 14797.9);
+ new ShapeRef(router, polygon, 1095);
+
+ // shapeRef1096
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 14797.9);
+ polygon.ps[1] = Point(9389.03, 14837.9);
+ polygon.ps[2] = Point(9334.03, 14837.9);
+ polygon.ps[3] = Point(9334.03, 14797.9);
+ new ShapeRef(router, polygon, 1096);
+
+ // shapeRef1097
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 14897.9);
+ polygon.ps[1] = Point(8389.03, 14937.9);
+ polygon.ps[2] = Point(8334.03, 14937.9);
+ polygon.ps[3] = Point(8334.03, 14897.9);
+ new ShapeRef(router, polygon, 1097);
+
+ // shapeRef1098
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 14897.9);
+ polygon.ps[1] = Point(8489.03, 14937.9);
+ polygon.ps[2] = Point(8434.03, 14937.9);
+ polygon.ps[3] = Point(8434.03, 14897.9);
+ new ShapeRef(router, polygon, 1098);
+
+ // shapeRef1099
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 14897.9);
+ polygon.ps[1] = Point(8589.03, 14937.9);
+ polygon.ps[2] = Point(8534.03, 14937.9);
+ polygon.ps[3] = Point(8534.03, 14897.9);
+ new ShapeRef(router, polygon, 1099);
+
+ // shapeRef1100
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 14897.9);
+ polygon.ps[1] = Point(8689.03, 14937.9);
+ polygon.ps[2] = Point(8634.03, 14937.9);
+ polygon.ps[3] = Point(8634.03, 14897.9);
+ new ShapeRef(router, polygon, 1100);
+
+ // shapeRef1101
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 14897.9);
+ polygon.ps[1] = Point(8789.03, 14937.9);
+ polygon.ps[2] = Point(8734.03, 14937.9);
+ polygon.ps[3] = Point(8734.03, 14897.9);
+ new ShapeRef(router, polygon, 1101);
+
+ // shapeRef1102
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 14897.9);
+ polygon.ps[1] = Point(8889.03, 14937.9);
+ polygon.ps[2] = Point(8834.03, 14937.9);
+ polygon.ps[3] = Point(8834.03, 14897.9);
+ new ShapeRef(router, polygon, 1102);
+
+ // shapeRef1103
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 14897.9);
+ polygon.ps[1] = Point(8989.03, 14937.9);
+ polygon.ps[2] = Point(8934.03, 14937.9);
+ polygon.ps[3] = Point(8934.03, 14897.9);
+ new ShapeRef(router, polygon, 1103);
+
+ // shapeRef1104
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 14897.9);
+ polygon.ps[1] = Point(9089.03, 14937.9);
+ polygon.ps[2] = Point(9034.03, 14937.9);
+ polygon.ps[3] = Point(9034.03, 14897.9);
+ new ShapeRef(router, polygon, 1104);
+
+ // shapeRef1105
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 14897.9);
+ polygon.ps[1] = Point(9189.03, 14937.9);
+ polygon.ps[2] = Point(9134.03, 14937.9);
+ polygon.ps[3] = Point(9134.03, 14897.9);
+ new ShapeRef(router, polygon, 1105);
+
+ // shapeRef1106
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 14897.9);
+ polygon.ps[1] = Point(9289.03, 14937.9);
+ polygon.ps[2] = Point(9234.03, 14937.9);
+ polygon.ps[3] = Point(9234.03, 14897.9);
+ new ShapeRef(router, polygon, 1106);
+
+ // shapeRef1107
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 14897.9);
+ polygon.ps[1] = Point(9389.03, 14937.9);
+ polygon.ps[2] = Point(9334.03, 14937.9);
+ polygon.ps[3] = Point(9334.03, 14897.9);
+ new ShapeRef(router, polygon, 1107);
+
+ // shapeRef1108
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 14997.9);
+ polygon.ps[1] = Point(8389.03, 15037.9);
+ polygon.ps[2] = Point(8334.03, 15037.9);
+ polygon.ps[3] = Point(8334.03, 14997.9);
+ new ShapeRef(router, polygon, 1108);
+
+ // shapeRef1109
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 14997.9);
+ polygon.ps[1] = Point(8489.03, 15037.9);
+ polygon.ps[2] = Point(8434.03, 15037.9);
+ polygon.ps[3] = Point(8434.03, 14997.9);
+ new ShapeRef(router, polygon, 1109);
+
+ // shapeRef1110
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 14997.9);
+ polygon.ps[1] = Point(8589.03, 15037.9);
+ polygon.ps[2] = Point(8534.03, 15037.9);
+ polygon.ps[3] = Point(8534.03, 14997.9);
+ new ShapeRef(router, polygon, 1110);
+
+ // shapeRef1111
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 14997.9);
+ polygon.ps[1] = Point(8689.03, 15037.9);
+ polygon.ps[2] = Point(8634.03, 15037.9);
+ polygon.ps[3] = Point(8634.03, 14997.9);
+ new ShapeRef(router, polygon, 1111);
+
+ // shapeRef1112
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 14997.9);
+ polygon.ps[1] = Point(8789.03, 15037.9);
+ polygon.ps[2] = Point(8734.03, 15037.9);
+ polygon.ps[3] = Point(8734.03, 14997.9);
+ new ShapeRef(router, polygon, 1112);
+
+ // shapeRef1113
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 14997.9);
+ polygon.ps[1] = Point(8889.03, 15037.9);
+ polygon.ps[2] = Point(8834.03, 15037.9);
+ polygon.ps[3] = Point(8834.03, 14997.9);
+ new ShapeRef(router, polygon, 1113);
+
+ // shapeRef1114
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 14997.9);
+ polygon.ps[1] = Point(8989.03, 15037.9);
+ polygon.ps[2] = Point(8934.03, 15037.9);
+ polygon.ps[3] = Point(8934.03, 14997.9);
+ new ShapeRef(router, polygon, 1114);
+
+ // shapeRef1115
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 14997.9);
+ polygon.ps[1] = Point(9089.03, 15037.9);
+ polygon.ps[2] = Point(9034.03, 15037.9);
+ polygon.ps[3] = Point(9034.03, 14997.9);
+ new ShapeRef(router, polygon, 1115);
+
+ // shapeRef1116
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 14997.9);
+ polygon.ps[1] = Point(9189.03, 15037.9);
+ polygon.ps[2] = Point(9134.03, 15037.9);
+ polygon.ps[3] = Point(9134.03, 14997.9);
+ new ShapeRef(router, polygon, 1116);
+
+ // shapeRef1117
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 14997.9);
+ polygon.ps[1] = Point(9289.03, 15037.9);
+ polygon.ps[2] = Point(9234.03, 15037.9);
+ polygon.ps[3] = Point(9234.03, 14997.9);
+ new ShapeRef(router, polygon, 1117);
+
+ // shapeRef1118
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 14997.9);
+ polygon.ps[1] = Point(9389.03, 15037.9);
+ polygon.ps[2] = Point(9334.03, 15037.9);
+ polygon.ps[3] = Point(9334.03, 14997.9);
+ new ShapeRef(router, polygon, 1118);
+
+ // shapeRef1119
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15097.9);
+ polygon.ps[1] = Point(8389.03, 15137.9);
+ polygon.ps[2] = Point(8334.03, 15137.9);
+ polygon.ps[3] = Point(8334.03, 15097.9);
+ new ShapeRef(router, polygon, 1119);
+
+ // shapeRef1120
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15097.9);
+ polygon.ps[1] = Point(8489.03, 15137.9);
+ polygon.ps[2] = Point(8434.03, 15137.9);
+ polygon.ps[3] = Point(8434.03, 15097.9);
+ new ShapeRef(router, polygon, 1120);
+
+ // shapeRef1121
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15097.9);
+ polygon.ps[1] = Point(8589.03, 15137.9);
+ polygon.ps[2] = Point(8534.03, 15137.9);
+ polygon.ps[3] = Point(8534.03, 15097.9);
+ new ShapeRef(router, polygon, 1121);
+
+ // shapeRef1122
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15097.9);
+ polygon.ps[1] = Point(8789.03, 15137.9);
+ polygon.ps[2] = Point(8734.03, 15137.9);
+ polygon.ps[3] = Point(8734.03, 15097.9);
+ new ShapeRef(router, polygon, 1122);
+
+ // shapeRef1123
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15097.9);
+ polygon.ps[1] = Point(8889.03, 15137.9);
+ polygon.ps[2] = Point(8834.03, 15137.9);
+ polygon.ps[3] = Point(8834.03, 15097.9);
+ new ShapeRef(router, polygon, 1123);
+
+ // shapeRef1124
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15097.9);
+ polygon.ps[1] = Point(8989.03, 15137.9);
+ polygon.ps[2] = Point(8934.03, 15137.9);
+ polygon.ps[3] = Point(8934.03, 15097.9);
+ new ShapeRef(router, polygon, 1124);
+
+ // shapeRef1125
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15097.9);
+ polygon.ps[1] = Point(9089.03, 15137.9);
+ polygon.ps[2] = Point(9034.03, 15137.9);
+ polygon.ps[3] = Point(9034.03, 15097.9);
+ new ShapeRef(router, polygon, 1125);
+
+ // shapeRef1126
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15097.9);
+ polygon.ps[1] = Point(9189.03, 15137.9);
+ polygon.ps[2] = Point(9134.03, 15137.9);
+ polygon.ps[3] = Point(9134.03, 15097.9);
+ new ShapeRef(router, polygon, 1126);
+
+ // shapeRef1127
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15097.9);
+ polygon.ps[1] = Point(9289.03, 15137.9);
+ polygon.ps[2] = Point(9234.03, 15137.9);
+ polygon.ps[3] = Point(9234.03, 15097.9);
+ new ShapeRef(router, polygon, 1127);
+
+ // shapeRef1128
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15097.9);
+ polygon.ps[1] = Point(9389.03, 15137.9);
+ polygon.ps[2] = Point(9334.03, 15137.9);
+ polygon.ps[3] = Point(9334.03, 15097.9);
+ new ShapeRef(router, polygon, 1128);
+
+ // shapeRef1129
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15197.9);
+ polygon.ps[1] = Point(8389.03, 15237.9);
+ polygon.ps[2] = Point(8334.03, 15237.9);
+ polygon.ps[3] = Point(8334.03, 15197.9);
+ new ShapeRef(router, polygon, 1129);
+
+ // shapeRef1130
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15197.9);
+ polygon.ps[1] = Point(8489.03, 15237.9);
+ polygon.ps[2] = Point(8434.03, 15237.9);
+ polygon.ps[3] = Point(8434.03, 15197.9);
+ new ShapeRef(router, polygon, 1130);
+
+ // shapeRef1131
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15197.9);
+ polygon.ps[1] = Point(8789.03, 15237.9);
+ polygon.ps[2] = Point(8734.03, 15237.9);
+ polygon.ps[3] = Point(8734.03, 15197.9);
+ new ShapeRef(router, polygon, 1131);
+
+ // shapeRef1132
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15197.9);
+ polygon.ps[1] = Point(8889.03, 15237.9);
+ polygon.ps[2] = Point(8834.03, 15237.9);
+ polygon.ps[3] = Point(8834.03, 15197.9);
+ new ShapeRef(router, polygon, 1132);
+
+ // shapeRef1133
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15197.9);
+ polygon.ps[1] = Point(8989.03, 15237.9);
+ polygon.ps[2] = Point(8934.03, 15237.9);
+ polygon.ps[3] = Point(8934.03, 15197.9);
+ new ShapeRef(router, polygon, 1133);
+
+ // shapeRef1134
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15197.9);
+ polygon.ps[1] = Point(9089.03, 15237.9);
+ polygon.ps[2] = Point(9034.03, 15237.9);
+ polygon.ps[3] = Point(9034.03, 15197.9);
+ new ShapeRef(router, polygon, 1134);
+
+ // shapeRef1135
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15197.9);
+ polygon.ps[1] = Point(9289.03, 15237.9);
+ polygon.ps[2] = Point(9234.03, 15237.9);
+ polygon.ps[3] = Point(9234.03, 15197.9);
+ new ShapeRef(router, polygon, 1135);
+
+ // shapeRef1136
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15197.9);
+ polygon.ps[1] = Point(9389.03, 15237.9);
+ polygon.ps[2] = Point(9334.03, 15237.9);
+ polygon.ps[3] = Point(9334.03, 15197.9);
+ new ShapeRef(router, polygon, 1136);
+
+ // shapeRef1137
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15297.9);
+ polygon.ps[1] = Point(8389.03, 15337.9);
+ polygon.ps[2] = Point(8334.03, 15337.9);
+ polygon.ps[3] = Point(8334.03, 15297.9);
+ new ShapeRef(router, polygon, 1137);
+
+ // shapeRef1138
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15297.9);
+ polygon.ps[1] = Point(8489.03, 15337.9);
+ polygon.ps[2] = Point(8434.03, 15337.9);
+ polygon.ps[3] = Point(8434.03, 15297.9);
+ new ShapeRef(router, polygon, 1138);
+
+ // shapeRef1139
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15297.9);
+ polygon.ps[1] = Point(8589.03, 15337.9);
+ polygon.ps[2] = Point(8534.03, 15337.9);
+ polygon.ps[3] = Point(8534.03, 15297.9);
+ new ShapeRef(router, polygon, 1139);
+
+ // shapeRef1140
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15297.9);
+ polygon.ps[1] = Point(8689.03, 15337.9);
+ polygon.ps[2] = Point(8634.03, 15337.9);
+ polygon.ps[3] = Point(8634.03, 15297.9);
+ new ShapeRef(router, polygon, 1140);
+
+ // shapeRef1141
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15297.9);
+ polygon.ps[1] = Point(8789.03, 15337.9);
+ polygon.ps[2] = Point(8734.03, 15337.9);
+ polygon.ps[3] = Point(8734.03, 15297.9);
+ new ShapeRef(router, polygon, 1141);
+
+ // shapeRef1142
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15297.9);
+ polygon.ps[1] = Point(8889.03, 15337.9);
+ polygon.ps[2] = Point(8834.03, 15337.9);
+ polygon.ps[3] = Point(8834.03, 15297.9);
+ new ShapeRef(router, polygon, 1142);
+
+ // shapeRef1143
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15297.9);
+ polygon.ps[1] = Point(8989.03, 15337.9);
+ polygon.ps[2] = Point(8934.03, 15337.9);
+ polygon.ps[3] = Point(8934.03, 15297.9);
+ new ShapeRef(router, polygon, 1143);
+
+ // shapeRef1144
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15297.9);
+ polygon.ps[1] = Point(9089.03, 15337.9);
+ polygon.ps[2] = Point(9034.03, 15337.9);
+ polygon.ps[3] = Point(9034.03, 15297.9);
+ new ShapeRef(router, polygon, 1144);
+
+ // shapeRef1145
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15297.9);
+ polygon.ps[1] = Point(9189.03, 15337.9);
+ polygon.ps[2] = Point(9134.03, 15337.9);
+ polygon.ps[3] = Point(9134.03, 15297.9);
+ new ShapeRef(router, polygon, 1145);
+
+ // shapeRef1146
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15297.9);
+ polygon.ps[1] = Point(9289.03, 15337.9);
+ polygon.ps[2] = Point(9234.03, 15337.9);
+ polygon.ps[3] = Point(9234.03, 15297.9);
+ new ShapeRef(router, polygon, 1146);
+
+ // shapeRef1147
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15297.9);
+ polygon.ps[1] = Point(9389.03, 15337.9);
+ polygon.ps[2] = Point(9334.03, 15337.9);
+ polygon.ps[3] = Point(9334.03, 15297.9);
+ new ShapeRef(router, polygon, 1147);
+
+ // shapeRef1148
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15397.9);
+ polygon.ps[1] = Point(8389.03, 15437.9);
+ polygon.ps[2] = Point(8334.03, 15437.9);
+ polygon.ps[3] = Point(8334.03, 15397.9);
+ new ShapeRef(router, polygon, 1148);
+
+ // shapeRef1149
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15397.9);
+ polygon.ps[1] = Point(8489.03, 15437.9);
+ polygon.ps[2] = Point(8434.03, 15437.9);
+ polygon.ps[3] = Point(8434.03, 15397.9);
+ new ShapeRef(router, polygon, 1149);
+
+ // shapeRef1150
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15397.9);
+ polygon.ps[1] = Point(8589.03, 15437.9);
+ polygon.ps[2] = Point(8534.03, 15437.9);
+ polygon.ps[3] = Point(8534.03, 15397.9);
+ new ShapeRef(router, polygon, 1150);
+
+ // shapeRef1151
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15397.9);
+ polygon.ps[1] = Point(8689.03, 15437.9);
+ polygon.ps[2] = Point(8634.03, 15437.9);
+ polygon.ps[3] = Point(8634.03, 15397.9);
+ new ShapeRef(router, polygon, 1151);
+
+ // shapeRef1152
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15397.9);
+ polygon.ps[1] = Point(8789.03, 15437.9);
+ polygon.ps[2] = Point(8734.03, 15437.9);
+ polygon.ps[3] = Point(8734.03, 15397.9);
+ new ShapeRef(router, polygon, 1152);
+
+ // shapeRef1153
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15397.9);
+ polygon.ps[1] = Point(8889.03, 15437.9);
+ polygon.ps[2] = Point(8834.03, 15437.9);
+ polygon.ps[3] = Point(8834.03, 15397.9);
+ new ShapeRef(router, polygon, 1153);
+
+ // shapeRef1154
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15397.9);
+ polygon.ps[1] = Point(8989.03, 15437.9);
+ polygon.ps[2] = Point(8934.03, 15437.9);
+ polygon.ps[3] = Point(8934.03, 15397.9);
+ new ShapeRef(router, polygon, 1154);
+
+ // shapeRef1155
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15397.9);
+ polygon.ps[1] = Point(9089.03, 15437.9);
+ polygon.ps[2] = Point(9034.03, 15437.9);
+ polygon.ps[3] = Point(9034.03, 15397.9);
+ new ShapeRef(router, polygon, 1155);
+
+ // shapeRef1156
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15397.9);
+ polygon.ps[1] = Point(9189.03, 15437.9);
+ polygon.ps[2] = Point(9134.03, 15437.9);
+ polygon.ps[3] = Point(9134.03, 15397.9);
+ new ShapeRef(router, polygon, 1156);
+
+ // shapeRef1157
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15397.9);
+ polygon.ps[1] = Point(9289.03, 15437.9);
+ polygon.ps[2] = Point(9234.03, 15437.9);
+ polygon.ps[3] = Point(9234.03, 15397.9);
+ new ShapeRef(router, polygon, 1157);
+
+ // shapeRef1158
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15397.9);
+ polygon.ps[1] = Point(9389.03, 15437.9);
+ polygon.ps[2] = Point(9334.03, 15437.9);
+ polygon.ps[3] = Point(9334.03, 15397.9);
+ new ShapeRef(router, polygon, 1158);
+
+ // shapeRef1159
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15497.9);
+ polygon.ps[1] = Point(8489.03, 15537.9);
+ polygon.ps[2] = Point(8434.03, 15537.9);
+ polygon.ps[3] = Point(8434.03, 15497.9);
+ new ShapeRef(router, polygon, 1159);
+
+ // shapeRef1160
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15497.9);
+ polygon.ps[1] = Point(8589.03, 15537.9);
+ polygon.ps[2] = Point(8534.03, 15537.9);
+ polygon.ps[3] = Point(8534.03, 15497.9);
+ new ShapeRef(router, polygon, 1160);
+
+ // shapeRef1161
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15497.9);
+ polygon.ps[1] = Point(8689.03, 15537.9);
+ polygon.ps[2] = Point(8634.03, 15537.9);
+ polygon.ps[3] = Point(8634.03, 15497.9);
+ new ShapeRef(router, polygon, 1161);
+
+ // shapeRef1162
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15497.9);
+ polygon.ps[1] = Point(8789.03, 15537.9);
+ polygon.ps[2] = Point(8734.03, 15537.9);
+ polygon.ps[3] = Point(8734.03, 15497.9);
+ new ShapeRef(router, polygon, 1162);
+
+ // shapeRef1163
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15497.9);
+ polygon.ps[1] = Point(8889.03, 15537.9);
+ polygon.ps[2] = Point(8834.03, 15537.9);
+ polygon.ps[3] = Point(8834.03, 15497.9);
+ new ShapeRef(router, polygon, 1163);
+
+ // shapeRef1164
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15497.9);
+ polygon.ps[1] = Point(8989.03, 15537.9);
+ polygon.ps[2] = Point(8934.03, 15537.9);
+ polygon.ps[3] = Point(8934.03, 15497.9);
+ new ShapeRef(router, polygon, 1164);
+
+ // shapeRef1165
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15497.9);
+ polygon.ps[1] = Point(9089.03, 15537.9);
+ polygon.ps[2] = Point(9034.03, 15537.9);
+ polygon.ps[3] = Point(9034.03, 15497.9);
+ new ShapeRef(router, polygon, 1165);
+
+ // shapeRef1166
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15497.9);
+ polygon.ps[1] = Point(9189.03, 15537.9);
+ polygon.ps[2] = Point(9134.03, 15537.9);
+ polygon.ps[3] = Point(9134.03, 15497.9);
+ new ShapeRef(router, polygon, 1166);
+
+ // shapeRef1167
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15497.9);
+ polygon.ps[1] = Point(9289.03, 15537.9);
+ polygon.ps[2] = Point(9234.03, 15537.9);
+ polygon.ps[3] = Point(9234.03, 15497.9);
+ new ShapeRef(router, polygon, 1167);
+
+ // shapeRef1168
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15497.9);
+ polygon.ps[1] = Point(9389.03, 15537.9);
+ polygon.ps[2] = Point(9334.03, 15537.9);
+ polygon.ps[3] = Point(9334.03, 15497.9);
+ new ShapeRef(router, polygon, 1168);
+
+ // shapeRef1169
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15597.9);
+ polygon.ps[1] = Point(8389.03, 15637.9);
+ polygon.ps[2] = Point(8334.03, 15637.9);
+ polygon.ps[3] = Point(8334.03, 15597.9);
+ new ShapeRef(router, polygon, 1169);
+
+ // shapeRef1170
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15597.9);
+ polygon.ps[1] = Point(8489.03, 15637.9);
+ polygon.ps[2] = Point(8434.03, 15637.9);
+ polygon.ps[3] = Point(8434.03, 15597.9);
+ new ShapeRef(router, polygon, 1170);
+
+ // shapeRef1171
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15597.9);
+ polygon.ps[1] = Point(8589.03, 15637.9);
+ polygon.ps[2] = Point(8534.03, 15637.9);
+ polygon.ps[3] = Point(8534.03, 15597.9);
+ new ShapeRef(router, polygon, 1171);
+
+ // shapeRef1172
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15597.9);
+ polygon.ps[1] = Point(8689.03, 15637.9);
+ polygon.ps[2] = Point(8634.03, 15637.9);
+ polygon.ps[3] = Point(8634.03, 15597.9);
+ new ShapeRef(router, polygon, 1172);
+
+ // shapeRef1173
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15597.9);
+ polygon.ps[1] = Point(8789.03, 15637.9);
+ polygon.ps[2] = Point(8734.03, 15637.9);
+ polygon.ps[3] = Point(8734.03, 15597.9);
+ new ShapeRef(router, polygon, 1173);
+
+ // shapeRef1174
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15597.9);
+ polygon.ps[1] = Point(8889.03, 15637.9);
+ polygon.ps[2] = Point(8834.03, 15637.9);
+ polygon.ps[3] = Point(8834.03, 15597.9);
+ new ShapeRef(router, polygon, 1174);
+
+ // shapeRef1175
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15597.9);
+ polygon.ps[1] = Point(8989.03, 15637.9);
+ polygon.ps[2] = Point(8934.03, 15637.9);
+ polygon.ps[3] = Point(8934.03, 15597.9);
+ new ShapeRef(router, polygon, 1175);
+
+ // shapeRef1176
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15597.9);
+ polygon.ps[1] = Point(9089.03, 15637.9);
+ polygon.ps[2] = Point(9034.03, 15637.9);
+ polygon.ps[3] = Point(9034.03, 15597.9);
+ new ShapeRef(router, polygon, 1176);
+
+ // shapeRef1177
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15597.9);
+ polygon.ps[1] = Point(9189.03, 15637.9);
+ polygon.ps[2] = Point(9134.03, 15637.9);
+ polygon.ps[3] = Point(9134.03, 15597.9);
+ new ShapeRef(router, polygon, 1177);
+
+ // shapeRef1178
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15597.9);
+ polygon.ps[1] = Point(9289.03, 15637.9);
+ polygon.ps[2] = Point(9234.03, 15637.9);
+ polygon.ps[3] = Point(9234.03, 15597.9);
+ new ShapeRef(router, polygon, 1178);
+
+ // shapeRef1179
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15597.9);
+ polygon.ps[1] = Point(9389.03, 15637.9);
+ polygon.ps[2] = Point(9334.03, 15637.9);
+ polygon.ps[3] = Point(9334.03, 15597.9);
+ new ShapeRef(router, polygon, 1179);
+
+ // shapeRef1180
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15697.9);
+ polygon.ps[1] = Point(8389.03, 15737.9);
+ polygon.ps[2] = Point(8334.03, 15737.9);
+ polygon.ps[3] = Point(8334.03, 15697.9);
+ new ShapeRef(router, polygon, 1180);
+
+ // shapeRef1181
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15697.9);
+ polygon.ps[1] = Point(8489.03, 15737.9);
+ polygon.ps[2] = Point(8434.03, 15737.9);
+ polygon.ps[3] = Point(8434.03, 15697.9);
+ new ShapeRef(router, polygon, 1181);
+
+ // shapeRef1182
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15697.9);
+ polygon.ps[1] = Point(8589.03, 15737.9);
+ polygon.ps[2] = Point(8534.03, 15737.9);
+ polygon.ps[3] = Point(8534.03, 15697.9);
+ new ShapeRef(router, polygon, 1182);
+
+ // shapeRef1183
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15697.9);
+ polygon.ps[1] = Point(8689.03, 15737.9);
+ polygon.ps[2] = Point(8634.03, 15737.9);
+ polygon.ps[3] = Point(8634.03, 15697.9);
+ new ShapeRef(router, polygon, 1183);
+
+ // shapeRef1184
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15697.9);
+ polygon.ps[1] = Point(8789.03, 15737.9);
+ polygon.ps[2] = Point(8734.03, 15737.9);
+ polygon.ps[3] = Point(8734.03, 15697.9);
+ new ShapeRef(router, polygon, 1184);
+
+ // shapeRef1185
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15697.9);
+ polygon.ps[1] = Point(8889.03, 15737.9);
+ polygon.ps[2] = Point(8834.03, 15737.9);
+ polygon.ps[3] = Point(8834.03, 15697.9);
+ new ShapeRef(router, polygon, 1185);
+
+ // shapeRef1186
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15697.9);
+ polygon.ps[1] = Point(8989.03, 15737.9);
+ polygon.ps[2] = Point(8934.03, 15737.9);
+ polygon.ps[3] = Point(8934.03, 15697.9);
+ new ShapeRef(router, polygon, 1186);
+
+ // shapeRef1187
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15697.9);
+ polygon.ps[1] = Point(9089.03, 15737.9);
+ polygon.ps[2] = Point(9034.03, 15737.9);
+ polygon.ps[3] = Point(9034.03, 15697.9);
+ new ShapeRef(router, polygon, 1187);
+
+ // shapeRef1188
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15697.9);
+ polygon.ps[1] = Point(9189.03, 15737.9);
+ polygon.ps[2] = Point(9134.03, 15737.9);
+ polygon.ps[3] = Point(9134.03, 15697.9);
+ new ShapeRef(router, polygon, 1188);
+
+ // shapeRef1189
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15697.9);
+ polygon.ps[1] = Point(9289.03, 15737.9);
+ polygon.ps[2] = Point(9234.03, 15737.9);
+ polygon.ps[3] = Point(9234.03, 15697.9);
+ new ShapeRef(router, polygon, 1189);
+
+ // shapeRef1190
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15697.9);
+ polygon.ps[1] = Point(9389.03, 15737.9);
+ polygon.ps[2] = Point(9334.03, 15737.9);
+ polygon.ps[3] = Point(9334.03, 15697.9);
+ new ShapeRef(router, polygon, 1190);
+
+ // shapeRef1191
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15797.9);
+ polygon.ps[1] = Point(8389.03, 15837.9);
+ polygon.ps[2] = Point(8334.03, 15837.9);
+ polygon.ps[3] = Point(8334.03, 15797.9);
+ new ShapeRef(router, polygon, 1191);
+
+ // shapeRef1192
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15797.9);
+ polygon.ps[1] = Point(8489.03, 15837.9);
+ polygon.ps[2] = Point(8434.03, 15837.9);
+ polygon.ps[3] = Point(8434.03, 15797.9);
+ new ShapeRef(router, polygon, 1192);
+
+ // shapeRef1193
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15797.9);
+ polygon.ps[1] = Point(8589.03, 15837.9);
+ polygon.ps[2] = Point(8534.03, 15837.9);
+ polygon.ps[3] = Point(8534.03, 15797.9);
+ new ShapeRef(router, polygon, 1193);
+
+ // shapeRef1194
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15797.9);
+ polygon.ps[1] = Point(8689.03, 15837.9);
+ polygon.ps[2] = Point(8634.03, 15837.9);
+ polygon.ps[3] = Point(8634.03, 15797.9);
+ new ShapeRef(router, polygon, 1194);
+
+ // shapeRef1195
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15797.9);
+ polygon.ps[1] = Point(8789.03, 15837.9);
+ polygon.ps[2] = Point(8734.03, 15837.9);
+ polygon.ps[3] = Point(8734.03, 15797.9);
+ new ShapeRef(router, polygon, 1195);
+
+ // shapeRef1196
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15797.9);
+ polygon.ps[1] = Point(8889.03, 15837.9);
+ polygon.ps[2] = Point(8834.03, 15837.9);
+ polygon.ps[3] = Point(8834.03, 15797.9);
+ new ShapeRef(router, polygon, 1196);
+
+ // shapeRef1197
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15797.9);
+ polygon.ps[1] = Point(8989.03, 15837.9);
+ polygon.ps[2] = Point(8934.03, 15837.9);
+ polygon.ps[3] = Point(8934.03, 15797.9);
+ new ShapeRef(router, polygon, 1197);
+
+ // shapeRef1198
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15797.9);
+ polygon.ps[1] = Point(9089.03, 15837.9);
+ polygon.ps[2] = Point(9034.03, 15837.9);
+ polygon.ps[3] = Point(9034.03, 15797.9);
+ new ShapeRef(router, polygon, 1198);
+
+ // shapeRef1199
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15797.9);
+ polygon.ps[1] = Point(9189.03, 15837.9);
+ polygon.ps[2] = Point(9134.03, 15837.9);
+ polygon.ps[3] = Point(9134.03, 15797.9);
+ new ShapeRef(router, polygon, 1199);
+
+ // shapeRef1200
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15797.9);
+ polygon.ps[1] = Point(9289.03, 15837.9);
+ polygon.ps[2] = Point(9234.03, 15837.9);
+ polygon.ps[3] = Point(9234.03, 15797.9);
+ new ShapeRef(router, polygon, 1200);
+
+ // shapeRef1201
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15797.9);
+ polygon.ps[1] = Point(9389.03, 15837.9);
+ polygon.ps[2] = Point(9334.03, 15837.9);
+ polygon.ps[3] = Point(9334.03, 15797.9);
+ new ShapeRef(router, polygon, 1201);
+
+ // shapeRef1202
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15897.9);
+ polygon.ps[1] = Point(8389.03, 15937.9);
+ polygon.ps[2] = Point(8334.03, 15937.9);
+ polygon.ps[3] = Point(8334.03, 15897.9);
+ new ShapeRef(router, polygon, 1202);
+
+ // shapeRef1203
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15897.9);
+ polygon.ps[1] = Point(8489.03, 15937.9);
+ polygon.ps[2] = Point(8434.03, 15937.9);
+ polygon.ps[3] = Point(8434.03, 15897.9);
+ new ShapeRef(router, polygon, 1203);
+
+ // shapeRef1204
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15897.9);
+ polygon.ps[1] = Point(8589.03, 15937.9);
+ polygon.ps[2] = Point(8534.03, 15937.9);
+ polygon.ps[3] = Point(8534.03, 15897.9);
+ new ShapeRef(router, polygon, 1204);
+
+ // shapeRef1205
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15897.9);
+ polygon.ps[1] = Point(8689.03, 15937.9);
+ polygon.ps[2] = Point(8634.03, 15937.9);
+ polygon.ps[3] = Point(8634.03, 15897.9);
+ new ShapeRef(router, polygon, 1205);
+
+ // shapeRef1206
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15897.9);
+ polygon.ps[1] = Point(8789.03, 15937.9);
+ polygon.ps[2] = Point(8734.03, 15937.9);
+ polygon.ps[3] = Point(8734.03, 15897.9);
+ new ShapeRef(router, polygon, 1206);
+
+ // shapeRef1207
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15897.9);
+ polygon.ps[1] = Point(8889.03, 15937.9);
+ polygon.ps[2] = Point(8834.03, 15937.9);
+ polygon.ps[3] = Point(8834.03, 15897.9);
+ new ShapeRef(router, polygon, 1207);
+
+ // shapeRef1208
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15897.9);
+ polygon.ps[1] = Point(8989.03, 15937.9);
+ polygon.ps[2] = Point(8934.03, 15937.9);
+ polygon.ps[3] = Point(8934.03, 15897.9);
+ new ShapeRef(router, polygon, 1208);
+
+ // shapeRef1209
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15897.9);
+ polygon.ps[1] = Point(9089.03, 15937.9);
+ polygon.ps[2] = Point(9034.03, 15937.9);
+ polygon.ps[3] = Point(9034.03, 15897.9);
+ new ShapeRef(router, polygon, 1209);
+
+ // shapeRef1210
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15897.9);
+ polygon.ps[1] = Point(9189.03, 15937.9);
+ polygon.ps[2] = Point(9134.03, 15937.9);
+ polygon.ps[3] = Point(9134.03, 15897.9);
+ new ShapeRef(router, polygon, 1210);
+
+ // shapeRef1211
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15897.9);
+ polygon.ps[1] = Point(9289.03, 15937.9);
+ polygon.ps[2] = Point(9234.03, 15937.9);
+ polygon.ps[3] = Point(9234.03, 15897.9);
+ new ShapeRef(router, polygon, 1211);
+
+ // shapeRef1212
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15897.9);
+ polygon.ps[1] = Point(9389.03, 15937.9);
+ polygon.ps[2] = Point(9334.03, 15937.9);
+ polygon.ps[3] = Point(9334.03, 15897.9);
+ new ShapeRef(router, polygon, 1212);
+
+ // shapeRef1213
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 15997.9);
+ polygon.ps[1] = Point(8389.03, 16037.9);
+ polygon.ps[2] = Point(8334.03, 16037.9);
+ polygon.ps[3] = Point(8334.03, 15997.9);
+ new ShapeRef(router, polygon, 1213);
+
+ // shapeRef1214
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 15997.9);
+ polygon.ps[1] = Point(8489.03, 16037.9);
+ polygon.ps[2] = Point(8434.03, 16037.9);
+ polygon.ps[3] = Point(8434.03, 15997.9);
+ new ShapeRef(router, polygon, 1214);
+
+ // shapeRef1215
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 15997.9);
+ polygon.ps[1] = Point(8589.03, 16037.9);
+ polygon.ps[2] = Point(8534.03, 16037.9);
+ polygon.ps[3] = Point(8534.03, 15997.9);
+ new ShapeRef(router, polygon, 1215);
+
+ // shapeRef1216
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 15997.9);
+ polygon.ps[1] = Point(8689.03, 16037.9);
+ polygon.ps[2] = Point(8634.03, 16037.9);
+ polygon.ps[3] = Point(8634.03, 15997.9);
+ new ShapeRef(router, polygon, 1216);
+
+ // shapeRef1217
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 15997.9);
+ polygon.ps[1] = Point(8789.03, 16037.9);
+ polygon.ps[2] = Point(8734.03, 16037.9);
+ polygon.ps[3] = Point(8734.03, 15997.9);
+ new ShapeRef(router, polygon, 1217);
+
+ // shapeRef1218
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 15997.9);
+ polygon.ps[1] = Point(8889.03, 16037.9);
+ polygon.ps[2] = Point(8834.03, 16037.9);
+ polygon.ps[3] = Point(8834.03, 15997.9);
+ new ShapeRef(router, polygon, 1218);
+
+ // shapeRef1219
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 15997.9);
+ polygon.ps[1] = Point(8989.03, 16037.9);
+ polygon.ps[2] = Point(8934.03, 16037.9);
+ polygon.ps[3] = Point(8934.03, 15997.9);
+ new ShapeRef(router, polygon, 1219);
+
+ // shapeRef1220
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 15997.9);
+ polygon.ps[1] = Point(9089.03, 16037.9);
+ polygon.ps[2] = Point(9034.03, 16037.9);
+ polygon.ps[3] = Point(9034.03, 15997.9);
+ new ShapeRef(router, polygon, 1220);
+
+ // shapeRef1221
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 15997.9);
+ polygon.ps[1] = Point(9189.03, 16037.9);
+ polygon.ps[2] = Point(9134.03, 16037.9);
+ polygon.ps[3] = Point(9134.03, 15997.9);
+ new ShapeRef(router, polygon, 1221);
+
+ // shapeRef1222
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 15997.9);
+ polygon.ps[1] = Point(9289.03, 16037.9);
+ polygon.ps[2] = Point(9234.03, 16037.9);
+ polygon.ps[3] = Point(9234.03, 15997.9);
+ new ShapeRef(router, polygon, 1222);
+
+ // shapeRef1223
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 15997.9);
+ polygon.ps[1] = Point(9389.03, 16037.9);
+ polygon.ps[2] = Point(9334.03, 16037.9);
+ polygon.ps[3] = Point(9334.03, 15997.9);
+ new ShapeRef(router, polygon, 1223);
+
+ // shapeRef1224
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16097.9);
+ polygon.ps[1] = Point(8389.03, 16137.9);
+ polygon.ps[2] = Point(8334.03, 16137.9);
+ polygon.ps[3] = Point(8334.03, 16097.9);
+ new ShapeRef(router, polygon, 1224);
+
+ // shapeRef1225
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16097.9);
+ polygon.ps[1] = Point(8489.03, 16137.9);
+ polygon.ps[2] = Point(8434.03, 16137.9);
+ polygon.ps[3] = Point(8434.03, 16097.9);
+ new ShapeRef(router, polygon, 1225);
+
+ // shapeRef1226
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16097.9);
+ polygon.ps[1] = Point(8589.03, 16137.9);
+ polygon.ps[2] = Point(8534.03, 16137.9);
+ polygon.ps[3] = Point(8534.03, 16097.9);
+ new ShapeRef(router, polygon, 1226);
+
+ // shapeRef1227
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16097.9);
+ polygon.ps[1] = Point(8689.03, 16137.9);
+ polygon.ps[2] = Point(8634.03, 16137.9);
+ polygon.ps[3] = Point(8634.03, 16097.9);
+ new ShapeRef(router, polygon, 1227);
+
+ // shapeRef1228
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16097.9);
+ polygon.ps[1] = Point(8789.03, 16137.9);
+ polygon.ps[2] = Point(8734.03, 16137.9);
+ polygon.ps[3] = Point(8734.03, 16097.9);
+ new ShapeRef(router, polygon, 1228);
+
+ // shapeRef1229
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16097.9);
+ polygon.ps[1] = Point(8889.03, 16137.9);
+ polygon.ps[2] = Point(8834.03, 16137.9);
+ polygon.ps[3] = Point(8834.03, 16097.9);
+ new ShapeRef(router, polygon, 1229);
+
+ // shapeRef1230
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16097.9);
+ polygon.ps[1] = Point(8989.03, 16137.9);
+ polygon.ps[2] = Point(8934.03, 16137.9);
+ polygon.ps[3] = Point(8934.03, 16097.9);
+ new ShapeRef(router, polygon, 1230);
+
+ // shapeRef1231
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16097.9);
+ polygon.ps[1] = Point(9089.03, 16137.9);
+ polygon.ps[2] = Point(9034.03, 16137.9);
+ polygon.ps[3] = Point(9034.03, 16097.9);
+ new ShapeRef(router, polygon, 1231);
+
+ // shapeRef1232
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16097.9);
+ polygon.ps[1] = Point(9189.03, 16137.9);
+ polygon.ps[2] = Point(9134.03, 16137.9);
+ polygon.ps[3] = Point(9134.03, 16097.9);
+ new ShapeRef(router, polygon, 1232);
+
+ // shapeRef1233
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16097.9);
+ polygon.ps[1] = Point(9289.03, 16137.9);
+ polygon.ps[2] = Point(9234.03, 16137.9);
+ polygon.ps[3] = Point(9234.03, 16097.9);
+ new ShapeRef(router, polygon, 1233);
+
+ // shapeRef1234
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16097.9);
+ polygon.ps[1] = Point(9389.03, 16137.9);
+ polygon.ps[2] = Point(9334.03, 16137.9);
+ polygon.ps[3] = Point(9334.03, 16097.9);
+ new ShapeRef(router, polygon, 1234);
+
+ // shapeRef1235
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16197.9);
+ polygon.ps[1] = Point(8389.03, 16237.9);
+ polygon.ps[2] = Point(8334.03, 16237.9);
+ polygon.ps[3] = Point(8334.03, 16197.9);
+ new ShapeRef(router, polygon, 1235);
+
+ // shapeRef1236
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16197.9);
+ polygon.ps[1] = Point(8489.03, 16237.9);
+ polygon.ps[2] = Point(8434.03, 16237.9);
+ polygon.ps[3] = Point(8434.03, 16197.9);
+ new ShapeRef(router, polygon, 1236);
+
+ // shapeRef1237
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16197.9);
+ polygon.ps[1] = Point(8589.03, 16237.9);
+ polygon.ps[2] = Point(8534.03, 16237.9);
+ polygon.ps[3] = Point(8534.03, 16197.9);
+ new ShapeRef(router, polygon, 1237);
+
+ // shapeRef1238
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16197.9);
+ polygon.ps[1] = Point(8689.03, 16237.9);
+ polygon.ps[2] = Point(8634.03, 16237.9);
+ polygon.ps[3] = Point(8634.03, 16197.9);
+ new ShapeRef(router, polygon, 1238);
+
+ // shapeRef1239
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16197.9);
+ polygon.ps[1] = Point(8789.03, 16237.9);
+ polygon.ps[2] = Point(8734.03, 16237.9);
+ polygon.ps[3] = Point(8734.03, 16197.9);
+ new ShapeRef(router, polygon, 1239);
+
+ // shapeRef1240
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16197.9);
+ polygon.ps[1] = Point(8889.03, 16237.9);
+ polygon.ps[2] = Point(8834.03, 16237.9);
+ polygon.ps[3] = Point(8834.03, 16197.9);
+ new ShapeRef(router, polygon, 1240);
+
+ // shapeRef1241
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16197.9);
+ polygon.ps[1] = Point(8989.03, 16237.9);
+ polygon.ps[2] = Point(8934.03, 16237.9);
+ polygon.ps[3] = Point(8934.03, 16197.9);
+ new ShapeRef(router, polygon, 1241);
+
+ // shapeRef1242
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16197.9);
+ polygon.ps[1] = Point(9089.03, 16237.9);
+ polygon.ps[2] = Point(9034.03, 16237.9);
+ polygon.ps[3] = Point(9034.03, 16197.9);
+ new ShapeRef(router, polygon, 1242);
+
+ // shapeRef1243
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16197.9);
+ polygon.ps[1] = Point(9189.03, 16237.9);
+ polygon.ps[2] = Point(9134.03, 16237.9);
+ polygon.ps[3] = Point(9134.03, 16197.9);
+ new ShapeRef(router, polygon, 1243);
+
+ // shapeRef1244
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16197.9);
+ polygon.ps[1] = Point(9289.03, 16237.9);
+ polygon.ps[2] = Point(9234.03, 16237.9);
+ polygon.ps[3] = Point(9234.03, 16197.9);
+ new ShapeRef(router, polygon, 1244);
+
+ // shapeRef1245
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16197.9);
+ polygon.ps[1] = Point(9389.03, 16237.9);
+ polygon.ps[2] = Point(9334.03, 16237.9);
+ polygon.ps[3] = Point(9334.03, 16197.9);
+ new ShapeRef(router, polygon, 1245);
+
+ // shapeRef1246
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16297.9);
+ polygon.ps[1] = Point(8389.03, 16337.9);
+ polygon.ps[2] = Point(8334.03, 16337.9);
+ polygon.ps[3] = Point(8334.03, 16297.9);
+ new ShapeRef(router, polygon, 1246);
+
+ // shapeRef1247
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16297.9);
+ polygon.ps[1] = Point(8489.03, 16337.9);
+ polygon.ps[2] = Point(8434.03, 16337.9);
+ polygon.ps[3] = Point(8434.03, 16297.9);
+ new ShapeRef(router, polygon, 1247);
+
+ // shapeRef1248
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16297.9);
+ polygon.ps[1] = Point(8589.03, 16337.9);
+ polygon.ps[2] = Point(8534.03, 16337.9);
+ polygon.ps[3] = Point(8534.03, 16297.9);
+ new ShapeRef(router, polygon, 1248);
+
+ // shapeRef1249
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16297.9);
+ polygon.ps[1] = Point(8689.03, 16337.9);
+ polygon.ps[2] = Point(8634.03, 16337.9);
+ polygon.ps[3] = Point(8634.03, 16297.9);
+ new ShapeRef(router, polygon, 1249);
+
+ // shapeRef1250
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16297.9);
+ polygon.ps[1] = Point(8789.03, 16337.9);
+ polygon.ps[2] = Point(8734.03, 16337.9);
+ polygon.ps[3] = Point(8734.03, 16297.9);
+ new ShapeRef(router, polygon, 1250);
+
+ // shapeRef1251
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16297.9);
+ polygon.ps[1] = Point(8889.03, 16337.9);
+ polygon.ps[2] = Point(8834.03, 16337.9);
+ polygon.ps[3] = Point(8834.03, 16297.9);
+ new ShapeRef(router, polygon, 1251);
+
+ // shapeRef1252
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16297.9);
+ polygon.ps[1] = Point(8989.03, 16337.9);
+ polygon.ps[2] = Point(8934.03, 16337.9);
+ polygon.ps[3] = Point(8934.03, 16297.9);
+ new ShapeRef(router, polygon, 1252);
+
+ // shapeRef1253
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16297.9);
+ polygon.ps[1] = Point(9089.03, 16337.9);
+ polygon.ps[2] = Point(9034.03, 16337.9);
+ polygon.ps[3] = Point(9034.03, 16297.9);
+ new ShapeRef(router, polygon, 1253);
+
+ // shapeRef1254
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16297.9);
+ polygon.ps[1] = Point(9189.03, 16337.9);
+ polygon.ps[2] = Point(9134.03, 16337.9);
+ polygon.ps[3] = Point(9134.03, 16297.9);
+ new ShapeRef(router, polygon, 1254);
+
+ // shapeRef1255
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16297.9);
+ polygon.ps[1] = Point(9289.03, 16337.9);
+ polygon.ps[2] = Point(9234.03, 16337.9);
+ polygon.ps[3] = Point(9234.03, 16297.9);
+ new ShapeRef(router, polygon, 1255);
+
+ // shapeRef1256
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16297.9);
+ polygon.ps[1] = Point(9389.03, 16337.9);
+ polygon.ps[2] = Point(9334.03, 16337.9);
+ polygon.ps[3] = Point(9334.03, 16297.9);
+ new ShapeRef(router, polygon, 1256);
+
+ // shapeRef1257
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16397.9);
+ polygon.ps[1] = Point(8389.03, 16437.9);
+ polygon.ps[2] = Point(8334.03, 16437.9);
+ polygon.ps[3] = Point(8334.03, 16397.9);
+ new ShapeRef(router, polygon, 1257);
+
+ // shapeRef1258
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16397.9);
+ polygon.ps[1] = Point(8489.03, 16437.9);
+ polygon.ps[2] = Point(8434.03, 16437.9);
+ polygon.ps[3] = Point(8434.03, 16397.9);
+ new ShapeRef(router, polygon, 1258);
+
+ // shapeRef1259
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16397.9);
+ polygon.ps[1] = Point(8589.03, 16437.9);
+ polygon.ps[2] = Point(8534.03, 16437.9);
+ polygon.ps[3] = Point(8534.03, 16397.9);
+ new ShapeRef(router, polygon, 1259);
+
+ // shapeRef1260
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16397.9);
+ polygon.ps[1] = Point(8689.03, 16437.9);
+ polygon.ps[2] = Point(8634.03, 16437.9);
+ polygon.ps[3] = Point(8634.03, 16397.9);
+ new ShapeRef(router, polygon, 1260);
+
+ // shapeRef1261
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16397.9);
+ polygon.ps[1] = Point(8789.03, 16437.9);
+ polygon.ps[2] = Point(8734.03, 16437.9);
+ polygon.ps[3] = Point(8734.03, 16397.9);
+ new ShapeRef(router, polygon, 1261);
+
+ // shapeRef1262
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16397.9);
+ polygon.ps[1] = Point(8889.03, 16437.9);
+ polygon.ps[2] = Point(8834.03, 16437.9);
+ polygon.ps[3] = Point(8834.03, 16397.9);
+ new ShapeRef(router, polygon, 1262);
+
+ // shapeRef1263
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16397.9);
+ polygon.ps[1] = Point(8989.03, 16437.9);
+ polygon.ps[2] = Point(8934.03, 16437.9);
+ polygon.ps[3] = Point(8934.03, 16397.9);
+ new ShapeRef(router, polygon, 1263);
+
+ // shapeRef1264
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16397.9);
+ polygon.ps[1] = Point(9089.03, 16437.9);
+ polygon.ps[2] = Point(9034.03, 16437.9);
+ polygon.ps[3] = Point(9034.03, 16397.9);
+ new ShapeRef(router, polygon, 1264);
+
+ // shapeRef1265
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16397.9);
+ polygon.ps[1] = Point(9189.03, 16437.9);
+ polygon.ps[2] = Point(9134.03, 16437.9);
+ polygon.ps[3] = Point(9134.03, 16397.9);
+ new ShapeRef(router, polygon, 1265);
+
+ // shapeRef1266
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16397.9);
+ polygon.ps[1] = Point(9289.03, 16437.9);
+ polygon.ps[2] = Point(9234.03, 16437.9);
+ polygon.ps[3] = Point(9234.03, 16397.9);
+ new ShapeRef(router, polygon, 1266);
+
+ // shapeRef1267
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16397.9);
+ polygon.ps[1] = Point(9389.03, 16437.9);
+ polygon.ps[2] = Point(9334.03, 16437.9);
+ polygon.ps[3] = Point(9334.03, 16397.9);
+ new ShapeRef(router, polygon, 1267);
+
+ // shapeRef1268
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16497.9);
+ polygon.ps[1] = Point(8389.03, 16537.9);
+ polygon.ps[2] = Point(8334.03, 16537.9);
+ polygon.ps[3] = Point(8334.03, 16497.9);
+ new ShapeRef(router, polygon, 1268);
+
+ // shapeRef1269
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16497.9);
+ polygon.ps[1] = Point(8489.03, 16537.9);
+ polygon.ps[2] = Point(8434.03, 16537.9);
+ polygon.ps[3] = Point(8434.03, 16497.9);
+ new ShapeRef(router, polygon, 1269);
+
+ // shapeRef1270
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16497.9);
+ polygon.ps[1] = Point(8589.03, 16537.9);
+ polygon.ps[2] = Point(8534.03, 16537.9);
+ polygon.ps[3] = Point(8534.03, 16497.9);
+ new ShapeRef(router, polygon, 1270);
+
+ // shapeRef1271
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16497.9);
+ polygon.ps[1] = Point(8689.03, 16537.9);
+ polygon.ps[2] = Point(8634.03, 16537.9);
+ polygon.ps[3] = Point(8634.03, 16497.9);
+ new ShapeRef(router, polygon, 1271);
+
+ // shapeRef1272
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16497.9);
+ polygon.ps[1] = Point(8789.03, 16537.9);
+ polygon.ps[2] = Point(8734.03, 16537.9);
+ polygon.ps[3] = Point(8734.03, 16497.9);
+ new ShapeRef(router, polygon, 1272);
+
+ // shapeRef1273
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16497.9);
+ polygon.ps[1] = Point(8889.03, 16537.9);
+ polygon.ps[2] = Point(8834.03, 16537.9);
+ polygon.ps[3] = Point(8834.03, 16497.9);
+ new ShapeRef(router, polygon, 1273);
+
+ // shapeRef1274
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16497.9);
+ polygon.ps[1] = Point(8989.03, 16537.9);
+ polygon.ps[2] = Point(8934.03, 16537.9);
+ polygon.ps[3] = Point(8934.03, 16497.9);
+ new ShapeRef(router, polygon, 1274);
+
+ // shapeRef1275
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16497.9);
+ polygon.ps[1] = Point(9089.03, 16537.9);
+ polygon.ps[2] = Point(9034.03, 16537.9);
+ polygon.ps[3] = Point(9034.03, 16497.9);
+ new ShapeRef(router, polygon, 1275);
+
+ // shapeRef1276
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16497.9);
+ polygon.ps[1] = Point(9189.03, 16537.9);
+ polygon.ps[2] = Point(9134.03, 16537.9);
+ polygon.ps[3] = Point(9134.03, 16497.9);
+ new ShapeRef(router, polygon, 1276);
+
+ // shapeRef1277
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16497.9);
+ polygon.ps[1] = Point(9289.03, 16537.9);
+ polygon.ps[2] = Point(9234.03, 16537.9);
+ polygon.ps[3] = Point(9234.03, 16497.9);
+ new ShapeRef(router, polygon, 1277);
+
+ // shapeRef1278
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16497.9);
+ polygon.ps[1] = Point(9389.03, 16537.9);
+ polygon.ps[2] = Point(9334.03, 16537.9);
+ polygon.ps[3] = Point(9334.03, 16497.9);
+ new ShapeRef(router, polygon, 1278);
+
+ // shapeRef1279
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16597.9);
+ polygon.ps[1] = Point(8389.03, 16637.9);
+ polygon.ps[2] = Point(8334.03, 16637.9);
+ polygon.ps[3] = Point(8334.03, 16597.9);
+ new ShapeRef(router, polygon, 1279);
+
+ // shapeRef1280
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16597.9);
+ polygon.ps[1] = Point(8489.03, 16637.9);
+ polygon.ps[2] = Point(8434.03, 16637.9);
+ polygon.ps[3] = Point(8434.03, 16597.9);
+ new ShapeRef(router, polygon, 1280);
+
+ // shapeRef1281
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16597.9);
+ polygon.ps[1] = Point(8589.03, 16637.9);
+ polygon.ps[2] = Point(8534.03, 16637.9);
+ polygon.ps[3] = Point(8534.03, 16597.9);
+ new ShapeRef(router, polygon, 1281);
+
+ // shapeRef1282
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16597.9);
+ polygon.ps[1] = Point(8689.03, 16637.9);
+ polygon.ps[2] = Point(8634.03, 16637.9);
+ polygon.ps[3] = Point(8634.03, 16597.9);
+ new ShapeRef(router, polygon, 1282);
+
+ // shapeRef1283
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16597.9);
+ polygon.ps[1] = Point(8789.03, 16637.9);
+ polygon.ps[2] = Point(8734.03, 16637.9);
+ polygon.ps[3] = Point(8734.03, 16597.9);
+ new ShapeRef(router, polygon, 1283);
+
+ // shapeRef1284
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16597.9);
+ polygon.ps[1] = Point(8889.03, 16637.9);
+ polygon.ps[2] = Point(8834.03, 16637.9);
+ polygon.ps[3] = Point(8834.03, 16597.9);
+ new ShapeRef(router, polygon, 1284);
+
+ // shapeRef1285
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16597.9);
+ polygon.ps[1] = Point(8989.03, 16637.9);
+ polygon.ps[2] = Point(8934.03, 16637.9);
+ polygon.ps[3] = Point(8934.03, 16597.9);
+ new ShapeRef(router, polygon, 1285);
+
+ // shapeRef1286
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16597.9);
+ polygon.ps[1] = Point(9089.03, 16637.9);
+ polygon.ps[2] = Point(9034.03, 16637.9);
+ polygon.ps[3] = Point(9034.03, 16597.9);
+ new ShapeRef(router, polygon, 1286);
+
+ // shapeRef1287
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16597.9);
+ polygon.ps[1] = Point(9189.03, 16637.9);
+ polygon.ps[2] = Point(9134.03, 16637.9);
+ polygon.ps[3] = Point(9134.03, 16597.9);
+ new ShapeRef(router, polygon, 1287);
+
+ // shapeRef1288
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16597.9);
+ polygon.ps[1] = Point(9289.03, 16637.9);
+ polygon.ps[2] = Point(9234.03, 16637.9);
+ polygon.ps[3] = Point(9234.03, 16597.9);
+ new ShapeRef(router, polygon, 1288);
+
+ // shapeRef1289
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16597.9);
+ polygon.ps[1] = Point(9389.03, 16637.9);
+ polygon.ps[2] = Point(9334.03, 16637.9);
+ polygon.ps[3] = Point(9334.03, 16597.9);
+ new ShapeRef(router, polygon, 1289);
+
+ // shapeRef1290
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16697.9);
+ polygon.ps[1] = Point(8389.03, 16737.9);
+ polygon.ps[2] = Point(8334.03, 16737.9);
+ polygon.ps[3] = Point(8334.03, 16697.9);
+ new ShapeRef(router, polygon, 1290);
+
+ // shapeRef1291
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16697.9);
+ polygon.ps[1] = Point(8489.03, 16737.9);
+ polygon.ps[2] = Point(8434.03, 16737.9);
+ polygon.ps[3] = Point(8434.03, 16697.9);
+ new ShapeRef(router, polygon, 1291);
+
+ // shapeRef1292
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16697.9);
+ polygon.ps[1] = Point(8589.03, 16737.9);
+ polygon.ps[2] = Point(8534.03, 16737.9);
+ polygon.ps[3] = Point(8534.03, 16697.9);
+ new ShapeRef(router, polygon, 1292);
+
+ // shapeRef1293
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16697.9);
+ polygon.ps[1] = Point(8689.03, 16737.9);
+ polygon.ps[2] = Point(8634.03, 16737.9);
+ polygon.ps[3] = Point(8634.03, 16697.9);
+ new ShapeRef(router, polygon, 1293);
+
+ // shapeRef1294
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16697.9);
+ polygon.ps[1] = Point(8789.03, 16737.9);
+ polygon.ps[2] = Point(8734.03, 16737.9);
+ polygon.ps[3] = Point(8734.03, 16697.9);
+ new ShapeRef(router, polygon, 1294);
+
+ // shapeRef1295
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16697.9);
+ polygon.ps[1] = Point(8889.03, 16737.9);
+ polygon.ps[2] = Point(8834.03, 16737.9);
+ polygon.ps[3] = Point(8834.03, 16697.9);
+ new ShapeRef(router, polygon, 1295);
+
+ // shapeRef1296
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16697.9);
+ polygon.ps[1] = Point(8989.03, 16737.9);
+ polygon.ps[2] = Point(8934.03, 16737.9);
+ polygon.ps[3] = Point(8934.03, 16697.9);
+ new ShapeRef(router, polygon, 1296);
+
+ // shapeRef1297
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16697.9);
+ polygon.ps[1] = Point(9089.03, 16737.9);
+ polygon.ps[2] = Point(9034.03, 16737.9);
+ polygon.ps[3] = Point(9034.03, 16697.9);
+ new ShapeRef(router, polygon, 1297);
+
+ // shapeRef1298
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16697.9);
+ polygon.ps[1] = Point(9189.03, 16737.9);
+ polygon.ps[2] = Point(9134.03, 16737.9);
+ polygon.ps[3] = Point(9134.03, 16697.9);
+ new ShapeRef(router, polygon, 1298);
+
+ // shapeRef1299
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16697.9);
+ polygon.ps[1] = Point(9289.03, 16737.9);
+ polygon.ps[2] = Point(9234.03, 16737.9);
+ polygon.ps[3] = Point(9234.03, 16697.9);
+ new ShapeRef(router, polygon, 1299);
+
+ // shapeRef1300
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16697.9);
+ polygon.ps[1] = Point(9389.03, 16737.9);
+ polygon.ps[2] = Point(9334.03, 16737.9);
+ polygon.ps[3] = Point(9334.03, 16697.9);
+ new ShapeRef(router, polygon, 1300);
+
+ // shapeRef1301
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16797.9);
+ polygon.ps[1] = Point(8389.03, 16837.9);
+ polygon.ps[2] = Point(8334.03, 16837.9);
+ polygon.ps[3] = Point(8334.03, 16797.9);
+ new ShapeRef(router, polygon, 1301);
+
+ // shapeRef1302
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16797.9);
+ polygon.ps[1] = Point(8489.03, 16837.9);
+ polygon.ps[2] = Point(8434.03, 16837.9);
+ polygon.ps[3] = Point(8434.03, 16797.9);
+ new ShapeRef(router, polygon, 1302);
+
+ // shapeRef1303
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16797.9);
+ polygon.ps[1] = Point(8589.03, 16837.9);
+ polygon.ps[2] = Point(8534.03, 16837.9);
+ polygon.ps[3] = Point(8534.03, 16797.9);
+ new ShapeRef(router, polygon, 1303);
+
+ // shapeRef1304
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16797.9);
+ polygon.ps[1] = Point(8689.03, 16837.9);
+ polygon.ps[2] = Point(8634.03, 16837.9);
+ polygon.ps[3] = Point(8634.03, 16797.9);
+ new ShapeRef(router, polygon, 1304);
+
+ // shapeRef1305
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16797.9);
+ polygon.ps[1] = Point(8789.03, 16837.9);
+ polygon.ps[2] = Point(8734.03, 16837.9);
+ polygon.ps[3] = Point(8734.03, 16797.9);
+ new ShapeRef(router, polygon, 1305);
+
+ // shapeRef1306
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16797.9);
+ polygon.ps[1] = Point(8889.03, 16837.9);
+ polygon.ps[2] = Point(8834.03, 16837.9);
+ polygon.ps[3] = Point(8834.03, 16797.9);
+ new ShapeRef(router, polygon, 1306);
+
+ // shapeRef1307
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16797.9);
+ polygon.ps[1] = Point(8989.03, 16837.9);
+ polygon.ps[2] = Point(8934.03, 16837.9);
+ polygon.ps[3] = Point(8934.03, 16797.9);
+ new ShapeRef(router, polygon, 1307);
+
+ // shapeRef1308
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16797.9);
+ polygon.ps[1] = Point(9089.03, 16837.9);
+ polygon.ps[2] = Point(9034.03, 16837.9);
+ polygon.ps[3] = Point(9034.03, 16797.9);
+ new ShapeRef(router, polygon, 1308);
+
+ // shapeRef1309
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16797.9);
+ polygon.ps[1] = Point(9189.03, 16837.9);
+ polygon.ps[2] = Point(9134.03, 16837.9);
+ polygon.ps[3] = Point(9134.03, 16797.9);
+ new ShapeRef(router, polygon, 1309);
+
+ // shapeRef1310
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16797.9);
+ polygon.ps[1] = Point(9289.03, 16837.9);
+ polygon.ps[2] = Point(9234.03, 16837.9);
+ polygon.ps[3] = Point(9234.03, 16797.9);
+ new ShapeRef(router, polygon, 1310);
+
+ // shapeRef1311
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16897.9);
+ polygon.ps[1] = Point(8389.03, 16937.9);
+ polygon.ps[2] = Point(8334.03, 16937.9);
+ polygon.ps[3] = Point(8334.03, 16897.9);
+ new ShapeRef(router, polygon, 1311);
+
+ // shapeRef1312
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16897.9);
+ polygon.ps[1] = Point(8489.03, 16937.9);
+ polygon.ps[2] = Point(8434.03, 16937.9);
+ polygon.ps[3] = Point(8434.03, 16897.9);
+ new ShapeRef(router, polygon, 1312);
+
+ // shapeRef1313
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16897.9);
+ polygon.ps[1] = Point(8589.03, 16937.9);
+ polygon.ps[2] = Point(8534.03, 16937.9);
+ polygon.ps[3] = Point(8534.03, 16897.9);
+ new ShapeRef(router, polygon, 1313);
+
+ // shapeRef1314
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 16897.9);
+ polygon.ps[1] = Point(8689.03, 16937.9);
+ polygon.ps[2] = Point(8634.03, 16937.9);
+ polygon.ps[3] = Point(8634.03, 16897.9);
+ new ShapeRef(router, polygon, 1314);
+
+ // shapeRef1315
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16897.9);
+ polygon.ps[1] = Point(8789.03, 16937.9);
+ polygon.ps[2] = Point(8734.03, 16937.9);
+ polygon.ps[3] = Point(8734.03, 16897.9);
+ new ShapeRef(router, polygon, 1315);
+
+ // shapeRef1316
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16897.9);
+ polygon.ps[1] = Point(8889.03, 16937.9);
+ polygon.ps[2] = Point(8834.03, 16937.9);
+ polygon.ps[3] = Point(8834.03, 16897.9);
+ new ShapeRef(router, polygon, 1316);
+
+ // shapeRef1317
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16897.9);
+ polygon.ps[1] = Point(8989.03, 16937.9);
+ polygon.ps[2] = Point(8934.03, 16937.9);
+ polygon.ps[3] = Point(8934.03, 16897.9);
+ new ShapeRef(router, polygon, 1317);
+
+ // shapeRef1318
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16897.9);
+ polygon.ps[1] = Point(9189.03, 16937.9);
+ polygon.ps[2] = Point(9134.03, 16937.9);
+ polygon.ps[3] = Point(9134.03, 16897.9);
+ new ShapeRef(router, polygon, 1318);
+
+ // shapeRef1319
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16897.9);
+ polygon.ps[1] = Point(9289.03, 16937.9);
+ polygon.ps[2] = Point(9234.03, 16937.9);
+ polygon.ps[3] = Point(9234.03, 16897.9);
+ new ShapeRef(router, polygon, 1319);
+
+ // shapeRef1320
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16897.9);
+ polygon.ps[1] = Point(9389.03, 16937.9);
+ polygon.ps[2] = Point(9334.03, 16937.9);
+ polygon.ps[3] = Point(9334.03, 16897.9);
+ new ShapeRef(router, polygon, 1320);
+
+ // shapeRef1321
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 16997.9);
+ polygon.ps[1] = Point(8389.03, 17037.9);
+ polygon.ps[2] = Point(8334.03, 17037.9);
+ polygon.ps[3] = Point(8334.03, 16997.9);
+ new ShapeRef(router, polygon, 1321);
+
+ // shapeRef1322
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 16997.9);
+ polygon.ps[1] = Point(8489.03, 17037.9);
+ polygon.ps[2] = Point(8434.03, 17037.9);
+ polygon.ps[3] = Point(8434.03, 16997.9);
+ new ShapeRef(router, polygon, 1322);
+
+ // shapeRef1323
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 16997.9);
+ polygon.ps[1] = Point(8589.03, 17037.9);
+ polygon.ps[2] = Point(8534.03, 17037.9);
+ polygon.ps[3] = Point(8534.03, 16997.9);
+ new ShapeRef(router, polygon, 1323);
+
+ // shapeRef1324
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 16997.9);
+ polygon.ps[1] = Point(8789.03, 17037.9);
+ polygon.ps[2] = Point(8734.03, 17037.9);
+ polygon.ps[3] = Point(8734.03, 16997.9);
+ new ShapeRef(router, polygon, 1324);
+
+ // shapeRef1325
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 16997.9);
+ polygon.ps[1] = Point(8889.03, 17037.9);
+ polygon.ps[2] = Point(8834.03, 17037.9);
+ polygon.ps[3] = Point(8834.03, 16997.9);
+ new ShapeRef(router, polygon, 1325);
+
+ // shapeRef1326
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 16997.9);
+ polygon.ps[1] = Point(8989.03, 17037.9);
+ polygon.ps[2] = Point(8934.03, 17037.9);
+ polygon.ps[3] = Point(8934.03, 16997.9);
+ new ShapeRef(router, polygon, 1326);
+
+ // shapeRef1327
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 16997.9);
+ polygon.ps[1] = Point(9089.03, 17037.9);
+ polygon.ps[2] = Point(9034.03, 17037.9);
+ polygon.ps[3] = Point(9034.03, 16997.9);
+ new ShapeRef(router, polygon, 1327);
+
+ // shapeRef1328
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 16997.9);
+ polygon.ps[1] = Point(9189.03, 17037.9);
+ polygon.ps[2] = Point(9134.03, 17037.9);
+ polygon.ps[3] = Point(9134.03, 16997.9);
+ new ShapeRef(router, polygon, 1328);
+
+ // shapeRef1329
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 16997.9);
+ polygon.ps[1] = Point(9289.03, 17037.9);
+ polygon.ps[2] = Point(9234.03, 17037.9);
+ polygon.ps[3] = Point(9234.03, 16997.9);
+ new ShapeRef(router, polygon, 1329);
+
+ // shapeRef1330
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 16997.9);
+ polygon.ps[1] = Point(9389.03, 17037.9);
+ polygon.ps[2] = Point(9334.03, 17037.9);
+ polygon.ps[3] = Point(9334.03, 16997.9);
+ new ShapeRef(router, polygon, 1330);
+
+ // shapeRef1331
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17097.9);
+ polygon.ps[1] = Point(8389.03, 17137.9);
+ polygon.ps[2] = Point(8334.03, 17137.9);
+ polygon.ps[3] = Point(8334.03, 17097.9);
+ new ShapeRef(router, polygon, 1331);
+
+ // shapeRef1332
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17097.9);
+ polygon.ps[1] = Point(8489.03, 17137.9);
+ polygon.ps[2] = Point(8434.03, 17137.9);
+ polygon.ps[3] = Point(8434.03, 17097.9);
+ new ShapeRef(router, polygon, 1332);
+
+ // shapeRef1333
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17097.9);
+ polygon.ps[1] = Point(8589.03, 17137.9);
+ polygon.ps[2] = Point(8534.03, 17137.9);
+ polygon.ps[3] = Point(8534.03, 17097.9);
+ new ShapeRef(router, polygon, 1333);
+
+ // shapeRef1334
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17097.9);
+ polygon.ps[1] = Point(8689.03, 17137.9);
+ polygon.ps[2] = Point(8634.03, 17137.9);
+ polygon.ps[3] = Point(8634.03, 17097.9);
+ new ShapeRef(router, polygon, 1334);
+
+ // shapeRef1335
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17097.9);
+ polygon.ps[1] = Point(8789.03, 17137.9);
+ polygon.ps[2] = Point(8734.03, 17137.9);
+ polygon.ps[3] = Point(8734.03, 17097.9);
+ new ShapeRef(router, polygon, 1335);
+
+ // shapeRef1336
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17097.9);
+ polygon.ps[1] = Point(8889.03, 17137.9);
+ polygon.ps[2] = Point(8834.03, 17137.9);
+ polygon.ps[3] = Point(8834.03, 17097.9);
+ new ShapeRef(router, polygon, 1336);
+
+ // shapeRef1337
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17097.9);
+ polygon.ps[1] = Point(8989.03, 17137.9);
+ polygon.ps[2] = Point(8934.03, 17137.9);
+ polygon.ps[3] = Point(8934.03, 17097.9);
+ new ShapeRef(router, polygon, 1337);
+
+ // shapeRef1338
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 17097.9);
+ polygon.ps[1] = Point(9089.03, 17137.9);
+ polygon.ps[2] = Point(9034.03, 17137.9);
+ polygon.ps[3] = Point(9034.03, 17097.9);
+ new ShapeRef(router, polygon, 1338);
+
+ // shapeRef1339
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17097.9);
+ polygon.ps[1] = Point(9289.03, 17137.9);
+ polygon.ps[2] = Point(9234.03, 17137.9);
+ polygon.ps[3] = Point(9234.03, 17097.9);
+ new ShapeRef(router, polygon, 1339);
+
+ // shapeRef1340
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17097.9);
+ polygon.ps[1] = Point(9389.03, 17137.9);
+ polygon.ps[2] = Point(9334.03, 17137.9);
+ polygon.ps[3] = Point(9334.03, 17097.9);
+ new ShapeRef(router, polygon, 1340);
+
+ // shapeRef1341
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17197.9);
+ polygon.ps[1] = Point(8389.03, 17237.9);
+ polygon.ps[2] = Point(8334.03, 17237.9);
+ polygon.ps[3] = Point(8334.03, 17197.9);
+ new ShapeRef(router, polygon, 1341);
+
+ // shapeRef1342
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17197.9);
+ polygon.ps[1] = Point(8489.03, 17237.9);
+ polygon.ps[2] = Point(8434.03, 17237.9);
+ polygon.ps[3] = Point(8434.03, 17197.9);
+ new ShapeRef(router, polygon, 1342);
+
+ // shapeRef1343
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17197.9);
+ polygon.ps[1] = Point(8589.03, 17237.9);
+ polygon.ps[2] = Point(8534.03, 17237.9);
+ polygon.ps[3] = Point(8534.03, 17197.9);
+ new ShapeRef(router, polygon, 1343);
+
+ // shapeRef1344
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17197.9);
+ polygon.ps[1] = Point(8789.03, 17237.9);
+ polygon.ps[2] = Point(8734.03, 17237.9);
+ polygon.ps[3] = Point(8734.03, 17197.9);
+ new ShapeRef(router, polygon, 1344);
+
+ // shapeRef1345
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17197.9);
+ polygon.ps[1] = Point(8889.03, 17237.9);
+ polygon.ps[2] = Point(8834.03, 17237.9);
+ polygon.ps[3] = Point(8834.03, 17197.9);
+ new ShapeRef(router, polygon, 1345);
+
+ // shapeRef1346
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17197.9);
+ polygon.ps[1] = Point(8989.03, 17237.9);
+ polygon.ps[2] = Point(8934.03, 17237.9);
+ polygon.ps[3] = Point(8934.03, 17197.9);
+ new ShapeRef(router, polygon, 1346);
+
+ // shapeRef1347
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 17197.9);
+ polygon.ps[1] = Point(9089.03, 17237.9);
+ polygon.ps[2] = Point(9034.03, 17237.9);
+ polygon.ps[3] = Point(9034.03, 17197.9);
+ new ShapeRef(router, polygon, 1347);
+
+ // shapeRef1348
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17197.9);
+ polygon.ps[1] = Point(9189.03, 17237.9);
+ polygon.ps[2] = Point(9134.03, 17237.9);
+ polygon.ps[3] = Point(9134.03, 17197.9);
+ new ShapeRef(router, polygon, 1348);
+
+ // shapeRef1349
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17197.9);
+ polygon.ps[1] = Point(9289.03, 17237.9);
+ polygon.ps[2] = Point(9234.03, 17237.9);
+ polygon.ps[3] = Point(9234.03, 17197.9);
+ new ShapeRef(router, polygon, 1349);
+
+ // shapeRef1350
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17197.9);
+ polygon.ps[1] = Point(9389.03, 17237.9);
+ polygon.ps[2] = Point(9334.03, 17237.9);
+ polygon.ps[3] = Point(9334.03, 17197.9);
+ new ShapeRef(router, polygon, 1350);
+
+ // shapeRef1351
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17297.9);
+ polygon.ps[1] = Point(8389.03, 17337.9);
+ polygon.ps[2] = Point(8334.03, 17337.9);
+ polygon.ps[3] = Point(8334.03, 17297.9);
+ new ShapeRef(router, polygon, 1351);
+
+ // shapeRef1352
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17297.9);
+ polygon.ps[1] = Point(8489.03, 17337.9);
+ polygon.ps[2] = Point(8434.03, 17337.9);
+ polygon.ps[3] = Point(8434.03, 17297.9);
+ new ShapeRef(router, polygon, 1352);
+
+ // shapeRef1353
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17297.9);
+ polygon.ps[1] = Point(8589.03, 17337.9);
+ polygon.ps[2] = Point(8534.03, 17337.9);
+ polygon.ps[3] = Point(8534.03, 17297.9);
+ new ShapeRef(router, polygon, 1353);
+
+ // shapeRef1354
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17297.9);
+ polygon.ps[1] = Point(8689.03, 17337.9);
+ polygon.ps[2] = Point(8634.03, 17337.9);
+ polygon.ps[3] = Point(8634.03, 17297.9);
+ new ShapeRef(router, polygon, 1354);
+
+ // shapeRef1355
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17297.9);
+ polygon.ps[1] = Point(8789.03, 17337.9);
+ polygon.ps[2] = Point(8734.03, 17337.9);
+ polygon.ps[3] = Point(8734.03, 17297.9);
+ new ShapeRef(router, polygon, 1355);
+
+ // shapeRef1356
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17297.9);
+ polygon.ps[1] = Point(8889.03, 17337.9);
+ polygon.ps[2] = Point(8834.03, 17337.9);
+ polygon.ps[3] = Point(8834.03, 17297.9);
+ new ShapeRef(router, polygon, 1356);
+
+ // shapeRef1357
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17297.9);
+ polygon.ps[1] = Point(8989.03, 17337.9);
+ polygon.ps[2] = Point(8934.03, 17337.9);
+ polygon.ps[3] = Point(8934.03, 17297.9);
+ new ShapeRef(router, polygon, 1357);
+
+ // shapeRef1358
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17297.9);
+ polygon.ps[1] = Point(9189.03, 17337.9);
+ polygon.ps[2] = Point(9134.03, 17337.9);
+ polygon.ps[3] = Point(9134.03, 17297.9);
+ new ShapeRef(router, polygon, 1358);
+
+ // shapeRef1359
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17297.9);
+ polygon.ps[1] = Point(9289.03, 17337.9);
+ polygon.ps[2] = Point(9234.03, 17337.9);
+ polygon.ps[3] = Point(9234.03, 17297.9);
+ new ShapeRef(router, polygon, 1359);
+
+ // shapeRef1360
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17297.9);
+ polygon.ps[1] = Point(9389.03, 17337.9);
+ polygon.ps[2] = Point(9334.03, 17337.9);
+ polygon.ps[3] = Point(9334.03, 17297.9);
+ new ShapeRef(router, polygon, 1360);
+
+ // shapeRef1361
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17397.9);
+ polygon.ps[1] = Point(8389.03, 17437.9);
+ polygon.ps[2] = Point(8334.03, 17437.9);
+ polygon.ps[3] = Point(8334.03, 17397.9);
+ new ShapeRef(router, polygon, 1361);
+
+ // shapeRef1362
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17397.9);
+ polygon.ps[1] = Point(8489.03, 17437.9);
+ polygon.ps[2] = Point(8434.03, 17437.9);
+ polygon.ps[3] = Point(8434.03, 17397.9);
+ new ShapeRef(router, polygon, 1362);
+
+ // shapeRef1363
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17397.9);
+ polygon.ps[1] = Point(8589.03, 17437.9);
+ polygon.ps[2] = Point(8534.03, 17437.9);
+ polygon.ps[3] = Point(8534.03, 17397.9);
+ new ShapeRef(router, polygon, 1363);
+
+ // shapeRef1364
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17397.9);
+ polygon.ps[1] = Point(8689.03, 17437.9);
+ polygon.ps[2] = Point(8634.03, 17437.9);
+ polygon.ps[3] = Point(8634.03, 17397.9);
+ new ShapeRef(router, polygon, 1364);
+
+ // shapeRef1365
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17397.9);
+ polygon.ps[1] = Point(8789.03, 17437.9);
+ polygon.ps[2] = Point(8734.03, 17437.9);
+ polygon.ps[3] = Point(8734.03, 17397.9);
+ new ShapeRef(router, polygon, 1365);
+
+ // shapeRef1366
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17397.9);
+ polygon.ps[1] = Point(8889.03, 17437.9);
+ polygon.ps[2] = Point(8834.03, 17437.9);
+ polygon.ps[3] = Point(8834.03, 17397.9);
+ new ShapeRef(router, polygon, 1366);
+
+ // shapeRef1367
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17397.9);
+ polygon.ps[1] = Point(8989.03, 17437.9);
+ polygon.ps[2] = Point(8934.03, 17437.9);
+ polygon.ps[3] = Point(8934.03, 17397.9);
+ new ShapeRef(router, polygon, 1367);
+
+ // shapeRef1368
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17397.9);
+ polygon.ps[1] = Point(9189.03, 17437.9);
+ polygon.ps[2] = Point(9134.03, 17437.9);
+ polygon.ps[3] = Point(9134.03, 17397.9);
+ new ShapeRef(router, polygon, 1368);
+
+ // shapeRef1369
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17397.9);
+ polygon.ps[1] = Point(9289.03, 17437.9);
+ polygon.ps[2] = Point(9234.03, 17437.9);
+ polygon.ps[3] = Point(9234.03, 17397.9);
+ new ShapeRef(router, polygon, 1369);
+
+ // shapeRef1370
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17397.9);
+ polygon.ps[1] = Point(9389.03, 17437.9);
+ polygon.ps[2] = Point(9334.03, 17437.9);
+ polygon.ps[3] = Point(9334.03, 17397.9);
+ new ShapeRef(router, polygon, 1370);
+
+ // shapeRef1371
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17497.9);
+ polygon.ps[1] = Point(8389.03, 17537.9);
+ polygon.ps[2] = Point(8334.03, 17537.9);
+ polygon.ps[3] = Point(8334.03, 17497.9);
+ new ShapeRef(router, polygon, 1371);
+
+ // shapeRef1372
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17497.9);
+ polygon.ps[1] = Point(8489.03, 17537.9);
+ polygon.ps[2] = Point(8434.03, 17537.9);
+ polygon.ps[3] = Point(8434.03, 17497.9);
+ new ShapeRef(router, polygon, 1372);
+
+ // shapeRef1373
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17497.9);
+ polygon.ps[1] = Point(8589.03, 17537.9);
+ polygon.ps[2] = Point(8534.03, 17537.9);
+ polygon.ps[3] = Point(8534.03, 17497.9);
+ new ShapeRef(router, polygon, 1373);
+
+ // shapeRef1374
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17497.9);
+ polygon.ps[1] = Point(8689.03, 17537.9);
+ polygon.ps[2] = Point(8634.03, 17537.9);
+ polygon.ps[3] = Point(8634.03, 17497.9);
+ new ShapeRef(router, polygon, 1374);
+
+ // shapeRef1375
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17497.9);
+ polygon.ps[1] = Point(8789.03, 17537.9);
+ polygon.ps[2] = Point(8734.03, 17537.9);
+ polygon.ps[3] = Point(8734.03, 17497.9);
+ new ShapeRef(router, polygon, 1375);
+
+ // shapeRef1376
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17497.9);
+ polygon.ps[1] = Point(8989.03, 17537.9);
+ polygon.ps[2] = Point(8934.03, 17537.9);
+ polygon.ps[3] = Point(8934.03, 17497.9);
+ new ShapeRef(router, polygon, 1376);
+
+ // shapeRef1377
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 17497.9);
+ polygon.ps[1] = Point(9089.03, 17537.9);
+ polygon.ps[2] = Point(9034.03, 17537.9);
+ polygon.ps[3] = Point(9034.03, 17497.9);
+ new ShapeRef(router, polygon, 1377);
+
+ // shapeRef1378
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17497.9);
+ polygon.ps[1] = Point(9189.03, 17537.9);
+ polygon.ps[2] = Point(9134.03, 17537.9);
+ polygon.ps[3] = Point(9134.03, 17497.9);
+ new ShapeRef(router, polygon, 1378);
+
+ // shapeRef1379
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17497.9);
+ polygon.ps[1] = Point(9289.03, 17537.9);
+ polygon.ps[2] = Point(9234.03, 17537.9);
+ polygon.ps[3] = Point(9234.03, 17497.9);
+ new ShapeRef(router, polygon, 1379);
+
+ // shapeRef1380
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17497.9);
+ polygon.ps[1] = Point(9389.03, 17537.9);
+ polygon.ps[2] = Point(9334.03, 17537.9);
+ polygon.ps[3] = Point(9334.03, 17497.9);
+ new ShapeRef(router, polygon, 1380);
+
+ // shapeRef1381
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17597.9);
+ polygon.ps[1] = Point(8389.03, 17637.9);
+ polygon.ps[2] = Point(8334.03, 17637.9);
+ polygon.ps[3] = Point(8334.03, 17597.9);
+ new ShapeRef(router, polygon, 1381);
+
+ // shapeRef1382
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 4062.51);
+ polygon.ps[1] = Point(492, 4124.51);
+ polygon.ps[2] = Point(430, 4124.51);
+ polygon.ps[3] = Point(430, 4062.51);
+ new ShapeRef(router, polygon, 1382);
+
+ // shapeRef1383
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(261, 4511.4);
+ polygon.ps[1] = Point(261, 4573.4);
+ polygon.ps[2] = Point(199, 4573.4);
+ polygon.ps[3] = Point(199, 4511.4);
+ new ShapeRef(router, polygon, 1383);
+
+ // shapeRef1384
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(261, 4062.51);
+ polygon.ps[1] = Point(261, 4124.51);
+ polygon.ps[2] = Point(199, 4124.51);
+ polygon.ps[3] = Point(199, 4062.51);
+ new ShapeRef(router, polygon, 1384);
+
+ // shapeRef1385
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(96, 4511.4);
+ polygon.ps[1] = Point(96, 4573.4);
+ polygon.ps[2] = Point(34, 4573.4);
+ polygon.ps[3] = Point(34, 4511.4);
+ new ShapeRef(router, polygon, 1385);
+
+ // shapeRef1386
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(492, 4511.4);
+ polygon.ps[1] = Point(492, 4573.4);
+ polygon.ps[2] = Point(430, 4573.4);
+ polygon.ps[3] = Point(430, 4511.4);
+ new ShapeRef(router, polygon, 1386);
+
+ // shapeRef1387
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2439, 4062.51);
+ polygon.ps[1] = Point(2439, 4124.51);
+ polygon.ps[2] = Point(2377, 4124.51);
+ polygon.ps[3] = Point(2377, 4062.51);
+ new ShapeRef(router, polygon, 1387);
+
+ // shapeRef1388
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2010, 4062.51);
+ polygon.ps[1] = Point(2010, 4124.51);
+ polygon.ps[2] = Point(1948, 4124.51);
+ polygon.ps[3] = Point(1948, 4062.51);
+ new ShapeRef(router, polygon, 1388);
+
+ // shapeRef1389
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1614, 4062.51);
+ polygon.ps[1] = Point(1614, 4124.51);
+ polygon.ps[2] = Point(1552, 4124.51);
+ polygon.ps[3] = Point(1552, 4062.51);
+ new ShapeRef(router, polygon, 1389);
+
+ // shapeRef1390
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2439, 4511.4);
+ polygon.ps[1] = Point(2439, 4573.4);
+ polygon.ps[2] = Point(2377, 4573.4);
+ polygon.ps[3] = Point(2377, 4511.4);
+ new ShapeRef(router, polygon, 1390);
+
+ // shapeRef1391
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2802, 4511.4);
+ polygon.ps[1] = Point(2802, 4573.4);
+ polygon.ps[2] = Point(2740, 4573.4);
+ polygon.ps[3] = Point(2740, 4511.4);
+ new ShapeRef(router, polygon, 1391);
+
+ // shapeRef1392
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3297, 4511.4);
+ polygon.ps[1] = Point(3297, 4573.4);
+ polygon.ps[2] = Point(3235, 4573.4);
+ polygon.ps[3] = Point(3235, 4511.4);
+ new ShapeRef(router, polygon, 1392);
+
+ // shapeRef1393
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3759, 4511.4);
+ polygon.ps[1] = Point(3759, 4573.4);
+ polygon.ps[2] = Point(3697, 4573.4);
+ polygon.ps[3] = Point(3697, 4511.4);
+ new ShapeRef(router, polygon, 1393);
+
+ // shapeRef1394
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4089, 4511.4);
+ polygon.ps[1] = Point(4089, 4573.4);
+ polygon.ps[2] = Point(4027, 4573.4);
+ polygon.ps[3] = Point(4027, 4511.4);
+ new ShapeRef(router, polygon, 1394);
+
+ // shapeRef1395
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2802, 4062.51);
+ polygon.ps[1] = Point(2802, 4124.51);
+ polygon.ps[2] = Point(2740, 4124.51);
+ polygon.ps[3] = Point(2740, 4062.51);
+ new ShapeRef(router, polygon, 1395);
+
+ // shapeRef1396
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1185, 4062.51);
+ polygon.ps[1] = Point(1185, 4124.51);
+ polygon.ps[2] = Point(1123, 4124.51);
+ polygon.ps[3] = Point(1123, 4062.51);
+ new ShapeRef(router, polygon, 1396);
+
+ // shapeRef1397
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1614, 4511.4);
+ polygon.ps[1] = Point(1614, 4573.4);
+ polygon.ps[2] = Point(1552, 4573.4);
+ polygon.ps[3] = Point(1552, 4511.4);
+ new ShapeRef(router, polygon, 1397);
+
+ // shapeRef1398
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2010, 4511.4);
+ polygon.ps[1] = Point(2010, 4573.4);
+ polygon.ps[2] = Point(1948, 4573.4);
+ polygon.ps[3] = Point(1948, 4511.4);
+ new ShapeRef(router, polygon, 1398);
+
+ // shapeRef1399
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1185, 4511.4);
+ polygon.ps[1] = Point(1185, 4573.4);
+ polygon.ps[2] = Point(1123, 4573.4);
+ polygon.ps[3] = Point(1123, 4511.4);
+ new ShapeRef(router, polygon, 1399);
+
+ // shapeRef1400
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(822, 4511.4);
+ polygon.ps[1] = Point(822, 4573.4);
+ polygon.ps[2] = Point(760, 4573.4);
+ polygon.ps[3] = Point(760, 4511.4);
+ new ShapeRef(router, polygon, 1400);
+
+ // shapeRef1401
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17697.9);
+ polygon.ps[1] = Point(9289.03, 17737.9);
+ polygon.ps[2] = Point(9234.03, 17737.9);
+ polygon.ps[3] = Point(9234.03, 17697.9);
+ new ShapeRef(router, polygon, 1401);
+
+ // shapeRef1402
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17697.9);
+ polygon.ps[1] = Point(9389.03, 17737.9);
+ polygon.ps[2] = Point(9334.03, 17737.9);
+ polygon.ps[3] = Point(9334.03, 17697.9);
+ new ShapeRef(router, polygon, 1402);
+
+ // shapeRef1403
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17797.9);
+ polygon.ps[1] = Point(8389.03, 17837.9);
+ polygon.ps[2] = Point(8334.03, 17837.9);
+ polygon.ps[3] = Point(8334.03, 17797.9);
+ new ShapeRef(router, polygon, 1403);
+
+ // shapeRef1404
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17797.9);
+ polygon.ps[1] = Point(8489.03, 17837.9);
+ polygon.ps[2] = Point(8434.03, 17837.9);
+ polygon.ps[3] = Point(8434.03, 17797.9);
+ new ShapeRef(router, polygon, 1404);
+
+ // shapeRef1405
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17797.9);
+ polygon.ps[1] = Point(8589.03, 17837.9);
+ polygon.ps[2] = Point(8534.03, 17837.9);
+ polygon.ps[3] = Point(8534.03, 17797.9);
+ new ShapeRef(router, polygon, 1405);
+
+ // shapeRef1406
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17797.9);
+ polygon.ps[1] = Point(8689.03, 17837.9);
+ polygon.ps[2] = Point(8634.03, 17837.9);
+ polygon.ps[3] = Point(8634.03, 17797.9);
+ new ShapeRef(router, polygon, 1406);
+
+ // shapeRef1407
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17797.9);
+ polygon.ps[1] = Point(8789.03, 17837.9);
+ polygon.ps[2] = Point(8734.03, 17837.9);
+ polygon.ps[3] = Point(8734.03, 17797.9);
+ new ShapeRef(router, polygon, 1407);
+
+ // shapeRef1408
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17797.9);
+ polygon.ps[1] = Point(8889.03, 17837.9);
+ polygon.ps[2] = Point(8834.03, 17837.9);
+ polygon.ps[3] = Point(8834.03, 17797.9);
+ new ShapeRef(router, polygon, 1408);
+
+ // shapeRef1409
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17797.9);
+ polygon.ps[1] = Point(8989.03, 17837.9);
+ polygon.ps[2] = Point(8934.03, 17837.9);
+ polygon.ps[3] = Point(8934.03, 17797.9);
+ new ShapeRef(router, polygon, 1409);
+
+ // shapeRef1410
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 17797.9);
+ polygon.ps[1] = Point(9089.03, 17837.9);
+ polygon.ps[2] = Point(9034.03, 17837.9);
+ polygon.ps[3] = Point(9034.03, 17797.9);
+ new ShapeRef(router, polygon, 1410);
+
+ // shapeRef1411
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17797.9);
+ polygon.ps[1] = Point(9189.03, 17837.9);
+ polygon.ps[2] = Point(9134.03, 17837.9);
+ polygon.ps[3] = Point(9134.03, 17797.9);
+ new ShapeRef(router, polygon, 1411);
+
+ // shapeRef1412
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17797.9);
+ polygon.ps[1] = Point(9289.03, 17837.9);
+ polygon.ps[2] = Point(9234.03, 17837.9);
+ polygon.ps[3] = Point(9234.03, 17797.9);
+ new ShapeRef(router, polygon, 1412);
+
+ // shapeRef1413
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17797.9);
+ polygon.ps[1] = Point(9389.03, 17837.9);
+ polygon.ps[2] = Point(9334.03, 17837.9);
+ polygon.ps[3] = Point(9334.03, 17797.9);
+ new ShapeRef(router, polygon, 1413);
+
+ // shapeRef1414
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17897.9);
+ polygon.ps[1] = Point(8389.03, 17937.9);
+ polygon.ps[2] = Point(8334.03, 17937.9);
+ polygon.ps[3] = Point(8334.03, 17897.9);
+ new ShapeRef(router, polygon, 1414);
+
+ // shapeRef1415
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17897.9);
+ polygon.ps[1] = Point(8489.03, 17937.9);
+ polygon.ps[2] = Point(8434.03, 17937.9);
+ polygon.ps[3] = Point(8434.03, 17897.9);
+ new ShapeRef(router, polygon, 1415);
+
+ // shapeRef1416
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17897.9);
+ polygon.ps[1] = Point(8589.03, 17937.9);
+ polygon.ps[2] = Point(8534.03, 17937.9);
+ polygon.ps[3] = Point(8534.03, 17897.9);
+ new ShapeRef(router, polygon, 1416);
+
+ // shapeRef1417
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17897.9);
+ polygon.ps[1] = Point(8689.03, 17937.9);
+ polygon.ps[2] = Point(8634.03, 17937.9);
+ polygon.ps[3] = Point(8634.03, 17897.9);
+ new ShapeRef(router, polygon, 1417);
+
+ // shapeRef1418
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17897.9);
+ polygon.ps[1] = Point(8789.03, 17937.9);
+ polygon.ps[2] = Point(8734.03, 17937.9);
+ polygon.ps[3] = Point(8734.03, 17897.9);
+ new ShapeRef(router, polygon, 1418);
+
+ // shapeRef1419
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17897.9);
+ polygon.ps[1] = Point(8889.03, 17937.9);
+ polygon.ps[2] = Point(8834.03, 17937.9);
+ polygon.ps[3] = Point(8834.03, 17897.9);
+ new ShapeRef(router, polygon, 1419);
+
+ // shapeRef1420
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17897.9);
+ polygon.ps[1] = Point(8989.03, 17937.9);
+ polygon.ps[2] = Point(8934.03, 17937.9);
+ polygon.ps[3] = Point(8934.03, 17897.9);
+ new ShapeRef(router, polygon, 1420);
+
+ // shapeRef1421
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 17897.9);
+ polygon.ps[1] = Point(9089.03, 17937.9);
+ polygon.ps[2] = Point(9034.03, 17937.9);
+ polygon.ps[3] = Point(9034.03, 17897.9);
+ new ShapeRef(router, polygon, 1421);
+
+ // shapeRef1422
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17897.9);
+ polygon.ps[1] = Point(9189.03, 17937.9);
+ polygon.ps[2] = Point(9134.03, 17937.9);
+ polygon.ps[3] = Point(9134.03, 17897.9);
+ new ShapeRef(router, polygon, 1422);
+
+ // shapeRef1423
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17897.9);
+ polygon.ps[1] = Point(9289.03, 17937.9);
+ polygon.ps[2] = Point(9234.03, 17937.9);
+ polygon.ps[3] = Point(9234.03, 17897.9);
+ new ShapeRef(router, polygon, 1423);
+
+ // shapeRef1424
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9389.03, 17897.9);
+ polygon.ps[1] = Point(9389.03, 17937.9);
+ polygon.ps[2] = Point(9334.03, 17937.9);
+ polygon.ps[3] = Point(9334.03, 17897.9);
+ new ShapeRef(router, polygon, 1424);
+
+ // shapeRef1425
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8389.03, 17997.9);
+ polygon.ps[1] = Point(8389.03, 18037.9);
+ polygon.ps[2] = Point(8334.03, 18037.9);
+ polygon.ps[3] = Point(8334.03, 17997.9);
+ new ShapeRef(router, polygon, 1425);
+
+ // shapeRef1426
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.03, 17997.9);
+ polygon.ps[1] = Point(8489.03, 18037.9);
+ polygon.ps[2] = Point(8434.03, 18037.9);
+ polygon.ps[3] = Point(8434.03, 17997.9);
+ new ShapeRef(router, polygon, 1426);
+
+ // shapeRef1427
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8589.03, 17997.9);
+ polygon.ps[1] = Point(8589.03, 18037.9);
+ polygon.ps[2] = Point(8534.03, 18037.9);
+ polygon.ps[3] = Point(8534.03, 17997.9);
+ new ShapeRef(router, polygon, 1427);
+
+ // shapeRef1428
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8689.03, 17997.9);
+ polygon.ps[1] = Point(8689.03, 18037.9);
+ polygon.ps[2] = Point(8634.03, 18037.9);
+ polygon.ps[3] = Point(8634.03, 17997.9);
+ new ShapeRef(router, polygon, 1428);
+
+ // shapeRef1429
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8789.03, 17997.9);
+ polygon.ps[1] = Point(8789.03, 18037.9);
+ polygon.ps[2] = Point(8734.03, 18037.9);
+ polygon.ps[3] = Point(8734.03, 17997.9);
+ new ShapeRef(router, polygon, 1429);
+
+ // shapeRef1430
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8889.03, 17997.9);
+ polygon.ps[1] = Point(8889.03, 18037.9);
+ polygon.ps[2] = Point(8834.03, 18037.9);
+ polygon.ps[3] = Point(8834.03, 17997.9);
+ new ShapeRef(router, polygon, 1430);
+
+ // shapeRef1431
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.03, 17997.9);
+ polygon.ps[1] = Point(8989.03, 18037.9);
+ polygon.ps[2] = Point(8934.03, 18037.9);
+ polygon.ps[3] = Point(8934.03, 17997.9);
+ new ShapeRef(router, polygon, 1431);
+
+ // shapeRef1432
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9089.03, 17997.9);
+ polygon.ps[1] = Point(9089.03, 18037.9);
+ polygon.ps[2] = Point(9034.03, 18037.9);
+ polygon.ps[3] = Point(9034.03, 17997.9);
+ new ShapeRef(router, polygon, 1432);
+
+ // shapeRef1433
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9189.03, 17997.9);
+ polygon.ps[1] = Point(9189.03, 18037.9);
+ polygon.ps[2] = Point(9134.03, 18037.9);
+ polygon.ps[3] = Point(9134.03, 17997.9);
+ new ShapeRef(router, polygon, 1433);
+
+ // shapeRef1434
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9289.03, 17997.9);
+ polygon.ps[1] = Point(9289.03, 18037.9);
+ polygon.ps[2] = Point(9234.03, 18037.9);
+ polygon.ps[3] = Point(9234.03, 17997.9);
+ new ShapeRef(router, polygon, 1434);
+
+ // shapeRef1435
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4976.5, 5752.9);
+ polygon.ps[1] = Point(4976.5, 5812.9);
+ polygon.ps[2] = Point(4921.5, 5812.9);
+ polygon.ps[3] = Point(4921.5, 5752.9);
+ new ShapeRef(router, polygon, 1435);
+
+ // shapeRef1436
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 6131.51);
+ polygon.ps[1] = Point(5034.5, 6171.51);
+ polygon.ps[2] = Point(4959, 6171.51);
+ polygon.ps[3] = Point(4959, 6131.51);
+ new ShapeRef(router, polygon, 1436);
+
+ // shapeRef1437
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7693.6, 2970.79);
+ polygon.ps[1] = Point(7693.6, 3010.79);
+ polygon.ps[2] = Point(7618.1, 3010.79);
+ polygon.ps[3] = Point(7618.1, 2970.79);
+ new ShapeRef(router, polygon, 1437);
+
+ // shapeRef1438
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10035.2, 9973.52);
+ polygon.ps[1] = Point(10035.2, 10013.5);
+ polygon.ps[2] = Point(9959.69, 10013.5);
+ polygon.ps[3] = Point(9959.69, 9973.52);
+ new ShapeRef(router, polygon, 1438);
+
+ // shapeRef1439
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16094.1, 11724.9);
+ polygon.ps[1] = Point(16094.1, 11784.9);
+ polygon.ps[2] = Point(16039.1, 11784.9);
+ polygon.ps[3] = Point(16039.1, 11724.9);
+ new ShapeRef(router, polygon, 1439);
+
+ // shapeRef1440
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8386.79, 1210.29);
+ polygon.ps[1] = Point(8386.79, 1270.29);
+ polygon.ps[2] = Point(8331.79, 1270.29);
+ polygon.ps[3] = Point(8331.79, 1210.29);
+ new ShapeRef(router, polygon, 1440);
+
+ // shapeRef1441
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9364.09, 5522.67);
+ polygon.ps[1] = Point(9364.09, 5582.67);
+ polygon.ps[2] = Point(9309.09, 5582.67);
+ polygon.ps[3] = Point(9309.09, 5522.67);
+ new ShapeRef(router, polygon, 1441);
+
+ // shapeRef1442
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5746.6, 4555.4);
+ polygon.ps[1] = Point(5746.6, 4595.4);
+ polygon.ps[2] = Point(5671.1, 4595.4);
+ polygon.ps[3] = Point(5671.1, 4555.4);
+ new ShapeRef(router, polygon, 1442);
+
+ // shapeRef1443
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13598, 6659.51);
+ polygon.ps[1] = Point(13598, 6699.51);
+ polygon.ps[2] = Point(13522.5, 6699.51);
+ polygon.ps[3] = Point(13522.5, 6659.51);
+ new ShapeRef(router, polygon, 1443);
+
+ // shapeRef1444
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 2229.29);
+ polygon.ps[1] = Point(11448.6, 2269.29);
+ polygon.ps[2] = Point(11373.1, 2269.29);
+ polygon.ps[3] = Point(11373.1, 2229.29);
+ new ShapeRef(router, polygon, 1444);
+
+ // shapeRef1445
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 3318.29);
+ polygon.ps[1] = Point(11448.6, 3358.29);
+ polygon.ps[2] = Point(11373.1, 3358.29);
+ polygon.ps[3] = Point(11373.1, 3318.29);
+ new ShapeRef(router, polygon, 1445);
+
+ // shapeRef1446
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 4456.4);
+ polygon.ps[1] = Point(11448.6, 4496.4);
+ polygon.ps[2] = Point(11373.1, 4496.4);
+ polygon.ps[3] = Point(11373.1, 4456.4);
+ new ShapeRef(router, polygon, 1446);
+
+ // shapeRef1447
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 5360.67);
+ polygon.ps[1] = Point(11448.6, 5400.67);
+ polygon.ps[2] = Point(11373.1, 5400.67);
+ polygon.ps[3] = Point(11373.1, 5360.67);
+ new ShapeRef(router, polygon, 1447);
+
+ // shapeRef1448
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 6560.51);
+ polygon.ps[1] = Point(11448.6, 6600.51);
+ polygon.ps[2] = Point(11373.1, 6600.51);
+ polygon.ps[3] = Point(11373.1, 6560.51);
+ new ShapeRef(router, polygon, 1448);
+
+ // shapeRef1449
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 8394.99);
+ polygon.ps[1] = Point(11448.6, 8434.99);
+ polygon.ps[2] = Point(11373.1, 8434.99);
+ polygon.ps[3] = Point(11373.1, 8394.99);
+ new ShapeRef(router, polygon, 1449);
+
+ // shapeRef1450
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 11158.6);
+ polygon.ps[1] = Point(11448.6, 11198.6);
+ polygon.ps[2] = Point(11373.1, 11198.6);
+ polygon.ps[3] = Point(11373.1, 11158.6);
+ new ShapeRef(router, polygon, 1450);
+
+ // shapeRef1451
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 9956.02);
+ polygon.ps[1] = Point(11448.6, 9996.02);
+ polygon.ps[2] = Point(11373.1, 9996.02);
+ polygon.ps[3] = Point(11373.1, 9956.02);
+ new ShapeRef(router, polygon, 1451);
+
+ // shapeRef1452
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11951.6, 12057.3);
+ polygon.ps[1] = Point(11951.6, 12117.3);
+ polygon.ps[2] = Point(11896.6, 12117.3);
+ polygon.ps[3] = Point(11896.6, 12057.3);
+ new ShapeRef(router, polygon, 1452);
+
+ // shapeRef1453
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12950, 12057.3);
+ polygon.ps[1] = Point(12950, 12117.3);
+ polygon.ps[2] = Point(12895, 12117.3);
+ polygon.ps[3] = Point(12895, 12057.3);
+ new ShapeRef(router, polygon, 1453);
+
+ // shapeRef1454
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7982.79, 4440.9);
+ polygon.ps[1] = Point(7982.79, 4480.9);
+ polygon.ps[2] = Point(7907.29, 4480.9);
+ polygon.ps[3] = Point(7907.29, 4440.9);
+ new ShapeRef(router, polygon, 1454);
+
+ // shapeRef1455
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1610.5, 4703.4);
+ polygon.ps[1] = Point(1610.5, 4763.4);
+ polygon.ps[2] = Point(1555.5, 4763.4);
+ polygon.ps[3] = Point(1555.5, 4703.4);
+ new ShapeRef(router, polygon, 1455);
+
+ // shapeRef1456
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3062.5, 4703.4);
+ polygon.ps[1] = Point(3062.5, 4763.4);
+ polygon.ps[2] = Point(3007.5, 4763.4);
+ polygon.ps[3] = Point(3007.5, 4703.4);
+ new ShapeRef(router, polygon, 1456);
+
+ // shapeRef1457
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15793.4, 10711.3);
+ polygon.ps[1] = Point(15793.4, 10771.3);
+ polygon.ps[2] = Point(15738.4, 10771.3);
+ polygon.ps[3] = Point(15738.4, 10711.3);
+ new ShapeRef(router, polygon, 1457);
+
+ // shapeRef1458
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14229.5, 12222.3);
+ polygon.ps[1] = Point(14229.5, 12282.3);
+ polygon.ps[2] = Point(14174.5, 12282.3);
+ polygon.ps[3] = Point(14174.5, 12222.3);
+ new ShapeRef(router, polygon, 1458);
+
+ // shapeRef1459
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16119.1, 11642.9);
+ polygon.ps[1] = Point(16119.1, 11702.9);
+ polygon.ps[2] = Point(16064.1, 11702.9);
+ polygon.ps[3] = Point(16064.1, 11642.9);
+ new ShapeRef(router, polygon, 1459);
+
+ // shapeRef1460
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15233.8, 10877.1);
+ polygon.ps[1] = Point(15233.8, 10917.1);
+ polygon.ps[2] = Point(15158.3, 10917.1);
+ polygon.ps[3] = Point(15158.3, 10877.1);
+ new ShapeRef(router, polygon, 1460);
+
+ // shapeRef1461
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10509.4, 6395.51);
+ polygon.ps[1] = Point(10509.4, 6435.51);
+ polygon.ps[2] = Point(10433.9, 6435.51);
+ polygon.ps[3] = Point(10433.9, 6395.51);
+ new ShapeRef(router, polygon, 1461);
+
+ // shapeRef1462
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10385.4, 10711.3);
+ polygon.ps[1] = Point(10385.4, 10771.3);
+ polygon.ps[2] = Point(10330.4, 10771.3);
+ polygon.ps[3] = Point(10330.4, 10711.3);
+ new ShapeRef(router, polygon, 1462);
+
+ // shapeRef1463
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9944.19, 11562.9);
+ polygon.ps[1] = Point(9944.19, 11622.9);
+ polygon.ps[2] = Point(9889.19, 11622.9);
+ polygon.ps[3] = Point(9889.19, 11562.9);
+ new ShapeRef(router, polygon, 1463);
+
+ // shapeRef1464
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9356.09, 5637.9);
+ polygon.ps[1] = Point(9356.09, 5677.9);
+ polygon.ps[2] = Point(9280.59, 5677.9);
+ polygon.ps[3] = Point(9280.59, 5637.9);
+ new ShapeRef(router, polygon, 1464);
+
+ // shapeRef1465
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9587.09, 7356.9);
+ polygon.ps[1] = Point(9587.09, 7396.9);
+ polygon.ps[2] = Point(9511.59, 7396.9);
+ polygon.ps[3] = Point(9511.59, 7356.9);
+ new ShapeRef(router, polygon, 1465);
+
+ // shapeRef1466
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9587.09, 10352);
+ polygon.ps[1] = Point(9587.09, 10392);
+ polygon.ps[2] = Point(9511.59, 10392);
+ polygon.ps[3] = Point(9511.59, 10352);
+ new ShapeRef(router, polygon, 1466);
+
+ // shapeRef1467
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11712.6, 10711.3);
+ polygon.ps[1] = Point(11712.6, 10771.3);
+ polygon.ps[2] = Point(11657.6, 10771.3);
+ polygon.ps[3] = Point(11657.6, 10711.3);
+ new ShapeRef(router, polygon, 1467);
+
+ // shapeRef1468
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13128.5, 10711.3);
+ polygon.ps[1] = Point(13128.5, 10771.3);
+ polygon.ps[2] = Point(13073.5, 10771.3);
+ polygon.ps[3] = Point(13073.5, 10711.3);
+ new ShapeRef(router, polygon, 1468);
+
+ // shapeRef1469
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11481.6, 11562.9);
+ polygon.ps[1] = Point(11481.6, 11622.9);
+ polygon.ps[2] = Point(11426.6, 11622.9);
+ polygon.ps[3] = Point(11426.6, 11562.9);
+ new ShapeRef(router, polygon, 1469);
+
+ // shapeRef1470
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12785, 11562.9);
+ polygon.ps[1] = Point(12785, 11622.9);
+ polygon.ps[2] = Point(12730, 11622.9);
+ polygon.ps[3] = Point(12730, 11562.9);
+ new ShapeRef(router, polygon, 1470);
+
+ // shapeRef1471
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14328.5, 10711.3);
+ polygon.ps[1] = Point(14328.5, 10771.3);
+ polygon.ps[2] = Point(14273.5, 10771.3);
+ polygon.ps[3] = Point(14273.5, 10711.3);
+ new ShapeRef(router, polygon, 1471);
+
+ // shapeRef1472
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14559.5, 11562.9);
+ polygon.ps[1] = Point(14559.5, 11622.9);
+ polygon.ps[2] = Point(14504.5, 11622.9);
+ polygon.ps[3] = Point(14504.5, 11562.9);
+ new ShapeRef(router, polygon, 1472);
+
+ // shapeRef1473
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15954.1, 12173.3);
+ polygon.ps[1] = Point(15954.1, 12213.3);
+ polygon.ps[2] = Point(15878.6, 12213.3);
+ polygon.ps[3] = Point(15878.6, 12173.3);
+ new ShapeRef(router, polygon, 1473);
+
+ // shapeRef1474
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15631.8, 12222.3);
+ polygon.ps[1] = Point(15631.8, 12282.3);
+ polygon.ps[2] = Point(15576.8, 12282.3);
+ polygon.ps[3] = Point(15576.8, 12222.3);
+ new ShapeRef(router, polygon, 1474);
+
+ // shapeRef1475
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9138.49, 8308.99);
+ polygon.ps[1] = Point(9138.49, 8348.99);
+ polygon.ps[2] = Point(9062.99, 8348.99);
+ polygon.ps[3] = Point(9062.99, 8308.99);
+ new ShapeRef(router, polygon, 1475);
+
+ // shapeRef1476
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18322, 8544.49);
+ polygon.ps[1] = Point(18322, 8584.49);
+ polygon.ps[2] = Point(18246.5, 8584.49);
+ polygon.ps[3] = Point(18246.5, 8544.49);
+ new ShapeRef(router, polygon, 1476);
+
+ // shapeRef1477
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17637, 10104);
+ polygon.ps[1] = Point(17637, 10164);
+ polygon.ps[2] = Point(17582, 10164);
+ polygon.ps[3] = Point(17582, 10104);
+ new ShapeRef(router, polygon, 1477);
+
+ // shapeRef1478
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16585.3, 10104);
+ polygon.ps[1] = Point(16585.3, 10164);
+ polygon.ps[2] = Point(16530.3, 10164);
+ polygon.ps[3] = Point(16530.3, 10104);
+ new ShapeRef(router, polygon, 1478);
+
+ // shapeRef1479
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13965.5, 10184);
+ polygon.ps[1] = Point(13965.5, 10244);
+ polygon.ps[2] = Point(13910.5, 10244);
+ polygon.ps[3] = Point(13910.5, 10184);
+ new ShapeRef(router, polygon, 1479);
+
+ // shapeRef1480
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10410.4, 9688.42);
+ polygon.ps[1] = Point(10410.4, 9728.42);
+ polygon.ps[2] = Point(10334.9, 9728.42);
+ polygon.ps[3] = Point(10334.9, 9688.42);
+ new ShapeRef(router, polygon, 1480);
+
+ // shapeRef1481
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14625.5, 6718.21);
+ polygon.ps[1] = Point(14625.5, 6778.21);
+ polygon.ps[2] = Point(14570.5, 6778.21);
+ polygon.ps[3] = Point(14570.5, 6718.21);
+ new ShapeRef(router, polygon, 1481);
+
+ // shapeRef1482
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11580.6, 7724.79);
+ polygon.ps[1] = Point(11580.6, 7764.79);
+ polygon.ps[2] = Point(11505.1, 7764.79);
+ polygon.ps[3] = Point(11505.1, 7724.79);
+ new ShapeRef(router, polygon, 1482);
+
+ // shapeRef1483
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12050.6, 7355.4);
+ polygon.ps[1] = Point(12050.6, 7415.4);
+ polygon.ps[2] = Point(11995.6, 7415.4);
+ polygon.ps[3] = Point(11995.6, 7355.4);
+ new ShapeRef(router, polygon, 1483);
+
+ // shapeRef1484
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17138.3, 7191.9);
+ polygon.ps[1] = Point(17138.3, 7231.9);
+ polygon.ps[2] = Point(17062.8, 7231.9);
+ polygon.ps[3] = Point(17062.8, 7191.9);
+ new ShapeRef(router, polygon, 1484);
+
+ // shapeRef1485
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 6036.29);
+ polygon.ps[1] = Point(5034.5, 6076.29);
+ polygon.ps[2] = Point(4959, 6076.29);
+ polygon.ps[3] = Point(4959, 6036.29);
+ new ShapeRef(router, polygon, 1485);
+
+ // shapeRef1486
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4976.5, 5894.59);
+ polygon.ps[1] = Point(4976.5, 5954.59);
+ polygon.ps[2] = Point(4921.5, 5954.59);
+ polygon.ps[3] = Point(4921.5, 5894.59);
+ new ShapeRef(router, polygon, 1486);
+
+ // shapeRef1487
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5523.6, 5277.67);
+ polygon.ps[1] = Point(5523.6, 5337.67);
+ polygon.ps[2] = Point(5468.6, 5337.67);
+ polygon.ps[3] = Point(5468.6, 5277.67);
+ new ShapeRef(router, polygon, 1487);
+
+ // shapeRef1488
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9141.09, 6081.51);
+ polygon.ps[1] = Point(9141.09, 6141.51);
+ polygon.ps[2] = Point(9086.09, 6141.51);
+ polygon.ps[3] = Point(9086.09, 6081.51);
+ new ShapeRef(router, polygon, 1488);
+
+ // shapeRef1489
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9820.19, 7091.4);
+ polygon.ps[1] = Point(9820.19, 7151.4);
+ polygon.ps[2] = Point(9765.19, 7151.4);
+ polygon.ps[3] = Point(9765.19, 7091.4);
+ new ShapeRef(router, polygon, 1489);
+
+ // shapeRef1490
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10542.4, 7856.79);
+ polygon.ps[1] = Point(10542.4, 7896.79);
+ polygon.ps[2] = Point(10466.9, 7896.79);
+ polygon.ps[3] = Point(10466.9, 7856.79);
+ new ShapeRef(router, polygon, 1490);
+
+ // shapeRef1491
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7660.6, 9061.42);
+ polygon.ps[1] = Point(7660.6, 9101.42);
+ polygon.ps[2] = Point(7585.1, 9101.42);
+ polygon.ps[3] = Point(7585.1, 9061.42);
+ new ShapeRef(router, polygon, 1491);
+
+ // shapeRef1492
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15325, 1326.29);
+ polygon.ps[1] = Point(15325, 1366.29);
+ polygon.ps[2] = Point(15249.5, 1366.29);
+ polygon.ps[3] = Point(15249.5, 1326.29);
+ new ShapeRef(router, polygon, 1492);
+
+ // shapeRef1493
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9397.09, 9572.42);
+ polygon.ps[1] = Point(9397.09, 9632.42);
+ polygon.ps[2] = Point(9342.09, 9632.42);
+ polygon.ps[3] = Point(9342.09, 9572.42);
+ new ShapeRef(router, polygon, 1493);
+
+ // shapeRef1494
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7594.6, 7988.79);
+ polygon.ps[1] = Point(7594.6, 8028.79);
+ polygon.ps[2] = Point(7519.1, 8028.79);
+ polygon.ps[3] = Point(7519.1, 7988.79);
+ new ShapeRef(router, polygon, 1494);
+
+ // shapeRef1495
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10762.7, 8559.99);
+ polygon.ps[1] = Point(10762.7, 8599.99);
+ polygon.ps[2] = Point(10687.2, 8599.99);
+ polygon.ps[3] = Point(10687.2, 8559.99);
+ new ShapeRef(router, polygon, 1495);
+
+ // shapeRef1496
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10597.7, 9127.42);
+ polygon.ps[1] = Point(10597.7, 9167.42);
+ polygon.ps[2] = Point(10522.2, 9167.42);
+ polygon.ps[3] = Point(10522.2, 9127.42);
+ new ShapeRef(router, polygon, 1496);
+
+ // shapeRef1497
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9188.49, 8328.99);
+ polygon.ps[1] = Point(9188.49, 8368.99);
+ polygon.ps[2] = Point(9062.99, 8368.99);
+ polygon.ps[3] = Point(9062.99, 8328.99);
+ new ShapeRef(router, polygon, 1497);
+
+ // shapeRef1498
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 4638.9);
+ polygon.ps[1] = Point(8825.89, 4678.9);
+ polygon.ps[2] = Point(8750.39, 4678.9);
+ polygon.ps[3] = Point(8750.39, 4638.9);
+ new ShapeRef(router, polygon, 1498);
+
+ // shapeRef1499
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8921.39, 3941.51);
+ polygon.ps[1] = Point(8921.39, 3981.51);
+ polygon.ps[2] = Point(8845.89, 3981.51);
+ polygon.ps[3] = Point(8845.89, 3941.51);
+ new ShapeRef(router, polygon, 1499);
+
+ // shapeRef1500
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8921.39, 3413.51);
+ polygon.ps[1] = Point(8921.39, 3453.51);
+ polygon.ps[2] = Point(8845.89, 3453.51);
+ polygon.ps[3] = Point(8845.89, 3413.51);
+ new ShapeRef(router, polygon, 1500);
+
+ // shapeRef1501
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 2889.29);
+ polygon.ps[1] = Point(8825.89, 2929.29);
+ polygon.ps[2] = Point(8750.39, 2929.29);
+ polygon.ps[3] = Point(8750.39, 2889.29);
+ new ShapeRef(router, polygon, 1501);
+
+ // shapeRef1502
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8921.39, 2343.79);
+ polygon.ps[1] = Point(8921.39, 2383.79);
+ polygon.ps[2] = Point(8845.89, 2383.79);
+ polygon.ps[3] = Point(8845.89, 2343.79);
+ new ShapeRef(router, polygon, 1502);
+
+ // shapeRef1503
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8452.79, 2160.29);
+ polygon.ps[1] = Point(8452.79, 2220.29);
+ polygon.ps[2] = Point(8397.79, 2220.29);
+ polygon.ps[3] = Point(8397.79, 2160.29);
+ new ShapeRef(router, polygon, 1503);
+
+ // shapeRef1504
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15402, 1276.29);
+ polygon.ps[1] = Point(15402, 1336.29);
+ polygon.ps[2] = Point(15347, 1336.29);
+ polygon.ps[3] = Point(15347, 1276.29);
+ new ShapeRef(router, polygon, 1504);
+
+ // shapeRef1505
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8543.79, 1095.29);
+ polygon.ps[1] = Point(8543.79, 1135.29);
+ polygon.ps[2] = Point(8468.29, 1135.29);
+ polygon.ps[3] = Point(8468.29, 1095.29);
+ new ShapeRef(router, polygon, 1505);
+
+ // shapeRef1506
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8989.49, 738.091);
+ polygon.ps[1] = Point(8989.49, 798.091);
+ polygon.ps[2] = Point(8934.49, 798.091);
+ polygon.ps[3] = Point(8934.49, 738.091);
+ new ShapeRef(router, polygon, 1506);
+
+ // shapeRef1507
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9014.49, 1045.29);
+ polygon.ps[1] = Point(9014.49, 1105.29);
+ polygon.ps[2] = Point(8959.49, 1105.29);
+ polygon.ps[3] = Point(8959.49, 1045.29);
+ new ShapeRef(router, polygon, 1507);
+
+ // shapeRef1508
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15167.8, 1356.29);
+ polygon.ps[1] = Point(15167.8, 1416.29);
+ polygon.ps[2] = Point(15112.8, 1416.29);
+ polygon.ps[3] = Point(15112.8, 1356.29);
+ new ShapeRef(router, polygon, 1508);
+
+ // shapeRef1509
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15529.8, 1356.29);
+ polygon.ps[1] = Point(15529.8, 1416.29);
+ polygon.ps[2] = Point(15474.8, 1416.29);
+ polygon.ps[3] = Point(15474.8, 1356.29);
+ new ShapeRef(router, polygon, 1509);
+
+ // shapeRef1510
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8081.79, 963.285);
+ polygon.ps[1] = Point(8081.79, 1003.29);
+ polygon.ps[2] = Point(8006.29, 1003.29);
+ polygon.ps[3] = Point(8006.29, 963.285);
+ new ShapeRef(router, polygon, 1510);
+
+ // shapeRef1511
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9779.19, 738.091);
+ polygon.ps[1] = Point(9779.19, 798.091);
+ polygon.ps[2] = Point(9724.19, 798.091);
+ polygon.ps[3] = Point(9724.19, 738.091);
+ new ShapeRef(router, polygon, 1511);
+
+ // shapeRef1512
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10803.7, 738.091);
+ polygon.ps[1] = Point(10803.7, 798.091);
+ polygon.ps[2] = Point(10748.7, 798.091);
+ polygon.ps[3] = Point(10748.7, 738.091);
+ new ShapeRef(router, polygon, 1512);
+
+ // shapeRef1513
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11059.7, 1095.29);
+ polygon.ps[1] = Point(11059.7, 1135.29);
+ polygon.ps[2] = Point(10984.2, 1135.29);
+ polygon.ps[3] = Point(10984.2, 1095.29);
+ new ShapeRef(router, polygon, 1513);
+
+ // shapeRef1514
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10803.7, 1210.29);
+ polygon.ps[1] = Point(10803.7, 1270.29);
+ polygon.ps[2] = Point(10748.7, 1270.29);
+ polygon.ps[3] = Point(10748.7, 1210.29);
+ new ShapeRef(router, polygon, 1514);
+
+ // shapeRef1515
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9397.09, 1210.29);
+ polygon.ps[1] = Point(9397.09, 1270.29);
+ polygon.ps[2] = Point(9342.09, 1270.29);
+ polygon.ps[3] = Point(9342.09, 1210.29);
+ new ShapeRef(router, polygon, 1515);
+
+ // shapeRef1516
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9331.09, 1939.29);
+ polygon.ps[1] = Point(9331.09, 1999.29);
+ polygon.ps[2] = Point(9276.09, 1999.29);
+ polygon.ps[3] = Point(9276.09, 1939.29);
+ new ShapeRef(router, polygon, 1516);
+
+ // shapeRef1517
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6117.6, 144.265);
+ polygon.ps[1] = Point(6117.6, 204.265);
+ polygon.ps[2] = Point(6062.6, 204.265);
+ polygon.ps[3] = Point(6062.6, 144.265);
+ new ShapeRef(router, polygon, 1517);
+
+ // shapeRef1518
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9738.19, 1689.29);
+ polygon.ps[1] = Point(9738.19, 1729.29);
+ polygon.ps[2] = Point(9662.69, 1729.29);
+ polygon.ps[3] = Point(9662.69, 1689.29);
+ new ShapeRef(router, polygon, 1518);
+
+ // shapeRef1519
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11059.7, 1458.29);
+ polygon.ps[1] = Point(11059.7, 1498.29);
+ polygon.ps[2] = Point(10984.2, 1498.29);
+ polygon.ps[3] = Point(10984.2, 1458.29);
+ new ShapeRef(router, polygon, 1519);
+
+ // shapeRef1520
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11166.7, 1653.29);
+ polygon.ps[1] = Point(11166.7, 1713.29);
+ polygon.ps[2] = Point(11111.7, 1713.29);
+ polygon.ps[3] = Point(11111.7, 1653.29);
+ new ShapeRef(router, polygon, 1520);
+
+ // shapeRef1521
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10964.2, 590.091);
+ polygon.ps[1] = Point(10964.2, 630.091);
+ polygon.ps[2] = Point(10888.7, 630.091);
+ polygon.ps[3] = Point(10888.7, 590.091);
+ new ShapeRef(router, polygon, 1521);
+
+ // shapeRef1522
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10572.7, 4291.11);
+ polygon.ps[1] = Point(10572.7, 4351.11);
+ polygon.ps[2] = Point(10517.7, 4351.11);
+ polygon.ps[3] = Point(10517.7, 4291.11);
+ new ShapeRef(router, polygon, 1522);
+
+ // shapeRef1523
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10968.7, 4291.11);
+ polygon.ps[1] = Point(10968.7, 4351.11);
+ polygon.ps[2] = Point(10913.7, 4351.11);
+ polygon.ps[3] = Point(10913.7, 4291.11);
+ new ShapeRef(router, polygon, 1523);
+
+ // shapeRef1524
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11290.7, 4291.11);
+ polygon.ps[1] = Point(11290.7, 4351.11);
+ polygon.ps[2] = Point(11235.7, 4351.11);
+ polygon.ps[3] = Point(11235.7, 4291.11);
+ new ShapeRef(router, polygon, 1524);
+
+ // shapeRef1525
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11621.6, 4371.11);
+ polygon.ps[1] = Point(11621.6, 4431.11);
+ polygon.ps[2] = Point(11566.6, 4431.11);
+ polygon.ps[3] = Point(11566.6, 4371.11);
+ new ShapeRef(router, polygon, 1525);
+
+ // shapeRef1526
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10638.7, 4519.4);
+ polygon.ps[1] = Point(10638.7, 4579.4);
+ polygon.ps[2] = Point(10583.7, 4579.4);
+ polygon.ps[3] = Point(10583.7, 4519.4);
+ new ShapeRef(router, polygon, 1526);
+
+ // shapeRef1527
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12248.6, 4291.11);
+ polygon.ps[1] = Point(12248.6, 4351.11);
+ polygon.ps[2] = Point(12193.6, 4351.11);
+ polygon.ps[3] = Point(12193.6, 4291.11);
+ new ShapeRef(router, polygon, 1527);
+
+ // shapeRef1528
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 4555.4);
+ polygon.ps[1] = Point(12617, 4595.4);
+ polygon.ps[2] = Point(12541.5, 4595.4);
+ polygon.ps[3] = Point(12541.5, 4555.4);
+ new ShapeRef(router, polygon, 1528);
+
+ // shapeRef1529
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 4933.9);
+ polygon.ps[1] = Point(12617, 4973.9);
+ polygon.ps[2] = Point(12541.5, 4973.9);
+ polygon.ps[3] = Point(12541.5, 4933.9);
+ new ShapeRef(router, polygon, 1529);
+
+ // shapeRef1530
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 5312.17);
+ polygon.ps[1] = Point(12617, 5352.17);
+ polygon.ps[2] = Point(12541.5, 5352.17);
+ polygon.ps[3] = Point(12541.5, 5312.17);
+ new ShapeRef(router, polygon, 1530);
+
+ // shapeRef1531
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13351.5, 3822.51);
+ polygon.ps[1] = Point(13351.5, 3862.51);
+ polygon.ps[2] = Point(13276, 3862.51);
+ polygon.ps[3] = Point(13276, 3822.51);
+ new ShapeRef(router, polygon, 1531);
+
+ // shapeRef1532
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12975, 4439.4);
+ polygon.ps[1] = Point(12975, 4499.4);
+ polygon.ps[2] = Point(12920, 4499.4);
+ polygon.ps[3] = Point(12920, 4439.4);
+ new ShapeRef(router, polygon, 1532);
+
+ // shapeRef1533
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 3974.51);
+ polygon.ps[1] = Point(12617, 4014.51);
+ polygon.ps[2] = Point(12541.5, 4014.51);
+ polygon.ps[3] = Point(12541.5, 3974.51);
+ new ShapeRef(router, polygon, 1533);
+
+ // shapeRef1534
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 3512.51);
+ polygon.ps[1] = Point(12617, 3552.51);
+ polygon.ps[2] = Point(12541.5, 3552.51);
+ polygon.ps[3] = Point(12541.5, 3512.51);
+ new ShapeRef(router, polygon, 1534);
+
+ // shapeRef1535
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 3021.29);
+ polygon.ps[1] = Point(12617, 3061.29);
+ polygon.ps[2] = Point(12541.5, 3061.29);
+ polygon.ps[3] = Point(12541.5, 3021.29);
+ new ShapeRef(router, polygon, 1535);
+
+ // shapeRef1536
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 2262.29);
+ polygon.ps[1] = Point(12617, 2302.29);
+ polygon.ps[2] = Point(12541.5, 2302.29);
+ polygon.ps[3] = Point(12541.5, 2262.29);
+ new ShapeRef(router, polygon, 1536);
+
+ // shapeRef1537
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12182.6, 1774.29);
+ polygon.ps[1] = Point(12182.6, 1834.29);
+ polygon.ps[2] = Point(12127.6, 1834.29);
+ polygon.ps[3] = Point(12127.6, 1774.29);
+ new ShapeRef(router, polygon, 1537);
+
+ // shapeRef1538
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12075.6, 1704.79);
+ polygon.ps[1] = Point(12075.6, 1744.79);
+ polygon.ps[2] = Point(12000.1, 1744.79);
+ polygon.ps[3] = Point(12000.1, 1704.79);
+ new ShapeRef(router, polygon, 1538);
+
+ // shapeRef1539
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12207.6, 1672.29);
+ polygon.ps[1] = Point(12207.6, 1732.29);
+ polygon.ps[2] = Point(12152.6, 1732.29);
+ polygon.ps[3] = Point(12152.6, 1672.29);
+ new ShapeRef(router, polygon, 1539);
+
+ // shapeRef1540
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13957.5, 8445.49);
+ polygon.ps[1] = Point(13957.5, 8485.49);
+ polygon.ps[2] = Point(13882, 8485.49);
+ polygon.ps[3] = Point(13882, 8445.49);
+ new ShapeRef(router, polygon, 1540);
+
+ // shapeRef1541
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15954.1, 8445.49);
+ polygon.ps[1] = Point(15954.1, 8485.49);
+ polygon.ps[2] = Point(15878.6, 8485.49);
+ polygon.ps[3] = Point(15878.6, 8445.49);
+ new ShapeRef(router, polygon, 1541);
+
+ // shapeRef1542
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16808.3, 8377.49);
+ polygon.ps[1] = Point(16808.3, 8417.49);
+ polygon.ps[2] = Point(16732.8, 8417.49);
+ polygon.ps[3] = Point(16732.8, 8377.49);
+ new ShapeRef(router, polygon, 1542);
+
+ // shapeRef1543
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12009.6, 7823.79);
+ polygon.ps[1] = Point(12009.6, 7863.79);
+ polygon.ps[2] = Point(11934.1, 7863.79);
+ polygon.ps[3] = Point(11934.1, 7823.79);
+ new ShapeRef(router, polygon, 1543);
+
+ // shapeRef1544
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18588.5, 11790.9);
+ polygon.ps[1] = Point(18588.5, 11850.9);
+ polygon.ps[2] = Point(18533.5, 11850.9);
+ polygon.ps[3] = Point(18533.5, 11790.9);
+ new ShapeRef(router, polygon, 1544);
+
+ // shapeRef1545
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8653.79, 4122.51);
+ polygon.ps[1] = Point(8653.79, 4182.51);
+ polygon.ps[2] = Point(8598.79, 4182.51);
+ polygon.ps[3] = Point(8598.79, 4122.51);
+ new ShapeRef(router, polygon, 1545);
+
+ // shapeRef1546
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10201.5, 9688.42);
+ polygon.ps[1] = Point(10201.5, 9728.42);
+ polygon.ps[2] = Point(10126, 9728.42);
+ polygon.ps[3] = Point(10126, 9688.42);
+ new ShapeRef(router, polygon, 1546);
+
+ // shapeRef1547
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15402, 1111.29);
+ polygon.ps[1] = Point(15402, 1171.29);
+ polygon.ps[2] = Point(15347, 1171.29);
+ polygon.ps[3] = Point(15347, 1111.29);
+ new ShapeRef(router, polygon, 1547);
+
+ // shapeRef1548
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 7306.4);
+ polygon.ps[1] = Point(10799.2, 7346.4);
+ polygon.ps[2] = Point(10723.7, 7346.4);
+ polygon.ps[3] = Point(10723.7, 7306.4);
+ new ShapeRef(router, polygon, 1548);
+
+ // shapeRef1549
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10894.7, 7790.79);
+ polygon.ps[1] = Point(10894.7, 7830.79);
+ polygon.ps[2] = Point(10819.2, 7830.79);
+ polygon.ps[3] = Point(10819.2, 7790.79);
+ new ShapeRef(router, polygon, 1549);
+
+ // shapeRef1550
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9936.19, 6395.51);
+ polygon.ps[1] = Point(9936.19, 6435.51);
+ polygon.ps[2] = Point(9860.69, 6435.51);
+ polygon.ps[3] = Point(9860.69, 6395.51);
+ new ShapeRef(router, polygon, 1550);
+
+ // shapeRef1551
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11265.7, 8803.22);
+ polygon.ps[1] = Point(11265.7, 8863.22);
+ polygon.ps[2] = Point(11210.7, 8863.22);
+ polygon.ps[3] = Point(11210.7, 8803.22);
+ new ShapeRef(router, polygon, 1551);
+
+ // shapeRef1552
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12347.6, 8803.22);
+ polygon.ps[1] = Point(12347.6, 8863.22);
+ polygon.ps[2] = Point(12292.6, 8863.22);
+ polygon.ps[3] = Point(12292.6, 8803.22);
+ new ShapeRef(router, polygon, 1552);
+
+ // shapeRef1553
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13293.5, 8803.22);
+ polygon.ps[1] = Point(13293.5, 8863.22);
+ polygon.ps[2] = Point(13238.5, 8863.22);
+ polygon.ps[3] = Point(13238.5, 8803.22);
+ new ShapeRef(router, polygon, 1553);
+
+ // shapeRef1554
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9047.49, 3363.51);
+ polygon.ps[1] = Point(9047.49, 3423.51);
+ polygon.ps[2] = Point(8992.49, 3423.51);
+ polygon.ps[3] = Point(8992.49, 3363.51);
+ new ShapeRef(router, polygon, 1554);
+
+ // shapeRef1555
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7503.6, 3495.51);
+ polygon.ps[1] = Point(7503.6, 3555.51);
+ polygon.ps[2] = Point(7448.6, 3555.51);
+ polygon.ps[3] = Point(7448.6, 3495.51);
+ new ShapeRef(router, polygon, 1555);
+
+ // shapeRef1556
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6810.6, 3495.51);
+ polygon.ps[1] = Point(6810.6, 3555.51);
+ polygon.ps[2] = Point(6755.6, 3555.51);
+ polygon.ps[3] = Point(6755.6, 3495.51);
+ new ShapeRef(router, polygon, 1556);
+
+ // shapeRef1557
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6216.6, 3575.51);
+ polygon.ps[1] = Point(6216.6, 3635.51);
+ polygon.ps[2] = Point(6161.6, 3635.51);
+ polygon.ps[3] = Point(6161.6, 3575.51);
+ new ShapeRef(router, polygon, 1557);
+
+ // shapeRef1558
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5721.6, 3495.51);
+ polygon.ps[1] = Point(5721.6, 3555.51);
+ polygon.ps[2] = Point(5666.6, 3555.51);
+ polygon.ps[3] = Point(5666.6, 3495.51);
+ new ShapeRef(router, polygon, 1558);
+
+ // shapeRef1559
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5397.5, 3809.51);
+ polygon.ps[1] = Point(5397.5, 3849.51);
+ polygon.ps[2] = Point(5322, 3849.51);
+ polygon.ps[3] = Point(5322, 3809.51);
+ new ShapeRef(router, polygon, 1559);
+
+ // shapeRef1560
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5397.5, 5327.67);
+ polygon.ps[1] = Point(5397.5, 5367.67);
+ polygon.ps[2] = Point(5322, 5367.67);
+ polygon.ps[3] = Point(5322, 5327.67);
+ new ShapeRef(router, polygon, 1560);
+
+ // shapeRef1561
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 7808.29);
+ polygon.ps[1] = Point(5034.5, 7848.29);
+ polygon.ps[2] = Point(4959, 7848.29);
+ polygon.ps[3] = Point(4959, 7808.29);
+ new ShapeRef(router, polygon, 1561);
+
+ // shapeRef1562
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 8341.99);
+ polygon.ps[1] = Point(5034.5, 8381.99);
+ polygon.ps[2] = Point(4959, 8381.99);
+ polygon.ps[3] = Point(4959, 8341.99);
+ new ShapeRef(router, polygon, 1562);
+
+ // shapeRef1563
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 8807.22);
+ polygon.ps[1] = Point(5034.5, 8847.22);
+ polygon.ps[2] = Point(4959, 8847.22);
+ polygon.ps[3] = Point(4959, 8807.22);
+ new ShapeRef(router, polygon, 1563);
+
+ // shapeRef1564
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 9312.42);
+ polygon.ps[1] = Point(5034.5, 9352.42);
+ polygon.ps[2] = Point(4959, 9352.42);
+ polygon.ps[3] = Point(4959, 9312.42);
+ new ShapeRef(router, polygon, 1564);
+
+ // shapeRef1565
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4374.5, 9857.02);
+ polygon.ps[1] = Point(4374.5, 9897.02);
+ polygon.ps[2] = Point(4299, 9897.02);
+ polygon.ps[3] = Point(4299, 9857.02);
+ new ShapeRef(router, polygon, 1565);
+
+ // shapeRef1566
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4778.5, 10368);
+ polygon.ps[1] = Point(4778.5, 10428);
+ polygon.ps[2] = Point(4723.5, 10428);
+ polygon.ps[3] = Point(4723.5, 10368);
+ new ShapeRef(router, polygon, 1566);
+
+ // shapeRef1567
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4638.5, 10563.3);
+ polygon.ps[1] = Point(4638.5, 10603.3);
+ polygon.ps[2] = Point(4563, 10603.3);
+ polygon.ps[3] = Point(4563, 10563.3);
+ new ShapeRef(router, polygon, 1567);
+
+ // shapeRef1568
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 1458.29);
+ polygon.ps[1] = Point(11448.6, 1498.29);
+ polygon.ps[2] = Point(11373.1, 1498.29);
+ polygon.ps[3] = Point(11373.1, 1458.29);
+ new ShapeRef(router, polygon, 1568);
+
+ // shapeRef1569
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 1095.29);
+ polygon.ps[1] = Point(11353.1, 1135.29);
+ polygon.ps[2] = Point(11277.6, 1135.29);
+ polygon.ps[3] = Point(11277.6, 1095.29);
+ new ShapeRef(router, polygon, 1569);
+
+ // shapeRef1570
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11448.6, 590.091);
+ polygon.ps[1] = Point(11448.6, 630.091);
+ polygon.ps[2] = Point(11373.1, 630.091);
+ polygon.ps[3] = Point(11373.1, 590.091);
+ new ShapeRef(router, polygon, 1570);
+
+ // shapeRef1571
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11555.6, 388.265);
+ polygon.ps[1] = Point(11555.6, 448.265);
+ polygon.ps[2] = Point(11500.6, 448.265);
+ polygon.ps[3] = Point(11500.6, 388.265);
+ new ShapeRef(router, polygon, 1571);
+
+ // shapeRef1572
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11984.6, 388.265);
+ polygon.ps[1] = Point(11984.6, 448.265);
+ polygon.ps[2] = Point(11929.6, 448.265);
+ polygon.ps[3] = Point(11929.6, 388.265);
+ new ShapeRef(router, polygon, 1572);
+
+ // shapeRef1573
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15014.4, 1356.29);
+ polygon.ps[1] = Point(15014.4, 1416.29);
+ polygon.ps[2] = Point(14959.4, 1416.29);
+ polygon.ps[3] = Point(14959.4, 1356.29);
+ new ShapeRef(router, polygon, 1573);
+
+ // shapeRef1574
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12752, 507.091);
+ polygon.ps[1] = Point(12752, 567.091);
+ polygon.ps[2] = Point(12697, 567.091);
+ polygon.ps[3] = Point(12697, 507.091);
+ new ShapeRef(router, polygon, 1574);
+
+ // shapeRef1575
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13227.5, 388.265);
+ polygon.ps[1] = Point(13227.5, 448.265);
+ polygon.ps[2] = Point(13172.5, 448.265);
+ polygon.ps[3] = Point(13172.5, 388.265);
+ new ShapeRef(router, polygon, 1575);
+
+ // shapeRef1576
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13899.5, 388.265);
+ polygon.ps[1] = Point(13899.5, 448.265);
+ polygon.ps[2] = Point(13844.5, 448.265);
+ polygon.ps[3] = Point(13844.5, 388.265);
+ new ShapeRef(router, polygon, 1576);
+
+ // shapeRef1577
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14361.5, 388.265);
+ polygon.ps[1] = Point(14361.5, 448.265);
+ polygon.ps[2] = Point(14306.5, 448.265);
+ polygon.ps[3] = Point(14306.5, 388.265);
+ new ShapeRef(router, polygon, 1577);
+
+ // shapeRef1578
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14823.5, 388.265);
+ polygon.ps[1] = Point(14823.5, 448.265);
+ polygon.ps[2] = Point(14768.5, 448.265);
+ polygon.ps[3] = Point(14768.5, 388.265);
+ new ShapeRef(router, polygon, 1578);
+
+ // shapeRef1579
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15664.8, 388.265);
+ polygon.ps[1] = Point(15664.8, 448.265);
+ polygon.ps[2] = Point(15609.8, 448.265);
+ polygon.ps[3] = Point(15609.8, 388.265);
+ new ShapeRef(router, polygon, 1579);
+
+ // shapeRef1580
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16193.1, 388.265);
+ polygon.ps[1] = Point(16193.1, 448.265);
+ polygon.ps[2] = Point(16138.1, 448.265);
+ polygon.ps[3] = Point(16138.1, 388.265);
+ new ShapeRef(router, polygon, 1580);
+
+ // shapeRef1581
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16449.1, 805.591);
+ polygon.ps[1] = Point(16449.1, 845.591);
+ polygon.ps[2] = Point(16373.6, 845.591);
+ polygon.ps[3] = Point(16373.6, 805.591);
+ new ShapeRef(router, polygon, 1581);
+
+ // shapeRef1582
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16251.1, 805.591);
+ polygon.ps[1] = Point(16251.1, 845.591);
+ polygon.ps[2] = Point(16175.6, 845.591);
+ polygon.ps[3] = Point(16175.6, 805.591);
+ new ShapeRef(router, polygon, 1582);
+
+ // shapeRef1583
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11133.7, 8004.79);
+ polygon.ps[1] = Point(11133.7, 8064.79);
+ polygon.ps[2] = Point(11078.7, 8064.79);
+ polygon.ps[3] = Point(11078.7, 8004.79);
+ new ShapeRef(router, polygon, 1583);
+
+ // shapeRef1584
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10803.7, 388.265);
+ polygon.ps[1] = Point(10803.7, 448.265);
+ polygon.ps[2] = Point(10748.7, 448.265);
+ polygon.ps[3] = Point(10748.7, 388.265);
+ new ShapeRef(router, polygon, 1584);
+
+ // shapeRef1585
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15606.8, 1356.29);
+ polygon.ps[1] = Point(15606.8, 1416.29);
+ polygon.ps[2] = Point(15551.8, 1416.29);
+ polygon.ps[3] = Point(15551.8, 1356.29);
+ new ShapeRef(router, polygon, 1585);
+
+ // shapeRef1586
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8056.79, 243.265);
+ polygon.ps[1] = Point(8056.79, 303.265);
+ polygon.ps[2] = Point(8001.79, 303.265);
+ polygon.ps[3] = Point(8001.79, 243.265);
+ new ShapeRef(router, polygon, 1586);
+
+ // shapeRef1587
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8320.79, 355.265);
+ polygon.ps[1] = Point(8320.79, 415.265);
+ polygon.ps[2] = Point(8265.79, 415.265);
+ polygon.ps[3] = Point(8265.79, 355.265);
+ new ShapeRef(router, polygon, 1587);
+
+ // shapeRef1588
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7792.79, 355.265);
+ polygon.ps[1] = Point(7792.79, 415.265);
+ polygon.ps[2] = Point(7737.79, 415.265);
+ polygon.ps[3] = Point(7737.79, 355.265);
+ new ShapeRef(router, polygon, 1588);
+
+ // shapeRef1589
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6975.6, 355.265);
+ polygon.ps[1] = Point(6975.6, 415.265);
+ polygon.ps[2] = Point(6920.6, 415.265);
+ polygon.ps[3] = Point(6920.6, 355.265);
+ new ShapeRef(router, polygon, 1589);
+
+ // shapeRef1590
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6348.6, 355.265);
+ polygon.ps[1] = Point(6348.6, 415.265);
+ polygon.ps[2] = Point(6293.6, 415.265);
+ polygon.ps[3] = Point(6293.6, 355.265);
+ new ShapeRef(router, polygon, 1590);
+
+ // shapeRef1591
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15142.8, 1111.29);
+ polygon.ps[1] = Point(15142.8, 1171.29);
+ polygon.ps[2] = Point(15087.8, 1171.29);
+ polygon.ps[3] = Point(15087.8, 1111.29);
+ new ShapeRef(router, polygon, 1591);
+
+ // shapeRef1592
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15504.8, 1111.29);
+ polygon.ps[1] = Point(15504.8, 1171.29);
+ polygon.ps[2] = Point(15449.8, 1171.29);
+ polygon.ps[3] = Point(15449.8, 1111.29);
+ new ShapeRef(router, polygon, 1592);
+
+ // shapeRef1593
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 4603.9);
+ polygon.ps[1] = Point(8825.89, 4643.9);
+ polygon.ps[2] = Point(8750.39, 4643.9);
+ polygon.ps[3] = Point(8750.39, 4603.9);
+ new ShapeRef(router, polygon, 1593);
+
+ // shapeRef1594
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5397.5, 4555.4);
+ polygon.ps[1] = Point(5397.5, 4595.4);
+ polygon.ps[2] = Point(5322, 4595.4);
+ polygon.ps[3] = Point(5322, 4555.4);
+ new ShapeRef(router, polygon, 1594);
+
+ // shapeRef1595
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5397.5, 5149.4);
+ polygon.ps[1] = Point(5397.5, 5189.4);
+ polygon.ps[2] = Point(5322, 5189.4);
+ polygon.ps[3] = Point(5322, 5149.4);
+ new ShapeRef(router, polygon, 1595);
+
+ // shapeRef1596
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10106, 10369.5);
+ polygon.ps[1] = Point(10106, 10409.5);
+ polygon.ps[2] = Point(10030.5, 10409.5);
+ polygon.ps[3] = Point(10030.5, 10369.5);
+ new ShapeRef(router, polygon, 1596);
+
+ // shapeRef1597
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10539.7, 10612.3);
+ polygon.ps[1] = Point(10539.7, 10672.3);
+ polygon.ps[2] = Point(10484.7, 10672.3);
+ polygon.ps[3] = Point(10484.7, 10612.3);
+ new ShapeRef(router, polygon, 1597);
+
+ // shapeRef1598
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10935.7, 10612.3);
+ polygon.ps[1] = Point(10935.7, 10672.3);
+ polygon.ps[2] = Point(10880.7, 10672.3);
+ polygon.ps[3] = Point(10880.7, 10612.3);
+ new ShapeRef(router, polygon, 1598);
+
+ // shapeRef1599
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10927.7, 10960.6);
+ polygon.ps[1] = Point(10927.7, 11000.6);
+ polygon.ps[2] = Point(10852.2, 11000.6);
+ polygon.ps[3] = Point(10852.2, 10960.6);
+ new ShapeRef(router, polygon, 1599);
+
+ // shapeRef1600
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6678.6, 6926.4);
+ polygon.ps[1] = Point(6678.6, 6986.4);
+ polygon.ps[2] = Point(6623.6, 6986.4);
+ polygon.ps[3] = Point(6623.6, 6926.4);
+ new ShapeRef(router, polygon, 1600);
+
+ // shapeRef1601
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6637.6, 7542.29);
+ polygon.ps[1] = Point(6637.6, 7582.29);
+ polygon.ps[2] = Point(6562.1, 7582.29);
+ polygon.ps[3] = Point(6562.1, 7542.29);
+ new ShapeRef(router, polygon, 1601);
+
+ // shapeRef1602
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7297.6, 7273.4);
+ polygon.ps[1] = Point(7297.6, 7313.4);
+ polygon.ps[2] = Point(7222.1, 7313.4);
+ polygon.ps[3] = Point(7222.1, 7273.4);
+ new ShapeRef(router, polygon, 1602);
+
+ // shapeRef1603
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6637.6, 8021.79);
+ polygon.ps[1] = Point(6637.6, 8061.79);
+ polygon.ps[2] = Point(6562.1, 8061.79);
+ polygon.ps[3] = Point(6562.1, 8021.79);
+ new ShapeRef(router, polygon, 1603);
+
+ // shapeRef1604
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7297.6, 9193.42);
+ polygon.ps[1] = Point(7297.6, 9233.42);
+ polygon.ps[2] = Point(7222.1, 9233.42);
+ polygon.ps[3] = Point(7222.1, 9193.42);
+ new ShapeRef(router, polygon, 1604);
+
+ // shapeRef1605
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6637.6, 9857.02);
+ polygon.ps[1] = Point(6637.6, 9897.02);
+ polygon.ps[2] = Point(6562.1, 9897.02);
+ polygon.ps[3] = Point(6562.1, 9857.02);
+ new ShapeRef(router, polygon, 1605);
+
+ // shapeRef1606
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8188.79, 6444.51);
+ polygon.ps[1] = Point(8188.79, 6504.51);
+ polygon.ps[2] = Point(8133.79, 6504.51);
+ polygon.ps[3] = Point(8133.79, 6444.51);
+ new ShapeRef(router, polygon, 1606);
+
+ // shapeRef1607
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6208.6, 7955.79);
+ polygon.ps[1] = Point(6208.6, 7995.79);
+ polygon.ps[2] = Point(6133.1, 7995.79);
+ polygon.ps[3] = Point(6133.1, 7955.79);
+ new ShapeRef(router, polygon, 1607);
+
+ // shapeRef1608
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7272.6, 6444.51);
+ polygon.ps[1] = Point(7272.6, 6504.51);
+ polygon.ps[2] = Point(7217.6, 6504.51);
+ polygon.ps[3] = Point(7217.6, 6444.51);
+ new ShapeRef(router, polygon, 1608);
+
+ // shapeRef1609
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6414.6, 6718.21);
+ polygon.ps[1] = Point(6414.6, 6778.21);
+ polygon.ps[2] = Point(6359.6, 6778.21);
+ polygon.ps[3] = Point(6359.6, 6718.21);
+ new ShapeRef(router, polygon, 1609);
+
+ // shapeRef1610
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15954.1, 11873.9);
+ polygon.ps[1] = Point(15954.1, 11913.9);
+ polygon.ps[2] = Point(15878.6, 11913.9);
+ polygon.ps[3] = Point(15878.6, 11873.9);
+ new ShapeRef(router, polygon, 1610);
+
+ // shapeRef1611
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15014.4, 12222.3);
+ polygon.ps[1] = Point(15014.4, 12282.3);
+ polygon.ps[2] = Point(14959.4, 12282.3);
+ polygon.ps[3] = Point(14959.4, 12222.3);
+ new ShapeRef(router, polygon, 1611);
+
+ // shapeRef1612
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14885.9, 1276.29);
+ polygon.ps[1] = Point(14885.9, 1336.29);
+ polygon.ps[2] = Point(14830.9, 1336.29);
+ polygon.ps[3] = Point(14830.9, 1276.29);
+ new ShapeRef(router, polygon, 1612);
+
+ // shapeRef1613
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7850.79, 831.285);
+ polygon.ps[1] = Point(7850.79, 871.285);
+ polygon.ps[2] = Point(7775.29, 871.285);
+ polygon.ps[3] = Point(7775.29, 831.285);
+ new ShapeRef(router, polygon, 1613);
+
+ // shapeRef1614
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7928.29, 8908.22);
+ polygon.ps[1] = Point(7928.29, 8970.22);
+ polygon.ps[2] = Point(7866.29, 8970.22);
+ polygon.ps[3] = Point(7866.29, 8908.22);
+ new ShapeRef(router, polygon, 1614);
+
+ // shapeRef1615
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16229.6, 10750.3);
+ polygon.ps[1] = Point(16229.6, 10812.3);
+ polygon.ps[2] = Point(16167.6, 10812.3);
+ polygon.ps[3] = Point(16167.6, 10750.3);
+ new ShapeRef(router, polygon, 1615);
+
+ // shapeRef1616
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15050.9, 10750.3);
+ polygon.ps[1] = Point(15050.9, 10812.3);
+ polygon.ps[2] = Point(14988.9, 10812.3);
+ polygon.ps[3] = Point(14988.9, 10750.3);
+ new ShapeRef(router, polygon, 1616);
+
+ // shapeRef1617
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15050.9, 11763.9);
+ polygon.ps[1] = Point(15050.9, 11825.9);
+ polygon.ps[2] = Point(14988.9, 11825.9);
+ polygon.ps[3] = Point(14988.9, 11763.9);
+ new ShapeRef(router, polygon, 1617);
+
+ // shapeRef1618
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10454.9, 6219.51);
+ polygon.ps[1] = Point(10454.9, 6281.51);
+ polygon.ps[2] = Point(10392.9, 6281.51);
+ polygon.ps[3] = Point(10392.9, 6219.51);
+ new ShapeRef(router, polygon, 1618);
+
+ // shapeRef1619
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 4330.11);
+ polygon.ps[1] = Point(12562.5, 4392.11);
+ polygon.ps[2] = Point(12500.5, 4392.11);
+ polygon.ps[3] = Point(12500.5, 4330.11);
+ new ShapeRef(router, polygon, 1619);
+
+ // shapeRef1620
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13297, 4095.51);
+ polygon.ps[1] = Point(13297, 4157.51);
+ polygon.ps[2] = Point(13235, 4157.51);
+ polygon.ps[3] = Point(13235, 4095.51);
+ new ShapeRef(router, polygon, 1620);
+
+ // shapeRef1621
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 579.091);
+ polygon.ps[1] = Point(7796.29, 641.091);
+ polygon.ps[2] = Point(7734.29, 641.091);
+ polygon.ps[3] = Point(7734.29, 579.091);
+ new ShapeRef(router, polygon, 1621);
+
+ // shapeRef1622
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10147, 10143);
+ polygon.ps[1] = Point(10147, 10205);
+ polygon.ps[2] = Point(10085, 10205);
+ polygon.ps[3] = Point(10085, 10143);
+ new ShapeRef(router, polygon, 1622);
+
+ // shapeRef1623
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10906.2, 10750.3);
+ polygon.ps[1] = Point(10906.2, 10812.3);
+ polygon.ps[2] = Point(10844.2, 10812.3);
+ polygon.ps[3] = Point(10844.2, 10750.3);
+ new ShapeRef(router, polygon, 1623);
+
+ // shapeRef1624
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 10750.3);
+ polygon.ps[1] = Point(9532.59, 10812.3);
+ polygon.ps[2] = Point(9470.59, 10812.3);
+ polygon.ps[3] = Point(9470.59, 10750.3);
+ new ShapeRef(router, polygon, 1624);
+
+ // shapeRef1625
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 6450.51);
+ polygon.ps[1] = Point(9532.59, 6512.51);
+ polygon.ps[2] = Point(9470.59, 6512.51);
+ polygon.ps[3] = Point(9470.59, 6450.51);
+ new ShapeRef(router, polygon, 1625);
+
+ // shapeRef1626
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13606, 10750.3);
+ polygon.ps[1] = Point(13606, 10812.3);
+ polygon.ps[2] = Point(13544, 10812.3);
+ polygon.ps[3] = Point(13544, 10750.3);
+ new ShapeRef(router, polygon, 1626);
+
+ // shapeRef1627
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 10750.3);
+ polygon.ps[1] = Point(12562.5, 10812.3);
+ polygon.ps[2] = Point(12500.5, 10812.3);
+ polygon.ps[3] = Point(12500.5, 10750.3);
+ new ShapeRef(router, polygon, 1627);
+
+ // shapeRef1628
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 9945.02);
+ polygon.ps[1] = Point(9532.59, 10007);
+ polygon.ps[2] = Point(9470.59, 10007);
+ polygon.ps[3] = Point(9470.59, 9945.02);
+ new ShapeRef(router, polygon, 1628);
+
+ // shapeRef1629
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9532.59, 8218.99);
+ polygon.ps[1] = Point(9532.59, 8280.99);
+ polygon.ps[2] = Point(9470.59, 8280.99);
+ polygon.ps[3] = Point(9470.59, 8218.99);
+ new ShapeRef(router, polygon, 1629);
+
+ // shapeRef1630
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 4973.4);
+ polygon.ps[1] = Point(8866.89, 5035.4);
+ polygon.ps[2] = Point(8804.89, 5035.4);
+ polygon.ps[3] = Point(8804.89, 4973.4);
+ new ShapeRef(router, polygon, 1630);
+
+ // shapeRef1631
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 12050.3);
+ polygon.ps[1] = Point(15899.6, 12112.3);
+ polygon.ps[2] = Point(15837.6, 12112.3);
+ polygon.ps[3] = Point(15837.6, 12050.3);
+ new ShapeRef(router, polygon, 1631);
+
+ // shapeRef1632
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 12261.3);
+ polygon.ps[1] = Point(15899.6, 12323.3);
+ polygon.ps[2] = Point(15837.6, 12323.3);
+ polygon.ps[3] = Point(15837.6, 12261.3);
+ new ShapeRef(router, polygon, 1632);
+
+ // shapeRef1633
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15303.5, 12261.3);
+ polygon.ps[1] = Point(15303.5, 12323.3);
+ polygon.ps[2] = Point(15241.5, 12323.3);
+ polygon.ps[3] = Point(15241.5, 12261.3);
+ new ShapeRef(router, polygon, 1633);
+
+ // shapeRef1634
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9116.99, 11601.9);
+ polygon.ps[1] = Point(9116.99, 11663.9);
+ polygon.ps[2] = Point(9054.99, 11663.9);
+ polygon.ps[3] = Point(9054.99, 11601.9);
+ new ShapeRef(router, polygon, 1634);
+
+ // shapeRef1635
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10906.2, 11601.9);
+ polygon.ps[1] = Point(10906.2, 11663.9);
+ polygon.ps[2] = Point(10844.2, 11663.9);
+ polygon.ps[3] = Point(10844.2, 11601.9);
+ new ShapeRef(router, polygon, 1635);
+
+ // shapeRef1636
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 11601.9);
+ polygon.ps[1] = Point(12021.1, 11663.9);
+ polygon.ps[2] = Point(11959.1, 11663.9);
+ polygon.ps[3] = Point(11959.1, 11601.9);
+ new ShapeRef(router, polygon, 1636);
+
+ // shapeRef1637
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13606, 11601.9);
+ polygon.ps[1] = Point(13606, 11663.9);
+ polygon.ps[2] = Point(13544, 11663.9);
+ polygon.ps[3] = Point(13544, 11601.9);
+ new ShapeRef(router, polygon, 1637);
+
+ // shapeRef1638
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13903, 7031.4);
+ polygon.ps[1] = Point(13903, 7093.4);
+ polygon.ps[2] = Point(13841, 7093.4);
+ polygon.ps[3] = Point(13841, 7031.4);
+ new ShapeRef(router, polygon, 1638);
+
+ // shapeRef1639
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10147, 9314.42);
+ polygon.ps[1] = Point(10147, 9376.42);
+ polygon.ps[2] = Point(10085, 9376.42);
+ polygon.ps[3] = Point(10085, 9314.42);
+ new ShapeRef(router, polygon, 1639);
+
+ // shapeRef1640
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12153.1, 10143);
+ polygon.ps[1] = Point(12153.1, 10205);
+ polygon.ps[2] = Point(12091.1, 10205);
+ polygon.ps[3] = Point(12091.1, 10143);
+ new ShapeRef(router, polygon, 1640);
+
+ // shapeRef1641
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 10143);
+ polygon.ps[1] = Point(15899.6, 10205);
+ polygon.ps[2] = Point(15837.6, 10205);
+ polygon.ps[3] = Point(15837.6, 10143);
+ new ShapeRef(router, polygon, 1641);
+
+ // shapeRef1642
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16951.8, 10143);
+ polygon.ps[1] = Point(16951.8, 10205);
+ polygon.ps[2] = Point(16889.8, 10205);
+ polygon.ps[3] = Point(16889.8, 10143);
+ new ShapeRef(router, polygon, 1642);
+
+ // shapeRef1643
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18168.5, 10143);
+ polygon.ps[1] = Point(18168.5, 10205);
+ polygon.ps[2] = Point(18106.5, 10205);
+ polygon.ps[3] = Point(18106.5, 10143);
+ new ShapeRef(router, polygon, 1643);
+
+ // shapeRef1644
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18333.5, 6757.21);
+ polygon.ps[1] = Point(18333.5, 6819.21);
+ polygon.ps[2] = Point(18271.5, 6819.21);
+ polygon.ps[3] = Point(18271.5, 6757.21);
+ new ShapeRef(router, polygon, 1644);
+
+ // shapeRef1645
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13231, 6757.21);
+ polygon.ps[1] = Point(13231, 6819.21);
+ polygon.ps[2] = Point(13169, 6819.21);
+ polygon.ps[3] = Point(13169, 6757.21);
+ new ShapeRef(router, polygon, 1645);
+
+ // shapeRef1646
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16262.6, 6757.21);
+ polygon.ps[1] = Point(16262.6, 6819.21);
+ polygon.ps[2] = Point(16200.6, 6819.21);
+ polygon.ps[3] = Point(16200.6, 6757.21);
+ new ShapeRef(router, polygon, 1646);
+
+ // shapeRef1647
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10840.2, 8043.79);
+ polygon.ps[1] = Point(10840.2, 8105.79);
+ polygon.ps[2] = Point(10778.2, 8105.79);
+ polygon.ps[3] = Point(10778.2, 8043.79);
+ new ShapeRef(router, polygon, 1647);
+
+ // shapeRef1648
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11526.1, 8043.79);
+ polygon.ps[1] = Point(11526.1, 8105.79);
+ polygon.ps[2] = Point(11464.1, 8105.79);
+ polygon.ps[3] = Point(11464.1, 8043.79);
+ new ShapeRef(router, polygon, 1648);
+
+ // shapeRef1649
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11526.1, 7394.4);
+ polygon.ps[1] = Point(11526.1, 7456.4);
+ polygon.ps[2] = Point(11464.1, 7456.4);
+ polygon.ps[3] = Point(11464.1, 7394.4);
+ new ShapeRef(router, polygon, 1649);
+
+ // shapeRef1650
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12887.5, 7394.4);
+ polygon.ps[1] = Point(12887.5, 7456.4);
+ polygon.ps[2] = Point(12825.5, 7456.4);
+ polygon.ps[3] = Point(12825.5, 7394.4);
+ new ShapeRef(router, polygon, 1650);
+
+ // shapeRef1651
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15438.5, 7394.4);
+ polygon.ps[1] = Point(15438.5, 7456.4);
+ polygon.ps[2] = Point(15376.5, 7456.4);
+ polygon.ps[3] = Point(15376.5, 7394.4);
+ new ShapeRef(router, polygon, 1651);
+
+ // shapeRef1652
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7829.29, 3534.51);
+ polygon.ps[1] = Point(7829.29, 3596.51);
+ polygon.ps[2] = Point(7767.29, 3596.51);
+ polygon.ps[3] = Point(7767.29, 3534.51);
+ new ShapeRef(router, polygon, 1652);
+
+ // shapeRef1653
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11005.2, 1612.29);
+ polygon.ps[1] = Point(11005.2, 1674.29);
+ polygon.ps[2] = Point(10943.2, 1674.29);
+ polygon.ps[3] = Point(10943.2, 1612.29);
+ new ShapeRef(router, polygon, 1653);
+
+ // shapeRef1654
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9466.59, 6932.4);
+ polygon.ps[1] = Point(9466.59, 6994.4);
+ polygon.ps[2] = Point(9404.59, 6994.4);
+ polygon.ps[3] = Point(9404.59, 6932.4);
+ new ShapeRef(router, polygon, 1654);
+
+ // shapeRef1655
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10180, 7427.4);
+ polygon.ps[1] = Point(10180, 7489.4);
+ polygon.ps[2] = Point(10118, 7489.4);
+ polygon.ps[3] = Point(10118, 7427.4);
+ new ShapeRef(router, polygon, 1655);
+
+ // shapeRef1656
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10642.2, 8251.99);
+ polygon.ps[1] = Point(10642.2, 8313.99);
+ polygon.ps[2] = Point(10580.2, 8313.99);
+ polygon.ps[3] = Point(10580.2, 8251.99);
+ new ShapeRef(router, polygon, 1656);
+
+ // shapeRef1657
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10741.2, 8842.22);
+ polygon.ps[1] = Point(10741.2, 8904.22);
+ polygon.ps[2] = Point(10679.2, 8904.22);
+ polygon.ps[3] = Point(10679.2, 8842.22);
+ new ShapeRef(router, polygon, 1657);
+
+ // shapeRef1658
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8715.29, 9945.02);
+ polygon.ps[1] = Point(8715.29, 10007);
+ polygon.ps[2] = Point(8653.29, 10007);
+ polygon.ps[3] = Point(8653.29, 9945.02);
+ new ShapeRef(router, polygon, 1658);
+
+ // shapeRef1659
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7862.29, 9446.42);
+ polygon.ps[1] = Point(7862.29, 9508.42);
+ polygon.ps[2] = Point(7800.29, 9508.42);
+ polygon.ps[3] = Point(7800.29, 9446.42);
+ new ShapeRef(router, polygon, 1659);
+
+ // shapeRef1660
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7441.1, 8548.99);
+ polygon.ps[1] = Point(7441.1, 8610.99);
+ polygon.ps[2] = Point(7379.1, 8610.99);
+ polygon.ps[3] = Point(7379.1, 8548.99);
+ new ShapeRef(router, polygon, 1660);
+
+ // shapeRef1661
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 4330.11);
+ polygon.ps[1] = Point(8866.89, 4392.11);
+ polygon.ps[2] = Point(8804.89, 4392.11);
+ polygon.ps[3] = Point(8804.89, 4330.11);
+ new ShapeRef(router, polygon, 1661);
+
+ // shapeRef1662
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 3633.51);
+ polygon.ps[1] = Point(8866.89, 3695.51);
+ polygon.ps[2] = Point(8804.89, 3695.51);
+ polygon.ps[3] = Point(8804.89, 3633.51);
+ new ShapeRef(router, polygon, 1662);
+
+ // shapeRef1663
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9815.69, 5481.67);
+ polygon.ps[1] = Point(9815.69, 5543.67);
+ polygon.ps[2] = Point(9753.69, 5543.67);
+ polygon.ps[3] = Point(9753.69, 5481.67);
+ new ShapeRef(router, polygon, 1663);
+
+ // shapeRef1664
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 3142.29);
+ polygon.ps[1] = Point(8866.89, 3204.29);
+ polygon.ps[2] = Point(8804.89, 3204.29);
+ polygon.ps[3] = Point(8804.89, 3142.29);
+ new ShapeRef(router, polygon, 1664);
+
+ // shapeRef1665
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 2548.29);
+ polygon.ps[1] = Point(8866.89, 2610.29);
+ polygon.ps[2] = Point(8804.89, 2610.29);
+ polygon.ps[3] = Point(8804.89, 2548.29);
+ new ShapeRef(router, polygon, 1665);
+
+ // shapeRef1666
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.29, 1645.29);
+ polygon.ps[1] = Point(8489.29, 1707.29);
+ polygon.ps[2] = Point(8427.29, 1707.29);
+ polygon.ps[3] = Point(8427.29, 1645.29);
+ new ShapeRef(router, polygon, 1666);
+
+ // shapeRef1667
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.29, 1249.29);
+ polygon.ps[1] = Point(8489.29, 1311.29);
+ polygon.ps[2] = Point(8427.29, 1311.29);
+ polygon.ps[3] = Point(8427.29, 1249.29);
+ new ShapeRef(router, polygon, 1667);
+
+ // shapeRef1668
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.29, 777.091);
+ polygon.ps[1] = Point(8489.29, 839.091);
+ polygon.ps[2] = Point(8427.29, 839.091);
+ polygon.ps[3] = Point(8427.29, 777.091);
+ new ShapeRef(router, polygon, 1668);
+
+ // shapeRef1669
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.29, 394.265);
+ polygon.ps[1] = Point(8489.29, 456.265);
+ polygon.ps[2] = Point(8427.29, 456.265);
+ polygon.ps[3] = Point(8427.29, 394.265);
+ new ShapeRef(router, polygon, 1669);
+
+ // shapeRef1670
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8027.29, 777.091);
+ polygon.ps[1] = Point(8027.29, 839.091);
+ polygon.ps[2] = Point(7965.29, 839.091);
+ polygon.ps[3] = Point(7965.29, 777.091);
+ new ShapeRef(router, polygon, 1670);
+
+ // shapeRef1671
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9301.59, 777.091);
+ polygon.ps[1] = Point(9301.59, 839.091);
+ polygon.ps[2] = Point(9239.59, 839.091);
+ polygon.ps[3] = Point(9239.59, 777.091);
+ new ShapeRef(router, polygon, 1671);
+
+ // shapeRef1672
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8027.29, 1117.29);
+ polygon.ps[1] = Point(8027.29, 1179.29);
+ polygon.ps[2] = Point(7965.29, 1179.29);
+ polygon.ps[3] = Point(7965.29, 1117.29);
+ new ShapeRef(router, polygon, 1672);
+
+ // shapeRef1673
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10487.9, 777.091);
+ polygon.ps[1] = Point(10487.9, 839.091);
+ polygon.ps[2] = Point(10425.9, 839.091);
+ polygon.ps[3] = Point(10425.9, 777.091);
+ new ShapeRef(router, polygon, 1673);
+
+ // shapeRef1674
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11005.2, 777.091);
+ polygon.ps[1] = Point(11005.2, 839.091);
+ polygon.ps[2] = Point(10943.2, 839.091);
+ polygon.ps[3] = Point(10943.2, 777.091);
+ new ShapeRef(router, polygon, 1674);
+
+ // shapeRef1675
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11005.2, 1249.29);
+ polygon.ps[1] = Point(11005.2, 1311.29);
+ polygon.ps[2] = Point(10943.2, 1311.29);
+ polygon.ps[3] = Point(10943.2, 1249.29);
+ new ShapeRef(router, polygon, 1675);
+
+ // shapeRef1676
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10487.9, 1249.29);
+ polygon.ps[1] = Point(10487.9, 1311.29);
+ polygon.ps[2] = Point(10425.9, 1311.29);
+ polygon.ps[3] = Point(10425.9, 1249.29);
+ new ShapeRef(router, polygon, 1676);
+
+ // shapeRef1677
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9683.69, 1414.29);
+ polygon.ps[1] = Point(9683.69, 1476.29);
+ polygon.ps[2] = Point(9621.69, 1476.29);
+ polygon.ps[3] = Point(9621.69, 1414.29);
+ new ShapeRef(router, polygon, 1677);
+
+ // shapeRef1678
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9683.69, 1912.29);
+ polygon.ps[1] = Point(9683.69, 1974.29);
+ polygon.ps[2] = Point(9621.69, 1974.29);
+ polygon.ps[3] = Point(9621.69, 1912.29);
+ new ShapeRef(router, polygon, 1678);
+
+ // shapeRef1679
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 1612.29);
+ polygon.ps[1] = Point(11394.1, 1674.29);
+ polygon.ps[2] = Point(11332.1, 1674.29);
+ polygon.ps[3] = Point(11332.1, 1612.29);
+ new ShapeRef(router, polygon, 1679);
+
+ // shapeRef1680
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11005.2, 427.265);
+ polygon.ps[1] = Point(11005.2, 489.265);
+ polygon.ps[2] = Point(10943.2, 489.265);
+ polygon.ps[3] = Point(10943.2, 427.265);
+ new ShapeRef(router, polygon, 1680);
+
+ // shapeRef1681
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10180, 4330.11);
+ polygon.ps[1] = Point(10180, 4392.11);
+ polygon.ps[2] = Point(10118, 4392.11);
+ polygon.ps[3] = Point(10118, 4330.11);
+ new ShapeRef(router, polygon, 1681);
+
+ // shapeRef1682
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10774.2, 4330.11);
+ polygon.ps[1] = Point(10774.2, 4392.11);
+ polygon.ps[2] = Point(10712.2, 4392.11);
+ polygon.ps[3] = Point(10712.2, 4330.11);
+ new ShapeRef(router, polygon, 1682);
+
+ // shapeRef1683
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11104.2, 4330.11);
+ polygon.ps[1] = Point(11104.2, 4392.11);
+ polygon.ps[2] = Point(11042.2, 4392.11);
+ polygon.ps[3] = Point(11042.2, 4330.11);
+ new ShapeRef(router, polygon, 1683);
+
+ // shapeRef1684
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11427.1, 4330.11);
+ polygon.ps[1] = Point(11427.1, 4392.11);
+ polygon.ps[2] = Point(11365.1, 4392.11);
+ polygon.ps[3] = Point(11365.1, 4330.11);
+ new ShapeRef(router, polygon, 1684);
+
+ // shapeRef1685
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11790.1, 4330.11);
+ polygon.ps[1] = Point(11790.1, 4392.11);
+ polygon.ps[2] = Point(11728.1, 4392.11);
+ polygon.ps[3] = Point(11728.1, 4330.11);
+ new ShapeRef(router, polygon, 1685);
+
+ // shapeRef1686
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12087.1, 4330.11);
+ polygon.ps[1] = Point(12087.1, 4392.11);
+ polygon.ps[2] = Point(12025.1, 4392.11);
+ polygon.ps[3] = Point(12025.1, 4330.11);
+ new ShapeRef(router, polygon, 1686);
+
+ // shapeRef1687
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 4709.4);
+ polygon.ps[1] = Point(12562.5, 4771.4);
+ polygon.ps[2] = Point(12500.5, 4771.4);
+ polygon.ps[3] = Point(12500.5, 4709.4);
+ new ShapeRef(router, polygon, 1687);
+
+ // shapeRef1688
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 5138.4);
+ polygon.ps[1] = Point(12562.5, 5200.4);
+ polygon.ps[2] = Point(12500.5, 5200.4);
+ polygon.ps[3] = Point(12500.5, 5138.4);
+ new ShapeRef(router, polygon, 1688);
+
+ // shapeRef1689
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 5481.67);
+ polygon.ps[1] = Point(12562.5, 5543.67);
+ polygon.ps[2] = Point(12500.5, 5543.67);
+ polygon.ps[3] = Point(12500.5, 5481.67);
+ new ShapeRef(router, polygon, 1689);
+
+ // shapeRef1690
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 3699.51);
+ polygon.ps[1] = Point(12562.5, 3761.51);
+ polygon.ps[2] = Point(12500.5, 3761.51);
+ polygon.ps[3] = Point(12500.5, 3699.51);
+ new ShapeRef(router, polygon, 1690);
+
+ // shapeRef1691
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 3307.29);
+ polygon.ps[1] = Point(12562.5, 3369.29);
+ polygon.ps[2] = Point(12500.5, 3369.29);
+ polygon.ps[3] = Point(12500.5, 3307.29);
+ new ShapeRef(router, polygon, 1691);
+
+ // shapeRef1692
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 2647.29);
+ polygon.ps[1] = Point(12562.5, 2709.29);
+ polygon.ps[2] = Point(12500.5, 2709.29);
+ polygon.ps[3] = Point(12500.5, 2647.29);
+ new ShapeRef(router, polygon, 1692);
+
+ // shapeRef1693
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 1813.29);
+ polygon.ps[1] = Point(12562.5, 1875.29);
+ polygon.ps[2] = Point(12500.5, 1875.29);
+ polygon.ps[3] = Point(12500.5, 1813.29);
+ new ShapeRef(router, polygon, 1693);
+
+ // shapeRef1694
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 1813.29);
+ polygon.ps[1] = Point(12021.1, 1875.29);
+ polygon.ps[2] = Point(11959.1, 1875.29);
+ polygon.ps[3] = Point(11959.1, 1813.29);
+ new ShapeRef(router, polygon, 1694);
+
+ // shapeRef1695
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 1546.29);
+ polygon.ps[1] = Point(12021.1, 1608.29);
+ polygon.ps[2] = Point(11959.1, 1608.29);
+ polygon.ps[3] = Point(11959.1, 1546.29);
+ new ShapeRef(router, polygon, 1695);
+
+ // shapeRef1696
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13903, 8218.99);
+ polygon.ps[1] = Point(13903, 8280.99);
+ polygon.ps[2] = Point(13841, 8280.99);
+ polygon.ps[3] = Point(13841, 8218.99);
+ new ShapeRef(router, polygon, 1696);
+
+ // shapeRef1697
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13903, 8677.22);
+ polygon.ps[1] = Point(13903, 8739.22);
+ polygon.ps[2] = Point(13841, 8739.22);
+ polygon.ps[3] = Point(13841, 8677.22);
+ new ShapeRef(router, polygon, 1697);
+
+ // shapeRef1698
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11955.1, 7581.79);
+ polygon.ps[1] = Point(11955.1, 7643.79);
+ polygon.ps[2] = Point(11893.1, 7643.79);
+ polygon.ps[3] = Point(11893.1, 7581.79);
+ new ShapeRef(router, polygon, 1698);
+
+ // shapeRef1699
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11955.1, 8043.79);
+ polygon.ps[1] = Point(11955.1, 8105.79);
+ polygon.ps[2] = Point(11893.1, 8105.79);
+ polygon.ps[3] = Point(11893.1, 8043.79);
+ new ShapeRef(router, polygon, 1699);
+
+ // shapeRef1700
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 8218.99);
+ polygon.ps[1] = Point(15899.6, 8280.99);
+ polygon.ps[2] = Point(15837.6, 8280.99);
+ polygon.ps[3] = Point(15837.6, 8218.99);
+ new ShapeRef(router, polygon, 1700);
+
+ // shapeRef1701
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 8677.22);
+ polygon.ps[1] = Point(15899.6, 8739.22);
+ polygon.ps[2] = Point(15837.6, 8739.22);
+ polygon.ps[3] = Point(15837.6, 8677.22);
+ new ShapeRef(router, polygon, 1701);
+
+ // shapeRef1702
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 8218.99);
+ polygon.ps[1] = Point(16753.8, 8280.99);
+ polygon.ps[2] = Point(16691.8, 8280.99);
+ polygon.ps[3] = Point(16691.8, 8218.99);
+ new ShapeRef(router, polygon, 1702);
+
+ // shapeRef1703
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16753.8, 8611.22);
+ polygon.ps[1] = Point(16753.8, 8673.22);
+ polygon.ps[2] = Point(16691.8, 8673.22);
+ polygon.ps[3] = Point(16691.8, 8611.22);
+ new ShapeRef(router, polygon, 1703);
+
+ // shapeRef1704
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13198, 8218.99);
+ polygon.ps[1] = Point(13198, 8280.99);
+ polygon.ps[2] = Point(13136, 8280.99);
+ polygon.ps[3] = Point(13136, 8218.99);
+ new ShapeRef(router, polygon, 1704);
+
+ // shapeRef1705
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10840.2, 7097.4);
+ polygon.ps[1] = Point(10840.2, 7159.4);
+ polygon.ps[2] = Point(10778.2, 7159.4);
+ polygon.ps[3] = Point(10778.2, 7097.4);
+ new ShapeRef(router, polygon, 1705);
+
+ // shapeRef1706
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18399.5, 5039.4);
+ polygon.ps[1] = Point(18399.5, 5101.4);
+ polygon.ps[2] = Point(18337.5, 5101.4);
+ polygon.ps[3] = Point(18337.5, 5039.4);
+ new ShapeRef(router, polygon, 1706);
+
+ // shapeRef1707
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18756.5, 5791.9);
+ polygon.ps[1] = Point(18756.5, 5853.9);
+ polygon.ps[2] = Point(18694.5, 5853.9);
+ polygon.ps[3] = Point(18694.5, 5791.9);
+ new ShapeRef(router, polygon, 1707);
+
+ // shapeRef1708
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17772.5, 5791.9);
+ polygon.ps[1] = Point(17772.5, 5853.9);
+ polygon.ps[2] = Point(17710.5, 5853.9);
+ polygon.ps[3] = Point(17710.5, 5791.9);
+ new ShapeRef(router, polygon, 1708);
+
+ // shapeRef1709
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10840.2, 7548.79);
+ polygon.ps[1] = Point(10840.2, 7610.79);
+ polygon.ps[2] = Point(10778.2, 7610.79);
+ polygon.ps[3] = Point(10778.2, 7548.79);
+ new ShapeRef(router, polygon, 1709);
+
+ // shapeRef1710
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11071.2, 8842.22);
+ polygon.ps[1] = Point(11071.2, 8904.22);
+ polygon.ps[2] = Point(11009.2, 8904.22);
+ polygon.ps[3] = Point(11009.2, 8842.22);
+ new ShapeRef(router, polygon, 1710);
+
+ // shapeRef1711
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11460.1, 8842.22);
+ polygon.ps[1] = Point(11460.1, 8904.22);
+ polygon.ps[2] = Point(11398.1, 8904.22);
+ polygon.ps[3] = Point(11398.1, 8842.22);
+ new ShapeRef(router, polygon, 1711);
+
+ // shapeRef1712
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12021.1, 8842.22);
+ polygon.ps[1] = Point(12021.1, 8904.22);
+ polygon.ps[2] = Point(11959.1, 8904.22);
+ polygon.ps[3] = Point(11959.1, 8842.22);
+ new ShapeRef(router, polygon, 1712);
+
+ // shapeRef1713
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12920.5, 8842.22);
+ polygon.ps[1] = Point(12920.5, 8904.22);
+ polygon.ps[2] = Point(12858.5, 8904.22);
+ polygon.ps[3] = Point(12858.5, 8842.22);
+ new ShapeRef(router, polygon, 1713);
+
+ // shapeRef1714
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13903, 8842.22);
+ polygon.ps[1] = Point(13903, 8904.22);
+ polygon.ps[2] = Point(13841, 8904.22);
+ polygon.ps[3] = Point(13841, 8842.22);
+ new ShapeRef(router, polygon, 1714);
+
+ // shapeRef1715
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7177.1, 3534.51);
+ polygon.ps[1] = Point(7177.1, 3596.51);
+ polygon.ps[2] = Point(7115.1, 3596.51);
+ polygon.ps[3] = Point(7115.1, 3534.51);
+ new ShapeRef(router, polygon, 1715);
+
+ // shapeRef1716
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6550.1, 3534.51);
+ polygon.ps[1] = Point(6550.1, 3596.51);
+ polygon.ps[2] = Point(6488.1, 3596.51);
+ polygon.ps[3] = Point(6488.1, 3534.51);
+ new ShapeRef(router, polygon, 1716);
+
+ // shapeRef1717
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6055.1, 3534.51);
+ polygon.ps[1] = Point(6055.1, 3596.51);
+ polygon.ps[2] = Point(5993.1, 3596.51);
+ polygon.ps[3] = Point(5993.1, 3534.51);
+ new ShapeRef(router, polygon, 1717);
+
+ // shapeRef1718
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5343, 3534.51);
+ polygon.ps[1] = Point(5343, 3596.51);
+ polygon.ps[2] = Point(5281, 3596.51);
+ polygon.ps[3] = Point(5281, 3534.51);
+ new ShapeRef(router, polygon, 1718);
+
+ // shapeRef1719
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6781.1, 6483.51);
+ polygon.ps[1] = Point(6781.1, 6545.51);
+ polygon.ps[2] = Point(6719.1, 6545.51);
+ polygon.ps[3] = Point(6719.1, 6483.51);
+ new ShapeRef(router, polygon, 1719);
+
+ // shapeRef1720
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 7548.79);
+ polygon.ps[1] = Point(4980, 7610.79);
+ polygon.ps[2] = Point(4918, 7610.79);
+ polygon.ps[3] = Point(4918, 7548.79);
+ new ShapeRef(router, polygon, 1720);
+
+ // shapeRef1721
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 8076.79);
+ polygon.ps[1] = Point(4980, 8138.79);
+ polygon.ps[2] = Point(4918, 8138.79);
+ polygon.ps[3] = Point(4918, 8076.79);
+ new ShapeRef(router, polygon, 1721);
+
+ // shapeRef1722
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 8548.99);
+ polygon.ps[1] = Point(4980, 8610.99);
+ polygon.ps[2] = Point(4918, 8610.99);
+ polygon.ps[3] = Point(4918, 8548.99);
+ new ShapeRef(router, polygon, 1722);
+
+ // shapeRef1723
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 9083.42);
+ polygon.ps[1] = Point(4980, 9145.42);
+ polygon.ps[2] = Point(4918, 9145.42);
+ polygon.ps[3] = Point(4918, 9083.42);
+ new ShapeRef(router, polygon, 1723);
+
+ // shapeRef1724
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 9545.42);
+ polygon.ps[1] = Point(4980, 9607.42);
+ polygon.ps[2] = Point(4918, 9607.42);
+ polygon.ps[3] = Point(4918, 9545.42);
+ new ShapeRef(router, polygon, 1724);
+
+ // shapeRef1725
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4320, 9545.42);
+ polygon.ps[1] = Point(4320, 9607.42);
+ polygon.ps[2] = Point(4258, 9607.42);
+ polygon.ps[3] = Point(4258, 9545.42);
+ new ShapeRef(router, polygon, 1725);
+
+ // shapeRef1726
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4320, 10044);
+ polygon.ps[1] = Point(4320, 10106);
+ polygon.ps[2] = Point(4258, 10106);
+ polygon.ps[3] = Point(4258, 10044);
+ new ShapeRef(router, polygon, 1726);
+
+ // shapeRef1727
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 10407);
+ polygon.ps[1] = Point(4980, 10469);
+ polygon.ps[2] = Point(4918, 10469);
+ polygon.ps[3] = Point(4918, 10407);
+ new ShapeRef(router, polygon, 1727);
+
+ // shapeRef1728
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 10407);
+ polygon.ps[1] = Point(4584, 10469);
+ polygon.ps[2] = Point(4522, 10469);
+ polygon.ps[3] = Point(4522, 10407);
+ new ShapeRef(router, polygon, 1728);
+
+ // shapeRef1729
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 1249.29);
+ polygon.ps[1] = Point(11394.1, 1311.29);
+ polygon.ps[2] = Point(11332.1, 1311.29);
+ polygon.ps[3] = Point(11332.1, 1249.29);
+ new ShapeRef(router, polygon, 1729);
+
+ // shapeRef1730
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 777.091);
+ polygon.ps[1] = Point(11394.1, 839.091);
+ polygon.ps[2] = Point(11332.1, 839.091);
+ polygon.ps[3] = Point(11332.1, 777.091);
+ new ShapeRef(router, polygon, 1730);
+
+ // shapeRef1731
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 427.265);
+ polygon.ps[1] = Point(11394.1, 489.265);
+ polygon.ps[2] = Point(11332.1, 489.265);
+ polygon.ps[3] = Point(11332.1, 427.265);
+ new ShapeRef(router, polygon, 1731);
+
+ // shapeRef1732
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11757.1, 427.265);
+ polygon.ps[1] = Point(11757.1, 489.265);
+ polygon.ps[2] = Point(11695.1, 489.265);
+ polygon.ps[3] = Point(11695.1, 427.265);
+ new ShapeRef(router, polygon, 1732);
+
+ // shapeRef1733
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12120.1, 427.265);
+ polygon.ps[1] = Point(12120.1, 489.265);
+ polygon.ps[2] = Point(12058.1, 489.265);
+ polygon.ps[3] = Point(12058.1, 427.265);
+ new ShapeRef(router, polygon, 1733);
+
+ // shapeRef1734
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12887.5, 427.265);
+ polygon.ps[1] = Point(12887.5, 489.265);
+ polygon.ps[2] = Point(12825.5, 489.265);
+ polygon.ps[3] = Point(12825.5, 427.265);
+ new ShapeRef(router, polygon, 1734);
+
+ // shapeRef1735
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12384.1, 612.091);
+ polygon.ps[1] = Point(12384.1, 674.091);
+ polygon.ps[2] = Point(12322.1, 674.091);
+ polygon.ps[3] = Point(12322.1, 612.091);
+ new ShapeRef(router, polygon, 1735);
+
+ // shapeRef1736
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13540, 427.265);
+ polygon.ps[1] = Point(13540, 489.265);
+ polygon.ps[2] = Point(13478, 489.265);
+ polygon.ps[3] = Point(13478, 427.265);
+ new ShapeRef(router, polygon, 1736);
+
+ // shapeRef1737
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14068, 427.265);
+ polygon.ps[1] = Point(14068, 489.265);
+ polygon.ps[2] = Point(14006, 489.265);
+ polygon.ps[3] = Point(14006, 427.265);
+ new ShapeRef(router, polygon, 1737);
+
+ // shapeRef1738
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14596, 427.265);
+ polygon.ps[1] = Point(14596, 489.265);
+ polygon.ps[2] = Point(14534, 489.265);
+ polygon.ps[3] = Point(14534, 427.265);
+ new ShapeRef(router, polygon, 1738);
+
+ // shapeRef1739
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 427.265);
+ polygon.ps[1] = Point(15270.5, 489.265);
+ polygon.ps[2] = Point(15208.5, 489.265);
+ polygon.ps[3] = Point(15208.5, 427.265);
+ new ShapeRef(router, polygon, 1739);
+
+ // shapeRef1740
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15998.6, 427.265);
+ polygon.ps[1] = Point(15998.6, 489.265);
+ polygon.ps[2] = Point(15936.6, 489.265);
+ polygon.ps[3] = Point(15936.6, 427.265);
+ new ShapeRef(router, polygon, 1740);
+
+ // shapeRef1741
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16394.6, 427.265);
+ polygon.ps[1] = Point(16394.6, 489.265);
+ polygon.ps[2] = Point(16332.6, 489.265);
+ polygon.ps[3] = Point(16332.6, 427.265);
+ new ShapeRef(router, polygon, 1741);
+
+ // shapeRef1742
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16394.6, 1249.29);
+ polygon.ps[1] = Point(16394.6, 1311.29);
+ polygon.ps[2] = Point(16332.6, 1311.29);
+ polygon.ps[3] = Point(16332.6, 1249.29);
+ new ShapeRef(router, polygon, 1742);
+
+ // shapeRef1743
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18432.5, 11829.9);
+ polygon.ps[1] = Point(18432.5, 11891.9);
+ polygon.ps[2] = Point(18370.5, 11891.9);
+ polygon.ps[3] = Point(18370.5, 11829.9);
+ new ShapeRef(router, polygon, 1743);
+
+ // shapeRef1744
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18661.5, 11829.9);
+ polygon.ps[1] = Point(18661.5, 11891.9);
+ polygon.ps[2] = Point(18599.5, 11891.9);
+ polygon.ps[3] = Point(18599.5, 11829.9);
+ new ShapeRef(router, polygon, 1744);
+
+ // shapeRef1745
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10487.9, 427.265);
+ polygon.ps[1] = Point(10487.9, 489.265);
+ polygon.ps[2] = Point(10425.9, 489.265);
+ polygon.ps[3] = Point(10425.9, 427.265);
+ new ShapeRef(router, polygon, 1745);
+
+ // shapeRef1746
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9202.59, 427.265);
+ polygon.ps[1] = Point(9202.59, 489.265);
+ polygon.ps[2] = Point(9140.59, 489.265);
+ polygon.ps[3] = Point(9140.59, 427.265);
+ new ShapeRef(router, polygon, 1746);
+
+ // shapeRef1747
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8489.29, 282.265);
+ polygon.ps[1] = Point(8489.29, 344.265);
+ polygon.ps[2] = Point(8427.29, 344.265);
+ polygon.ps[3] = Point(8427.29, 282.265);
+ new ShapeRef(router, polygon, 1747);
+
+ // shapeRef1748
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8225.29, 282.265);
+ polygon.ps[1] = Point(8225.29, 344.265);
+ polygon.ps[2] = Point(8163.29, 344.265);
+ polygon.ps[3] = Point(8163.29, 282.265);
+ new ShapeRef(router, polygon, 1748);
+
+ // shapeRef1749
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7895.29, 282.265);
+ polygon.ps[1] = Point(7895.29, 344.265);
+ polygon.ps[2] = Point(7833.29, 344.265);
+ polygon.ps[3] = Point(7833.29, 282.265);
+ new ShapeRef(router, polygon, 1749);
+
+ // shapeRef1750
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8093.29, 394.265);
+ polygon.ps[1] = Point(8093.29, 456.265);
+ polygon.ps[2] = Point(8031.29, 456.265);
+ polygon.ps[3] = Point(8031.29, 394.265);
+ new ShapeRef(router, polygon, 1750);
+
+ // shapeRef1751
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7375.1, 394.265);
+ polygon.ps[1] = Point(7375.1, 456.265);
+ polygon.ps[2] = Point(7313.1, 456.265);
+ polygon.ps[3] = Point(7313.1, 394.265);
+ new ShapeRef(router, polygon, 1751);
+
+ // shapeRef1752
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6649.1, 394.265);
+ polygon.ps[1] = Point(6649.1, 456.265);
+ polygon.ps[2] = Point(6587.1, 456.265);
+ polygon.ps[3] = Point(6587.1, 394.265);
+ new ShapeRef(router, polygon, 1752);
+
+ // shapeRef1753
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6154.1, 394.265);
+ polygon.ps[1] = Point(6154.1, 456.265);
+ polygon.ps[2] = Point(6092.1, 456.265);
+ polygon.ps[3] = Point(6092.1, 394.265);
+ new ShapeRef(router, polygon, 1753);
+
+ // shapeRef1754
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10840.2, 4511.4);
+ polygon.ps[1] = Point(10840.2, 4573.4);
+ polygon.ps[2] = Point(10778.2, 4573.4);
+ polygon.ps[3] = Point(10778.2, 4511.4);
+ new ShapeRef(router, polygon, 1754);
+
+ // shapeRef1755
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 711.091);
+ polygon.ps[1] = Point(15270.5, 773.091);
+ polygon.ps[2] = Point(15208.5, 773.091);
+ polygon.ps[3] = Point(15208.5, 711.091);
+ new ShapeRef(router, polygon, 1755);
+
+ // shapeRef1756
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15270.5, 1150.29);
+ polygon.ps[1] = Point(15270.5, 1212.29);
+ polygon.ps[2] = Point(15208.5, 1212.29);
+ polygon.ps[3] = Point(15208.5, 1150.29);
+ new ShapeRef(router, polygon, 1756);
+
+ // shapeRef1757
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5824.1, 4095.51);
+ polygon.ps[1] = Point(5824.1, 4157.51);
+ polygon.ps[2] = Point(5762.1, 4157.51);
+ polygon.ps[3] = Point(5762.1, 4095.51);
+ new ShapeRef(router, polygon, 1757);
+
+ // shapeRef1758
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5343, 5933.59);
+ polygon.ps[1] = Point(5343, 5995.59);
+ polygon.ps[2] = Point(5281, 5995.59);
+ polygon.ps[3] = Point(5281, 5933.59);
+ new ShapeRef(router, polygon, 1758);
+
+ // shapeRef1759
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5343, 4907.4);
+ polygon.ps[1] = Point(5343, 4969.4);
+ polygon.ps[2] = Point(5281, 4969.4);
+ polygon.ps[3] = Point(5281, 4907.4);
+ new ShapeRef(router, polygon, 1759);
+
+ // shapeRef1760
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5343, 4095.51);
+ polygon.ps[1] = Point(5343, 4157.51);
+ polygon.ps[2] = Point(5281, 4157.51);
+ polygon.ps[3] = Point(5281, 4095.51);
+ new ShapeRef(router, polygon, 1760);
+
+ // shapeRef1761
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10147, 10651.3);
+ polygon.ps[1] = Point(10147, 10713.3);
+ polygon.ps[2] = Point(10085, 10713.3);
+ polygon.ps[3] = Point(10085, 10651.3);
+ new ShapeRef(router, polygon, 1761);
+
+ // shapeRef1762
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10741.2, 10651.3);
+ polygon.ps[1] = Point(10741.2, 10713.3);
+ polygon.ps[2] = Point(10679.2, 10713.3);
+ polygon.ps[3] = Point(10679.2, 10651.3);
+ new ShapeRef(router, polygon, 1762);
+
+ // shapeRef1763
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11038.2, 10651.3);
+ polygon.ps[1] = Point(11038.2, 10713.3);
+ polygon.ps[2] = Point(10976.2, 10713.3);
+ polygon.ps[3] = Point(10976.2, 10651.3);
+ new ShapeRef(router, polygon, 1763);
+
+ // shapeRef1764
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 7262.4);
+ polygon.ps[1] = Point(6583.1, 7324.4);
+ polygon.ps[2] = Point(6521.1, 7324.4);
+ polygon.ps[3] = Point(6521.1, 7262.4);
+ new ShapeRef(router, polygon, 1764);
+
+ // shapeRef1765
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 6998.4);
+ polygon.ps[1] = Point(7243.1, 7060.4);
+ polygon.ps[2] = Point(7181.1, 7060.4);
+ polygon.ps[3] = Point(7181.1, 6998.4);
+ new ShapeRef(router, polygon, 1765);
+
+ // shapeRef1766
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 7614.79);
+ polygon.ps[1] = Point(7243.1, 7676.79);
+ polygon.ps[2] = Point(7181.1, 7676.79);
+ polygon.ps[3] = Point(7181.1, 7614.79);
+ new ShapeRef(router, polygon, 1766);
+
+ // shapeRef1767
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 9017.42);
+ polygon.ps[1] = Point(7243.1, 9079.42);
+ polygon.ps[2] = Point(7181.1, 9079.42);
+ polygon.ps[3] = Point(7181.1, 9017.42);
+ new ShapeRef(router, polygon, 1767);
+
+ // shapeRef1768
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7243.1, 9380.42);
+ polygon.ps[1] = Point(7243.1, 9442.42);
+ polygon.ps[2] = Point(7181.1, 9442.42);
+ polygon.ps[3] = Point(7181.1, 9380.42);
+ new ShapeRef(router, polygon, 1768);
+
+ // shapeRef1769
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 7779.79);
+ polygon.ps[1] = Point(6583.1, 7841.79);
+ polygon.ps[2] = Point(6521.1, 7841.79);
+ polygon.ps[3] = Point(6521.1, 7779.79);
+ new ShapeRef(router, polygon, 1769);
+
+ // shapeRef1770
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 8284.99);
+ polygon.ps[1] = Point(6583.1, 8346.99);
+ polygon.ps[2] = Point(6521.1, 8346.99);
+ polygon.ps[3] = Point(6521.1, 8284.99);
+ new ShapeRef(router, polygon, 1770);
+
+ // shapeRef1771
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 9512.42);
+ polygon.ps[1] = Point(6583.1, 9574.42);
+ polygon.ps[2] = Point(6521.1, 9574.42);
+ polygon.ps[3] = Point(6521.1, 9512.42);
+ new ShapeRef(router, polygon, 1771);
+
+ // shapeRef1772
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6583.1, 10077);
+ polygon.ps[1] = Point(6583.1, 10139);
+ polygon.ps[2] = Point(6521.1, 10139);
+ polygon.ps[3] = Point(6521.1, 10077);
+ new ShapeRef(router, polygon, 1772);
+
+ // shapeRef1773
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6814.1, 7515.79);
+ polygon.ps[1] = Point(6814.1, 7577.79);
+ polygon.ps[2] = Point(6752.1, 7577.79);
+ polygon.ps[3] = Point(6752.1, 7515.79);
+ new ShapeRef(router, polygon, 1773);
+
+ // shapeRef1774
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7177.1, 6219.51);
+ polygon.ps[1] = Point(7177.1, 6281.51);
+ polygon.ps[2] = Point(7115.1, 6281.51);
+ polygon.ps[3] = Point(7115.1, 6219.51);
+ new ShapeRef(router, polygon, 1774);
+
+ // shapeRef1775
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 6483.51);
+ polygon.ps[1] = Point(7796.29, 6545.51);
+ polygon.ps[2] = Point(7734.29, 6545.51);
+ polygon.ps[3] = Point(7734.29, 6483.51);
+ new ShapeRef(router, polygon, 1775);
+
+ // shapeRef1776
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8649.29, 6483.51);
+ polygon.ps[1] = Point(8649.29, 6545.51);
+ polygon.ps[2] = Point(8587.29, 6545.51);
+ polygon.ps[3] = Point(8587.29, 6483.51);
+ new ShapeRef(router, polygon, 1776);
+
+ // shapeRef1777
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6154.1, 7713.79);
+ polygon.ps[1] = Point(6154.1, 7775.79);
+ polygon.ps[2] = Point(6092.1, 7775.79);
+ polygon.ps[3] = Point(6092.1, 7713.79);
+ new ShapeRef(router, polygon, 1777);
+
+ // shapeRef1778
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6154.1, 8251.99);
+ polygon.ps[1] = Point(6154.1, 8313.99);
+ polygon.ps[2] = Point(6092.1, 8313.99);
+ polygon.ps[3] = Point(6092.1, 8251.99);
+ new ShapeRef(router, polygon, 1778);
+
+ // shapeRef1779
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14728, 12261.3);
+ polygon.ps[1] = Point(14728, 12323.3);
+ polygon.ps[2] = Point(14666, 12323.3);
+ polygon.ps[3] = Point(14666, 12261.3);
+ new ShapeRef(router, polygon, 1779);
+
+ // shapeRef1780
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14431, 12261.3);
+ polygon.ps[1] = Point(14431, 12323.3);
+ polygon.ps[2] = Point(14369, 12323.3);
+ polygon.ps[3] = Point(14369, 12261.3);
+ new ShapeRef(router, polygon, 1780);
+
+ // shapeRef1781
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9265.09, 11141.6);
+ polygon.ps[1] = Point(9265.09, 11201.6);
+ polygon.ps[2] = Point(9210.09, 11201.6);
+ polygon.ps[3] = Point(9210.09, 11141.6);
+ new ShapeRef(router, polygon, 1781);
+
+ // shapeRef1782
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8711.79, 11141.6);
+ polygon.ps[1] = Point(8711.79, 11201.6);
+ polygon.ps[2] = Point(8656.79, 11201.6);
+ polygon.ps[3] = Point(8656.79, 11141.6);
+ new ShapeRef(router, polygon, 1782);
+
+ // shapeRef1783
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8048.79, 10993.6);
+ polygon.ps[1] = Point(8048.79, 11033.6);
+ polygon.ps[2] = Point(7973.29, 11033.6);
+ polygon.ps[3] = Point(7973.29, 10993.6);
+ new ShapeRef(router, polygon, 1783);
+
+ // shapeRef1784
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8254.79, 10645.3);
+ polygon.ps[1] = Point(8254.79, 10705.3);
+ polygon.ps[2] = Point(8199.79, 10705.3);
+ polygon.ps[3] = Point(8199.79, 10645.3);
+ new ShapeRef(router, polygon, 1784);
+
+ // shapeRef1785
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8711.79, 10645.3);
+ polygon.ps[1] = Point(8711.79, 10705.3);
+ polygon.ps[2] = Point(8656.79, 10705.3);
+ polygon.ps[3] = Point(8656.79, 10645.3);
+ new ShapeRef(router, polygon, 1785);
+
+ // shapeRef1786
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13326.5, 9176.42);
+ polygon.ps[1] = Point(13326.5, 9236.42);
+ polygon.ps[2] = Point(13271.5, 9236.42);
+ polygon.ps[3] = Point(13271.5, 9176.42);
+ new ShapeRef(router, polygon, 1786);
+
+ // shapeRef1787
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9746.19, 11141.6);
+ polygon.ps[1] = Point(9746.19, 11201.6);
+ polygon.ps[2] = Point(9691.19, 11201.6);
+ polygon.ps[3] = Point(9691.19, 11141.6);
+ new ShapeRef(router, polygon, 1787);
+
+ // shapeRef1788
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10609.2, 11180.6);
+ polygon.ps[1] = Point(10609.2, 11242.6);
+ polygon.ps[2] = Point(10547.2, 11242.6);
+ polygon.ps[3] = Point(10547.2, 11180.6);
+ new ShapeRef(router, polygon, 1788);
+
+ // shapeRef1789
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9980.69, 11180.6);
+ polygon.ps[1] = Point(9980.69, 11242.6);
+ polygon.ps[2] = Point(9918.69, 11242.6);
+ polygon.ps[3] = Point(9918.69, 11180.6);
+ new ShapeRef(router, polygon, 1789);
+
+ // shapeRef1790
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9433.59, 11180.6);
+ polygon.ps[1] = Point(9433.59, 11242.6);
+ polygon.ps[2] = Point(9371.59, 11242.6);
+ polygon.ps[3] = Point(9371.59, 11180.6);
+ new ShapeRef(router, polygon, 1790);
+
+ // shapeRef1791
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9050.99, 11180.6);
+ polygon.ps[1] = Point(9050.99, 11242.6);
+ polygon.ps[2] = Point(8988.99, 11242.6);
+ polygon.ps[3] = Point(8988.99, 11180.6);
+ new ShapeRef(router, polygon, 1791);
+
+ // shapeRef1792
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8423.29, 11180.6);
+ polygon.ps[1] = Point(8423.29, 11242.6);
+ polygon.ps[2] = Point(8361.29, 11242.6);
+ polygon.ps[3] = Point(8361.29, 11180.6);
+ new ShapeRef(router, polygon, 1792);
+
+ // shapeRef1793
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7994.29, 11180.6);
+ polygon.ps[1] = Point(7994.29, 11242.6);
+ polygon.ps[2] = Point(7932.29, 11242.6);
+ polygon.ps[3] = Point(7932.29, 11180.6);
+ new ShapeRef(router, polygon, 1793);
+
+ // shapeRef1794
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7994.29, 10684.3);
+ polygon.ps[1] = Point(7994.29, 10746.3);
+ polygon.ps[2] = Point(7932.29, 10746.3);
+ polygon.ps[3] = Point(7932.29, 10684.3);
+ new ShapeRef(router, polygon, 1794);
+
+ // shapeRef1795
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8423.29, 10684.3);
+ polygon.ps[1] = Point(8423.29, 10746.3);
+ polygon.ps[2] = Point(8361.29, 10746.3);
+ polygon.ps[3] = Point(8361.29, 10684.3);
+ new ShapeRef(router, polygon, 1795);
+
+ // shapeRef1796
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9050.99, 10684.3);
+ polygon.ps[1] = Point(9050.99, 10746.3);
+ polygon.ps[2] = Point(8988.99, 10746.3);
+ polygon.ps[3] = Point(8988.99, 10684.3);
+ new ShapeRef(router, polygon, 1796);
+
+ // shapeRef1797
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8800.89, 11984.3);
+ polygon.ps[1] = Point(8800.89, 12046.3);
+ polygon.ps[2] = Point(8738.89, 12046.3);
+ polygon.ps[3] = Point(8738.89, 11984.3);
+ new ShapeRef(router, polygon, 1797);
+
+ // shapeRef1798
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6220.1, 183.265);
+ polygon.ps[1] = Point(6220.1, 245.265);
+ polygon.ps[2] = Point(6158.1, 245.265);
+ polygon.ps[3] = Point(6158.1, 183.265);
+ new ShapeRef(router, polygon, 1798);
+
+ // shapeRef1799
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5956.1, 183.265);
+ polygon.ps[1] = Point(5956.1, 245.265);
+ polygon.ps[2] = Point(5894.1, 245.265);
+ polygon.ps[3] = Point(5894.1, 183.265);
+ new ShapeRef(router, polygon, 1799);
+
+ // shapeRef1800
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 1117.29);
+ polygon.ps[1] = Point(7796.29, 1179.29);
+ polygon.ps[2] = Point(7734.29, 1179.29);
+ polygon.ps[3] = Point(7734.29, 1117.29);
+ new ShapeRef(router, polygon, 1800);
+
+ // shapeRef1801
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8419.79, 5442.67);
+ polygon.ps[1] = Point(8419.79, 5502.67);
+ polygon.ps[2] = Point(8364.79, 5502.67);
+ polygon.ps[3] = Point(8364.79, 5442.67);
+ new ShapeRef(router, polygon, 1801);
+
+ // shapeRef1802
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 5481.67);
+ polygon.ps[1] = Point(8866.89, 5543.67);
+ polygon.ps[2] = Point(8804.89, 5543.67);
+ polygon.ps[3] = Point(8804.89, 5481.67);
+ new ShapeRef(router, polygon, 1802);
+
+ // shapeRef1803
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8126.29, 5481.67);
+ polygon.ps[1] = Point(8126.29, 5543.67);
+ polygon.ps[2] = Point(8064.29, 5543.67);
+ polygon.ps[3] = Point(8064.29, 5481.67);
+ new ShapeRef(router, polygon, 1803);
+
+ // shapeRef1804
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17241, 7204.4);
+ polygon.ps[1] = Point(17241, 7264.4);
+ polygon.ps[2] = Point(17186, 7264.4);
+ polygon.ps[3] = Point(17186, 7204.4);
+ new ShapeRef(router, polygon, 1804);
+
+ // shapeRef1805
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 7394.4);
+ polygon.ps[1] = Point(17083.8, 7456.4);
+ polygon.ps[2] = Point(17021.8, 7456.4);
+ polygon.ps[3] = Point(17021.8, 7394.4);
+ new ShapeRef(router, polygon, 1805);
+
+ // shapeRef1806
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17083.8, 7031.4);
+ polygon.ps[1] = Point(17083.8, 7093.4);
+ polygon.ps[2] = Point(17021.8, 7093.4);
+ polygon.ps[3] = Point(17021.8, 7031.4);
+ new ShapeRef(router, polygon, 1806);
+
+ // shapeRef1807
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10454.9, 6516.51);
+ polygon.ps[1] = Point(10454.9, 6578.51);
+ polygon.ps[2] = Point(10392.9, 6578.51);
+ polygon.ps[3] = Point(10392.9, 6516.51);
+ new ShapeRef(router, polygon, 1807);
+
+ // shapeRef1808
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 5933.59);
+ polygon.ps[1] = Point(4584, 5995.59);
+ polygon.ps[2] = Point(4522, 5995.59);
+ polygon.ps[3] = Point(4522, 5933.59);
+ new ShapeRef(router, polygon, 1808);
+
+ // shapeRef1809
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 2812.29);
+ polygon.ps[1] = Point(11394.1, 2874.29);
+ polygon.ps[2] = Point(11332.1, 2874.29);
+ polygon.ps[3] = Point(11332.1, 2812.29);
+ new ShapeRef(router, polygon, 1809);
+
+ // shapeRef1810
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 3666.51);
+ polygon.ps[1] = Point(11394.1, 3728.51);
+ polygon.ps[2] = Point(11332.1, 3728.51);
+ polygon.ps[3] = Point(11332.1, 3666.51);
+ new ShapeRef(router, polygon, 1810);
+
+ // shapeRef1811
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 5138.4);
+ polygon.ps[1] = Point(11394.1, 5200.4);
+ polygon.ps[2] = Point(11332.1, 5200.4);
+ polygon.ps[3] = Point(11332.1, 5138.4);
+ new ShapeRef(router, polygon, 1811);
+
+ // shapeRef1812
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 5725.9);
+ polygon.ps[1] = Point(11394.1, 5787.9);
+ polygon.ps[2] = Point(11332.1, 5787.9);
+ polygon.ps[3] = Point(11332.1, 5725.9);
+ new ShapeRef(router, polygon, 1812);
+
+ // shapeRef1813
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 7548.79);
+ polygon.ps[1] = Point(11394.1, 7610.79);
+ polygon.ps[2] = Point(11332.1, 7610.79);
+ polygon.ps[3] = Point(11332.1, 7548.79);
+ new ShapeRef(router, polygon, 1813);
+
+ // shapeRef1814
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 9182.42);
+ polygon.ps[1] = Point(11394.1, 9244.42);
+ polygon.ps[2] = Point(11332.1, 9244.42);
+ polygon.ps[3] = Point(11332.1, 9182.42);
+ new ShapeRef(router, polygon, 1814);
+
+ // shapeRef1815
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 10506);
+ polygon.ps[1] = Point(11394.1, 10568);
+ polygon.ps[2] = Point(11332.1, 10568);
+ polygon.ps[3] = Point(11332.1, 10506);
+ new ShapeRef(router, polygon, 1815);
+
+ // shapeRef1816
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11394.1, 12096.3);
+ polygon.ps[1] = Point(11394.1, 12158.3);
+ polygon.ps[2] = Point(11332.1, 12158.3);
+ polygon.ps[3] = Point(11332.1, 12096.3);
+ new ShapeRef(router, polygon, 1816);
+
+ // shapeRef1817
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12562.5, 12096.3);
+ polygon.ps[1] = Point(12562.5, 12158.3);
+ polygon.ps[2] = Point(12500.5, 12158.3);
+ polygon.ps[3] = Point(12500.5, 12096.3);
+ new ShapeRef(router, polygon, 1817);
+
+ // shapeRef1818
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13264, 12096.3);
+ polygon.ps[1] = Point(13264, 12158.3);
+ polygon.ps[2] = Point(13202, 12158.3);
+ polygon.ps[3] = Point(13202, 12096.3);
+ new ShapeRef(router, polygon, 1818);
+
+ // shapeRef1819
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14035, 12261.3);
+ polygon.ps[1] = Point(14035, 12323.3);
+ polygon.ps[2] = Point(13973, 12323.3);
+ polygon.ps[3] = Point(13973, 12261.3);
+ new ShapeRef(router, polygon, 1819);
+
+ // shapeRef1820
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4584, 10717.3);
+ polygon.ps[1] = Point(4584, 10779.3);
+ polygon.ps[2] = Point(4522, 10779.3);
+ polygon.ps[3] = Point(4522, 10717.3);
+ new ShapeRef(router, polygon, 1820);
+
+ // shapeRef1821
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7924.79, 1210.29);
+ polygon.ps[1] = Point(7924.79, 1270.29);
+ polygon.ps[2] = Point(7869.79, 1270.29);
+ polygon.ps[3] = Point(7869.79, 1210.29);
+ new ShapeRef(router, polygon, 1821);
+
+ // shapeRef1822
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7693.6, 1392.29);
+ polygon.ps[1] = Point(7693.6, 1432.29);
+ polygon.ps[2] = Point(7618.1, 1432.29);
+ polygon.ps[3] = Point(7618.1, 1392.29);
+ new ShapeRef(router, polygon, 1822);
+
+ // shapeRef1823
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8192.29, 1249.29);
+ polygon.ps[1] = Point(8192.29, 1311.29);
+ polygon.ps[2] = Point(8130.29, 1311.29);
+ polygon.ps[3] = Point(8130.29, 1249.29);
+ new ShapeRef(router, polygon, 1823);
+
+ // shapeRef1824
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 1249.29);
+ polygon.ps[1] = Point(7639.1, 1311.29);
+ polygon.ps[2] = Point(7577.1, 1311.29);
+ polygon.ps[3] = Point(7577.1, 1249.29);
+ new ShapeRef(router, polygon, 1824);
+
+ // shapeRef1825
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 1579.29);
+ polygon.ps[1] = Point(7639.1, 1641.29);
+ polygon.ps[2] = Point(7577.1, 1641.29);
+ polygon.ps[3] = Point(7577.1, 1579.29);
+ new ShapeRef(router, polygon, 1825);
+
+ // shapeRef1826
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 2746.29);
+ polygon.ps[1] = Point(7639.1, 2808.29);
+ polygon.ps[2] = Point(7577.1, 2808.29);
+ polygon.ps[3] = Point(7577.1, 2746.29);
+ new ShapeRef(router, polygon, 1826);
+
+ // shapeRef1827
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7639.1, 3175.29);
+ polygon.ps[1] = Point(7639.1, 3237.29);
+ polygon.ps[2] = Point(7577.1, 3237.29);
+ polygon.ps[3] = Point(7577.1, 3175.29);
+ new ShapeRef(router, polygon, 1827);
+
+ // shapeRef1828
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15014.4, 1111.29);
+ polygon.ps[1] = Point(15014.4, 1171.29);
+ polygon.ps[2] = Point(14959.4, 1171.29);
+ polygon.ps[3] = Point(14959.4, 1111.29);
+ new ShapeRef(router, polygon, 1828);
+
+ // shapeRef1829
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16229.6, 11601.9);
+ polygon.ps[1] = Point(16229.6, 11663.9);
+ polygon.ps[2] = Point(16167.6, 11663.9);
+ polygon.ps[3] = Point(16167.6, 11601.9);
+ new ShapeRef(router, polygon, 1829);
+
+ // shapeRef1830
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15899.6, 11601.9);
+ polygon.ps[1] = Point(15899.6, 11663.9);
+ polygon.ps[2] = Point(15837.6, 11663.9);
+ polygon.ps[3] = Point(15837.6, 11601.9);
+ new ShapeRef(router, polygon, 1830);
+
+ // shapeRef1831
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9268.59, 12427.7);
+ polygon.ps[1] = Point(9268.59, 12489.7);
+ polygon.ps[2] = Point(9206.59, 12489.7);
+ polygon.ps[3] = Point(9206.59, 12427.7);
+ new ShapeRef(router, polygon, 1831);
+
+ // shapeRef1832
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16229.6, 11951.3);
+ polygon.ps[1] = Point(16229.6, 12013.3);
+ polygon.ps[2] = Point(16167.6, 12013.3);
+ polygon.ps[3] = Point(16167.6, 11951.3);
+ new ShapeRef(router, polygon, 1832);
+
+ // shapeRef1833
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16588.8, 11951.3);
+ polygon.ps[1] = Point(16588.8, 12013.3);
+ polygon.ps[2] = Point(16526.8, 12013.3);
+ polygon.ps[3] = Point(16526.8, 11951.3);
+ new ShapeRef(router, polygon, 1833);
+
+ // shapeRef1834
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16819.8, 12427.7);
+ polygon.ps[1] = Point(16819.8, 12489.7);
+ polygon.ps[2] = Point(16757.8, 12489.7);
+ polygon.ps[3] = Point(16757.8, 12427.7);
+ new ShapeRef(router, polygon, 1834);
+
+ // shapeRef1835
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1746, 4742.4);
+ polygon.ps[1] = Point(1746, 4804.4);
+ polygon.ps[2] = Point(1684, 4804.4);
+ polygon.ps[3] = Point(1684, 4742.4);
+ new ShapeRef(router, polygon, 1835);
+
+ // shapeRef1836
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(2868, 4742.4);
+ polygon.ps[1] = Point(2868, 4804.4);
+ polygon.ps[2] = Point(2806, 4804.4);
+ polygon.ps[3] = Point(2806, 4742.4);
+ new ShapeRef(router, polygon, 1836);
+
+ // shapeRef1837
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3264, 4742.4);
+ polygon.ps[1] = Point(3264, 4804.4);
+ polygon.ps[2] = Point(3202, 4804.4);
+ polygon.ps[3] = Point(3202, 4742.4);
+ new ShapeRef(router, polygon, 1837);
+
+ // shapeRef1838
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1416, 4742.4);
+ polygon.ps[1] = Point(1416, 4804.4);
+ polygon.ps[2] = Point(1354, 4804.4);
+ polygon.ps[3] = Point(1354, 4742.4);
+ new ShapeRef(router, polygon, 1838);
+
+ // shapeRef1839
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4980, 6582.51);
+ polygon.ps[1] = Point(4980, 6644.51);
+ polygon.ps[2] = Point(4918, 6644.51);
+ polygon.ps[3] = Point(4918, 6582.51);
+ new ShapeRef(router, polygon, 1839);
+
+ // shapeRef1840
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6022.1, 6351.51);
+ polygon.ps[1] = Point(6022.1, 6413.51);
+ polygon.ps[2] = Point(5960.1, 6413.51);
+ polygon.ps[3] = Point(5960.1, 6351.51);
+ new ShapeRef(router, polygon, 1840);
+
+ // shapeRef1841
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7982.79, 7058.4);
+ polygon.ps[1] = Point(7982.79, 7118.4);
+ polygon.ps[2] = Point(7927.79, 7118.4);
+ polygon.ps[3] = Point(7927.79, 7058.4);
+ new ShapeRef(router, polygon, 1841);
+
+ // shapeRef1842
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7796.29, 7394.4);
+ polygon.ps[1] = Point(7796.29, 7456.4);
+ polygon.ps[2] = Point(7734.29, 7456.4);
+ polygon.ps[3] = Point(7734.29, 7394.4);
+ new ShapeRef(router, polygon, 1842);
+
+ // shapeRef1843
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8324.29, 6823.21);
+ polygon.ps[1] = Point(8324.29, 6885.21);
+ polygon.ps[2] = Point(8262.29, 6885.21);
+ polygon.ps[3] = Point(8262.29, 6823.21);
+ new ShapeRef(router, polygon, 1843);
+
+ // shapeRef1844
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13297, 3600.51);
+ polygon.ps[1] = Point(13297, 3662.51);
+ polygon.ps[2] = Point(13235, 3662.51);
+ polygon.ps[3] = Point(13235, 3600.51);
+ new ShapeRef(router, polygon, 1844);
+
+ // shapeRef1845
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8452.79, 2038.29);
+ polygon.ps[1] = Point(8452.79, 2098.29);
+ polygon.ps[2] = Point(8397.79, 2098.29);
+ polygon.ps[3] = Point(8397.79, 2038.29);
+ new ShapeRef(router, polygon, 1845);
+
+ // shapeRef1846
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8866.89, 2077.29);
+ polygon.ps[1] = Point(8866.89, 2139.29);
+ polygon.ps[2] = Point(8804.89, 2139.29);
+ polygon.ps[3] = Point(8804.89, 2077.29);
+ new ShapeRef(router, polygon, 1846);
+
+ // shapeRef1847
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8192.29, 2077.29);
+ polygon.ps[1] = Point(8192.29, 2139.29);
+ polygon.ps[2] = Point(8130.29, 2139.29);
+ polygon.ps[3] = Point(8130.29, 2077.29);
+ new ShapeRef(router, polygon, 1847);
+
+ // shapeRef1848
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5013, 5316.67);
+ polygon.ps[1] = Point(5013, 5378.67);
+ polygon.ps[2] = Point(4951, 5378.67);
+ polygon.ps[3] = Point(4951, 5316.67);
+ new ShapeRef(router, polygon, 1848);
+
+ // shapeRef1849
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5791.1, 7295.4);
+ polygon.ps[1] = Point(5791.1, 7357.4);
+ polygon.ps[2] = Point(5729.1, 7357.4);
+ polygon.ps[3] = Point(5729.1, 7295.4);
+ new ShapeRef(router, polygon, 1849);
+
+ // shapeRef1850
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(686.5, 1689.29);
+ polygon.ps[1] = Point(686.5, 1729.29);
+ polygon.ps[2] = Point(631.5, 1729.29);
+ polygon.ps[3] = Point(631.5, 1689.29);
+ new ShapeRef(router, polygon, 1850);
+
+ // shapeRef1851
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7470.6, 12239.3);
+ polygon.ps[1] = Point(7470.6, 12279.3);
+ polygon.ps[2] = Point(7415.6, 12279.3);
+ polygon.ps[3] = Point(7415.6, 12239.3);
+ new ShapeRef(router, polygon, 1851);
+
+ // shapeRef1852
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4279, 9877.02);
+ polygon.ps[1] = Point(4279, 9961.11);
+ polygon.ps[2] = Point(4232.77, 9961.11);
+ polygon.ps[3] = Point(4232.77, 9877.02);
+ new ShapeRef(router, polygon, 1852);
+
+ // shapeRef1853
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8014.39, 7138.4);
+ polygon.ps[1] = Point(8014.39, 7184.64);
+ polygon.ps[2] = Point(7930.29, 7184.64);
+ polygon.ps[3] = Point(7930.29, 7138.4);
+ new ShapeRef(router, polygon, 1853);
+
+ // shapeRef1854
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7990.86, 7138.4);
+ polygon.ps[1] = Point(7990.86, 7210);
+ polygon.ps[2] = Point(7930.29, 7210);
+ polygon.ps[3] = Point(7930.29, 7138.4);
+ new ShapeRef(router, polygon, 1854);
+
+ // shapeRef1855
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7932.79, 7058.4);
+ polygon.ps[1] = Point(7932.79, 7118.4);
+ polygon.ps[2] = Point(7877.79, 7118.4);
+ polygon.ps[3] = Point(7877.79, 7058.4);
+ new ShapeRef(router, polygon, 1855);
+
+ // shapeRef1856
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8735.39, 4202.51);
+ polygon.ps[1] = Point(8735.39, 4248.75);
+ polygon.ps[2] = Point(8651.29, 4248.75);
+ polygon.ps[3] = Point(8651.29, 4202.51);
+ new ShapeRef(router, polygon, 1856);
+
+ // shapeRef1857
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9138.59, 6161.51);
+ polygon.ps[1] = Point(9138.59, 6206.21);
+ polygon.ps[2] = Point(9080.36, 6206.21);
+ polygon.ps[3] = Point(9080.36, 6161.51);
+ new ShapeRef(router, polygon, 1857);
+
+ // shapeRef1858
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9191.09, 6081.51);
+ polygon.ps[1] = Point(9191.09, 6141.51);
+ polygon.ps[2] = Point(9136.09, 6141.51);
+ polygon.ps[3] = Point(9136.09, 6081.51);
+ new ShapeRef(router, polygon, 1858);
+
+ // shapeRef1859
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15229.5, 1288.06);
+ polygon.ps[1] = Point(15229.5, 1346.29);
+ polygon.ps[2] = Point(15184.8, 1346.29);
+ polygon.ps[3] = Point(15184.8, 1288.06);
+ new ShapeRef(router, polygon, 1859);
+
+ // shapeRef1860
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14782.5, 1276.29);
+ polygon.ps[1] = Point(14782.5, 1336.29);
+ polygon.ps[2] = Point(14727.5, 1336.29);
+ polygon.ps[3] = Point(14727.5, 1276.29);
+ new ShapeRef(router, polygon, 1860);
+
+ // shapeRef1861
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9655.19, 6114.51);
+ polygon.ps[1] = Point(9655.19, 6174.51);
+ polygon.ps[2] = Point(9600.19, 6174.51);
+ polygon.ps[3] = Point(9600.19, 6114.51);
+ new ShapeRef(router, polygon, 1861);
+
+ // shapeRef1862
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9870.19, 7091.4);
+ polygon.ps[1] = Point(9870.19, 7151.4);
+ polygon.ps[2] = Point(9815.19, 7151.4);
+ polygon.ps[3] = Point(9815.19, 7091.4);
+ new ShapeRef(router, polygon, 1862);
+
+ // shapeRef1863
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 8807.22);
+ polygon.ps[1] = Point(4939, 8867.78);
+ polygon.ps[2] = Point(4867.4, 8867.78);
+ polygon.ps[3] = Point(4867.4, 8807.22);
+ new ShapeRef(router, polygon, 1863);
+
+ // shapeRef1864
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7565.1, 9023.19);
+ polygon.ps[1] = Point(7565.1, 9081.42);
+ polygon.ps[2] = Point(7520.4, 9081.42);
+ polygon.ps[3] = Point(7520.4, 9023.19);
+ new ShapeRef(router, polygon, 1864);
+
+ // shapeRef1865
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7171.33, 10250);
+ polygon.ps[1] = Point(7171.33, 10294.7);
+ polygon.ps[2] = Point(7113.1, 10294.7);
+ polygon.ps[3] = Point(7113.1, 10250);
+ new ShapeRef(router, polygon, 1865);
+
+ // shapeRef1866
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8227.29, 9685.42);
+ polygon.ps[1] = Point(8227.29, 9731.65);
+ polygon.ps[2] = Point(8143.2, 9731.65);
+ polygon.ps[3] = Point(8143.2, 9685.42);
+ new ShapeRef(router, polygon, 1866);
+
+ // shapeRef1867
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8311.39, 9685.42);
+ polygon.ps[1] = Point(8311.39, 9731.65);
+ polygon.ps[2] = Point(8227.29, 9731.65);
+ polygon.ps[3] = Point(8227.29, 9685.42);
+ new ShapeRef(router, polygon, 1867);
+
+ // shapeRef1868
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8279.79, 9605.42);
+ polygon.ps[1] = Point(8279.79, 9665.42);
+ polygon.ps[2] = Point(8224.79, 9665.42);
+ polygon.ps[3] = Point(8224.79, 9605.42);
+ new ShapeRef(router, polygon, 1868);
+
+ // shapeRef1869
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8326.29, 9854.02);
+ polygon.ps[1] = Point(8326.29, 9900.25);
+ polygon.ps[2] = Point(8242.2, 9900.25);
+ polygon.ps[3] = Point(8242.2, 9854.02);
+ new ShapeRef(router, polygon, 1869);
+
+ // shapeRef1870
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8410.39, 9854.02);
+ polygon.ps[1] = Point(8410.39, 9900.25);
+ polygon.ps[2] = Point(8326.29, 9900.25);
+ polygon.ps[3] = Point(8326.29, 9854.02);
+ new ShapeRef(router, polygon, 1870);
+
+ // shapeRef1871
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9369.59, 9652.42);
+ polygon.ps[1] = Point(9369.59, 9699.2);
+ polygon.ps[2] = Point(9261.33, 9699.2);
+ polygon.ps[3] = Point(9261.33, 9652.42);
+ new ShapeRef(router, polygon, 1871);
+
+ // shapeRef1872
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(253, 40);
+ polygon.ps[1] = Point(253, 148.265);
+ polygon.ps[2] = Point(206.215, 148.265);
+ polygon.ps[3] = Point(206.215, 40);
+ new ShapeRef(router, polygon, 1872);
+
+ // shapeRef1873
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9360.32);
+ polygon.ps[1] = Point(10314.9, 9444.42);
+ polygon.ps[2] = Point(10268.7, 9444.42);
+ polygon.ps[3] = Point(10268.7, 9360.32);
+ new ShapeRef(router, polygon, 1873);
+
+ // shapeRef1874
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8792.89, 10075);
+ polygon.ps[1] = Point(8792.89, 10133.2);
+ polygon.ps[2] = Point(8748.2, 10133.2);
+ polygon.ps[3] = Point(8748.2, 10075);
+ new ShapeRef(router, polygon, 1874);
+
+ // shapeRef1875
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 5169.4);
+ polygon.ps[1] = Point(5302, 5253.5);
+ polygon.ps[2] = Point(5255.77, 5253.5);
+ polygon.ps[3] = Point(5255.77, 5169.4);
+ new ShapeRef(router, polygon, 1875);
+
+ // shapeRef1876
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10667.2, 8579.99);
+ polygon.ps[1] = Point(10667.2, 8664.09);
+ polygon.ps[2] = Point(10621, 8664.09);
+ polygon.ps[3] = Point(10621, 8579.99);
+ new ShapeRef(router, polygon, 1876);
+
+ // shapeRef1877
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10416.1, 10791.3);
+ polygon.ps[1] = Point(10416.1, 10836);
+ polygon.ps[2] = Point(10357.9, 10836);
+ polygon.ps[3] = Point(10357.9, 10791.3);
+ new ShapeRef(router, polygon, 1877);
+
+ // shapeRef1878
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9138.49, 8348.99);
+ polygon.ps[1] = Point(9138.49, 8388.99);
+ polygon.ps[2] = Point(9062.99, 8388.99);
+ polygon.ps[3] = Point(9062.99, 8348.99);
+ new ShapeRef(router, polygon, 1878);
+
+ // shapeRef1879
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9194.59, 11614.8);
+ polygon.ps[1] = Point(9194.59, 11698.9);
+ polygon.ps[2] = Point(9148.36, 11698.9);
+ polygon.ps[3] = Point(9148.36, 11614.8);
+ new ShapeRef(router, polygon, 1879);
+
+ // shapeRef1880
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9336.59, 5457.98);
+ polygon.ps[1] = Point(9336.59, 5502.67);
+ polygon.ps[2] = Point(9278.36, 5502.67);
+ polygon.ps[3] = Point(9278.36, 5457.98);
+ new ShapeRef(router, polygon, 1880);
+
+ // shapeRef1881
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8921.39, 2378.79);
+ polygon.ps[1] = Point(8921.39, 2418.79);
+ polygon.ps[2] = Point(8845.89, 2418.79);
+ polygon.ps[3] = Point(8845.89, 2378.79);
+ new ShapeRef(router, polygon, 1881);
+
+ // shapeRef1882
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9155.49, 2361.29);
+ polygon.ps[1] = Point(9155.49, 2401.29);
+ polygon.ps[2] = Point(9029.99, 2401.29);
+ polygon.ps[3] = Point(9029.99, 2361.29);
+ new ShapeRef(router, polygon, 1882);
+
+ // shapeRef1883
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8670.79, 1488.29);
+ polygon.ps[1] = Point(8670.79, 1548.29);
+ polygon.ps[2] = Point(8615.79, 1548.29);
+ polygon.ps[3] = Point(8615.79, 1488.29);
+ new ShapeRef(router, polygon, 1883);
+
+ // shapeRef1884
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15117.8, 1356.29);
+ polygon.ps[1] = Point(15117.8, 1416.29);
+ polygon.ps[2] = Point(15062.8, 1416.29);
+ polygon.ps[3] = Point(15062.8, 1356.29);
+ new ShapeRef(router, polygon, 1884);
+
+ // shapeRef1885
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8318.52, 818.091);
+ polygon.ps[1] = Point(8318.52, 862.785);
+ polygon.ps[2] = Point(8260.29, 862.785);
+ polygon.ps[3] = Point(8260.29, 818.091);
+ new ShapeRef(router, polygon, 1885);
+
+ // shapeRef1886
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8250.29, 914.785);
+ polygon.ps[1] = Point(8250.29, 954.785);
+ polygon.ps[2] = Point(8174.79, 954.785);
+ polygon.ps[3] = Point(8174.79, 914.785);
+ new ShapeRef(router, polygon, 1886);
+
+ // shapeRef1887
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9039.49, 738.091);
+ polygon.ps[1] = Point(9039.49, 798.091);
+ polygon.ps[2] = Point(8984.49, 798.091);
+ polygon.ps[3] = Point(8984.49, 738.091);
+ new ShapeRef(router, polygon, 1887);
+
+ // shapeRef1888
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 4968.9);
+ polygon.ps[1] = Point(12617, 5008.9);
+ polygon.ps[2] = Point(12541.5, 5008.9);
+ polygon.ps[3] = Point(12541.5, 4968.9);
+ new ShapeRef(router, polygon, 1888);
+
+ // shapeRef1889
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 5206.4);
+ polygon.ps[1] = Point(12521.5, 5314.67);
+ polygon.ps[2] = Point(12474.7, 5314.67);
+ polygon.ps[3] = Point(12474.7, 5206.4);
+ new ShapeRef(router, polygon, 1889);
+
+ // shapeRef1890
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12617, 5277.17);
+ polygon.ps[1] = Point(12617, 5317.17);
+ polygon.ps[2] = Point(12541.5, 5317.17);
+ polygon.ps[3] = Point(12541.5, 5277.17);
+ new ShapeRef(router, polygon, 1890);
+
+ // shapeRef1891
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12749.7, 5259.98);
+ polygon.ps[1] = Point(12749.7, 5304.67);
+ polygon.ps[2] = Point(12691.5, 5304.67);
+ polygon.ps[3] = Point(12691.5, 5259.98);
+ new ShapeRef(router, polygon, 1891);
+
+ // shapeRef1892
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12694, 5324.67);
+ polygon.ps[1] = Point(12694, 5384.67);
+ polygon.ps[2] = Point(12639, 5384.67);
+ polygon.ps[3] = Point(12639, 5324.67);
+ new ShapeRef(router, polygon, 1892);
+
+ // shapeRef1893
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13401.5, 3842.51);
+ polygon.ps[1] = Point(13401.5, 3882.51);
+ polygon.ps[2] = Point(13276, 3882.51);
+ polygon.ps[3] = Point(13276, 3842.51);
+ new ShapeRef(router, polygon, 1893);
+
+ // shapeRef1894
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13351.5, 3862.51);
+ polygon.ps[1] = Point(13351.5, 3902.51);
+ polygon.ps[2] = Point(13276, 3902.51);
+ polygon.ps[3] = Point(13276, 3862.51);
+ new ShapeRef(router, polygon, 1894);
+
+ // shapeRef1895
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12925, 4439.4);
+ polygon.ps[1] = Point(12925, 4499.4);
+ polygon.ps[2] = Point(12870, 4499.4);
+ polygon.ps[3] = Point(12870, 4439.4);
+ new ShapeRef(router, polygon, 1895);
+
+ // shapeRef1896
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 1478.29);
+ polygon.ps[1] = Point(11353.1, 1562.38);
+ polygon.ps[2] = Point(11306.9, 1562.38);
+ polygon.ps[3] = Point(11306.9, 1478.29);
+ new ShapeRef(router, polygon, 1896);
+
+ // shapeRef1897
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12075.6, 1739.79);
+ polygon.ps[1] = Point(12075.6, 1779.79);
+ polygon.ps[2] = Point(12000.1, 1779.79);
+ polygon.ps[3] = Point(12000.1, 1739.79);
+ new ShapeRef(router, polygon, 1897);
+
+ // shapeRef1898
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12157.6, 1672.29);
+ polygon.ps[1] = Point(12157.6, 1732.29);
+ polygon.ps[2] = Point(12102.6, 1732.29);
+ polygon.ps[3] = Point(12102.6, 1672.29);
+ new ShapeRef(router, polygon, 1898);
+
+ // shapeRef1899
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13957.5, 8410.49);
+ polygon.ps[1] = Point(13957.5, 8450.49);
+ polygon.ps[2] = Point(13882, 8450.49);
+ polygon.ps[3] = Point(13882, 8410.49);
+ new ShapeRef(router, polygon, 1899);
+
+ // shapeRef1900
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8703.79, 4122.51);
+ polygon.ps[1] = Point(8703.79, 4182.51);
+ polygon.ps[2] = Point(8648.79, 4182.51);
+ polygon.ps[3] = Point(8648.79, 4122.51);
+ new ShapeRef(router, polygon, 1900);
+
+ // shapeRef1901
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6841.33, 3575.51);
+ polygon.ps[1] = Point(6841.33, 3620.21);
+ polygon.ps[2] = Point(6783.1, 3620.21);
+ polygon.ps[3] = Point(6783.1, 3575.51);
+ new ShapeRef(router, polygon, 1901);
+
+ // shapeRef1902
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5694.1, 3575.51);
+ polygon.ps[1] = Point(5694.1, 3620.21);
+ polygon.ps[2] = Point(5635.87, 3620.21);
+ polygon.ps[3] = Point(5635.87, 3575.51);
+ new ShapeRef(router, polygon, 1902);
+
+ // shapeRef1903
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 3771.29);
+ polygon.ps[1] = Point(5302, 3829.51);
+ polygon.ps[2] = Point(5257.31, 3829.51);
+ polygon.ps[3] = Point(5257.31, 3771.29);
+ new ShapeRef(router, polygon, 1903);
+
+ // shapeRef1904
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 3829.51);
+ polygon.ps[1] = Point(5302, 3890.07);
+ polygon.ps[2] = Point(5230.4, 3890.07);
+ polygon.ps[3] = Point(5230.4, 3829.51);
+ new ShapeRef(router, polygon, 1904);
+
+ // shapeRef1905
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 7773.29);
+ polygon.ps[1] = Point(5034.5, 7813.29);
+ polygon.ps[2] = Point(4959, 7813.29);
+ polygon.ps[3] = Point(4959, 7773.29);
+ new ShapeRef(router, polygon, 1905);
+
+ // shapeRef1906
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 8381.99);
+ polygon.ps[1] = Point(5034.5, 8421.99);
+ polygon.ps[2] = Point(4959, 8421.99);
+ polygon.ps[3] = Point(4959, 8381.99);
+ new ShapeRef(router, polygon, 1906);
+
+ // shapeRef1907
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 8746.66);
+ polygon.ps[1] = Point(4939, 8807.22);
+ polygon.ps[2] = Point(4867.4, 8807.22);
+ polygon.ps[3] = Point(4867.4, 8746.66);
+ new ShapeRef(router, polygon, 1907);
+
+ // shapeRef1908
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5084.5, 8787.22);
+ polygon.ps[1] = Point(5084.5, 8827.22);
+ polygon.ps[2] = Point(4959, 8827.22);
+ polygon.ps[3] = Point(4959, 8787.22);
+ new ShapeRef(router, polygon, 1908);
+
+ // shapeRef1909
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 610.091);
+ polygon.ps[1] = Point(11353.1, 668.318);
+ polygon.ps[2] = Point(11308.4, 668.318);
+ polygon.ps[3] = Point(11308.4, 610.091);
+ new ShapeRef(router, polygon, 1909);
+
+ // shapeRef1910
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 551.864);
+ polygon.ps[1] = Point(11353.1, 610.091);
+ polygon.ps[2] = Point(11308.4, 610.091);
+ polygon.ps[3] = Point(11308.4, 551.864);
+ new ShapeRef(router, polygon, 1910);
+
+ // shapeRef1911
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14986.9, 1291.59);
+ polygon.ps[1] = Point(14986.9, 1336.29);
+ polygon.ps[2] = Point(14928.7, 1336.29);
+ polygon.ps[3] = Point(14928.7, 1291.59);
+ new ShapeRef(router, polygon, 1911);
+
+ // shapeRef1912
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15835.6, 1291.59);
+ polygon.ps[1] = Point(15835.6, 1336.29);
+ polygon.ps[2] = Point(15777.4, 1336.29);
+ polygon.ps[3] = Point(15777.4, 1291.59);
+ new ShapeRef(router, polygon, 1912);
+
+ // shapeRef1913
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15838.1, 1356.29);
+ polygon.ps[1] = Point(15838.1, 1416.29);
+ polygon.ps[2] = Point(15783.1, 1416.29);
+ polygon.ps[3] = Point(15783.1, 1356.29);
+ new ShapeRef(router, polygon, 1913);
+
+ // shapeRef1914
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16353.6, 808.091);
+ polygon.ps[1] = Point(16353.6, 866.318);
+ polygon.ps[2] = Point(16308.9, 866.318);
+ polygon.ps[3] = Point(16308.9, 808.091);
+ new ShapeRef(router, polygon, 1914);
+
+ // shapeRef1915
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16449.1, 770.591);
+ polygon.ps[1] = Point(16449.1, 810.591);
+ polygon.ps[2] = Point(16373.6, 810.591);
+ polygon.ps[3] = Point(16373.6, 770.591);
+ new ShapeRef(router, polygon, 1915);
+
+ // shapeRef1916
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16251.1, 770.591);
+ polygon.ps[1] = Point(16251.1, 810.591);
+ polygon.ps[2] = Point(16175.6, 810.591);
+ polygon.ps[3] = Point(16175.6, 770.591);
+ new ShapeRef(router, polygon, 1916);
+
+ // shapeRef1917
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12023.1, 7435.4);
+ polygon.ps[1] = Point(12023.1, 7480.1);
+ polygon.ps[2] = Point(11964.9, 7480.1);
+ polygon.ps[3] = Point(11964.9, 7435.4);
+ new ShapeRef(router, polygon, 1917);
+
+ // shapeRef1918
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17042.8, 7194.4);
+ polygon.ps[1] = Point(17042.8, 7252.63);
+ polygon.ps[2] = Point(16998.1, 7252.63);
+ polygon.ps[3] = Point(16998.1, 7194.4);
+ new ShapeRef(router, polygon, 1918);
+
+ // shapeRef1919
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17138.3, 7156.9);
+ polygon.ps[1] = Point(17138.3, 7196.9);
+ polygon.ps[2] = Point(17062.8, 7196.9);
+ polygon.ps[3] = Point(17062.8, 7156.9);
+ new ShapeRef(router, polygon, 1919);
+
+ // shapeRef1920
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16524.8, 7435.4);
+ polygon.ps[1] = Point(16524.8, 7480.1);
+ polygon.ps[2] = Point(16466.6, 7480.1);
+ polygon.ps[3] = Point(16466.6, 7435.4);
+ new ShapeRef(router, polygon, 1920);
+
+ // shapeRef1921
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16524.8, 7492.1);
+ polygon.ps[1] = Point(16524.8, 7536.79);
+ polygon.ps[2] = Point(16466.6, 7536.79);
+ polygon.ps[3] = Point(16466.6, 7492.1);
+ new ShapeRef(router, polygon, 1921);
+
+ // shapeRef1922
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16583, 7492.1);
+ polygon.ps[1] = Point(16583, 7536.79);
+ polygon.ps[2] = Point(16524.8, 7536.79);
+ polygon.ps[3] = Point(16524.8, 7492.1);
+ new ShapeRef(router, polygon, 1922);
+
+ // shapeRef1923
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18574.3, 11870.9);
+ polygon.ps[1] = Point(18574.3, 11915.6);
+ polygon.ps[2] = Point(18516, 11915.6);
+ polygon.ps[3] = Point(18516, 11870.9);
+ new ShapeRef(router, polygon, 1923);
+
+ // shapeRef1924
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18498.5, 11790.9);
+ polygon.ps[1] = Point(18498.5, 11850.9);
+ polygon.ps[2] = Point(18443.5, 11850.9);
+ polygon.ps[3] = Point(18443.5, 11790.9);
+ new ShapeRef(router, polygon, 1924);
+
+ // shapeRef1925
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18568.5, 11755.9);
+ polygon.ps[1] = Point(18568.5, 11850.9);
+ polygon.ps[2] = Point(18513.5, 11850.9);
+ polygon.ps[3] = Point(18513.5, 11755.9);
+ new ShapeRef(router, polygon, 1925);
+
+ // shapeRef1926
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18518.5, 11755.9);
+ polygon.ps[1] = Point(18518.5, 11850.9);
+ polygon.ps[2] = Point(18463.5, 11850.9);
+ polygon.ps[3] = Point(18463.5, 11755.9);
+ new ShapeRef(router, polygon, 1926);
+
+ // shapeRef1927
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8351.52, 435.265);
+ polygon.ps[1] = Point(8351.52, 479.96);
+ polygon.ps[2] = Point(8293.29, 479.96);
+ polygon.ps[3] = Point(8293.29, 435.265);
+ new ShapeRef(router, polygon, 1927);
+
+ // shapeRef1928
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10894.7, 5620.4);
+ polygon.ps[1] = Point(10894.7, 5660.4);
+ polygon.ps[2] = Point(10819.2, 5660.4);
+ polygon.ps[3] = Point(10819.2, 5620.4);
+ new ShapeRef(router, polygon, 1928);
+
+ // shapeRef1929
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11240.7, 4291.11);
+ polygon.ps[1] = Point(11240.7, 4351.11);
+ polygon.ps[2] = Point(11185.7, 4351.11);
+ polygon.ps[3] = Point(11185.7, 4291.11);
+ new ShapeRef(router, polygon, 1929);
+
+ // shapeRef1930
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11296.4, 4454.71);
+ polygon.ps[1] = Point(11296.4, 4499.4);
+ polygon.ps[2] = Point(11238.2, 4499.4);
+ polygon.ps[3] = Point(11238.2, 4454.71);
+ new ShapeRef(router, polygon, 1930);
+
+ // shapeRef1931
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 4454.71);
+ polygon.ps[1] = Point(11238.2, 4499.4);
+ polygon.ps[2] = Point(11180, 4499.4);
+ polygon.ps[3] = Point(11180, 4454.71);
+ new ShapeRef(router, polygon, 1931);
+
+ // shapeRef1932
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11240.7, 4519.4);
+ polygon.ps[1] = Point(11240.7, 4579.4);
+ polygon.ps[2] = Point(11185.7, 4579.4);
+ polygon.ps[3] = Point(11185.7, 4519.4);
+ new ShapeRef(router, polygon, 1932);
+
+ // shapeRef1933
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14650.5, 6576.51);
+ polygon.ps[1] = Point(14650.5, 6636.51);
+ polygon.ps[2] = Point(14595.5, 6636.51);
+ polygon.ps[3] = Point(14595.5, 6576.51);
+ new ShapeRef(router, polygon, 1933);
+
+ // shapeRef1934
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5651.1, 4575.4);
+ polygon.ps[1] = Point(5651.1, 4633.63);
+ polygon.ps[2] = Point(5606.4, 4633.63);
+ polygon.ps[3] = Point(5606.4, 4575.4);
+ new ShapeRef(router, polygon, 1934);
+
+ // shapeRef1935
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18322, 8509.49);
+ polygon.ps[1] = Point(18322, 8549.49);
+ polygon.ps[2] = Point(18246.5, 8549.49);
+ polygon.ps[3] = Point(18246.5, 8509.49);
+ new ShapeRef(router, polygon, 1935);
+
+ // shapeRef1936
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10596.3, 10692.3);
+ polygon.ps[1] = Point(10596.3, 10738.5);
+ polygon.ps[2] = Point(10512.2, 10738.5);
+ polygon.ps[3] = Point(10512.2, 10692.3);
+ new ShapeRef(router, polygon, 1936);
+
+ // shapeRef1937
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10106, 10334.5);
+ polygon.ps[1] = Point(10106, 10374.5);
+ polygon.ps[2] = Point(10030.5, 10374.5);
+ polygon.ps[3] = Point(10030.5, 10334.5);
+ new ShapeRef(router, polygon, 1937);
+
+ // shapeRef1938
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8684.29, 11305.2);
+ polygon.ps[1] = Point(8684.29, 11376.8);
+ polygon.ps[2] = Point(8623.73, 11376.8);
+ polygon.ps[3] = Point(8623.73, 11305.2);
+ new ShapeRef(router, polygon, 1938);
+
+ // shapeRef1939
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7953.29, 11013.6);
+ polygon.ps[1] = Point(7953.29, 11071.9);
+ polygon.ps[2] = Point(7908.6, 11071.9);
+ polygon.ps[3] = Point(7908.6, 11013.6);
+ new ShapeRef(router, polygon, 1939);
+
+ // shapeRef1940
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6637.6, 7577.29);
+ polygon.ps[1] = Point(6637.6, 7617.29);
+ polygon.ps[2] = Point(6562.1, 7617.29);
+ polygon.ps[3] = Point(6562.1, 7577.29);
+ new ShapeRef(router, polygon, 1940);
+
+ // shapeRef1941
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11431.6, 11562.9);
+ polygon.ps[1] = Point(11431.6, 11622.9);
+ polygon.ps[2] = Point(11376.6, 11622.9);
+ polygon.ps[3] = Point(11376.6, 11562.9);
+ new ShapeRef(router, polygon, 1941);
+
+ // shapeRef1942
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16069.1, 11642.9);
+ polygon.ps[1] = Point(16069.1, 11702.9);
+ polygon.ps[2] = Point(16014.1, 11702.9);
+ polygon.ps[3] = Point(16014.1, 11642.9);
+ new ShapeRef(router, polygon, 1942);
+
+ // shapeRef1943
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16152.1, 11510.2);
+ polygon.ps[1] = Point(16152.1, 11550.2);
+ polygon.ps[2] = Point(16076.6, 11550.2);
+ polygon.ps[3] = Point(16076.6, 11510.2);
+ new ShapeRef(router, polygon, 1943);
+
+ // shapeRef1944
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14202, 12435.7);
+ polygon.ps[1] = Point(14202, 12495.7);
+ polygon.ps[2] = Point(14147, 12495.7);
+ polygon.ps[3] = Point(14147, 12435.7);
+ new ShapeRef(router, polygon, 1944);
+
+ // shapeRef1945
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9491.59, 7301.18);
+ polygon.ps[1] = Point(9491.59, 7359.4);
+ polygon.ps[2] = Point(9446.9, 7359.4);
+ polygon.ps[3] = Point(9446.9, 7301.18);
+ new ShapeRef(router, polygon, 1945);
+
+ // shapeRef1946
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9491.59, 7359.4);
+ polygon.ps[1] = Point(9491.59, 7417.63);
+ polygon.ps[2] = Point(9446.9, 7417.63);
+ polygon.ps[3] = Point(9446.9, 7359.4);
+ new ShapeRef(router, polygon, 1946);
+
+ // shapeRef1947
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9587.09, 7321.9);
+ polygon.ps[1] = Point(9587.09, 7361.9);
+ polygon.ps[2] = Point(9511.59, 7361.9);
+ polygon.ps[3] = Point(9511.59, 7321.9);
+ new ShapeRef(router, polygon, 1947);
+
+ // shapeRef1948
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16066.6, 11804.9);
+ polygon.ps[1] = Point(16066.6, 11851.1);
+ polygon.ps[2] = Point(15982.5, 11851.1);
+ polygon.ps[3] = Point(15982.5, 11804.9);
+ new ShapeRef(router, polygon, 1948);
+
+ // shapeRef1949
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15138.3, 10830.5);
+ polygon.ps[1] = Point(15138.3, 10914.6);
+ polygon.ps[2] = Point(15092.1, 10914.6);
+ polygon.ps[3] = Point(15092.1, 10830.5);
+ new ShapeRef(router, polygon, 1949);
+
+ // shapeRef1950
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15233.8, 10912.1);
+ polygon.ps[1] = Point(15233.8, 10952.1);
+ polygon.ps[2] = Point(15158.3, 10952.1);
+ polygon.ps[3] = Point(15158.3, 10912.1);
+ new ShapeRef(router, polygon, 1950);
+
+ // shapeRef1951
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(649, 64.1679);
+ polygon.ps[1] = Point(649, 148.265);
+ polygon.ps[2] = Point(602.765, 148.265);
+ polygon.ps[3] = Point(602.765, 64.1679);
+ new ShapeRef(router, polygon, 1951);
+
+ // shapeRef1952
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15233.8, 11856.4);
+ polygon.ps[1] = Point(15233.8, 11896.4);
+ polygon.ps[2] = Point(15158.3, 11896.4);
+ polygon.ps[3] = Point(15158.3, 11856.4);
+ new ShapeRef(router, polygon, 1952);
+
+ // shapeRef1953
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7982.79, 4405.9);
+ polygon.ps[1] = Point(7982.79, 4445.9);
+ polygon.ps[2] = Point(7907.29, 4445.9);
+ polygon.ps[3] = Point(7907.29, 4405.9);
+ new ShapeRef(router, polygon, 1953);
+
+ // shapeRef1954
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7693.6, 3005.79);
+ polygon.ps[1] = Point(7693.6, 3045.79);
+ polygon.ps[2] = Point(7618.1, 3045.79);
+ polygon.ps[3] = Point(7618.1, 3005.79);
+ new ShapeRef(router, polygon, 1954);
+
+ // shapeRef1955
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10035.2, 9938.52);
+ polygon.ps[1] = Point(10035.2, 9978.52);
+ polygon.ps[2] = Point(9959.69, 9978.52);
+ polygon.ps[3] = Point(9959.69, 9938.52);
+ new ShapeRef(router, polygon, 1955);
+
+ // shapeRef1956
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12975, 12388.7);
+ polygon.ps[1] = Point(12975, 12448.7);
+ polygon.ps[2] = Point(12920, 12448.7);
+ polygon.ps[3] = Point(12920, 12388.7);
+ new ShapeRef(router, polygon, 1956);
+
+ // shapeRef1957
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7946.29, 7118.4);
+ polygon.ps[1] = Point(7946.29, 7138.4);
+ polygon.ps[2] = Point(7914.29, 7138.4);
+ polygon.ps[3] = Point(7914.29, 7118.4);
+ new ShapeRef(router, polygon, 1957);
+
+ // shapeRef1958
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9154.59, 6141.51);
+ polygon.ps[1] = Point(9154.59, 6161.51);
+ polygon.ps[2] = Point(9122.59, 6161.51);
+ polygon.ps[3] = Point(9122.59, 6141.51);
+ new ShapeRef(router, polygon, 1958);
+
+ // shapeRef1959
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9833.69, 7151.4);
+ polygon.ps[1] = Point(9833.69, 7171.4);
+ polygon.ps[2] = Point(9801.69, 7171.4);
+ polygon.ps[3] = Point(9801.69, 7151.4);
+ new ShapeRef(router, polygon, 1959);
+
+ // shapeRef1960
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10466.9, 7860.79);
+ polygon.ps[1] = Point(10466.9, 7892.79);
+ polygon.ps[2] = Point(10446.9, 7892.79);
+ polygon.ps[3] = Point(10446.9, 7860.79);
+ new ShapeRef(router, polygon, 1960);
+
+ // shapeRef1961
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7585.1, 9065.42);
+ polygon.ps[1] = Point(7585.1, 9097.42);
+ polygon.ps[2] = Point(7565.1, 9097.42);
+ polygon.ps[3] = Point(7565.1, 9065.42);
+ new ShapeRef(router, polygon, 1961);
+
+ // shapeRef1962
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15249.5, 1330.29);
+ polygon.ps[1] = Point(15249.5, 1362.29);
+ polygon.ps[2] = Point(15229.5, 1362.29);
+ polygon.ps[3] = Point(15229.5, 1330.29);
+ new ShapeRef(router, polygon, 1962);
+
+ // shapeRef1963
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9385.59, 9632.42);
+ polygon.ps[1] = Point(9385.59, 9652.42);
+ polygon.ps[2] = Point(9353.59, 9652.42);
+ polygon.ps[3] = Point(9353.59, 9632.42);
+ new ShapeRef(router, polygon, 1963);
+
+ // shapeRef1964
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7519.1, 7992.79);
+ polygon.ps[1] = Point(7519.1, 8024.79);
+ polygon.ps[2] = Point(7499.1, 8024.79);
+ polygon.ps[3] = Point(7499.1, 7992.79);
+ new ShapeRef(router, polygon, 1964);
+
+ // shapeRef1965
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10687.2, 8563.99);
+ polygon.ps[1] = Point(10687.2, 8595.99);
+ polygon.ps[2] = Point(10667.2, 8595.99);
+ polygon.ps[3] = Point(10667.2, 8563.99);
+ new ShapeRef(router, polygon, 1965);
+
+ // shapeRef1966
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10522.2, 9131.42);
+ polygon.ps[1] = Point(10522.2, 9163.42);
+ polygon.ps[2] = Point(10502.2, 9163.42);
+ polygon.ps[3] = Point(10502.2, 9131.42);
+ new ShapeRef(router, polygon, 1966);
+
+ // shapeRef1967
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9062.99, 8332.99);
+ polygon.ps[1] = Point(9062.99, 8364.99);
+ polygon.ps[2] = Point(9042.99, 8364.99);
+ polygon.ps[3] = Point(9042.99, 8332.99);
+ new ShapeRef(router, polygon, 1967);
+
+ // shapeRef1968
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8845.89, 4625.4);
+ polygon.ps[1] = Point(8845.89, 4657.4);
+ polygon.ps[2] = Point(8825.89, 4657.4);
+ polygon.ps[3] = Point(8825.89, 4625.4);
+ new ShapeRef(router, polygon, 1968);
+
+ // shapeRef1969
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8845.89, 3945.51);
+ polygon.ps[1] = Point(8845.89, 3977.51);
+ polygon.ps[2] = Point(8825.89, 3977.51);
+ polygon.ps[3] = Point(8825.89, 3945.51);
+ new ShapeRef(router, polygon, 1969);
+
+ // shapeRef1970
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9352.59, 5502.67);
+ polygon.ps[1] = Point(9352.59, 5522.67);
+ polygon.ps[2] = Point(9320.59, 5522.67);
+ polygon.ps[3] = Point(9320.59, 5502.67);
+ new ShapeRef(router, polygon, 1970);
+
+ // shapeRef1971
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8845.89, 3417.51);
+ polygon.ps[1] = Point(8845.89, 3449.51);
+ polygon.ps[2] = Point(8825.89, 3449.51);
+ polygon.ps[3] = Point(8825.89, 3417.51);
+ new ShapeRef(router, polygon, 1971);
+
+ // shapeRef1972
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8845.89, 2893.29);
+ polygon.ps[1] = Point(8845.89, 2925.29);
+ polygon.ps[2] = Point(8825.89, 2925.29);
+ polygon.ps[3] = Point(8825.89, 2893.29);
+ new ShapeRef(router, polygon, 1972);
+
+ // shapeRef1973
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8845.89, 2365.29);
+ polygon.ps[1] = Point(8845.89, 2397.29);
+ polygon.ps[2] = Point(8825.89, 2397.29);
+ polygon.ps[3] = Point(8825.89, 2365.29);
+ new ShapeRef(router, polygon, 1973);
+
+ // shapeRef1974
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8441.29, 2098.29);
+ polygon.ps[1] = Point(8441.29, 2118.29);
+ polygon.ps[2] = Point(8409.29, 2118.29);
+ polygon.ps[3] = Point(8409.29, 2098.29);
+ new ShapeRef(router, polygon, 1974);
+
+ // shapeRef1975
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8441.29, 2140.29);
+ polygon.ps[1] = Point(8441.29, 2160.29);
+ polygon.ps[2] = Point(8409.29, 2160.29);
+ polygon.ps[3] = Point(8409.29, 2140.29);
+ new ShapeRef(router, polygon, 1975);
+
+ // shapeRef1976
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15390.5, 1336.29);
+ polygon.ps[1] = Point(15390.5, 1356.29);
+ polygon.ps[2] = Point(15358.5, 1356.29);
+ polygon.ps[3] = Point(15358.5, 1336.29);
+ new ShapeRef(router, polygon, 1976);
+
+ // shapeRef1977
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8468.29, 1099.29);
+ polygon.ps[1] = Point(8468.29, 1131.29);
+ polygon.ps[2] = Point(8448.29, 1131.29);
+ polygon.ps[3] = Point(8448.29, 1099.29);
+ new ShapeRef(router, polygon, 1977);
+
+ // shapeRef1978
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15131.3, 1336.29);
+ polygon.ps[1] = Point(15131.3, 1356.29);
+ polygon.ps[2] = Point(15099.3, 1356.29);
+ polygon.ps[3] = Point(15099.3, 1336.29);
+ new ShapeRef(router, polygon, 1978);
+
+ // shapeRef1979
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9002.99, 798.091);
+ polygon.ps[1] = Point(9002.99, 818.091);
+ polygon.ps[2] = Point(8970.99, 818.091);
+ polygon.ps[3] = Point(8970.99, 798.091);
+ new ShapeRef(router, polygon, 1979);
+
+ // shapeRef1980
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9002.99, 1105.29);
+ polygon.ps[1] = Point(9002.99, 1125.29);
+ polygon.ps[2] = Point(8970.99, 1125.29);
+ polygon.ps[3] = Point(8970.99, 1105.29);
+ new ShapeRef(router, polygon, 1980);
+
+ // shapeRef1981
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8006.29, 967.285);
+ polygon.ps[1] = Point(8006.29, 999.285);
+ polygon.ps[2] = Point(7986.29, 999.285);
+ polygon.ps[3] = Point(7986.29, 967.285);
+ new ShapeRef(router, polygon, 1981);
+
+ // shapeRef1982
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15493.3, 1336.29);
+ polygon.ps[1] = Point(15493.3, 1356.29);
+ polygon.ps[2] = Point(15461.3, 1356.29);
+ polygon.ps[3] = Point(15461.3, 1336.29);
+ new ShapeRef(router, polygon, 1982);
+
+ // shapeRef1983
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9767.69, 798.091);
+ polygon.ps[1] = Point(9767.69, 818.091);
+ polygon.ps[2] = Point(9735.69, 818.091);
+ polygon.ps[3] = Point(9735.69, 798.091);
+ new ShapeRef(router, polygon, 1983);
+
+ // shapeRef1984
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10792.2, 798.091);
+ polygon.ps[1] = Point(10792.2, 818.091);
+ polygon.ps[2] = Point(10760.2, 818.091);
+ polygon.ps[3] = Point(10760.2, 798.091);
+ new ShapeRef(router, polygon, 1984);
+
+ // shapeRef1985
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10984.2, 1099.29);
+ polygon.ps[1] = Point(10984.2, 1131.29);
+ polygon.ps[2] = Point(10964.2, 1131.29);
+ polygon.ps[3] = Point(10964.2, 1099.29);
+ new ShapeRef(router, polygon, 1985);
+
+ // shapeRef1986
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10792.2, 1270.29);
+ polygon.ps[1] = Point(10792.2, 1290.29);
+ polygon.ps[2] = Point(10760.2, 1290.29);
+ polygon.ps[3] = Point(10760.2, 1270.29);
+ new ShapeRef(router, polygon, 1986);
+
+ // shapeRef1987
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9385.59, 1270.29);
+ polygon.ps[1] = Point(9385.59, 1290.29);
+ polygon.ps[2] = Point(9353.59, 1290.29);
+ polygon.ps[3] = Point(9353.59, 1270.29);
+ new ShapeRef(router, polygon, 1987);
+
+ // shapeRef1988
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9662.69, 1693.29);
+ polygon.ps[1] = Point(9662.69, 1725.29);
+ polygon.ps[2] = Point(9642.69, 1725.29);
+ polygon.ps[3] = Point(9642.69, 1693.29);
+ new ShapeRef(router, polygon, 1988);
+
+ // shapeRef1989
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9319.59, 1999.29);
+ polygon.ps[1] = Point(9319.59, 2019.29);
+ polygon.ps[2] = Point(9287.59, 2019.29);
+ polygon.ps[3] = Point(9287.59, 1999.29);
+ new ShapeRef(router, polygon, 1989);
+
+ // shapeRef1990
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10984.2, 1462.29);
+ polygon.ps[1] = Point(10984.2, 1494.29);
+ polygon.ps[2] = Point(10964.2, 1494.29);
+ polygon.ps[3] = Point(10964.2, 1462.29);
+ new ShapeRef(router, polygon, 1990);
+
+ // shapeRef1991
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11155.2, 1633.29);
+ polygon.ps[1] = Point(11155.2, 1653.29);
+ polygon.ps[2] = Point(11123.2, 1653.29);
+ polygon.ps[3] = Point(11123.2, 1633.29);
+ new ShapeRef(router, polygon, 1991);
+
+ // shapeRef1992
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10984.2, 594.091);
+ polygon.ps[1] = Point(10984.2, 626.091);
+ polygon.ps[2] = Point(10964.2, 626.091);
+ polygon.ps[3] = Point(10964.2, 594.091);
+ new ShapeRef(router, polygon, 1992);
+
+ // shapeRef1993
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10561.2, 4351.11);
+ polygon.ps[1] = Point(10561.2, 4371.11);
+ polygon.ps[2] = Point(10529.2, 4371.11);
+ polygon.ps[3] = Point(10529.2, 4351.11);
+ new ShapeRef(router, polygon, 1993);
+
+ // shapeRef1994
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10957.2, 4351.11);
+ polygon.ps[1] = Point(10957.2, 4371.11);
+ polygon.ps[2] = Point(10925.2, 4371.11);
+ polygon.ps[3] = Point(10925.2, 4351.11);
+ new ShapeRef(router, polygon, 1994);
+
+ // shapeRef1995
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11610.1, 4351.11);
+ polygon.ps[1] = Point(11610.1, 4371.11);
+ polygon.ps[2] = Point(11578.1, 4371.11);
+ polygon.ps[3] = Point(11578.1, 4351.11);
+ new ShapeRef(router, polygon, 1995);
+
+ // shapeRef1996
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10627.2, 4499.4);
+ polygon.ps[1] = Point(10627.2, 4519.4);
+ polygon.ps[2] = Point(10595.2, 4519.4);
+ polygon.ps[3] = Point(10595.2, 4499.4);
+ new ShapeRef(router, polygon, 1996);
+
+ // shapeRef1997
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12237.1, 4351.11);
+ polygon.ps[1] = Point(12237.1, 4371.11);
+ polygon.ps[2] = Point(12205.1, 4371.11);
+ polygon.ps[3] = Point(12205.1, 4351.11);
+ new ShapeRef(router, polygon, 1997);
+
+ // shapeRef1998
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 4559.4);
+ polygon.ps[1] = Point(12541.5, 4591.4);
+ polygon.ps[2] = Point(12521.5, 4591.4);
+ polygon.ps[3] = Point(12521.5, 4559.4);
+ new ShapeRef(router, polygon, 1998);
+
+ // shapeRef1999
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 4955.4);
+ polygon.ps[1] = Point(12541.5, 4987.4);
+ polygon.ps[2] = Point(12521.5, 4987.4);
+ polygon.ps[3] = Point(12521.5, 4955.4);
+ new ShapeRef(router, polygon, 1999);
+
+ // shapeRef2000
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 5298.67);
+ polygon.ps[1] = Point(12541.5, 5330.67);
+ polygon.ps[2] = Point(12521.5, 5330.67);
+ polygon.ps[3] = Point(12521.5, 5298.67);
+ new ShapeRef(router, polygon, 2000);
+
+ // shapeRef2001
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12938.5, 4499.4);
+ polygon.ps[1] = Point(12938.5, 4519.4);
+ polygon.ps[2] = Point(12906.5, 4519.4);
+ polygon.ps[3] = Point(12906.5, 4499.4);
+ new ShapeRef(router, polygon, 2001);
+
+ // shapeRef2002
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13276, 3846.51);
+ polygon.ps[1] = Point(13276, 3878.51);
+ polygon.ps[2] = Point(13256, 3878.51);
+ polygon.ps[3] = Point(13256, 3846.51);
+ new ShapeRef(router, polygon, 2002);
+
+ // shapeRef2003
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 3978.51);
+ polygon.ps[1] = Point(12541.5, 4010.51);
+ polygon.ps[2] = Point(12521.5, 4010.51);
+ polygon.ps[3] = Point(12521.5, 3978.51);
+ new ShapeRef(router, polygon, 2003);
+
+ // shapeRef2004
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 3516.51);
+ polygon.ps[1] = Point(12541.5, 3548.51);
+ polygon.ps[2] = Point(12521.5, 3548.51);
+ polygon.ps[3] = Point(12521.5, 3516.51);
+ new ShapeRef(router, polygon, 2004);
+
+ // shapeRef2005
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 3025.29);
+ polygon.ps[1] = Point(12541.5, 3057.29);
+ polygon.ps[2] = Point(12521.5, 3057.29);
+ polygon.ps[3] = Point(12521.5, 3025.29);
+ new ShapeRef(router, polygon, 2005);
+
+ // shapeRef2006
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12541.5, 2266.29);
+ polygon.ps[1] = Point(12541.5, 2298.29);
+ polygon.ps[2] = Point(12521.5, 2298.29);
+ polygon.ps[3] = Point(12521.5, 2266.29);
+ new ShapeRef(router, polygon, 2006);
+
+ // shapeRef2007
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12171.1, 1834.29);
+ polygon.ps[1] = Point(12171.1, 1854.29);
+ polygon.ps[2] = Point(12139.1, 1854.29);
+ polygon.ps[3] = Point(12139.1, 1834.29);
+ new ShapeRef(router, polygon, 2007);
+
+ // shapeRef2008
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12000.1, 1726.29);
+ polygon.ps[1] = Point(12000.1, 1758.29);
+ polygon.ps[2] = Point(11980.1, 1758.29);
+ polygon.ps[3] = Point(11980.1, 1726.29);
+ new ShapeRef(router, polygon, 2008);
+
+ // shapeRef2009
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12171.1, 1732.29);
+ polygon.ps[1] = Point(12171.1, 1752.29);
+ polygon.ps[2] = Point(12139.1, 1752.29);
+ polygon.ps[3] = Point(12139.1, 1732.29);
+ new ShapeRef(router, polygon, 2009);
+
+ // shapeRef2010
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13882, 8431.99);
+ polygon.ps[1] = Point(13882, 8463.99);
+ polygon.ps[2] = Point(13862, 8463.99);
+ polygon.ps[3] = Point(13862, 8431.99);
+ new ShapeRef(router, polygon, 2010);
+
+ // shapeRef2011
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11934.1, 7827.79);
+ polygon.ps[1] = Point(11934.1, 7859.79);
+ polygon.ps[2] = Point(11914.1, 7859.79);
+ polygon.ps[3] = Point(11914.1, 7827.79);
+ new ShapeRef(router, polygon, 2011);
+
+ // shapeRef2012
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15878.6, 8431.99);
+ polygon.ps[1] = Point(15878.6, 8463.99);
+ polygon.ps[2] = Point(15858.6, 8463.99);
+ polygon.ps[3] = Point(15858.6, 8431.99);
+ new ShapeRef(router, polygon, 2012);
+
+ // shapeRef2013
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16732.8, 8398.99);
+ polygon.ps[1] = Point(16732.8, 8430.99);
+ polygon.ps[2] = Point(16712.8, 8430.99);
+ polygon.ps[3] = Point(16712.8, 8398.99);
+ new ShapeRef(router, polygon, 2013);
+
+ // shapeRef2014
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8667.29, 4182.51);
+ polygon.ps[1] = Point(8667.29, 4202.51);
+ polygon.ps[2] = Point(8635.29, 4202.51);
+ polygon.ps[3] = Point(8635.29, 4182.51);
+ new ShapeRef(router, polygon, 2014);
+
+ // shapeRef2015
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10126, 9692.42);
+ polygon.ps[1] = Point(10126, 9724.42);
+ polygon.ps[2] = Point(10106, 9724.42);
+ polygon.ps[3] = Point(10106, 9692.42);
+ new ShapeRef(router, polygon, 2015);
+
+ // shapeRef2016
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15390.5, 1171.29);
+ polygon.ps[1] = Point(15390.5, 1191.29);
+ polygon.ps[2] = Point(15358.5, 1191.29);
+ polygon.ps[3] = Point(15358.5, 1171.29);
+ new ShapeRef(router, polygon, 2016);
+
+ // shapeRef2017
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13618, 6663.51);
+ polygon.ps[1] = Point(13618, 6695.51);
+ polygon.ps[2] = Point(13598, 6695.51);
+ polygon.ps[3] = Point(13598, 6663.51);
+ new ShapeRef(router, polygon, 2017);
+
+ // shapeRef2018
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10819.2, 7310.4);
+ polygon.ps[1] = Point(10819.2, 7342.4);
+ polygon.ps[2] = Point(10799.2, 7342.4);
+ polygon.ps[3] = Point(10799.2, 7310.4);
+ new ShapeRef(router, polygon, 2018);
+
+ // shapeRef2019
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10819.2, 7794.79);
+ polygon.ps[1] = Point(10819.2, 7826.79);
+ polygon.ps[2] = Point(10799.2, 7826.79);
+ polygon.ps[3] = Point(10799.2, 7794.79);
+ new ShapeRef(router, polygon, 2019);
+
+ // shapeRef2020
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9860.69, 6399.51);
+ polygon.ps[1] = Point(9860.69, 6431.51);
+ polygon.ps[2] = Point(9840.69, 6431.51);
+ polygon.ps[3] = Point(9840.69, 6399.51);
+ new ShapeRef(router, polygon, 2020);
+
+ // shapeRef2021
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11254.2, 8863.22);
+ polygon.ps[1] = Point(11254.2, 8883.22);
+ polygon.ps[2] = Point(11222.2, 8883.22);
+ polygon.ps[3] = Point(11222.2, 8863.22);
+ new ShapeRef(router, polygon, 2021);
+
+ // shapeRef2022
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12336.1, 8863.22);
+ polygon.ps[1] = Point(12336.1, 8883.22);
+ polygon.ps[2] = Point(12304.1, 8883.22);
+ polygon.ps[3] = Point(12304.1, 8863.22);
+ new ShapeRef(router, polygon, 2022);
+
+ // shapeRef2023
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9035.99, 3423.51);
+ polygon.ps[1] = Point(9035.99, 3443.51);
+ polygon.ps[2] = Point(9003.99, 3443.51);
+ polygon.ps[3] = Point(9003.99, 3423.51);
+ new ShapeRef(router, polygon, 2023);
+
+ // shapeRef2024
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7492.1, 3555.51);
+ polygon.ps[1] = Point(7492.1, 3575.51);
+ polygon.ps[2] = Point(7460.1, 3575.51);
+ polygon.ps[3] = Point(7460.1, 3555.51);
+ new ShapeRef(router, polygon, 2024);
+
+ // shapeRef2025
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6799.1, 3555.51);
+ polygon.ps[1] = Point(6799.1, 3575.51);
+ polygon.ps[2] = Point(6767.1, 3575.51);
+ polygon.ps[3] = Point(6767.1, 3555.51);
+ new ShapeRef(router, polygon, 2025);
+
+ // shapeRef2026
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6205.1, 3555.51);
+ polygon.ps[1] = Point(6205.1, 3575.51);
+ polygon.ps[2] = Point(6173.1, 3575.51);
+ polygon.ps[3] = Point(6173.1, 3555.51);
+ new ShapeRef(router, polygon, 2026);
+
+ // shapeRef2027
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5710.1, 3555.51);
+ polygon.ps[1] = Point(5710.1, 3575.51);
+ polygon.ps[2] = Point(5678.1, 3575.51);
+ polygon.ps[3] = Point(5678.1, 3555.51);
+ new ShapeRef(router, polygon, 2027);
+
+ // shapeRef2028
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5322, 3813.51);
+ polygon.ps[1] = Point(5322, 3845.51);
+ polygon.ps[2] = Point(5302, 3845.51);
+ polygon.ps[3] = Point(5302, 3813.51);
+ new ShapeRef(router, polygon, 2028);
+
+ // shapeRef2029
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5322, 4559.4);
+ polygon.ps[1] = Point(5322, 4591.4);
+ polygon.ps[2] = Point(5302, 4591.4);
+ polygon.ps[3] = Point(5302, 4559.4);
+ new ShapeRef(router, polygon, 2029);
+
+ // shapeRef2030
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5322, 5331.67);
+ polygon.ps[1] = Point(5322, 5363.67);
+ polygon.ps[2] = Point(5302, 5363.67);
+ polygon.ps[3] = Point(5302, 5331.67);
+ new ShapeRef(router, polygon, 2030);
+
+ // shapeRef2031
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5322, 5153.4);
+ polygon.ps[1] = Point(5322, 5185.4);
+ polygon.ps[2] = Point(5302, 5185.4);
+ polygon.ps[3] = Point(5302, 5153.4);
+ new ShapeRef(router, polygon, 2031);
+
+ // shapeRef2032
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8408.29, 5502.67);
+ polygon.ps[1] = Point(8408.29, 5522.67);
+ polygon.ps[2] = Point(8376.29, 5522.67);
+ polygon.ps[3] = Point(8376.29, 5502.67);
+ new ShapeRef(router, polygon, 2032);
+
+ // shapeRef2033
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5512.1, 5337.67);
+ polygon.ps[1] = Point(5512.1, 5357.67);
+ polygon.ps[2] = Point(5480.1, 5357.67);
+ polygon.ps[3] = Point(5480.1, 5337.67);
+ new ShapeRef(router, polygon, 2033);
+
+ // shapeRef2034
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4965, 5954.59);
+ polygon.ps[1] = Point(4965, 5974.59);
+ polygon.ps[2] = Point(4933, 5974.59);
+ polygon.ps[3] = Point(4933, 5954.59);
+ new ShapeRef(router, polygon, 2034);
+
+ // shapeRef2035
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4959, 6040.29);
+ polygon.ps[1] = Point(4959, 6072.29);
+ polygon.ps[2] = Point(4939, 6072.29);
+ polygon.ps[3] = Point(4939, 6040.29);
+ new ShapeRef(router, polygon, 2035);
+
+ // shapeRef2036
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4959, 7794.79);
+ polygon.ps[1] = Point(4959, 7826.79);
+ polygon.ps[2] = Point(4939, 7826.79);
+ polygon.ps[3] = Point(4939, 7794.79);
+ new ShapeRef(router, polygon, 2036);
+
+ // shapeRef2037
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4959, 8365.99);
+ polygon.ps[1] = Point(4959, 8397.99);
+ polygon.ps[2] = Point(4939, 8397.99);
+ polygon.ps[3] = Point(4939, 8365.99);
+ new ShapeRef(router, polygon, 2037);
+
+ // shapeRef2038
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4959, 8791.22);
+ polygon.ps[1] = Point(4959, 8823.22);
+ polygon.ps[2] = Point(4939, 8823.22);
+ polygon.ps[3] = Point(4939, 8791.22);
+ new ShapeRef(router, polygon, 2038);
+
+ // shapeRef2039
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4959, 9296.42);
+ polygon.ps[1] = Point(4959, 9328.42);
+ polygon.ps[2] = Point(4939, 9328.42);
+ polygon.ps[3] = Point(4939, 9296.42);
+ new ShapeRef(router, polygon, 2039);
+
+ // shapeRef2040
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4299, 9861.02);
+ polygon.ps[1] = Point(4299, 9893.02);
+ polygon.ps[2] = Point(4279, 9893.02);
+ polygon.ps[3] = Point(4279, 9861.02);
+ new ShapeRef(router, polygon, 2040);
+
+ // shapeRef2041
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4767, 10428);
+ polygon.ps[1] = Point(4767, 10448);
+ polygon.ps[2] = Point(4735, 10448);
+ polygon.ps[3] = Point(4735, 10428);
+ new ShapeRef(router, polygon, 2041);
+
+ // shapeRef2042
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4563, 10567.3);
+ polygon.ps[1] = Point(4563, 10599.3);
+ polygon.ps[2] = Point(4543, 10599.3);
+ polygon.ps[3] = Point(4543, 10567.3);
+ new ShapeRef(router, polygon, 2042);
+
+ // shapeRef2043
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 1462.29);
+ polygon.ps[1] = Point(11373.1, 1494.29);
+ polygon.ps[2] = Point(11353.1, 1494.29);
+ polygon.ps[3] = Point(11353.1, 1462.29);
+ new ShapeRef(router, polygon, 2043);
+
+ // shapeRef2044
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 1099.29);
+ polygon.ps[1] = Point(11373.1, 1131.29);
+ polygon.ps[2] = Point(11353.1, 1131.29);
+ polygon.ps[3] = Point(11353.1, 1099.29);
+ new ShapeRef(router, polygon, 2044);
+
+ // shapeRef2045
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 594.091);
+ polygon.ps[1] = Point(11373.1, 626.091);
+ polygon.ps[2] = Point(11353.1, 626.091);
+ polygon.ps[3] = Point(11353.1, 594.091);
+ new ShapeRef(router, polygon, 2045);
+
+ // shapeRef2046
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11544.1, 448.265);
+ polygon.ps[1] = Point(11544.1, 468.265);
+ polygon.ps[2] = Point(11512.1, 468.265);
+ polygon.ps[3] = Point(11512.1, 448.265);
+ new ShapeRef(router, polygon, 2046);
+
+ // shapeRef2047
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11973.1, 448.265);
+ polygon.ps[1] = Point(11973.1, 468.265);
+ polygon.ps[2] = Point(11941.1, 468.265);
+ polygon.ps[3] = Point(11941.1, 448.265);
+ new ShapeRef(router, polygon, 2047);
+
+ // shapeRef2048
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15002.9, 1336.29);
+ polygon.ps[1] = Point(15002.9, 1356.29);
+ polygon.ps[2] = Point(14970.9, 1356.29);
+ polygon.ps[3] = Point(14970.9, 1336.29);
+ new ShapeRef(router, polygon, 2048);
+
+ // shapeRef2049
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12740.5, 567.091);
+ polygon.ps[1] = Point(12740.5, 587.091);
+ polygon.ps[2] = Point(12708.5, 587.091);
+ polygon.ps[3] = Point(12708.5, 567.091);
+ new ShapeRef(router, polygon, 2049);
+
+ // shapeRef2050
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13216, 448.265);
+ polygon.ps[1] = Point(13216, 468.265);
+ polygon.ps[2] = Point(13184, 468.265);
+ polygon.ps[3] = Point(13184, 448.265);
+ new ShapeRef(router, polygon, 2050);
+
+ // shapeRef2051
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13888, 448.265);
+ polygon.ps[1] = Point(13888, 468.265);
+ polygon.ps[2] = Point(13856, 468.265);
+ polygon.ps[3] = Point(13856, 448.265);
+ new ShapeRef(router, polygon, 2051);
+
+ // shapeRef2052
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14350, 448.265);
+ polygon.ps[1] = Point(14350, 468.265);
+ polygon.ps[2] = Point(14318, 468.265);
+ polygon.ps[3] = Point(14318, 448.265);
+ new ShapeRef(router, polygon, 2052);
+
+ // shapeRef2053
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14812, 448.265);
+ polygon.ps[1] = Point(14812, 468.265);
+ polygon.ps[2] = Point(14780, 468.265);
+ polygon.ps[3] = Point(14780, 448.265);
+ new ShapeRef(router, polygon, 2053);
+
+ // shapeRef2054
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15653.3, 448.265);
+ polygon.ps[1] = Point(15653.3, 468.265);
+ polygon.ps[2] = Point(15621.3, 468.265);
+ polygon.ps[3] = Point(15621.3, 448.265);
+ new ShapeRef(router, polygon, 2054);
+
+ // shapeRef2055
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16181.6, 448.265);
+ polygon.ps[1] = Point(16181.6, 468.265);
+ polygon.ps[2] = Point(16149.6, 468.265);
+ polygon.ps[3] = Point(16149.6, 448.265);
+ new ShapeRef(router, polygon, 2055);
+
+ // shapeRef2056
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16373.6, 792.091);
+ polygon.ps[1] = Point(16373.6, 824.091);
+ polygon.ps[2] = Point(16353.6, 824.091);
+ polygon.ps[3] = Point(16353.6, 792.091);
+ new ShapeRef(router, polygon, 2056);
+
+ // shapeRef2057
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16175.6, 792.091);
+ polygon.ps[1] = Point(16175.6, 824.091);
+ polygon.ps[2] = Point(16155.6, 824.091);
+ polygon.ps[3] = Point(16155.6, 792.091);
+ new ShapeRef(router, polygon, 2057);
+
+ // shapeRef2058
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11122.2, 8064.79);
+ polygon.ps[1] = Point(11122.2, 8084.79);
+ polygon.ps[2] = Point(11090.2, 8084.79);
+ polygon.ps[3] = Point(11090.2, 8064.79);
+ new ShapeRef(router, polygon, 2058);
+
+ // shapeRef2059
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11505.1, 7728.79);
+ polygon.ps[1] = Point(11505.1, 7760.79);
+ polygon.ps[2] = Point(11485.1, 7760.79);
+ polygon.ps[3] = Point(11485.1, 7728.79);
+ new ShapeRef(router, polygon, 2059);
+
+ // shapeRef2060
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12039.1, 7415.4);
+ polygon.ps[1] = Point(12039.1, 7435.4);
+ polygon.ps[2] = Point(12007.1, 7435.4);
+ polygon.ps[3] = Point(12007.1, 7415.4);
+ new ShapeRef(router, polygon, 2060);
+
+ // shapeRef2061
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17062.8, 7178.4);
+ polygon.ps[1] = Point(17062.8, 7210.4);
+ polygon.ps[2] = Point(17042.8, 7210.4);
+ polygon.ps[3] = Point(17042.8, 7178.4);
+ new ShapeRef(router, polygon, 2061);
+
+ // shapeRef2062
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18532, 11850.9);
+ polygon.ps[1] = Point(18532, 11870.9);
+ polygon.ps[2] = Point(18500, 11870.9);
+ polygon.ps[3] = Point(18500, 11850.9);
+ new ShapeRef(router, polygon, 2062);
+
+ // shapeRef2063
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13282, 8863.22);
+ polygon.ps[1] = Point(13282, 8883.22);
+ polygon.ps[2] = Point(13250, 8883.22);
+ polygon.ps[3] = Point(13250, 8863.22);
+ new ShapeRef(router, polygon, 2063);
+
+ // shapeRef2064
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10792.2, 448.265);
+ polygon.ps[1] = Point(10792.2, 468.265);
+ polygon.ps[2] = Point(10760.2, 468.265);
+ polygon.ps[3] = Point(10760.2, 448.265);
+ new ShapeRef(router, polygon, 2064);
+
+ // shapeRef2065
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15620.3, 1336.29);
+ polygon.ps[1] = Point(15620.3, 1356.29);
+ polygon.ps[2] = Point(15588.3, 1356.29);
+ polygon.ps[3] = Point(15588.3, 1336.29);
+ new ShapeRef(router, polygon, 2065);
+
+ // shapeRef2066
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8045.29, 303.265);
+ polygon.ps[1] = Point(8045.29, 323.265);
+ polygon.ps[2] = Point(8013.29, 323.265);
+ polygon.ps[3] = Point(8013.29, 303.265);
+ new ShapeRef(router, polygon, 2066);
+
+ // shapeRef2067
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8309.29, 415.265);
+ polygon.ps[1] = Point(8309.29, 435.265);
+ polygon.ps[2] = Point(8277.29, 435.265);
+ polygon.ps[3] = Point(8277.29, 415.265);
+ new ShapeRef(router, polygon, 2067);
+
+ // shapeRef2068
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7781.29, 415.265);
+ polygon.ps[1] = Point(7781.29, 435.265);
+ polygon.ps[2] = Point(7749.29, 435.265);
+ polygon.ps[3] = Point(7749.29, 415.265);
+ new ShapeRef(router, polygon, 2068);
+
+ // shapeRef2069
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6964.1, 415.265);
+ polygon.ps[1] = Point(6964.1, 435.265);
+ polygon.ps[2] = Point(6932.1, 435.265);
+ polygon.ps[3] = Point(6932.1, 415.265);
+ new ShapeRef(router, polygon, 2069);
+
+ // shapeRef2070
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6337.1, 415.265);
+ polygon.ps[1] = Point(6337.1, 435.265);
+ polygon.ps[2] = Point(6305.1, 435.265);
+ polygon.ps[3] = Point(6305.1, 415.265);
+ new ShapeRef(router, polygon, 2070);
+
+ // shapeRef2071
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15131.3, 1171.29);
+ polygon.ps[1] = Point(15131.3, 1191.29);
+ polygon.ps[2] = Point(15099.3, 1191.29);
+ polygon.ps[3] = Point(15099.3, 1171.29);
+ new ShapeRef(router, polygon, 2071);
+
+ // shapeRef2072
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14874.4, 1336.29);
+ polygon.ps[1] = Point(14874.4, 1356.29);
+ polygon.ps[2] = Point(14842.4, 1356.29);
+ polygon.ps[3] = Point(14842.4, 1336.29);
+ new ShapeRef(router, polygon, 2072);
+
+ // shapeRef2073
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15493.3, 1171.29);
+ polygon.ps[1] = Point(15493.3, 1191.29);
+ polygon.ps[2] = Point(15461.3, 1191.29);
+ polygon.ps[3] = Point(15461.3, 1171.29);
+ new ShapeRef(router, polygon, 2073);
+
+ // shapeRef2074
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15748.9, 1336.29);
+ polygon.ps[1] = Point(15748.9, 1356.29);
+ polygon.ps[2] = Point(15716.9, 1356.29);
+ polygon.ps[3] = Point(15716.9, 1336.29);
+ new ShapeRef(router, polygon, 2074);
+
+ // shapeRef2075
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11254.2, 4351.11);
+ polygon.ps[1] = Point(11254.2, 4371.11);
+ polygon.ps[2] = Point(11222.2, 4371.11);
+ polygon.ps[3] = Point(11222.2, 4351.11);
+ new ShapeRef(router, polygon, 2075);
+
+ // shapeRef2076
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14614, 6778.21);
+ polygon.ps[1] = Point(14614, 6798.21);
+ polygon.ps[2] = Point(14582, 6798.21);
+ polygon.ps[3] = Point(14582, 6778.21);
+ new ShapeRef(router, polygon, 2076);
+
+ // shapeRef2077
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5671.1, 4559.4);
+ polygon.ps[1] = Point(5671.1, 4591.4);
+ polygon.ps[2] = Point(5651.1, 4591.4);
+ polygon.ps[3] = Point(5651.1, 4559.4);
+ new ShapeRef(router, polygon, 2077);
+
+ // shapeRef2078
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18246.5, 8530.99);
+ polygon.ps[1] = Point(18246.5, 8562.99);
+ polygon.ps[2] = Point(18226.5, 8562.99);
+ polygon.ps[3] = Point(18226.5, 8530.99);
+ new ShapeRef(router, polygon, 2078);
+
+ // shapeRef2079
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17625.5, 10164);
+ polygon.ps[1] = Point(17625.5, 10184);
+ polygon.ps[2] = Point(17593.5, 10184);
+ polygon.ps[3] = Point(17593.5, 10164);
+ new ShapeRef(router, polygon, 2079);
+
+ // shapeRef2080
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16573.8, 10164);
+ polygon.ps[1] = Point(16573.8, 10184);
+ polygon.ps[2] = Point(16541.8, 10184);
+ polygon.ps[3] = Point(16541.8, 10164);
+ new ShapeRef(router, polygon, 2080);
+
+ // shapeRef2081
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13954, 10164);
+ polygon.ps[1] = Point(13954, 10184);
+ polygon.ps[2] = Point(13922, 10184);
+ polygon.ps[3] = Point(13922, 10164);
+ new ShapeRef(router, polygon, 2081);
+
+ // shapeRef2082
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10334.9, 9692.42);
+ polygon.ps[1] = Point(10334.9, 9724.42);
+ polygon.ps[2] = Point(10314.9, 9724.42);
+ polygon.ps[3] = Point(10314.9, 9692.42);
+ new ShapeRef(router, polygon, 2082);
+
+ // shapeRef2083
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10126, 10356);
+ polygon.ps[1] = Point(10126, 10388);
+ polygon.ps[2] = Point(10106, 10388);
+ polygon.ps[3] = Point(10106, 10356);
+ new ShapeRef(router, polygon, 2083);
+
+ // shapeRef2084
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10528.2, 10672.3);
+ polygon.ps[1] = Point(10528.2, 10692.3);
+ polygon.ps[2] = Point(10496.2, 10692.3);
+ polygon.ps[3] = Point(10496.2, 10672.3);
+ new ShapeRef(router, polygon, 2084);
+
+ // shapeRef2085
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10924.2, 10672.3);
+ polygon.ps[1] = Point(10924.2, 10692.3);
+ polygon.ps[2] = Point(10892.2, 10692.3);
+ polygon.ps[3] = Point(10892.2, 10672.3);
+ new ShapeRef(router, polygon, 2085);
+
+ // shapeRef2086
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10852.2, 10964.6);
+ polygon.ps[1] = Point(10852.2, 10996.6);
+ polygon.ps[2] = Point(10832.2, 10996.6);
+ polygon.ps[3] = Point(10832.2, 10964.6);
+ new ShapeRef(router, polygon, 2086);
+
+ // shapeRef2087
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9734.69, 11201.6);
+ polygon.ps[1] = Point(9734.69, 11221.6);
+ polygon.ps[2] = Point(9702.69, 11221.6);
+ polygon.ps[3] = Point(9702.69, 11201.6);
+ new ShapeRef(router, polygon, 2087);
+
+ // shapeRef2088
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9253.59, 11201.6);
+ polygon.ps[1] = Point(9253.59, 11221.6);
+ polygon.ps[2] = Point(9221.59, 11221.6);
+ polygon.ps[3] = Point(9221.59, 11201.6);
+ new ShapeRef(router, polygon, 2088);
+
+ // shapeRef2089
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8700.29, 11201.6);
+ polygon.ps[1] = Point(8700.29, 11221.6);
+ polygon.ps[2] = Point(8668.29, 11221.6);
+ polygon.ps[3] = Point(8668.29, 11201.6);
+ new ShapeRef(router, polygon, 2089);
+
+ // shapeRef2090
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7973.29, 10997.6);
+ polygon.ps[1] = Point(7973.29, 11029.6);
+ polygon.ps[2] = Point(7953.29, 11029.6);
+ polygon.ps[3] = Point(7953.29, 10997.6);
+ new ShapeRef(router, polygon, 2090);
+
+ // shapeRef2091
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8243.29, 10705.3);
+ polygon.ps[1] = Point(8243.29, 10725.3);
+ polygon.ps[2] = Point(8211.29, 10725.3);
+ polygon.ps[3] = Point(8211.29, 10705.3);
+ new ShapeRef(router, polygon, 2091);
+
+ // shapeRef2092
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8700.29, 10705.3);
+ polygon.ps[1] = Point(8700.29, 10725.3);
+ polygon.ps[2] = Point(8668.29, 10725.3);
+ polygon.ps[3] = Point(8668.29, 10705.3);
+ new ShapeRef(router, polygon, 2092);
+
+ // shapeRef2093
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13315, 9236.42);
+ polygon.ps[1] = Point(13315, 9256.42);
+ polygon.ps[2] = Point(13283, 9256.42);
+ polygon.ps[3] = Point(13283, 9236.42);
+ new ShapeRef(router, polygon, 2093);
+
+ // shapeRef2094
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6667.1, 6986.4);
+ polygon.ps[1] = Point(6667.1, 7006.4);
+ polygon.ps[2] = Point(6635.1, 7006.4);
+ polygon.ps[3] = Point(6635.1, 6986.4);
+ new ShapeRef(router, polygon, 2094);
+
+ // shapeRef2095
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7222.1, 7277.4);
+ polygon.ps[1] = Point(7222.1, 7309.4);
+ polygon.ps[2] = Point(7202.1, 7309.4);
+ polygon.ps[3] = Point(7202.1, 7277.4);
+ new ShapeRef(router, polygon, 2095);
+
+ // shapeRef2096
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7222.1, 9197.42);
+ polygon.ps[1] = Point(7222.1, 9229.42);
+ polygon.ps[2] = Point(7202.1, 9229.42);
+ polygon.ps[3] = Point(7202.1, 9197.42);
+ new ShapeRef(router, polygon, 2096);
+
+ // shapeRef2097
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6562.1, 8025.79);
+ polygon.ps[1] = Point(6562.1, 8057.79);
+ polygon.ps[2] = Point(6542.1, 8057.79);
+ polygon.ps[3] = Point(6542.1, 8025.79);
+ new ShapeRef(router, polygon, 2097);
+
+ // shapeRef2098
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6562.1, 9861.02);
+ polygon.ps[1] = Point(6562.1, 9893.02);
+ polygon.ps[2] = Point(6542.1, 9893.02);
+ polygon.ps[3] = Point(6542.1, 9861.02);
+ new ShapeRef(router, polygon, 2098);
+
+ // shapeRef2099
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6562.1, 7563.79);
+ polygon.ps[1] = Point(6562.1, 7595.79);
+ polygon.ps[2] = Point(6542.1, 7595.79);
+ polygon.ps[3] = Point(6542.1, 7563.79);
+ new ShapeRef(router, polygon, 2099);
+
+ // shapeRef2100
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7261.1, 6504.51);
+ polygon.ps[1] = Point(7261.1, 6524.51);
+ polygon.ps[2] = Point(7229.1, 6524.51);
+ polygon.ps[3] = Point(7229.1, 6504.51);
+ new ShapeRef(router, polygon, 2100);
+
+ // shapeRef2101
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8177.29, 6504.51);
+ polygon.ps[1] = Point(8177.29, 6524.51);
+ polygon.ps[2] = Point(8145.29, 6524.51);
+ polygon.ps[3] = Point(8145.29, 6504.51);
+ new ShapeRef(router, polygon, 2101);
+
+ // shapeRef2102
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6403.1, 6778.21);
+ polygon.ps[1] = Point(6403.1, 6798.21);
+ polygon.ps[2] = Point(6371.1, 6798.21);
+ polygon.ps[3] = Point(6371.1, 6778.21);
+ new ShapeRef(router, polygon, 2102);
+
+ // shapeRef2103
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6133.1, 7959.79);
+ polygon.ps[1] = Point(6133.1, 7991.79);
+ polygon.ps[2] = Point(6113.1, 7991.79);
+ polygon.ps[3] = Point(6113.1, 7959.79);
+ new ShapeRef(router, polygon, 2103);
+
+ // shapeRef2104
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9932.69, 11622.9);
+ polygon.ps[1] = Point(9932.69, 11642.9);
+ polygon.ps[2] = Point(9900.69, 11642.9);
+ polygon.ps[3] = Point(9900.69, 11622.9);
+ new ShapeRef(router, polygon, 2104);
+
+ // shapeRef2105
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11445.1, 11622.9);
+ polygon.ps[1] = Point(11445.1, 11642.9);
+ polygon.ps[2] = Point(11413.1, 11642.9);
+ polygon.ps[3] = Point(11413.1, 11622.9);
+ new ShapeRef(router, polygon, 2105);
+
+ // shapeRef2106
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12773.5, 11622.9);
+ polygon.ps[1] = Point(12773.5, 11642.9);
+ polygon.ps[2] = Point(12741.5, 11642.9);
+ polygon.ps[3] = Point(12741.5, 11622.9);
+ new ShapeRef(router, polygon, 2106);
+
+ // shapeRef2107
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14548, 11622.9);
+ polygon.ps[1] = Point(14548, 11642.9);
+ polygon.ps[2] = Point(14516, 11642.9);
+ polygon.ps[3] = Point(14516, 11622.9);
+ new ShapeRef(router, polygon, 2107);
+
+ // shapeRef2108
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16082.6, 11622.9);
+ polygon.ps[1] = Point(16082.6, 11642.9);
+ polygon.ps[2] = Point(16050.6, 11642.9);
+ polygon.ps[3] = Point(16050.6, 11622.9);
+ new ShapeRef(router, polygon, 2108);
+
+ // shapeRef2109
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15878.6, 11877.9);
+ polygon.ps[1] = Point(15878.6, 11909.9);
+ polygon.ps[2] = Point(15858.6, 11909.9);
+ polygon.ps[3] = Point(15858.6, 11877.9);
+ new ShapeRef(router, polygon, 2109);
+
+ // shapeRef2110
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15878.6, 12177.3);
+ polygon.ps[1] = Point(15878.6, 12209.3);
+ polygon.ps[2] = Point(15858.6, 12209.3);
+ polygon.ps[3] = Point(15858.6, 12177.3);
+ new ShapeRef(router, polygon, 2110);
+
+ // shapeRef2111
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15620.3, 12282.3);
+ polygon.ps[1] = Point(15620.3, 12302.3);
+ polygon.ps[2] = Point(15588.3, 12302.3);
+ polygon.ps[3] = Point(15588.3, 12282.3);
+ new ShapeRef(router, polygon, 2111);
+
+ // shapeRef2112
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15002.9, 12282.3);
+ polygon.ps[1] = Point(15002.9, 12302.3);
+ polygon.ps[2] = Point(14970.9, 12302.3);
+ polygon.ps[3] = Point(14970.9, 12282.3);
+ new ShapeRef(router, polygon, 2112);
+
+ // shapeRef2113
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14218, 12282.3);
+ polygon.ps[1] = Point(14218, 12302.3);
+ polygon.ps[2] = Point(14186, 12302.3);
+ polygon.ps[3] = Point(14186, 12282.3);
+ new ShapeRef(router, polygon, 2113);
+
+ // shapeRef2114
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9280.59, 5641.9);
+ polygon.ps[1] = Point(9280.59, 5673.9);
+ polygon.ps[2] = Point(9260.59, 5673.9);
+ polygon.ps[3] = Point(9260.59, 5641.9);
+ new ShapeRef(router, polygon, 2114);
+
+ // shapeRef2115
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9511.59, 7343.4);
+ polygon.ps[1] = Point(9511.59, 7375.4);
+ polygon.ps[2] = Point(9491.59, 7375.4);
+ polygon.ps[3] = Point(9491.59, 7343.4);
+ new ShapeRef(router, polygon, 2115);
+
+ // shapeRef2116
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9511.59, 10356);
+ polygon.ps[1] = Point(9511.59, 10388);
+ polygon.ps[2] = Point(9491.59, 10388);
+ polygon.ps[3] = Point(9491.59, 10356);
+ new ShapeRef(router, polygon, 2116);
+
+ // shapeRef2117
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10373.9, 10771.3);
+ polygon.ps[1] = Point(10373.9, 10791.3);
+ polygon.ps[2] = Point(10341.9, 10791.3);
+ polygon.ps[3] = Point(10341.9, 10771.3);
+ new ShapeRef(router, polygon, 2117);
+
+ // shapeRef2118
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11676.1, 10771.3);
+ polygon.ps[1] = Point(11676.1, 10791.3);
+ polygon.ps[2] = Point(11644.1, 10791.3);
+ polygon.ps[3] = Point(11644.1, 10771.3);
+ new ShapeRef(router, polygon, 2118);
+
+ // shapeRef2119
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13117, 10771.3);
+ polygon.ps[1] = Point(13117, 10791.3);
+ polygon.ps[2] = Point(13085, 10791.3);
+ polygon.ps[3] = Point(13085, 10771.3);
+ new ShapeRef(router, polygon, 2119);
+
+ // shapeRef2120
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14317, 10771.3);
+ polygon.ps[1] = Point(14317, 10791.3);
+ polygon.ps[2] = Point(14285, 10791.3);
+ polygon.ps[3] = Point(14285, 10771.3);
+ new ShapeRef(router, polygon, 2120);
+
+ // shapeRef2121
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15781.9, 10771.3);
+ polygon.ps[1] = Point(15781.9, 10791.3);
+ polygon.ps[2] = Point(15749.9, 10791.3);
+ polygon.ps[3] = Point(15749.9, 10771.3);
+ new ShapeRef(router, polygon, 2121);
+
+ // shapeRef2122
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6106.1, 204.265);
+ polygon.ps[1] = Point(6106.1, 224.265);
+ polygon.ps[2] = Point(6074.1, 224.265);
+ polygon.ps[3] = Point(6074.1, 204.265);
+ new ShapeRef(router, polygon, 2122);
+
+ // shapeRef2123
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7775.29, 835.285);
+ polygon.ps[1] = Point(7775.29, 867.285);
+ polygon.ps[2] = Point(7755.29, 867.285);
+ polygon.ps[3] = Point(7755.29, 835.285);
+ new ShapeRef(router, polygon, 2123);
+
+ // shapeRef2124
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10433.9, 6399.51);
+ polygon.ps[1] = Point(10433.9, 6431.51);
+ polygon.ps[2] = Point(10413.9, 6431.51);
+ polygon.ps[3] = Point(10413.9, 6399.51);
+ new ShapeRef(router, polygon, 2124);
+
+ // shapeRef2125
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15158.3, 10898.6);
+ polygon.ps[1] = Point(15158.3, 10930.6);
+ polygon.ps[2] = Point(15138.3, 10930.6);
+ polygon.ps[3] = Point(15138.3, 10898.6);
+ new ShapeRef(router, polygon, 2125);
+
+ // shapeRef2126
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7907.29, 4427.4);
+ polygon.ps[1] = Point(7907.29, 4459.4);
+ polygon.ps[2] = Point(7887.29, 4459.4);
+ polygon.ps[3] = Point(7887.29, 4427.4);
+ new ShapeRef(router, polygon, 2126);
+
+ // shapeRef2127
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17229.5, 7184.4);
+ polygon.ps[1] = Point(17229.5, 7204.4);
+ polygon.ps[2] = Point(17197.5, 7204.4);
+ polygon.ps[3] = Point(17197.5, 7184.4);
+ new ShapeRef(router, polygon, 2127);
+
+ // shapeRef2128
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4965, 5812.9);
+ polygon.ps[1] = Point(4965, 5832.9);
+ polygon.ps[2] = Point(4933, 5832.9);
+ polygon.ps[3] = Point(4933, 5812.9);
+ new ShapeRef(router, polygon, 2128);
+
+ // shapeRef2129
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 2233.29);
+ polygon.ps[1] = Point(11373.1, 2265.29);
+ polygon.ps[2] = Point(11353.1, 2265.29);
+ polygon.ps[3] = Point(11353.1, 2233.29);
+ new ShapeRef(router, polygon, 2129);
+
+ // shapeRef2130
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 3322.29);
+ polygon.ps[1] = Point(11373.1, 3354.29);
+ polygon.ps[2] = Point(11353.1, 3354.29);
+ polygon.ps[3] = Point(11353.1, 3322.29);
+ new ShapeRef(router, polygon, 2130);
+
+ // shapeRef2131
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 4460.4);
+ polygon.ps[1] = Point(11373.1, 4492.4);
+ polygon.ps[2] = Point(11353.1, 4492.4);
+ polygon.ps[3] = Point(11353.1, 4460.4);
+ new ShapeRef(router, polygon, 2131);
+
+ // shapeRef2132
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 5364.67);
+ polygon.ps[1] = Point(11373.1, 5396.67);
+ polygon.ps[2] = Point(11353.1, 5396.67);
+ polygon.ps[3] = Point(11353.1, 5364.67);
+ new ShapeRef(router, polygon, 2132);
+
+ // shapeRef2133
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 6564.51);
+ polygon.ps[1] = Point(11373.1, 6596.51);
+ polygon.ps[2] = Point(11353.1, 6596.51);
+ polygon.ps[3] = Point(11353.1, 6564.51);
+ new ShapeRef(router, polygon, 2133);
+
+ // shapeRef2134
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 8398.99);
+ polygon.ps[1] = Point(11373.1, 8430.99);
+ polygon.ps[2] = Point(11353.1, 8430.99);
+ polygon.ps[3] = Point(11353.1, 8398.99);
+ new ShapeRef(router, polygon, 2134);
+
+ // shapeRef2135
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 9960.02);
+ polygon.ps[1] = Point(11373.1, 9992.02);
+ polygon.ps[2] = Point(11353.1, 9992.02);
+ polygon.ps[3] = Point(11353.1, 9960.02);
+ new ShapeRef(router, polygon, 2135);
+
+ // shapeRef2136
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11373.1, 11162.6);
+ polygon.ps[1] = Point(11373.1, 11194.6);
+ polygon.ps[2] = Point(11353.1, 11194.6);
+ polygon.ps[3] = Point(11353.1, 11162.6);
+ new ShapeRef(router, polygon, 2136);
+
+ // shapeRef2137
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11940.1, 12117.3);
+ polygon.ps[1] = Point(11940.1, 12137.3);
+ polygon.ps[2] = Point(11908.1, 12137.3);
+ polygon.ps[3] = Point(11908.1, 12117.3);
+ new ShapeRef(router, polygon, 2137);
+
+ // shapeRef2138
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12938.5, 12117.3);
+ polygon.ps[1] = Point(12938.5, 12137.3);
+ polygon.ps[2] = Point(12906.5, 12137.3);
+ polygon.ps[3] = Point(12906.5, 12117.3);
+ new ShapeRef(router, polygon, 2138);
+
+ // shapeRef2139
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8375.29, 1270.29);
+ polygon.ps[1] = Point(8375.29, 1290.29);
+ polygon.ps[2] = Point(8343.29, 1290.29);
+ polygon.ps[3] = Point(8343.29, 1270.29);
+ new ShapeRef(router, polygon, 2139);
+
+ // shapeRef2140
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7913.29, 1270.29);
+ polygon.ps[1] = Point(7913.29, 1290.29);
+ polygon.ps[2] = Point(7881.29, 1290.29);
+ polygon.ps[3] = Point(7881.29, 1270.29);
+ new ShapeRef(router, polygon, 2140);
+
+ // shapeRef2141
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7618.1, 1396.29);
+ polygon.ps[1] = Point(7618.1, 1428.29);
+ polygon.ps[2] = Point(7598.1, 1428.29);
+ polygon.ps[3] = Point(7598.1, 1396.29);
+ new ShapeRef(router, polygon, 2141);
+
+ // shapeRef2142
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7618.1, 2992.29);
+ polygon.ps[1] = Point(7618.1, 3024.29);
+ polygon.ps[2] = Point(7598.1, 3024.29);
+ polygon.ps[3] = Point(7598.1, 2992.29);
+ new ShapeRef(router, polygon, 2142);
+
+ // shapeRef2143
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9959.69, 9960.02);
+ polygon.ps[1] = Point(9959.69, 9992.02);
+ polygon.ps[2] = Point(9939.69, 9992.02);
+ polygon.ps[3] = Point(9939.69, 9960.02);
+ new ShapeRef(router, polygon, 2143);
+
+ // shapeRef2144
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15002.9, 1171.29);
+ polygon.ps[1] = Point(15002.9, 1191.29);
+ polygon.ps[2] = Point(14970.9, 1191.29);
+ polygon.ps[3] = Point(14970.9, 1171.29);
+ new ShapeRef(router, polygon, 2144);
+
+ // shapeRef2145
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16082.6, 11784.9);
+ polygon.ps[1] = Point(16082.6, 11804.9);
+ polygon.ps[2] = Point(16050.6, 11804.9);
+ polygon.ps[3] = Point(16050.6, 11784.9);
+ new ShapeRef(router, polygon, 2145);
+
+ // shapeRef2146
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1599, 4763.4);
+ polygon.ps[1] = Point(1599, 4783.4);
+ polygon.ps[2] = Point(1567, 4783.4);
+ polygon.ps[3] = Point(1567, 4763.4);
+ new ShapeRef(router, polygon, 2146);
+
+ // shapeRef2147
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3051, 4763.4);
+ polygon.ps[1] = Point(3051, 4783.4);
+ polygon.ps[2] = Point(3019, 4783.4);
+ polygon.ps[3] = Point(3019, 4763.4);
+ new ShapeRef(router, polygon, 2147);
+
+ // shapeRef2148
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4959, 6135.51);
+ polygon.ps[1] = Point(4959, 6167.51);
+ polygon.ps[2] = Point(4939, 6167.51);
+ polygon.ps[3] = Point(4939, 6135.51);
+ new ShapeRef(router, polygon, 2148);
+
+ // shapeRef2149
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14746, 1336.29);
+ polygon.ps[1] = Point(14746, 1356.29);
+ polygon.ps[2] = Point(14714, 1356.29);
+ polygon.ps[3] = Point(14714, 1336.29);
+ new ShapeRef(router, polygon, 2149);
+
+ // shapeRef2150
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9668.69, 6174.51);
+ polygon.ps[1] = Point(9668.69, 6194.51);
+ polygon.ps[2] = Point(9636.69, 6194.51);
+ polygon.ps[3] = Point(9636.69, 6174.51);
+ new ShapeRef(router, polygon, 2150);
+
+ // shapeRef2151
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7129.1, 10230);
+ polygon.ps[1] = Point(7129.1, 10250);
+ polygon.ps[2] = Point(7097.1, 10250);
+ polygon.ps[3] = Point(7097.1, 10230);
+ new ShapeRef(router, polygon, 2151);
+
+ // shapeRef2152
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8243.29, 9665.42);
+ polygon.ps[1] = Point(8243.29, 9685.42);
+ polygon.ps[2] = Point(8211.29, 9685.42);
+ polygon.ps[3] = Point(8211.29, 9665.42);
+ new ShapeRef(router, polygon, 2152);
+
+ // shapeRef2153
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8342.29, 9834.02);
+ polygon.ps[1] = Point(8342.29, 9854.02);
+ polygon.ps[2] = Point(8310.29, 9854.02);
+ polygon.ps[3] = Point(8310.29, 9834.02);
+ new ShapeRef(router, polygon, 2153);
+
+ // shapeRef2154
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10334.9, 9428.42);
+ polygon.ps[1] = Point(10334.9, 9460.42);
+ polygon.ps[2] = Point(10314.9, 9460.42);
+ polygon.ps[3] = Point(10314.9, 9428.42);
+ new ShapeRef(router, polygon, 2154);
+
+ // shapeRef2155
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8812.89, 10059);
+ polygon.ps[1] = Point(8812.89, 10091);
+ polygon.ps[2] = Point(8792.89, 10091);
+ polygon.ps[3] = Point(8792.89, 10059);
+ new ShapeRef(router, polygon, 2155);
+
+ // shapeRef2156
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(273, 132.265);
+ polygon.ps[1] = Point(273, 164.265);
+ polygon.ps[2] = Point(253, 164.265);
+ polygon.ps[3] = Point(253, 132.265);
+ new ShapeRef(router, polygon, 2156);
+
+ // shapeRef2157
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9214.59, 11682.9);
+ polygon.ps[1] = Point(9214.59, 11714.9);
+ polygon.ps[2] = Point(9194.59, 11714.9);
+ polygon.ps[3] = Point(9194.59, 11682.9);
+ new ShapeRef(router, polygon, 2157);
+
+ // shapeRef2158
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9029.99, 5641.9);
+ polygon.ps[1] = Point(9029.99, 5673.9);
+ polygon.ps[2] = Point(9009.99, 5673.9);
+ polygon.ps[3] = Point(9009.99, 5641.9);
+ new ShapeRef(router, polygon, 2158);
+
+ // shapeRef2159
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9029.99, 2365.29);
+ polygon.ps[1] = Point(9029.99, 2397.29);
+ polygon.ps[2] = Point(9009.99, 2397.29);
+ polygon.ps[3] = Point(9009.99, 2365.29);
+ new ShapeRef(router, polygon, 2159);
+
+ // shapeRef2160
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8468.29, 1462.29);
+ polygon.ps[1] = Point(8468.29, 1494.29);
+ polygon.ps[2] = Point(8448.29, 1494.29);
+ polygon.ps[3] = Point(8448.29, 1462.29);
+ new ShapeRef(router, polygon, 2160);
+
+ // shapeRef2161
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8634.29, 1468.29);
+ polygon.ps[1] = Point(8634.29, 1488.29);
+ polygon.ps[2] = Point(8602.29, 1488.29);
+ polygon.ps[3] = Point(8602.29, 1468.29);
+ new ShapeRef(router, polygon, 2161);
+
+ // shapeRef2162
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8276.29, 798.091);
+ polygon.ps[1] = Point(8276.29, 818.091);
+ polygon.ps[2] = Point(8244.29, 818.091);
+ polygon.ps[3] = Point(8244.29, 798.091);
+ new ShapeRef(router, polygon, 2162);
+
+ // shapeRef2163
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8270.29, 901.285);
+ polygon.ps[1] = Point(8270.29, 933.285);
+ polygon.ps[2] = Point(8250.29, 933.285);
+ polygon.ps[3] = Point(8250.29, 901.285);
+ new ShapeRef(router, polygon, 2163);
+
+ // shapeRef2164
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8634.29, 973.285);
+ polygon.ps[1] = Point(8634.29, 993.285);
+ polygon.ps[2] = Point(8602.29, 993.285);
+ polygon.ps[3] = Point(8602.29, 973.285);
+ new ShapeRef(router, polygon, 2164);
+
+ // shapeRef2165
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15249.5, 967.285);
+ polygon.ps[1] = Point(15249.5, 999.285);
+ polygon.ps[2] = Point(15229.5, 999.285);
+ polygon.ps[3] = Point(15229.5, 967.285);
+ new ShapeRef(router, polygon, 2165);
+
+ // shapeRef2166
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12707.5, 5304.67);
+ polygon.ps[1] = Point(12707.5, 5324.67);
+ polygon.ps[2] = Point(12675.5, 5324.67);
+ polygon.ps[3] = Point(12675.5, 5304.67);
+ new ShapeRef(router, polygon, 2166);
+
+ // shapeRef2167
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12369.1, 5304.67);
+ polygon.ps[1] = Point(12369.1, 5324.67);
+ polygon.ps[2] = Point(12337.1, 5324.67);
+ polygon.ps[3] = Point(12337.1, 5304.67);
+ new ShapeRef(router, polygon, 2167);
+
+ // shapeRef2168
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13117, 4532.4);
+ polygon.ps[1] = Point(13117, 4552.4);
+ polygon.ps[2] = Point(13085, 4552.4);
+ polygon.ps[3] = Point(13085, 4532.4);
+ new ShapeRef(router, polygon, 2168);
+
+ // shapeRef2169
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13492, 3852.51);
+ polygon.ps[1] = Point(13492, 3872.51);
+ polygon.ps[2] = Point(13460, 3872.51);
+ polygon.ps[3] = Point(13460, 3852.51);
+ new ShapeRef(router, polygon, 2169);
+
+ // shapeRef2170
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12707.5, 3984.51);
+ polygon.ps[1] = Point(12707.5, 4004.51);
+ polygon.ps[2] = Point(12675.5, 4004.51);
+ polygon.ps[3] = Point(12675.5, 3984.51);
+ new ShapeRef(router, polygon, 2170);
+
+ // shapeRef2171
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11254.2, 9038.42);
+ polygon.ps[1] = Point(11254.2, 9058.42);
+ polygon.ps[2] = Point(11222.2, 9058.42);
+ polygon.ps[3] = Point(11222.2, 9038.42);
+ new ShapeRef(router, polygon, 2171);
+
+ // shapeRef2172
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5506.1, 4559.4);
+ polygon.ps[1] = Point(5506.1, 4591.4);
+ polygon.ps[2] = Point(5486.1, 4591.4);
+ polygon.ps[3] = Point(5486.1, 4559.4);
+ new ShapeRef(router, polygon, 2172);
+
+ // shapeRef2173
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5506.1, 5153.4);
+ polygon.ps[1] = Point(5506.1, 5185.4);
+ polygon.ps[2] = Point(5486.1, 5185.4);
+ polygon.ps[3] = Point(5486.1, 5153.4);
+ new ShapeRef(router, polygon, 2173);
+
+ // shapeRef2174
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15851.6, 1336.29);
+ polygon.ps[1] = Point(15851.6, 1356.29);
+ polygon.ps[2] = Point(15819.6, 1356.29);
+ polygon.ps[3] = Point(15819.6, 1336.29);
+ new ShapeRef(router, polygon, 2174);
+
+ // shapeRef2175
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11122.2, 8239.99);
+ polygon.ps[1] = Point(11122.2, 8259.99);
+ polygon.ps[2] = Point(11090.2, 8259.99);
+ polygon.ps[3] = Point(11090.2, 8239.99);
+ new ShapeRef(router, polygon, 2175);
+
+ // shapeRef2176
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16540.8, 7415.4);
+ polygon.ps[1] = Point(16540.8, 7435.4);
+ polygon.ps[2] = Point(16508.8, 7435.4);
+ polygon.ps[3] = Point(16508.8, 7415.4);
+ new ShapeRef(router, polygon, 2176);
+
+ // shapeRef2177
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16540.8, 7536.79);
+ polygon.ps[1] = Point(16540.8, 7556.79);
+ polygon.ps[2] = Point(16508.8, 7556.79);
+ polygon.ps[3] = Point(16508.8, 7536.79);
+ new ShapeRef(router, polygon, 2177);
+
+ // shapeRef2178
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18532, 11972.3);
+ polygon.ps[1] = Point(18532, 11992.3);
+ polygon.ps[2] = Point(18500, 11992.3);
+ polygon.ps[3] = Point(18500, 11972.3);
+ new ShapeRef(router, polygon, 2178);
+
+ // shapeRef2179
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10819.2, 5641.9);
+ polygon.ps[1] = Point(10819.2, 5673.9);
+ polygon.ps[2] = Point(10799.2, 5673.9);
+ polygon.ps[3] = Point(10799.2, 5641.9);
+ new ShapeRef(router, polygon, 2179);
+
+ // shapeRef2180
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15620.3, 1171.29);
+ polygon.ps[1] = Point(15620.3, 1191.29);
+ polygon.ps[2] = Point(15588.3, 1191.29);
+ polygon.ps[3] = Point(15588.3, 1171.29);
+ new ShapeRef(router, polygon, 2180);
+
+ // shapeRef2181
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11254.2, 4499.4);
+ polygon.ps[1] = Point(11254.2, 4519.4);
+ polygon.ps[2] = Point(11222.2, 4519.4);
+ polygon.ps[3] = Point(11222.2, 4499.4);
+ new ShapeRef(router, polygon, 2181);
+
+ // shapeRef2182
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11254.2, 4182.51);
+ polygon.ps[1] = Point(11254.2, 4202.51);
+ polygon.ps[2] = Point(11222.2, 4202.51);
+ polygon.ps[3] = Point(11222.2, 4182.51);
+ new ShapeRef(router, polygon, 2182);
+
+ // shapeRef2183
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14614, 6953.4);
+ polygon.ps[1] = Point(14614, 6973.4);
+ polygon.ps[2] = Point(14582, 6973.4);
+ polygon.ps[3] = Point(14582, 6953.4);
+ new ShapeRef(router, polygon, 2183);
+
+ // shapeRef2184
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14614, 6636.51);
+ polygon.ps[1] = Point(14614, 6656.51);
+ polygon.ps[2] = Point(14582, 6656.51);
+ polygon.ps[3] = Point(14582, 6636.51);
+ new ShapeRef(router, polygon, 2184);
+
+ // shapeRef2185
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9992.69, 9692.42);
+ polygon.ps[1] = Point(9992.69, 9724.42);
+ polygon.ps[2] = Point(9972.69, 9724.42);
+ polygon.ps[3] = Point(9972.69, 9692.42);
+ new ShapeRef(router, polygon, 2185);
+
+ // shapeRef2186
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8700.29, 11376.8);
+ polygon.ps[1] = Point(8700.29, 11396.8);
+ polygon.ps[2] = Point(8668.29, 11396.8);
+ polygon.ps[3] = Point(8668.29, 11376.8);
+ new ShapeRef(router, polygon, 2186);
+
+ // shapeRef2187
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16076.6, 11531.7);
+ polygon.ps[1] = Point(16076.6, 11563.7);
+ polygon.ps[2] = Point(16056.6, 11563.7);
+ polygon.ps[3] = Point(16056.6, 11531.7);
+ new ShapeRef(router, polygon, 2187);
+
+ // shapeRef2188
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16082.6, 11376.8);
+ polygon.ps[1] = Point(16082.6, 11396.8);
+ polygon.ps[2] = Point(16050.6, 11396.8);
+ polygon.ps[3] = Point(16050.6, 11376.8);
+ new ShapeRef(router, polygon, 2188);
+
+ // shapeRef2189
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14218, 12415.7);
+ polygon.ps[1] = Point(14218, 12435.7);
+ polygon.ps[2] = Point(14186, 12435.7);
+ polygon.ps[3] = Point(14186, 12415.7);
+ new ShapeRef(router, polygon, 2189);
+
+ // shapeRef2190
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9695.69, 7343.4);
+ polygon.ps[1] = Point(9695.69, 7375.4);
+ polygon.ps[2] = Point(9675.69, 7375.4);
+ polygon.ps[3] = Point(9675.69, 7343.4);
+ new ShapeRef(router, polygon, 2190);
+
+ // shapeRef2191
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15781.9, 10904.6);
+ polygon.ps[1] = Point(15781.9, 10924.6);
+ polygon.ps[2] = Point(15749.9, 10924.6);
+ polygon.ps[3] = Point(15749.9, 10904.6);
+ new ShapeRef(router, polygon, 2191);
+
+ // shapeRef2192
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(669, 132.265);
+ polygon.ps[1] = Point(669, 164.265);
+ polygon.ps[2] = Point(649, 164.265);
+ polygon.ps[3] = Point(649, 132.265);
+ new ShapeRef(router, polygon, 2192);
+
+ // shapeRef2193
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15158.3, 11877.9);
+ polygon.ps[1] = Point(15158.3, 11909.9);
+ polygon.ps[2] = Point(15138.3, 11909.9);
+ polygon.ps[3] = Point(15138.3, 11877.9);
+ new ShapeRef(router, polygon, 2193);
+
+ // shapeRef2194
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7775.29, 1396.29);
+ polygon.ps[1] = Point(7775.29, 1428.29);
+ polygon.ps[2] = Point(7755.29, 1428.29);
+ polygon.ps[3] = Point(7755.29, 1396.29);
+ new ShapeRef(router, polygon, 2194);
+
+ // shapeRef2195
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12938.5, 12448.7);
+ polygon.ps[1] = Point(12938.5, 12468.7);
+ polygon.ps[2] = Point(12906.5, 12468.7);
+ polygon.ps[3] = Point(12906.5, 12448.7);
+ new ShapeRef(router, polygon, 2195);
+
+ // shapeRef2196
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15793.4, 10924.6);
+ polygon.ps[1] = Point(15793.4, 10984.6);
+ polygon.ps[2] = Point(15738.4, 10984.6);
+ polygon.ps[3] = Point(15738.4, 10924.6);
+ new ShapeRef(router, polygon, 2196);
+
+ // shapeRef2197
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14257, 12435.7);
+ polygon.ps[1] = Point(14257, 12495.7);
+ polygon.ps[2] = Point(14202, 12495.7);
+ polygon.ps[3] = Point(14202, 12435.7);
+ new ShapeRef(router, polygon, 2197);
+
+ // shapeRef2198
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16152.1, 11545.2);
+ polygon.ps[1] = Point(16152.1, 11585.2);
+ polygon.ps[2] = Point(16076.6, 11585.2);
+ polygon.ps[3] = Point(16076.6, 11545.2);
+ new ShapeRef(router, polygon, 2198);
+
+ // shapeRef2199
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16094.1, 11316.8);
+ polygon.ps[1] = Point(16094.1, 11376.8);
+ polygon.ps[2] = Point(16039.1, 11376.8);
+ polygon.ps[3] = Point(16039.1, 11316.8);
+ new ShapeRef(router, polygon, 2199);
+
+ // shapeRef2200
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(348.5, 148.265);
+ polygon.ps[1] = Point(348.5, 188.265);
+ polygon.ps[2] = Point(273, 188.265);
+ polygon.ps[3] = Point(273, 148.265);
+ new ShapeRef(router, polygon, 2200);
+
+ // shapeRef2201
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(744.5, 110.765);
+ polygon.ps[1] = Point(744.5, 150.765);
+ polygon.ps[2] = Point(669, 150.765);
+ polygon.ps[3] = Point(669, 110.765);
+ new ShapeRef(router, polygon, 2201);
+
+ // shapeRef2202
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15233.8, 11891.4);
+ polygon.ps[1] = Point(15233.8, 11931.4);
+ polygon.ps[2] = Point(15158.3, 11931.4);
+ polygon.ps[3] = Point(15158.3, 11891.4);
+ new ShapeRef(router, polygon, 2202);
+
+ // shapeRef2203
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9771.19, 7339.4);
+ polygon.ps[1] = Point(9771.19, 7379.4);
+ polygon.ps[2] = Point(9695.69, 7379.4);
+ polygon.ps[3] = Point(9695.69, 7339.4);
+ new ShapeRef(router, polygon, 2203);
+
+ // shapeRef2204
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9972.69, 9688.42);
+ polygon.ps[1] = Point(9972.69, 9728.42);
+ polygon.ps[2] = Point(9897.19, 9728.42);
+ polygon.ps[3] = Point(9897.19, 9688.42);
+ new ShapeRef(router, polygon, 2204);
+
+ // shapeRef2205
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14625.5, 6973.4);
+ polygon.ps[1] = Point(14625.5, 7033.4);
+ polygon.ps[2] = Point(14570.5, 7033.4);
+ polygon.ps[3] = Point(14570.5, 6973.4);
+ new ShapeRef(router, polygon, 2205);
+
+ // shapeRef2206
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14600.5, 6576.51);
+ polygon.ps[1] = Point(14600.5, 6636.51);
+ polygon.ps[2] = Point(14545.5, 6636.51);
+ polygon.ps[3] = Point(14545.5, 6576.51);
+ new ShapeRef(router, polygon, 2206);
+
+ // shapeRef2207
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16552.3, 7355.4);
+ polygon.ps[1] = Point(16552.3, 7415.4);
+ polygon.ps[2] = Point(16497.3, 7415.4);
+ polygon.ps[3] = Point(16497.3, 7355.4);
+ new ShapeRef(router, polygon, 2207);
+
+ // shapeRef2208
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16552.3, 7556.79);
+ polygon.ps[1] = Point(16552.3, 7616.79);
+ polygon.ps[2] = Point(16497.3, 7616.79);
+ polygon.ps[3] = Point(16497.3, 7556.79);
+ new ShapeRef(router, polygon, 2208);
+
+ // shapeRef2209
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14732.5, 1276.29);
+ polygon.ps[1] = Point(14732.5, 1336.29);
+ polygon.ps[2] = Point(14677.5, 1336.29);
+ polygon.ps[3] = Point(14677.5, 1276.29);
+ new ShapeRef(router, polygon, 2209);
+
+ // shapeRef2210
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9705.19, 6114.51);
+ polygon.ps[1] = Point(9705.19, 6174.51);
+ polygon.ps[2] = Point(9650.19, 6174.51);
+ polygon.ps[3] = Point(9650.19, 6114.51);
+ new ShapeRef(router, polygon, 2210);
+
+ // shapeRef2211
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7140.6, 10170);
+ polygon.ps[1] = Point(7140.6, 10230);
+ polygon.ps[2] = Point(7085.6, 10230);
+ polygon.ps[3] = Point(7085.6, 10170);
+ new ShapeRef(router, polygon, 2211);
+
+ // shapeRef2212
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8229.79, 9605.42);
+ polygon.ps[1] = Point(8229.79, 9665.42);
+ polygon.ps[2] = Point(8174.79, 9665.42);
+ polygon.ps[3] = Point(8174.79, 9605.42);
+ new ShapeRef(router, polygon, 2212);
+
+ // shapeRef2213
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8378.79, 9774.02);
+ polygon.ps[1] = Point(8378.79, 9834.02);
+ polygon.ps[2] = Point(8323.79, 9834.02);
+ polygon.ps[3] = Point(8323.79, 9774.02);
+ new ShapeRef(router, polygon, 2213);
+
+ // shapeRef2214
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10410.4, 9424.42);
+ polygon.ps[1] = Point(10410.4, 9464.42);
+ polygon.ps[2] = Point(10334.9, 9464.42);
+ polygon.ps[3] = Point(10334.9, 9424.42);
+ new ShapeRef(router, polygon, 2214);
+
+ // shapeRef2215
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8888.39, 10055);
+ polygon.ps[1] = Point(8888.39, 10095);
+ polygon.ps[2] = Point(8812.89, 10095);
+ polygon.ps[3] = Point(8812.89, 10055);
+ new ShapeRef(router, polygon, 2215);
+
+ // shapeRef2216
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(348.5, 108.265);
+ polygon.ps[1] = Point(348.5, 148.265);
+ polygon.ps[2] = Point(273, 148.265);
+ polygon.ps[3] = Point(273, 108.265);
+ new ShapeRef(router, polygon, 2216);
+
+ // shapeRef2217
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(398.5, 128.265);
+ polygon.ps[1] = Point(398.5, 168.265);
+ polygon.ps[2] = Point(273, 168.265);
+ polygon.ps[3] = Point(273, 128.265);
+ new ShapeRef(router, polygon, 2217);
+
+ // shapeRef2218
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9290.09, 11678.9);
+ polygon.ps[1] = Point(9290.09, 11718.9);
+ polygon.ps[2] = Point(9214.59, 11718.9);
+ polygon.ps[3] = Point(9214.59, 11678.9);
+ new ShapeRef(router, polygon, 2218);
+
+ // shapeRef2219
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9105.49, 5637.9);
+ polygon.ps[1] = Point(9105.49, 5677.9);
+ polygon.ps[2] = Point(9029.99, 5677.9);
+ polygon.ps[3] = Point(9029.99, 5637.9);
+ new ShapeRef(router, polygon, 2219);
+
+ // shapeRef2220
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9105.49, 2381.29);
+ polygon.ps[1] = Point(9105.49, 2421.29);
+ polygon.ps[2] = Point(9029.99, 2421.29);
+ polygon.ps[3] = Point(9029.99, 2381.29);
+ new ShapeRef(router, polygon, 2220);
+
+ // shapeRef2221
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8543.79, 1458.29);
+ polygon.ps[1] = Point(8543.79, 1498.29);
+ polygon.ps[2] = Point(8468.29, 1498.29);
+ polygon.ps[3] = Point(8468.29, 1458.29);
+ new ShapeRef(router, polygon, 2221);
+
+ // shapeRef2222
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8620.79, 1488.29);
+ polygon.ps[1] = Point(8620.79, 1548.29);
+ polygon.ps[2] = Point(8565.79, 1548.29);
+ polygon.ps[3] = Point(8565.79, 1488.29);
+ new ShapeRef(router, polygon, 2222);
+
+ // shapeRef2223
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8287.79, 738.091);
+ polygon.ps[1] = Point(8287.79, 798.091);
+ polygon.ps[2] = Point(8232.79, 798.091);
+ polygon.ps[3] = Point(8232.79, 738.091);
+ new ShapeRef(router, polygon, 2223);
+
+ // shapeRef2224
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8250.29, 879.785);
+ polygon.ps[1] = Point(8250.29, 919.785);
+ polygon.ps[2] = Point(8174.79, 919.785);
+ polygon.ps[3] = Point(8174.79, 879.785);
+ new ShapeRef(router, polygon, 2224);
+
+ // shapeRef2225
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8645.79, 913.285);
+ polygon.ps[1] = Point(8645.79, 973.285);
+ polygon.ps[2] = Point(8590.79, 973.285);
+ polygon.ps[3] = Point(8590.79, 913.285);
+ new ShapeRef(router, polygon, 2225);
+
+ // shapeRef2226
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15325, 980.785);
+ polygon.ps[1] = Point(15325, 1020.79);
+ polygon.ps[2] = Point(15249.5, 1020.79);
+ polygon.ps[3] = Point(15249.5, 980.785);
+ new ShapeRef(router, polygon, 2226);
+
+ // shapeRef2227
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11290.7, 4519.4);
+ polygon.ps[1] = Point(11290.7, 4579.4);
+ polygon.ps[2] = Point(11235.7, 4579.4);
+ polygon.ps[3] = Point(11235.7, 4519.4);
+ new ShapeRef(router, polygon, 2227);
+
+ // shapeRef2228
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11290.7, 4122.51);
+ polygon.ps[1] = Point(11290.7, 4182.51);
+ polygon.ps[2] = Point(11235.7, 4182.51);
+ polygon.ps[3] = Point(11235.7, 4122.51);
+ new ShapeRef(router, polygon, 2228);
+
+ // shapeRef2229
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12744, 5324.67);
+ polygon.ps[1] = Point(12744, 5384.67);
+ polygon.ps[2] = Point(12689, 5384.67);
+ polygon.ps[3] = Point(12689, 5324.67);
+ new ShapeRef(router, polygon, 2229);
+
+ // shapeRef2230
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12408.1, 5244.67);
+ polygon.ps[1] = Point(12408.1, 5304.67);
+ polygon.ps[2] = Point(12353.1, 5304.67);
+ polygon.ps[3] = Point(12353.1, 5244.67);
+ new ShapeRef(router, polygon, 2230);
+
+ // shapeRef2231
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13528.5, 3792.51);
+ polygon.ps[1] = Point(13528.5, 3852.51);
+ polygon.ps[2] = Point(13473.5, 3852.51);
+ polygon.ps[3] = Point(13473.5, 3792.51);
+ new ShapeRef(router, polygon, 2231);
+
+ // shapeRef2232
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13128.5, 4472.4);
+ polygon.ps[1] = Point(13128.5, 4532.4);
+ polygon.ps[2] = Point(13073.5, 4532.4);
+ polygon.ps[3] = Point(13073.5, 4472.4);
+ new ShapeRef(router, polygon, 2232);
+
+ // shapeRef2233
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12719, 3924.51);
+ polygon.ps[1] = Point(12719, 3984.51);
+ polygon.ps[2] = Point(12664, 3984.51);
+ polygon.ps[3] = Point(12664, 3924.51);
+ new ShapeRef(router, polygon, 2233);
+
+ // shapeRef2234
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18543.5, 11992.3);
+ polygon.ps[1] = Point(18543.5, 12052.3);
+ polygon.ps[2] = Point(18488.5, 12052.3);
+ polygon.ps[3] = Point(18488.5, 11992.3);
+ new ShapeRef(router, polygon, 2234);
+
+ // shapeRef2235
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11265.7, 9058.42);
+ polygon.ps[1] = Point(11265.7, 9118.42);
+ polygon.ps[2] = Point(11210.7, 9118.42);
+ polygon.ps[3] = Point(11210.7, 9058.42);
+ new ShapeRef(router, polygon, 2235);
+
+ // shapeRef2236
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15888.1, 1356.29);
+ polygon.ps[1] = Point(15888.1, 1416.29);
+ polygon.ps[2] = Point(15833.1, 1416.29);
+ polygon.ps[3] = Point(15833.1, 1356.29);
+ new ShapeRef(router, polygon, 2236);
+
+ // shapeRef2237
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11133.7, 8259.99);
+ polygon.ps[1] = Point(11133.7, 8319.99);
+ polygon.ps[2] = Point(11078.7, 8319.99);
+ polygon.ps[3] = Point(11078.7, 8259.99);
+ new ShapeRef(router, polygon, 2237);
+
+ // shapeRef2238
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10894.7, 5655.4);
+ polygon.ps[1] = Point(10894.7, 5695.4);
+ polygon.ps[2] = Point(10819.2, 5695.4);
+ polygon.ps[3] = Point(10819.2, 5655.4);
+ new ShapeRef(router, polygon, 2238);
+
+ // shapeRef2239
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15631.8, 1111.29);
+ polygon.ps[1] = Point(15631.8, 1171.29);
+ polygon.ps[2] = Point(15576.8, 1171.29);
+ polygon.ps[3] = Point(15576.8, 1111.29);
+ new ShapeRef(router, polygon, 2239);
+
+ // shapeRef2240
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15760.4, 1276.29);
+ polygon.ps[1] = Point(15760.4, 1336.29);
+ polygon.ps[2] = Point(15705.4, 1336.29);
+ polygon.ps[3] = Point(15705.4, 1276.29);
+ new ShapeRef(router, polygon, 2240);
+
+ // shapeRef2241
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5581.6, 4555.4);
+ polygon.ps[1] = Point(5581.6, 4595.4);
+ polygon.ps[2] = Point(5506.1, 4595.4);
+ polygon.ps[3] = Point(5506.1, 4555.4);
+ new ShapeRef(router, polygon, 2241);
+
+ // shapeRef2242
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5581.6, 5149.4);
+ polygon.ps[1] = Point(5581.6, 5189.4);
+ polygon.ps[2] = Point(5506.1, 5189.4);
+ polygon.ps[3] = Point(5506.1, 5149.4);
+ new ShapeRef(router, polygon, 2242);
+
+ // shapeRef2243
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8711.79, 11396.8);
+ polygon.ps[1] = Point(8711.79, 11456.8);
+ polygon.ps[2] = Point(8656.79, 11456.8);
+ polygon.ps[3] = Point(8656.79, 11396.8);
+ new ShapeRef(router, polygon, 2243);
+
+ // shapeRef2244
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7850.79, 1392.29);
+ polygon.ps[1] = Point(7850.79, 1432.29);
+ polygon.ps[2] = Point(7775.29, 1432.29);
+ polygon.ps[3] = Point(7775.29, 1392.29);
+ new ShapeRef(router, polygon, 2244);
+
+ // shapeRef2245
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12925, 12388.7);
+ polygon.ps[1] = Point(12925, 12448.7);
+ polygon.ps[2] = Point(12870, 12448.7);
+ polygon.ps[3] = Point(12870, 12388.7);
+ new ShapeRef(router, polygon, 2245);
+
+ // shapeRef2246
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4751, 10448);
+ polygon.ps[1] = Point(4751, 10494.2);
+ polygon.ps[2] = Point(4666.9, 10494.2);
+ polygon.ps[3] = Point(4666.9, 10448);
+ new ShapeRef(router, polygon, 2246);
+
+ // shapeRef2247
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4543, 10583.3);
+ polygon.ps[1] = Point(4543, 10667.4);
+ polygon.ps[2] = Point(4496.77, 10667.4);
+ polygon.ps[3] = Point(4496.77, 10583.3);
+ new ShapeRef(router, polygon, 2247);
+
+ // shapeRef2248
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7930.29, 7138.4);
+ polygon.ps[1] = Point(7930.29, 7183.1);
+ polygon.ps[2] = Point(7872.07, 7183.1);
+ polygon.ps[3] = Point(7872.07, 7138.4);
+ new ShapeRef(router, polygon, 2248);
+
+ // shapeRef2249
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9430.15, 9652.42);
+ polygon.ps[1] = Point(9430.15, 9724.02);
+ polygon.ps[2] = Point(9369.59, 9724.02);
+ polygon.ps[3] = Point(9369.59, 9652.42);
+ new ShapeRef(router, polygon, 2249);
+
+ // shapeRef2250
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 2320.72);
+ polygon.ps[1] = Point(8825.89, 2381.29);
+ polygon.ps[2] = Point(8754.29, 2381.29);
+ polygon.ps[3] = Point(8754.29, 2320.72);
+ new ShapeRef(router, polygon, 2250);
+
+ // shapeRef2251
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 5314.67);
+ polygon.ps[1] = Point(12521.5, 5375.23);
+ polygon.ps[2] = Point(12449.9, 5375.23);
+ polygon.ps[3] = Point(12449.9, 5314.67);
+ new ShapeRef(router, polygon, 2251);
+
+ // shapeRef2252
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12922.5, 4519.4);
+ polygon.ps[1] = Point(12922.5, 4564.1);
+ polygon.ps[2] = Point(12864.3, 4564.1);
+ polygon.ps[3] = Point(12864.3, 4519.4);
+ new ShapeRef(router, polygon, 2252);
+
+ // shapeRef2253
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11296.4, 8883.22);
+ polygon.ps[1] = Point(11296.4, 8927.91);
+ polygon.ps[2] = Point(11238.2, 8927.91);
+ polygon.ps[3] = Point(11238.2, 8883.22);
+ new ShapeRef(router, polygon, 2253);
+
+ // shapeRef2254
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15637.3, 468.265);
+ polygon.ps[1] = Point(15637.3, 514.5);
+ polygon.ps[2] = Point(15553.2, 514.5);
+ polygon.ps[3] = Point(15553.2, 468.265);
+ new ShapeRef(router, polygon, 2254);
+
+ // shapeRef2255
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11164.4, 8084.79);
+ polygon.ps[1] = Point(11164.4, 8129.49);
+ polygon.ps[2] = Point(11106.2, 8129.49);
+ polygon.ps[3] = Point(11106.2, 8084.79);
+ new ShapeRef(router, polygon, 2255);
+
+ // shapeRef2256
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14598, 6798.21);
+ polygon.ps[1] = Point(14598, 6842.9);
+ polygon.ps[2] = Point(14539.8, 6842.9);
+ polygon.ps[3] = Point(14539.8, 6798.21);
+ new ShapeRef(router, polygon, 2256);
+
+ // shapeRef2257
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9708.42);
+ polygon.ps[1] = Point(10314.9, 9766.64);
+ polygon.ps[2] = Point(10270.2, 9766.64);
+ polygon.ps[3] = Point(10270.2, 9708.42);
+ new ShapeRef(router, polygon, 2257);
+
+ // shapeRef2258
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15045.1, 12302.3);
+ polygon.ps[1] = Point(15045.1, 12347);
+ polygon.ps[2] = Point(14986.9, 12347);
+ polygon.ps[3] = Point(14986.9, 12302.3);
+ new ShapeRef(router, polygon, 2258);
+
+ // shapeRef2259
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14202, 12302.3);
+ polygon.ps[1] = Point(14202, 12373.9);
+ polygon.ps[2] = Point(14141.4, 12373.9);
+ polygon.ps[3] = Point(14141.4, 12302.3);
+ new ShapeRef(router, polygon, 2259);
+
+ // shapeRef2260
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15850, 10791.3);
+ polygon.ps[1] = Point(15850, 10837.5);
+ polygon.ps[2] = Point(15765.9, 10837.5);
+ polygon.ps[3] = Point(15765.9, 10791.3);
+ new ShapeRef(router, polygon, 2260);
+
+ // shapeRef2261
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7755.29, 790.723);
+ polygon.ps[1] = Point(7755.29, 851.285);
+ polygon.ps[2] = Point(7683.69, 851.285);
+ polygon.ps[3] = Point(7683.69, 790.723);
+ new ShapeRef(router, polygon, 2261);
+
+ // shapeRef2262
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11924.1, 12137.3);
+ polygon.ps[1] = Point(11924.1, 12182);
+ polygon.ps[2] = Point(11865.9, 12182);
+ polygon.ps[3] = Point(11865.9, 12137.3);
+ new ShapeRef(router, polygon, 2262);
+
+ // shapeRef2263
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12922.5, 12137.3);
+ polygon.ps[1] = Point(12922.5, 12208.9);
+ polygon.ps[2] = Point(12861.9, 12208.9);
+ polygon.ps[3] = Point(12861.9, 12137.3);
+ new ShapeRef(router, polygon, 2263);
+
+ // shapeRef2264
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7598.1, 2950.06);
+ polygon.ps[1] = Point(7598.1, 3008.29);
+ polygon.ps[2] = Point(7553.4, 3008.29);
+ polygon.ps[3] = Point(7553.4, 2950.06);
+ new ShapeRef(router, polygon, 2264);
+
+ // shapeRef2265
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(253, 148.265);
+ polygon.ps[1] = Point(253, 208.827);
+ polygon.ps[2] = Point(181.401, 208.827);
+ polygon.ps[3] = Point(181.401, 148.265);
+ new ShapeRef(router, polygon, 2265);
+
+ // shapeRef2266
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 4575.4);
+ polygon.ps[1] = Point(5486.1, 4659.5);
+ polygon.ps[2] = Point(5439.86, 4659.5);
+ polygon.ps[3] = Point(5439.86, 4575.4);
+ new ShapeRef(router, polygon, 2266);
+
+ // shapeRef2267
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 5169.4);
+ polygon.ps[1] = Point(5486.1, 5253.5);
+ polygon.ps[2] = Point(5439.86, 5253.5);
+ polygon.ps[3] = Point(5439.86, 5169.4);
+ new ShapeRef(router, polygon, 2267);
+
+ // shapeRef2268
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11296.4, 4202.51);
+ polygon.ps[1] = Point(11296.4, 4247.21);
+ polygon.ps[2] = Point(11238.2, 4247.21);
+ polygon.ps[3] = Point(11238.2, 4202.51);
+ new ShapeRef(router, polygon, 2268);
+
+ // shapeRef2269
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16127.2, 11396.8);
+ polygon.ps[1] = Point(16127.2, 11468.4);
+ polygon.ps[2] = Point(16066.6, 11468.4);
+ polygon.ps[3] = Point(16066.6, 11396.8);
+ new ShapeRef(router, polygon, 2269);
+
+ // shapeRef2270
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9369.59, 9652.42);
+ polygon.ps[1] = Point(9369.59, 9728.65);
+ polygon.ps[2] = Point(9279.83, 9728.65);
+ polygon.ps[3] = Point(9279.83, 9652.42);
+ new ShapeRef(router, polygon, 2270);
+
+ // shapeRef2271
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 2381.29);
+ polygon.ps[1] = Point(8825.89, 2465.38);
+ polygon.ps[2] = Point(8779.66, 2465.38);
+ polygon.ps[3] = Point(8779.66, 2381.29);
+ new ShapeRef(router, polygon, 2271);
+
+ // shapeRef2272
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 5224.91);
+ polygon.ps[1] = Point(12521.5, 5314.67);
+ polygon.ps[2] = Point(12445.3, 5314.67);
+ polygon.ps[3] = Point(12445.3, 5224.91);
+ new ShapeRef(router, polygon, 2272);
+
+ // shapeRef2273
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13012.3, 4519.4);
+ polygon.ps[1] = Point(13012.3, 4595.63);
+ polygon.ps[2] = Point(12922.5, 4595.63);
+ polygon.ps[3] = Point(12922.5, 4519.4);
+ new ShapeRef(router, polygon, 2273);
+
+ // shapeRef2274
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 8883.22);
+ polygon.ps[1] = Point(11238.2, 8929.45);
+ polygon.ps[2] = Point(11154.1, 8929.45);
+ polygon.ps[3] = Point(11154.1, 8883.22);
+ new ShapeRef(router, polygon, 2274);
+
+ // shapeRef2275
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15721.4, 468.265);
+ polygon.ps[1] = Point(15721.4, 514.5);
+ polygon.ps[2] = Point(15637.3, 514.5);
+ polygon.ps[3] = Point(15637.3, 468.265);
+ new ShapeRef(router, polygon, 2275);
+
+ // shapeRef2276
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11106.2, 8084.79);
+ polygon.ps[1] = Point(11106.2, 8131.03);
+ polygon.ps[2] = Point(11022.1, 8131.03);
+ polygon.ps[3] = Point(11022.1, 8084.79);
+ new ShapeRef(router, polygon, 2276);
+
+ // shapeRef2277
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14682.1, 6798.21);
+ polygon.ps[1] = Point(14682.1, 6844.44);
+ polygon.ps[2] = Point(14598, 6844.44);
+ polygon.ps[3] = Point(14598, 6798.21);
+ new ShapeRef(router, polygon, 2277);
+
+ // shapeRef2278
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9618.65);
+ polygon.ps[1] = Point(10314.9, 9708.42);
+ polygon.ps[2] = Point(10238.7, 9708.42);
+ polygon.ps[3] = Point(10238.7, 9618.65);
+ new ShapeRef(router, polygon, 2278);
+
+ // shapeRef2279
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14986.9, 12302.3);
+ polygon.ps[1] = Point(14986.9, 12348.5);
+ polygon.ps[2] = Point(14902.8, 12348.5);
+ polygon.ps[3] = Point(14902.8, 12302.3);
+ new ShapeRef(router, polygon, 2279);
+
+ // shapeRef2280
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14291.7, 12302.3);
+ polygon.ps[1] = Point(14291.7, 12378.5);
+ polygon.ps[2] = Point(14202, 12378.5);
+ polygon.ps[3] = Point(14202, 12302.3);
+ new ShapeRef(router, polygon, 2280);
+
+ // shapeRef2281
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15765.9, 10791.3);
+ polygon.ps[1] = Point(15765.9, 10867.5);
+ polygon.ps[2] = Point(15676.1, 10867.5);
+ polygon.ps[3] = Point(15676.1, 10791.3);
+ new ShapeRef(router, polygon, 2281);
+
+ // shapeRef2282
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7755.29, 851.285);
+ polygon.ps[1] = Point(7755.29, 935.383);
+ polygon.ps[2] = Point(7709.06, 935.383);
+ polygon.ps[3] = Point(7709.06, 851.285);
+ new ShapeRef(router, polygon, 2282);
+
+ // shapeRef2283
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12008.2, 12137.3);
+ polygon.ps[1] = Point(12008.2, 12183.5);
+ polygon.ps[2] = Point(11924.1, 12183.5);
+ polygon.ps[3] = Point(11924.1, 12137.3);
+ new ShapeRef(router, polygon, 2283);
+
+ // shapeRef2284
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13006.6, 12137.3);
+ polygon.ps[1] = Point(13006.6, 12183.5);
+ polygon.ps[2] = Point(12922.5, 12183.5);
+ polygon.ps[3] = Point(12922.5, 12137.3);
+ new ShapeRef(router, polygon, 2284);
+
+ // shapeRef2285
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7598.1, 3008.29);
+ polygon.ps[1] = Point(7598.1, 3092.38);
+ polygon.ps[2] = Point(7551.86, 3092.38);
+ polygon.ps[3] = Point(7551.86, 3008.29);
+ new ShapeRef(router, polygon, 2285);
+
+ // shapeRef2286
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(253, 58.5019);
+ polygon.ps[1] = Point(253, 148.265);
+ polygon.ps[2] = Point(176.77, 148.265);
+ polygon.ps[3] = Point(176.77, 58.5019);
+ new ShapeRef(router, polygon, 2286);
+
+ // shapeRef2287
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 4491.31);
+ polygon.ps[1] = Point(5486.1, 4575.4);
+ polygon.ps[2] = Point(5439.86, 4575.4);
+ polygon.ps[3] = Point(5439.86, 4491.31);
+ new ShapeRef(router, polygon, 2287);
+
+ // shapeRef2288
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 5085.31);
+ polygon.ps[1] = Point(5486.1, 5169.4);
+ polygon.ps[2] = Point(5439.86, 5169.4);
+ polygon.ps[3] = Point(5439.86, 5085.31);
+ new ShapeRef(router, polygon, 2288);
+
+ // shapeRef2289
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 4202.51);
+ polygon.ps[1] = Point(11238.2, 4248.75);
+ polygon.ps[2] = Point(11154.1, 4248.75);
+ polygon.ps[3] = Point(11154.1, 4202.51);
+ new ShapeRef(router, polygon, 2289);
+
+ // shapeRef2290
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16066.6, 11396.8);
+ polygon.ps[1] = Point(16066.6, 11473.1);
+ polygon.ps[2] = Point(15976.8, 11473.1);
+ polygon.ps[3] = Point(15976.8, 11396.8);
+ new ShapeRef(router, polygon, 2290);
+
+ // shapeRef2291
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4279, 9768.75);
+ polygon.ps[1] = Point(4279, 9877.02);
+ polygon.ps[2] = Point(4232.22, 9877.02);
+ polygon.ps[3] = Point(4232.22, 9768.75);
+ new ShapeRef(router, polygon, 2291);
+
+ // shapeRef2292
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4859.27, 10448);
+ polygon.ps[1] = Point(4859.27, 10494.8);
+ polygon.ps[2] = Point(4751, 10494.8);
+ polygon.ps[3] = Point(4751, 10448);
+ new ShapeRef(router, polygon, 2292);
+
+ // shapeRef2293
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4543, 10475);
+ polygon.ps[1] = Point(4543, 10583.3);
+ polygon.ps[2] = Point(4496.22, 10583.3);
+ polygon.ps[3] = Point(4496.22, 10475);
+ new ShapeRef(router, polygon, 2293);
+
+ // shapeRef2294
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9369.59, 9652.42);
+ polygon.ps[1] = Point(9369.59, 9748.77);
+ polygon.ps[2] = Point(9308.19, 9748.77);
+ polygon.ps[3] = Point(9308.19, 9652.42);
+ new ShapeRef(router, polygon, 2294);
+
+ // shapeRef2295
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10667.2, 8579.99);
+ polygon.ps[1] = Point(10667.2, 8640.55);
+ polygon.ps[2] = Point(10595.6, 8640.55);
+ polygon.ps[3] = Point(10595.6, 8579.99);
+ new ShapeRef(router, polygon, 2295);
+
+ // shapeRef2296
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 2381.29);
+ polygon.ps[1] = Point(8825.89, 2441.85);
+ polygon.ps[2] = Point(8754.29, 2441.85);
+ polygon.ps[3] = Point(8754.29, 2381.29);
+ new ShapeRef(router, polygon, 2296);
+
+ // shapeRef2297
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9812.25, 818.091);
+ polygon.ps[1] = Point(9812.25, 889.69);
+ polygon.ps[2] = Point(9751.69, 889.69);
+ polygon.ps[3] = Point(9751.69, 818.091);
+ new ShapeRef(router, polygon, 2297);
+
+ // shapeRef2298
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10964.2, 1115.29);
+ polygon.ps[1] = Point(10964.2, 1176.69);
+ polygon.ps[2] = Point(10867.9, 1176.69);
+ polygon.ps[3] = Point(10867.9, 1115.29);
+ new ShapeRef(router, polygon, 2298);
+
+ // shapeRef2299
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 5253.27);
+ polygon.ps[1] = Point(12521.5, 5314.67);
+ polygon.ps[2] = Point(12425.1, 5314.67);
+ polygon.ps[3] = Point(12425.1, 5253.27);
+ new ShapeRef(router, polygon, 2299);
+
+ // shapeRef2300
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12983.9, 4519.4);
+ polygon.ps[1] = Point(12983.9, 4615.76);
+ polygon.ps[2] = Point(12922.5, 4615.76);
+ polygon.ps[3] = Point(12922.5, 4519.4);
+ new ShapeRef(router, polygon, 2300);
+
+ // shapeRef2301
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 7750.23);
+ polygon.ps[1] = Point(10799.2, 7810.79);
+ polygon.ps[2] = Point(10727.6, 7810.79);
+ polygon.ps[3] = Point(10727.6, 7750.23);
+ new ShapeRef(router, polygon, 2301);
+
+ // shapeRef2302
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 8883.22);
+ polygon.ps[1] = Point(11238.2, 8954.82);
+ polygon.ps[2] = Point(11177.7, 8954.82);
+ polygon.ps[3] = Point(11177.7, 8883.22);
+ new ShapeRef(router, polygon, 2302);
+
+ // shapeRef2303
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7536.66, 3575.51);
+ polygon.ps[1] = Point(7536.66, 3647.11);
+ polygon.ps[2] = Point(7476.1, 3647.11);
+ polygon.ps[3] = Point(7476.1, 3575.51);
+ new ShapeRef(router, polygon, 2303);
+
+ // shapeRef2304
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 4514.84);
+ polygon.ps[1] = Point(5302, 4575.4);
+ polygon.ps[2] = Point(5230.4, 4575.4);
+ polygon.ps[3] = Point(5230.4, 4514.84);
+ new ShapeRef(router, polygon, 2304);
+
+ // shapeRef2305
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15697.8, 468.265);
+ polygon.ps[1] = Point(15697.8, 539.864);
+ polygon.ps[2] = Point(15637.3, 539.864);
+ polygon.ps[3] = Point(15637.3, 468.265);
+ new ShapeRef(router, polygon, 2305);
+
+ // shapeRef2306
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11106.2, 8084.79);
+ polygon.ps[1] = Point(11106.2, 8156.39);
+ polygon.ps[2] = Point(11045.7, 8156.39);
+ polygon.ps[3] = Point(11045.7, 8084.79);
+ new ShapeRef(router, polygon, 2306);
+
+ // shapeRef2307
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6381.66, 435.265);
+ polygon.ps[1] = Point(6381.66, 506.864);
+ polygon.ps[2] = Point(6321.1, 506.864);
+ polygon.ps[3] = Point(6321.1, 435.265);
+ new ShapeRef(router, polygon, 2307);
+
+ // shapeRef2308
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 4371.11);
+ polygon.ps[1] = Point(11238.2, 4442.71);
+ polygon.ps[2] = Point(11177.7, 4442.71);
+ polygon.ps[3] = Point(11177.7, 4371.11);
+ new ShapeRef(router, polygon, 2308);
+
+ // shapeRef2309
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14658.5, 6798.21);
+ polygon.ps[1] = Point(14658.5, 6869.81);
+ polygon.ps[2] = Point(14598, 6869.81);
+ polygon.ps[3] = Point(14598, 6798.21);
+ new ShapeRef(router, polygon, 2309);
+
+ // shapeRef2310
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16557.8, 10184);
+ polygon.ps[1] = Point(16557.8, 10255.6);
+ polygon.ps[2] = Point(16497.3, 10255.6);
+ polygon.ps[3] = Point(16497.3, 10184);
+ new ShapeRef(router, polygon, 2310);
+
+ // shapeRef2311
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9647.01);
+ polygon.ps[1] = Point(10314.9, 9708.42);
+ polygon.ps[2] = Point(10218.5, 9708.42);
+ polygon.ps[3] = Point(10218.5, 9647.01);
+ new ShapeRef(router, polygon, 2311);
+
+ // shapeRef2312
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7953.29, 10955.4);
+ polygon.ps[1] = Point(7953.29, 11013.6);
+ polygon.ps[2] = Point(7908.6, 11013.6);
+ polygon.ps[3] = Point(7908.6, 10955.4);
+ new ShapeRef(router, polygon, 2312);
+
+ // shapeRef2313
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12757.5, 11642.9);
+ polygon.ps[1] = Point(12757.5, 11714.5);
+ polygon.ps[2] = Point(12696.9, 11714.5);
+ polygon.ps[3] = Point(12696.9, 11642.9);
+ new ShapeRef(router, polygon, 2313);
+
+ // shapeRef2314
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14986.9, 12302.3);
+ polygon.ps[1] = Point(14986.9, 12373.9);
+ polygon.ps[2] = Point(14926.3, 12373.9);
+ polygon.ps[3] = Point(14926.3, 12302.3);
+ new ShapeRef(router, polygon, 2314);
+
+ // shapeRef2315
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14263.4, 12302.3);
+ polygon.ps[1] = Point(14263.4, 12398.7);
+ polygon.ps[2] = Point(14202, 12398.7);
+ polygon.ps[3] = Point(14202, 12302.3);
+ new ShapeRef(router, polygon, 2315);
+
+ // shapeRef2316
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13101, 10791.3);
+ polygon.ps[1] = Point(13101, 10862.9);
+ polygon.ps[2] = Point(13040.4, 10862.9);
+ polygon.ps[3] = Point(13040.4, 10791.3);
+ new ShapeRef(router, polygon, 2316);
+
+ // shapeRef2317
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15765.9, 10791.3);
+ polygon.ps[1] = Point(15765.9, 10887.6);
+ polygon.ps[2] = Point(15704.5, 10887.6);
+ polygon.ps[3] = Point(15704.5, 10791.3);
+ new ShapeRef(router, polygon, 2317);
+
+ // shapeRef2318
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7755.29, 851.285);
+ polygon.ps[1] = Point(7755.29, 911.847);
+ polygon.ps[2] = Point(7683.69, 911.847);
+ polygon.ps[3] = Point(7683.69, 851.285);
+ new ShapeRef(router, polygon, 2318);
+
+ // shapeRef2319
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11984.7, 12137.3);
+ polygon.ps[1] = Point(11984.7, 12208.9);
+ polygon.ps[2] = Point(11924.1, 12208.9);
+ polygon.ps[3] = Point(11924.1, 12137.3);
+ new ShapeRef(router, polygon, 2319);
+
+ // shapeRef2320
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12983.1, 12137.3);
+ polygon.ps[1] = Point(12983.1, 12208.9);
+ polygon.ps[2] = Point(12922.5, 12208.9);
+ polygon.ps[3] = Point(12922.5, 12137.3);
+ new ShapeRef(router, polygon, 2320);
+
+ // shapeRef2321
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7598.1, 3008.29);
+ polygon.ps[1] = Point(7598.1, 3068.85);
+ polygon.ps[2] = Point(7526.5, 3068.85);
+ polygon.ps[3] = Point(7526.5, 3008.29);
+ new ShapeRef(router, polygon, 2321);
+
+ // shapeRef2322
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(253, 86.8638);
+ polygon.ps[1] = Point(253, 148.265);
+ polygon.ps[2] = Point(156.647, 148.265);
+ polygon.ps[3] = Point(156.647, 86.8638);
+ new ShapeRef(router, polygon, 2322);
+
+ // shapeRef2323
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 2381.29);
+ polygon.ps[1] = Point(9009.99, 2441.85);
+ polygon.ps[2] = Point(8938.39, 2441.85);
+ polygon.ps[3] = Point(8938.39, 2381.29);
+ new ShapeRef(router, polygon, 2323);
+
+ // shapeRef2324
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13162.4, 4552.4);
+ polygon.ps[1] = Point(13162.4, 4648.76);
+ polygon.ps[2] = Point(13101, 4648.76);
+ polygon.ps[3] = Point(13101, 4552.4);
+ new ShapeRef(router, polygon, 2324);
+
+ // shapeRef2325
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 8966.82);
+ polygon.ps[1] = Point(11238.2, 9038.42);
+ polygon.ps[2] = Point(11177.7, 9038.42);
+ polygon.ps[3] = Point(11177.7, 8966.82);
+ new ShapeRef(router, polygon, 2325);
+
+ // shapeRef2326
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 4514.84);
+ polygon.ps[1] = Point(5486.1, 4575.4);
+ polygon.ps[2] = Point(5414.5, 4575.4);
+ polygon.ps[3] = Point(5414.5, 4514.84);
+ new ShapeRef(router, polygon, 2326);
+
+ // shapeRef2327
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 5108.84);
+ polygon.ps[1] = Point(5486.1, 5169.4);
+ polygon.ps[2] = Point(5414.5, 5169.4);
+ polygon.ps[3] = Point(5414.5, 5108.84);
+ new ShapeRef(router, polygon, 2327);
+
+ // shapeRef2328
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11106.2, 8168.39);
+ polygon.ps[1] = Point(11106.2, 8239.99);
+ polygon.ps[2] = Point(11045.7, 8239.99);
+ polygon.ps[3] = Point(11045.7, 8168.39);
+ new ShapeRef(router, polygon, 2328);
+
+ // shapeRef2329
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 4202.51);
+ polygon.ps[1] = Point(11238.2, 4274.11);
+ polygon.ps[2] = Point(11177.7, 4274.11);
+ polygon.ps[3] = Point(11177.7, 4202.51);
+ new ShapeRef(router, polygon, 2329);
+
+ // shapeRef2330
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14658.5, 6881.81);
+ polygon.ps[1] = Point(14658.5, 6953.4);
+ polygon.ps[2] = Point(14598, 6953.4);
+ polygon.ps[3] = Point(14598, 6881.81);
+ new ShapeRef(router, polygon, 2330);
+
+ // shapeRef2331
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10089, 9647.01);
+ polygon.ps[1] = Point(10089, 9708.42);
+ polygon.ps[2] = Point(9992.69, 9708.42);
+ polygon.ps[3] = Point(9992.69, 9647.01);
+ new ShapeRef(router, polygon, 2331);
+
+ // shapeRef2332
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16066.6, 11396.8);
+ polygon.ps[1] = Point(16066.6, 11493.2);
+ polygon.ps[2] = Point(16005.2, 11493.2);
+ polygon.ps[3] = Point(16005.2, 11396.8);
+ new ShapeRef(router, polygon, 2332);
+
+ // shapeRef2333
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 5108.84);
+ polygon.ps[1] = Point(5302, 5169.4);
+ polygon.ps[2] = Point(5230.4, 5169.4);
+ polygon.ps[3] = Point(5230.4, 5108.84);
+ new ShapeRef(router, polygon, 2333);
+
+ // shapeRef2334
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4279, 9787.25);
+ polygon.ps[1] = Point(4279, 9877.02);
+ polygon.ps[2] = Point(4202.77, 9877.02);
+ polygon.ps[3] = Point(4202.77, 9787.25);
+ new ShapeRef(router, polygon, 2334);
+
+ // shapeRef2335
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4840.76, 10448);
+ polygon.ps[1] = Point(4840.76, 10524.2);
+ polygon.ps[2] = Point(4751, 10524.2);
+ polygon.ps[3] = Point(4751, 10448);
+ new ShapeRef(router, polygon, 2335);
+
+ // shapeRef2336
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4543, 10493.5);
+ polygon.ps[1] = Point(4543, 10583.3);
+ polygon.ps[2] = Point(4466.77, 10583.3);
+ polygon.ps[3] = Point(4466.77, 10493.5);
+ new ShapeRef(router, polygon, 2336);
+
+ // shapeRef2337
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10512.2, 10692.3);
+ polygon.ps[1] = Point(10512.2, 10763.9);
+ polygon.ps[2] = Point(10451.7, 10763.9);
+ polygon.ps[3] = Point(10451.7, 10692.3);
+ new ShapeRef(router, polygon, 2337);
+
+ // shapeRef2338
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8392.29, 5522.67);
+ polygon.ps[1] = Point(8392.29, 5567.36);
+ polygon.ps[2] = Point(8334.07, 5567.36);
+ polygon.ps[3] = Point(8334.07, 5522.67);
+ new ShapeRef(router, polygon, 2338);
+
+ // shapeRef2339
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11485.1, 7686.57);
+ polygon.ps[1] = Point(11485.1, 7744.79);
+ polygon.ps[2] = Point(11440.4, 7744.79);
+ polygon.ps[3] = Point(11440.4, 7686.57);
+ new ShapeRef(router, polygon, 2339);
+
+ // shapeRef2340
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7887.29, 4443.4);
+ polygon.ps[1] = Point(7887.29, 4501.63);
+ polygon.ps[2] = Point(7842.6, 4501.63);
+ polygon.ps[3] = Point(7842.6, 4443.4);
+ new ShapeRef(router, polygon, 2340);
+
+ // shapeRef2341
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8792.89, 9990.92);
+ polygon.ps[1] = Point(8792.89, 10075);
+ polygon.ps[2] = Point(8746.66, 10075);
+ polygon.ps[3] = Point(8746.66, 9990.92);
+ new ShapeRef(router, polygon, 2341);
+
+ // shapeRef2342
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 5573.8);
+ polygon.ps[1] = Point(9009.99, 5657.9);
+ polygon.ps[2] = Point(8963.76, 5657.9);
+ polygon.ps[3] = Point(8963.76, 5573.8);
+ new ShapeRef(router, polygon, 2342);
+
+ // shapeRef2343
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15138.3, 11809.8);
+ polygon.ps[1] = Point(15138.3, 11893.9);
+ polygon.ps[2] = Point(15092.1, 11893.9);
+ polygon.ps[3] = Point(15092.1, 11809.8);
+ new ShapeRef(router, polygon, 2343);
+
+ // shapeRef2344
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9196.82, 6161.51);
+ polygon.ps[1] = Point(9196.82, 6206.21);
+ polygon.ps[2] = Point(9138.59, 6206.21);
+ polygon.ps[3] = Point(9138.59, 6161.51);
+ new ShapeRef(router, polygon, 2344);
+
+ // shapeRef2345
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15229.5, 1346.29);
+ polygon.ps[1] = Point(15229.5, 1404.51);
+ polygon.ps[2] = Point(15184.8, 1404.51);
+ polygon.ps[3] = Point(15184.8, 1346.29);
+ new ShapeRef(router, polygon, 2345);
+
+ // shapeRef2346
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9453.69, 9652.42);
+ polygon.ps[1] = Point(9453.69, 9698.65);
+ polygon.ps[2] = Point(9369.59, 9698.65);
+ polygon.ps[3] = Point(9369.59, 9652.42);
+ new ShapeRef(router, polygon, 2346);
+
+ // shapeRef2347
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9394.82, 5457.98);
+ polygon.ps[1] = Point(9394.82, 5502.67);
+ polygon.ps[2] = Point(9336.59, 5502.67);
+ polygon.ps[3] = Point(9336.59, 5457.98);
+ new ShapeRef(router, polygon, 2347);
+
+ // shapeRef2348
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15858.6, 11893.9);
+ polygon.ps[1] = Point(15858.6, 11952.1);
+ polygon.ps[2] = Point(15813.9, 11952.1);
+ polygon.ps[3] = Point(15813.9, 11893.9);
+ new ShapeRef(router, polygon, 2348);
+
+ // shapeRef2349
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(1583, 4783.4);
+ polygon.ps[1] = Point(1583, 4828.1);
+ polygon.ps[2] = Point(1524.77, 4828.1);
+ polygon.ps[3] = Point(1524.77, 4783.4);
+ new ShapeRef(router, polygon, 2349);
+
+ // shapeRef2350
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(3035, 4783.4);
+ polygon.ps[1] = Point(3035, 4828.1);
+ polygon.ps[2] = Point(2976.77, 4828.1);
+ polygon.ps[3] = Point(2976.77, 4783.4);
+ new ShapeRef(router, polygon, 2350);
+
+ // shapeRef2351
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14788.2, 1356.29);
+ polygon.ps[1] = Point(14788.2, 1400.98);
+ polygon.ps[2] = Point(14730, 1400.98);
+ polygon.ps[3] = Point(14730, 1356.29);
+ new ShapeRef(router, polygon, 2351);
+
+ // shapeRef2352
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8227.29, 9685.42);
+ polygon.ps[1] = Point(8227.29, 9757.02);
+ polygon.ps[2] = Point(8166.73, 9757.02);
+ polygon.ps[3] = Point(8166.73, 9685.42);
+ new ShapeRef(router, polygon, 2352);
+
+ // shapeRef2353
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8326.29, 9854.02);
+ polygon.ps[1] = Point(8326.29, 9925.61);
+ polygon.ps[2] = Point(8265.73, 9925.61);
+ polygon.ps[3] = Point(8265.73, 9854.02);
+ new ShapeRef(router, polygon, 2353);
+
+ // shapeRef2354
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9875.92, 7171.4);
+ polygon.ps[1] = Point(9875.92, 7216.1);
+ polygon.ps[2] = Point(9817.69, 7216.1);
+ polygon.ps[3] = Point(9817.69, 7171.4);
+ new ShapeRef(router, polygon, 2354);
+
+ // shapeRef2355
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10446.9, 7818.57);
+ polygon.ps[1] = Point(10446.9, 7876.79);
+ polygon.ps[2] = Point(10402.2, 7876.79);
+ polygon.ps[3] = Point(10402.2, 7818.57);
+ new ShapeRef(router, polygon, 2355);
+
+ // shapeRef2356
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7499.1, 8008.79);
+ polygon.ps[1] = Point(7499.1, 8067.02);
+ polygon.ps[2] = Point(7454.4, 8067.02);
+ polygon.ps[3] = Point(7454.4, 8008.79);
+ new ShapeRef(router, polygon, 2356);
+
+ // shapeRef2357
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 3961.51);
+ polygon.ps[1] = Point(8825.89, 4019.74);
+ polygon.ps[2] = Point(8781.2, 4019.74);
+ polygon.ps[3] = Point(8781.2, 3961.51);
+ new ShapeRef(router, polygon, 2357);
+
+ // shapeRef2358
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10999.4, 4371.11);
+ polygon.ps[1] = Point(10999.4, 4415.81);
+ polygon.ps[2] = Point(10941.2, 4415.81);
+ polygon.ps[3] = Point(10941.2, 4371.11);
+ new ShapeRef(router, polygon, 2358);
+
+ // shapeRef2359
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 4971.4);
+ polygon.ps[1] = Point(12521.5, 5055.5);
+ polygon.ps[2] = Point(12475.3, 5055.5);
+ polygon.ps[3] = Point(12475.3, 4971.4);
+ new ShapeRef(router, polygon, 2359);
+
+ // shapeRef2360
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 3936.29);
+ polygon.ps[1] = Point(12521.5, 3994.51);
+ polygon.ps[2] = Point(12476.8, 3994.51);
+ polygon.ps[3] = Point(12476.8, 3936.29);
+ new ShapeRef(router, polygon, 2360);
+
+ // shapeRef2361
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 2221.72);
+ polygon.ps[1] = Point(12521.5, 2282.29);
+ polygon.ps[2] = Point(12449.9, 2282.29);
+ polygon.ps[3] = Point(12449.9, 2221.72);
+ new ShapeRef(router, polygon, 2361);
+
+ // shapeRef2362
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12155.1, 1854.29);
+ polygon.ps[1] = Point(12155.1, 1898.98);
+ polygon.ps[2] = Point(12096.9, 1898.98);
+ polygon.ps[3] = Point(12096.9, 1854.29);
+ new ShapeRef(router, polygon, 2362);
+
+ // shapeRef2363
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11980.1, 1742.29);
+ polygon.ps[1] = Point(11980.1, 1800.51);
+ polygon.ps[2] = Point(11935.4, 1800.51);
+ polygon.ps[3] = Point(11935.4, 1742.29);
+ new ShapeRef(router, polygon, 2363);
+
+ // shapeRef2364
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9840.69, 6415.51);
+ polygon.ps[1] = Point(9840.69, 6473.74);
+ polygon.ps[2] = Point(9795.99, 6473.74);
+ polygon.ps[3] = Point(9795.99, 6415.51);
+ new ShapeRef(router, polygon, 2364);
+
+ // shapeRef2365
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 3829.51);
+ polygon.ps[1] = Point(5302, 3913.61);
+ polygon.ps[2] = Point(5255.77, 3913.61);
+ polygon.ps[3] = Point(5255.77, 3829.51);
+ new ShapeRef(router, polygon, 2365);
+
+ // shapeRef2366
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 5169.4);
+ polygon.ps[1] = Point(5302, 5229.97);
+ polygon.ps[2] = Point(5230.4, 5229.97);
+ polygon.ps[3] = Point(5230.4, 5169.4);
+ new ShapeRef(router, polygon, 2366);
+
+ // shapeRef2367
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 8807.22);
+ polygon.ps[1] = Point(4939, 8891.32);
+ polygon.ps[2] = Point(4892.77, 8891.32);
+ polygon.ps[3] = Point(4892.77, 8807.22);
+ new ShapeRef(router, polygon, 2367);
+
+ // shapeRef2368
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 9312.42);
+ polygon.ps[1] = Point(4939, 9372.98);
+ polygon.ps[2] = Point(4867.4, 9372.98);
+ polygon.ps[3] = Point(4867.4, 9312.42);
+ new ShapeRef(router, polygon, 2368);
+
+ // shapeRef2369
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4279, 9877.02);
+ polygon.ps[1] = Point(4279, 9937.58);
+ polygon.ps[2] = Point(4207.4, 9937.58);
+ polygon.ps[3] = Point(4207.4, 9877.02);
+ new ShapeRef(router, polygon, 2369);
+
+ // shapeRef2370
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4751, 10448);
+ polygon.ps[1] = Point(4751, 10519.6);
+ polygon.ps[2] = Point(4690.44, 10519.6);
+ polygon.ps[3] = Point(4690.44, 10448);
+ new ShapeRef(router, polygon, 2370);
+
+ // shapeRef2371
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4543, 10583.3);
+ polygon.ps[1] = Point(4543, 10643.8);
+ polygon.ps[2] = Point(4471.4, 10643.8);
+ polygon.ps[3] = Point(4471.4, 10583.3);
+ new ShapeRef(router, polygon, 2371);
+
+ // shapeRef2372
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 1478.29);
+ polygon.ps[1] = Point(11353.1, 1538.85);
+ polygon.ps[2] = Point(11281.5, 1538.85);
+ polygon.ps[3] = Point(11281.5, 1478.29);
+ new ShapeRef(router, polygon, 2372);
+
+ // shapeRef2373
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7765.29, 435.265);
+ polygon.ps[1] = Point(7765.29, 479.96);
+ polygon.ps[2] = Point(7707.07, 479.96);
+ polygon.ps[3] = Point(7707.07, 435.265);
+ new ShapeRef(router, polygon, 2373);
+
+ // shapeRef2374
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10832.2, 10980.6);
+ polygon.ps[1] = Point(10832.2, 11038.9);
+ polygon.ps[2] = Point(10787.5, 11038.9);
+ polygon.ps[3] = Point(10787.5, 10980.6);
+ new ShapeRef(router, polygon, 2374);
+
+ // shapeRef2375
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9718.69, 11221.6);
+ polygon.ps[1] = Point(9718.69, 11266.3);
+ polygon.ps[2] = Point(9660.46, 11266.3);
+ polygon.ps[3] = Point(9660.46, 11221.6);
+ new ShapeRef(router, polygon, 2375);
+
+ // shapeRef2376
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8684.29, 11221.6);
+ polygon.ps[1] = Point(8684.29, 11293.2);
+ polygon.ps[2] = Point(8623.73, 11293.2);
+ polygon.ps[3] = Point(8623.73, 11221.6);
+ new ShapeRef(router, polygon, 2376);
+
+ // shapeRef2377
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14590.2, 11642.9);
+ polygon.ps[1] = Point(14590.2, 11687.6);
+ polygon.ps[2] = Point(14532, 11687.6);
+ polygon.ps[3] = Point(14532, 11642.9);
+ new ShapeRef(router, polygon, 2377);
+
+ // shapeRef2378
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15858.6, 11835.7);
+ polygon.ps[1] = Point(15858.6, 11893.9);
+ polygon.ps[2] = Point(15813.9, 11893.9);
+ polygon.ps[3] = Point(15813.9, 11835.7);
+ new ShapeRef(router, polygon, 2378);
+
+ // shapeRef2379
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15858.6, 12193.3);
+ polygon.ps[1] = Point(15858.6, 12251.5);
+ polygon.ps[2] = Point(15813.9, 12251.5);
+ polygon.ps[3] = Point(15813.9, 12193.3);
+ new ShapeRef(router, polygon, 2379);
+
+ // shapeRef2380
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15662.5, 12302.3);
+ polygon.ps[1] = Point(15662.5, 12347);
+ polygon.ps[2] = Point(15604.3, 12347);
+ polygon.ps[3] = Point(15604.3, 12302.3);
+ new ShapeRef(router, polygon, 2380);
+
+ // shapeRef2381
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14359.2, 10791.3);
+ polygon.ps[1] = Point(14359.2, 10836);
+ polygon.ps[2] = Point(14301, 10836);
+ polygon.ps[3] = Point(14301, 10791.3);
+ new ShapeRef(router, polygon, 2381);
+
+ // shapeRef2382
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17213.5, 7139.71);
+ polygon.ps[1] = Point(17213.5, 7184.4);
+ polygon.ps[2] = Point(17155.3, 7184.4);
+ polygon.ps[3] = Point(17155.3, 7139.71);
+ new ShapeRef(router, polygon, 2382);
+
+ // shapeRef2383
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 8414.99);
+ polygon.ps[1] = Point(11353.1, 8473.22);
+ polygon.ps[2] = Point(11308.4, 8473.22);
+ polygon.ps[3] = Point(11308.4, 8414.99);
+ new ShapeRef(router, polygon, 2383);
+
+ // shapeRef2384
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10776.2, 818.091);
+ polygon.ps[1] = Point(10776.2, 862.785);
+ polygon.ps[2] = Point(10718, 862.785);
+ polygon.ps[3] = Point(10718, 818.091);
+ new ShapeRef(router, polygon, 2384);
+
+ // shapeRef2385
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 5314.67);
+ polygon.ps[1] = Point(12521.5, 5398.77);
+ polygon.ps[2] = Point(12475.3, 5398.77);
+ polygon.ps[3] = Point(12475.3, 5314.67);
+ new ShapeRef(router, polygon, 2385);
+
+ // shapeRef2386
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11914.1, 7785.57);
+ polygon.ps[1] = Point(11914.1, 7843.79);
+ polygon.ps[2] = Point(11869.4, 7843.79);
+ polygon.ps[3] = Point(11869.4, 7785.57);
+ new ShapeRef(router, polygon, 2386);
+
+ // shapeRef2387
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 4575.4);
+ polygon.ps[1] = Point(5302, 4635.97);
+ polygon.ps[2] = Point(5230.4, 4635.97);
+ polygon.ps[3] = Point(5230.4, 4575.4);
+ new ShapeRef(router, polygon, 2387);
+
+ // shapeRef2388
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11528.1, 468.265);
+ polygon.ps[1] = Point(11528.1, 539.864);
+ polygon.ps[2] = Point(11467.6, 539.864);
+ polygon.ps[3] = Point(11467.6, 468.265);
+ new ShapeRef(router, polygon, 2388);
+
+ // shapeRef2389
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14854.2, 468.265);
+ polygon.ps[1] = Point(14854.2, 512.96);
+ polygon.ps[2] = Point(14796, 512.96);
+ polygon.ps[3] = Point(14796, 468.265);
+ new ShapeRef(router, polygon, 2389);
+
+ // shapeRef2390
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15637.3, 468.265);
+ polygon.ps[1] = Point(15637.3, 539.864);
+ polygon.ps[2] = Point(15576.7, 539.864);
+ polygon.ps[3] = Point(15576.7, 468.265);
+ new ShapeRef(router, polygon, 2390);
+
+ // shapeRef2391
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16165.6, 468.265);
+ polygon.ps[1] = Point(16165.6, 512.96);
+ polygon.ps[2] = Point(16107.4, 512.96);
+ polygon.ps[3] = Point(16107.4, 468.265);
+ new ShapeRef(router, polygon, 2391);
+
+ // shapeRef2392
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10776.2, 468.265);
+ polygon.ps[1] = Point(10776.2, 512.96);
+ polygon.ps[2] = Point(10718, 512.96);
+ polygon.ps[3] = Point(10718, 468.265);
+ new ShapeRef(router, polygon, 2392);
+
+ // shapeRef2393
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8087.52, 323.265);
+ polygon.ps[1] = Point(8087.52, 367.96);
+ polygon.ps[2] = Point(8029.29, 367.96);
+ polygon.ps[3] = Point(8029.29, 323.265);
+ new ShapeRef(router, polygon, 2393);
+
+ // shapeRef2394
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18226.5, 8546.99);
+ polygon.ps[1] = Point(18226.5, 8605.22);
+ polygon.ps[2] = Point(18181.9, 8605.22);
+ polygon.ps[3] = Point(18181.9, 8546.99);
+ new ShapeRef(router, polygon, 2394);
+
+ // shapeRef2395
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8227.29, 10725.3);
+ polygon.ps[1] = Point(8227.29, 10770);
+ polygon.ps[2] = Point(8169.07, 10770);
+ polygon.ps[3] = Point(8169.07, 10725.3);
+ new ShapeRef(router, polygon, 2395);
+
+ // shapeRef2396
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14202, 12302.3);
+ polygon.ps[1] = Point(14202, 12348.5);
+ polygon.ps[2] = Point(14117.9, 12348.5);
+ polygon.ps[3] = Point(14117.9, 12302.3);
+ new ShapeRef(router, polygon, 2396);
+
+ // shapeRef2397
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15826.4, 10791.3);
+ polygon.ps[1] = Point(15826.4, 10862.9);
+ polygon.ps[2] = Point(15765.9, 10862.9);
+ polygon.ps[3] = Point(15765.9, 10791.3);
+ new ShapeRef(router, polygon, 2397);
+
+ // shapeRef2398
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7755.29, 767.188);
+ polygon.ps[1] = Point(7755.29, 851.285);
+ polygon.ps[2] = Point(7709.06, 851.285);
+ polygon.ps[3] = Point(7709.06, 767.188);
+ new ShapeRef(router, polygon, 2398);
+
+ // shapeRef2399
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 3280.06);
+ polygon.ps[1] = Point(11353.1, 3338.29);
+ polygon.ps[2] = Point(11308.4, 3338.29);
+ polygon.ps[3] = Point(11308.4, 3280.06);
+ new ShapeRef(router, polygon, 2399);
+
+ // shapeRef2400
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 4418.18);
+ polygon.ps[1] = Point(11353.1, 4476.4);
+ polygon.ps[2] = Point(11308.4, 4476.4);
+ polygon.ps[3] = Point(11308.4, 4418.18);
+ new ShapeRef(router, polygon, 2400);
+
+ // shapeRef2401
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 11120.4);
+ polygon.ps[1] = Point(11353.1, 11178.6);
+ polygon.ps[2] = Point(11308.4, 11178.6);
+ polygon.ps[3] = Point(11308.4, 11120.4);
+ new ShapeRef(router, polygon, 2401);
+
+ // shapeRef2402
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12922.5, 12137.3);
+ polygon.ps[1] = Point(12922.5, 12183.5);
+ polygon.ps[2] = Point(12838.4, 12183.5);
+ polygon.ps[3] = Point(12838.4, 12137.3);
+ new ShapeRef(router, polygon, 2402);
+
+ // shapeRef2403
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16066.6, 11804.9);
+ polygon.ps[1] = Point(16066.6, 11876.5);
+ polygon.ps[2] = Point(16006, 11876.5);
+ polygon.ps[3] = Point(16006, 11804.9);
+ new ShapeRef(router, polygon, 2403);
+
+ // shapeRef2404
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8448.29, 1478.29);
+ polygon.ps[1] = Point(8448.29, 1536.51);
+ polygon.ps[2] = Point(8403.6, 1536.51);
+ polygon.ps[3] = Point(8403.6, 1478.29);
+ new ShapeRef(router, polygon, 2404);
+
+ // shapeRef2405
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 4575.4);
+ polygon.ps[1] = Point(5486.1, 4635.97);
+ polygon.ps[2] = Point(5414.5, 4635.97);
+ polygon.ps[3] = Point(5414.5, 4575.4);
+ new ShapeRef(router, polygon, 2405);
+
+ // shapeRef2406
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5486.1, 5169.4);
+ polygon.ps[1] = Point(5486.1, 5229.97);
+ polygon.ps[2] = Point(5414.5, 5229.97);
+ polygon.ps[3] = Point(5414.5, 5169.4);
+ new ShapeRef(router, polygon, 2406);
+
+ // shapeRef2407
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(18574.3, 11927.6);
+ polygon.ps[1] = Point(18574.3, 11972.3);
+ polygon.ps[2] = Point(18516, 11972.3);
+ polygon.ps[3] = Point(18516, 11927.6);
+ new ShapeRef(router, polygon, 2407);
+
+ // shapeRef2408
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 5599.67);
+ polygon.ps[1] = Point(10799.2, 5657.9);
+ polygon.ps[2] = Point(10754.5, 5657.9);
+ polygon.ps[3] = Point(10754.5, 5599.67);
+ new ShapeRef(router, polygon, 2408);
+
+ // shapeRef2409
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15664.8, 1191.29);
+ polygon.ps[1] = Point(15664.8, 1262.88);
+ polygon.ps[2] = Point(15604.3, 1262.88);
+ polygon.ps[3] = Point(15604.3, 1191.29);
+ new ShapeRef(router, polygon, 2409);
+
+ // shapeRef2410
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16150.7, 11396.8);
+ polygon.ps[1] = Point(16150.7, 11443.1);
+ polygon.ps[2] = Point(16066.6, 11443.1);
+ polygon.ps[3] = Point(16066.6, 11396.8);
+ new ShapeRef(router, polygon, 2410);
+
+ // shapeRef2411
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9675.69, 7359.4);
+ polygon.ps[1] = Point(9675.69, 7419.97);
+ polygon.ps[2] = Point(9604.09, 7419.97);
+ polygon.ps[3] = Point(9604.09, 7359.4);
+ new ShapeRef(router, polygon, 2411);
+
+ // shapeRef2412
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12980.7, 12468.7);
+ polygon.ps[1] = Point(12980.7, 12513.3);
+ polygon.ps[2] = Point(12922.5, 12513.3);
+ polygon.ps[3] = Point(12922.5, 12468.7);
+ new ShapeRef(router, polygon, 2412);
+
+ // shapeRef2413
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10603.4, 4371.11);
+ polygon.ps[1] = Point(10603.4, 4415.81);
+ polygon.ps[2] = Point(10545.2, 4415.81);
+ polygon.ps[3] = Point(10545.2, 4371.11);
+ new ShapeRef(router, polygon, 2413);
+
+ // shapeRef2414
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10669.4, 4454.71);
+ polygon.ps[1] = Point(10669.4, 4499.4);
+ polygon.ps[2] = Point(10611.2, 4499.4);
+ polygon.ps[3] = Point(10611.2, 4454.71);
+ new ShapeRef(router, polygon, 2414);
+
+ // shapeRef2415
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12279.4, 4371.11);
+ polygon.ps[1] = Point(12279.4, 4415.81);
+ polygon.ps[2] = Point(12221.1, 4415.81);
+ polygon.ps[3] = Point(12221.1, 4371.11);
+ new ShapeRef(router, polygon, 2415);
+
+ // shapeRef2416
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11417.8, 1057.06);
+ polygon.ps[1] = Point(11417.8, 1115.29);
+ polygon.ps[2] = Point(11373.1, 1115.29);
+ polygon.ps[3] = Point(11373.1, 1057.06);
+ new ShapeRef(router, polygon, 2416);
+
+ // shapeRef2417
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11586.4, 468.265);
+ polygon.ps[1] = Point(11586.4, 512.96);
+ polygon.ps[2] = Point(11528.1, 512.96);
+ polygon.ps[3] = Point(11528.1, 468.265);
+ new ShapeRef(router, polygon, 2417);
+
+ // shapeRef2418
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12015.4, 468.265);
+ polygon.ps[1] = Point(12015.4, 512.96);
+ polygon.ps[2] = Point(11957.1, 512.96);
+ polygon.ps[3] = Point(11957.1, 468.265);
+ new ShapeRef(router, polygon, 2418);
+
+ // shapeRef2419
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15045.1, 1291.59);
+ polygon.ps[1] = Point(15045.1, 1336.29);
+ polygon.ps[2] = Point(14986.9, 1336.29);
+ polygon.ps[3] = Point(14986.9, 1291.59);
+ new ShapeRef(router, polygon, 2419);
+
+ // shapeRef2420
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13258.2, 468.265);
+ polygon.ps[1] = Point(13258.2, 512.96);
+ polygon.ps[2] = Point(13200, 512.96);
+ polygon.ps[3] = Point(13200, 468.265);
+ new ShapeRef(router, polygon, 2420);
+
+ // shapeRef2421
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16223.8, 468.265);
+ polygon.ps[1] = Point(16223.8, 512.96);
+ polygon.ps[2] = Point(16165.6, 512.96);
+ polygon.ps[3] = Point(16165.6, 468.265);
+ new ShapeRef(router, polygon, 2421);
+
+ // shapeRef2422
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8029.29, 323.265);
+ polygon.ps[1] = Point(8029.29, 367.96);
+ polygon.ps[2] = Point(7971.07, 367.96);
+ polygon.ps[3] = Point(7971.07, 323.265);
+ new ShapeRef(router, polygon, 2422);
+
+ // shapeRef2423
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14858.4, 1356.29);
+ polygon.ps[1] = Point(14858.4, 1400.98);
+ polygon.ps[2] = Point(14800.2, 1400.98);
+ polygon.ps[3] = Point(14800.2, 1356.29);
+ new ShapeRef(router, polygon, 2423);
+
+ // shapeRef2424
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 11178.6);
+ polygon.ps[1] = Point(11353.1, 11236.9);
+ polygon.ps[2] = Point(11308.4, 11236.9);
+ polygon.ps[3] = Point(11308.4, 11178.6);
+ new ShapeRef(router, polygon, 2424);
+
+ // shapeRef2425
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7598.1, 1412.29);
+ polygon.ps[1] = Point(7598.1, 1470.51);
+ polygon.ps[2] = Point(7553.4, 1470.51);
+ polygon.ps[3] = Point(7553.4, 1412.29);
+ new ShapeRef(router, polygon, 2425);
+
+ // shapeRef2426
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14730, 1356.29);
+ polygon.ps[1] = Point(14730, 1400.98);
+ polygon.ps[2] = Point(14671.8, 1400.98);
+ polygon.ps[3] = Point(14671.8, 1356.29);
+ new ShapeRef(router, polygon, 2426);
+
+ // shapeRef2427
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8287.86, 9685.42);
+ polygon.ps[1] = Point(8287.86, 9757.02);
+ polygon.ps[2] = Point(8227.29, 9757.02);
+ polygon.ps[3] = Point(8227.29, 9685.42);
+ new ShapeRef(router, polygon, 2427);
+
+ // shapeRef2428
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8386.86, 9854.02);
+ polygon.ps[1] = Point(8386.86, 9925.61);
+ polygon.ps[2] = Point(8326.29, 9925.61);
+ polygon.ps[3] = Point(8326.29, 9854.02);
+ new ShapeRef(router, polygon, 2428);
+
+ // shapeRef2429
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8448.29, 1420.06);
+ polygon.ps[1] = Point(8448.29, 1478.29);
+ polygon.ps[2] = Point(8403.6, 1478.29);
+ polygon.ps[3] = Point(8403.6, 1420.06);
+ new ShapeRef(router, polygon, 2429);
+
+ // shapeRef2430
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15893.8, 1291.59);
+ polygon.ps[1] = Point(15893.8, 1336.29);
+ polygon.ps[2] = Point(15835.6, 1336.29);
+ polygon.ps[3] = Point(15835.6, 1291.59);
+ new ShapeRef(router, polygon, 2430);
+
+ // shapeRef2431
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8825.89, 2297.19);
+ polygon.ps[1] = Point(8825.89, 2381.29);
+ polygon.ps[2] = Point(8779.66, 2381.29);
+ polygon.ps[3] = Point(8779.66, 2297.19);
+ new ShapeRef(router, polygon, 2431);
+
+ // shapeRef2432
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 7810.79);
+ polygon.ps[1] = Point(10799.2, 7894.89);
+ polygon.ps[2] = Point(10753, 7894.89);
+ polygon.ps[3] = Point(10753, 7810.79);
+ new ShapeRef(router, polygon, 2432);
+
+ // shapeRef2433
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16353.6, 749.864);
+ polygon.ps[1] = Point(16353.6, 808.091);
+ polygon.ps[2] = Point(16308.9, 808.091);
+ polygon.ps[3] = Point(16308.9, 749.864);
+ new ShapeRef(router, polygon, 2433);
+
+ // shapeRef2434
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16641.9, 10184);
+ polygon.ps[1] = Point(16641.9, 10230.2);
+ polygon.ps[2] = Point(16557.8, 10230.2);
+ polygon.ps[3] = Point(16557.8, 10184);
+ new ShapeRef(router, polygon, 2434);
+
+ // shapeRef2435
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17297.6, 7138.17);
+ polygon.ps[1] = Point(17297.6, 7184.4);
+ polygon.ps[2] = Point(17213.5, 7184.4);
+ polygon.ps[3] = Point(17213.5, 7138.17);
+ new ShapeRef(router, polygon, 2435);
+
+ // shapeRef2436
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 2297.19);
+ polygon.ps[1] = Point(9009.99, 2381.29);
+ polygon.ps[2] = Point(8963.76, 2381.29);
+ polygon.ps[3] = Point(8963.76, 2297.19);
+ new ShapeRef(router, polygon, 2436);
+
+ // shapeRef2437
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 9312.42);
+ polygon.ps[1] = Point(4939, 9396.51);
+ polygon.ps[2] = Point(4892.77, 9396.51);
+ polygon.ps[3] = Point(4892.77, 9312.42);
+ new ShapeRef(router, polygon, 2437);
+
+ // shapeRef2438
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7565.1, 9081.42);
+ polygon.ps[1] = Point(7565.1, 9139.64);
+ polygon.ps[2] = Point(7520.4, 9139.64);
+ polygon.ps[3] = Point(7520.4, 9081.42);
+ new ShapeRef(router, polygon, 2438);
+
+ // shapeRef2439
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 7752.57);
+ polygon.ps[1] = Point(4939, 7810.79);
+ polygon.ps[2] = Point(4894.31, 7810.79);
+ polygon.ps[3] = Point(4894.31, 7752.57);
+ new ShapeRef(router, polygon, 2439);
+
+ // shapeRef2440
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 8323.76);
+ polygon.ps[1] = Point(4939, 8381.99);
+ polygon.ps[2] = Point(4894.31, 8381.99);
+ polygon.ps[3] = Point(4894.31, 8323.76);
+ new ShapeRef(router, polygon, 2440);
+
+ // shapeRef2441
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14598, 6656.51);
+ polygon.ps[1] = Point(14598, 6701.21);
+ polygon.ps[2] = Point(14539.8, 6701.21);
+ polygon.ps[3] = Point(14539.8, 6656.51);
+ new ShapeRef(router, polygon, 2441);
+
+ // shapeRef2442
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 7810.79);
+ polygon.ps[1] = Point(4939, 7869.02);
+ polygon.ps[2] = Point(4894.31, 7869.02);
+ polygon.ps[3] = Point(4894.31, 7810.79);
+ new ShapeRef(router, polygon, 2442);
+
+ // shapeRef2443
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 8381.99);
+ polygon.ps[1] = Point(4939, 8440.22);
+ polygon.ps[2] = Point(4894.31, 8440.22);
+ polygon.ps[3] = Point(4894.31, 8381.99);
+ new ShapeRef(router, polygon, 2443);
+
+ // shapeRef2444
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14656.2, 6656.51);
+ polygon.ps[1] = Point(14656.2, 6701.21);
+ polygon.ps[2] = Point(14598, 6701.21);
+ polygon.ps[3] = Point(14598, 6656.51);
+ new ShapeRef(router, polygon, 2444);
+
+ // shapeRef2445
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 8723.12);
+ polygon.ps[1] = Point(4939, 8807.22);
+ polygon.ps[2] = Point(4892.77, 8807.22);
+ polygon.ps[3] = Point(4892.77, 8723.12);
+ new ShapeRef(router, polygon, 2445);
+
+ // shapeRef2446
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 9228.32);
+ polygon.ps[1] = Point(4939, 9312.42);
+ polygon.ps[2] = Point(4892.77, 9312.42);
+ polygon.ps[3] = Point(4892.77, 9228.32);
+ new ShapeRef(router, polygon, 2446);
+
+ // shapeRef2447
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7755.29, 1354.06);
+ polygon.ps[1] = Point(7755.29, 1412.29);
+ polygon.ps[2] = Point(7710.6, 1412.29);
+ polygon.ps[3] = Point(7710.6, 1354.06);
+ new ShapeRef(router, polygon, 2447);
+
+ // shapeRef2448
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7598.1, 1354.06);
+ polygon.ps[1] = Point(7598.1, 1412.29);
+ polygon.ps[2] = Point(7553.4, 1412.29);
+ polygon.ps[3] = Point(7553.4, 1354.06);
+ new ShapeRef(router, polygon, 2448);
+
+ // shapeRef2449
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8328.79, 9774.02);
+ polygon.ps[1] = Point(8328.79, 9834.02);
+ polygon.ps[2] = Point(8273.79, 9834.02);
+ polygon.ps[3] = Point(8273.79, 9774.02);
+ new ShapeRef(router, polygon, 2449);
+
+ // shapeRef2450
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10502.2, 9147.42);
+ polygon.ps[1] = Point(10502.2, 9205.64);
+ polygon.ps[2] = Point(10457.5, 9205.64);
+ polygon.ps[3] = Point(10457.5, 9147.42);
+ new ShapeRef(router, polygon, 2450);
+
+ // shapeRef2451
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9042.99, 8348.99);
+ polygon.ps[1] = Point(9042.99, 8407.22);
+ polygon.ps[2] = Point(8998.3, 8407.22);
+ polygon.ps[3] = Point(8998.3, 8348.99);
+ new ShapeRef(router, polygon, 2451);
+
+ // shapeRef2452
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10964.2, 1115.29);
+ polygon.ps[1] = Point(10964.2, 1223.55);
+ polygon.ps[2] = Point(10917.4, 1223.55);
+ polygon.ps[3] = Point(10917.4, 1115.29);
+ new ShapeRef(router, polygon, 2452);
+
+ // shapeRef2453
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 4971.4);
+ polygon.ps[1] = Point(12521.5, 5031.97);
+ polygon.ps[2] = Point(12449.9, 5031.97);
+ polygon.ps[3] = Point(12449.9, 4971.4);
+ new ShapeRef(router, polygon, 2453);
+
+ // shapeRef2454
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13030.8, 4519.4);
+ polygon.ps[1] = Point(13030.8, 4566.19);
+ polygon.ps[2] = Point(12922.5, 4566.19);
+ polygon.ps[3] = Point(12922.5, 4519.4);
+ new ShapeRef(router, polygon, 2454);
+
+ // shapeRef2455
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 2198.19);
+ polygon.ps[1] = Point(12521.5, 2282.29);
+ polygon.ps[2] = Point(12475.3, 2282.29);
+ polygon.ps[3] = Point(12475.3, 2198.19);
+ new ShapeRef(router, polygon, 2455);
+
+ // shapeRef2456
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8711.86, 4202.51);
+ polygon.ps[1] = Point(8711.86, 4274.11);
+ polygon.ps[2] = Point(8651.29, 4274.11);
+ polygon.ps[3] = Point(8651.29, 4202.51);
+ new ShapeRef(router, polygon, 2456);
+
+ // shapeRef2457
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9019.99, 3443.51);
+ polygon.ps[1] = Point(9019.99, 3488.21);
+ polygon.ps[2] = Point(8961.76, 3488.21);
+ polygon.ps[3] = Point(8961.76, 3443.51);
+ new ShapeRef(router, polygon, 2457);
+
+ // shapeRef2458
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13324.2, 8883.22);
+ polygon.ps[1] = Point(13324.2, 8927.91);
+ polygon.ps[2] = Point(13266, 8927.91);
+ polygon.ps[3] = Point(13266, 8883.22);
+ new ShapeRef(router, polygon, 2458);
+
+ // shapeRef2459
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9237.59, 11221.6);
+ polygon.ps[1] = Point(9237.59, 11266.3);
+ polygon.ps[2] = Point(9179.36, 11266.3);
+ polygon.ps[3] = Point(9179.36, 11221.6);
+ new ShapeRef(router, polygon, 2459);
+
+ // shapeRef2460
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8684.29, 11221.6);
+ polygon.ps[1] = Point(8684.29, 11267.9);
+ polygon.ps[2] = Point(8600.2, 11267.9);
+ polygon.ps[3] = Point(8600.2, 11221.6);
+ new ShapeRef(router, polygon, 2460);
+
+ // shapeRef2461
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7202.1, 7293.4);
+ polygon.ps[1] = Point(7202.1, 7351.63);
+ polygon.ps[2] = Point(7157.4, 7351.63);
+ polygon.ps[3] = Point(7157.4, 7293.4);
+ new ShapeRef(router, polygon, 2461);
+
+ // shapeRef2462
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7305.66, 6524.51);
+ polygon.ps[1] = Point(7305.66, 6596.11);
+ polygon.ps[2] = Point(7245.1, 6596.11);
+ polygon.ps[3] = Point(7245.1, 6524.51);
+ new ShapeRef(router, polygon, 2462);
+
+ // shapeRef2463
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6387.1, 6798.21);
+ polygon.ps[1] = Point(6387.1, 6844.44);
+ polygon.ps[2] = Point(6303, 6844.44);
+ polygon.ps[3] = Point(6303, 6798.21);
+ new ShapeRef(router, polygon, 2463);
+
+ // shapeRef2464
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15138.3, 10854.1);
+ polygon.ps[1] = Point(15138.3, 10914.6);
+ polygon.ps[2] = Point(15066.7, 10914.6);
+ polygon.ps[3] = Point(15066.7, 10854.1);
+ new ShapeRef(router, polygon, 2464);
+
+ // shapeRef2465
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9939.69, 9976.02);
+ polygon.ps[1] = Point(9939.69, 10034.2);
+ polygon.ps[2] = Point(9894.99, 10034.2);
+ polygon.ps[3] = Point(9894.99, 9976.02);
+ new ShapeRef(router, polygon, 2465);
+
+ // shapeRef2466
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9383.85);
+ polygon.ps[1] = Point(10314.9, 9444.42);
+ polygon.ps[2] = Point(10243.3, 9444.42);
+ polygon.ps[3] = Point(10243.3, 9383.85);
+ new ShapeRef(router, polygon, 2466);
+
+ // shapeRef2467
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13209.3, 4552.4);
+ polygon.ps[1] = Point(13209.3, 4599.19);
+ polygon.ps[2] = Point(13101, 4599.19);
+ polygon.ps[3] = Point(13101, 4552.4);
+ new ShapeRef(router, polygon, 2467);
+
+ // shapeRef2468
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8684.29, 11330.6);
+ polygon.ps[1] = Point(8684.29, 11376.8);
+ polygon.ps[2] = Point(8600.2, 11376.8);
+ polygon.ps[3] = Point(8600.2, 11330.6);
+ new ShapeRef(router, polygon, 2468);
+
+ // shapeRef2469
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6542.1, 8041.79);
+ polygon.ps[1] = Point(6542.1, 8100.02);
+ polygon.ps[2] = Point(6497.4, 8100.02);
+ polygon.ps[3] = Point(6497.4, 8041.79);
+ new ShapeRef(router, polygon, 2469);
+
+ // shapeRef2470
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9444.42);
+ polygon.ps[1] = Point(10314.9, 9502.64);
+ polygon.ps[2] = Point(10270.2, 9502.64);
+ polygon.ps[3] = Point(10270.2, 9444.42);
+ new ShapeRef(router, polygon, 2470);
+
+ // shapeRef2471
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9194.59, 11698.9);
+ polygon.ps[1] = Point(9194.59, 11757.1);
+ polygon.ps[2] = Point(9149.9, 11757.1);
+ polygon.ps[3] = Point(9149.9, 11698.9);
+ new ShapeRef(router, polygon, 2471);
+
+ // shapeRef2472
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(649, 148.265);
+ polygon.ps[1] = Point(649, 208.827);
+ polygon.ps[2] = Point(577.401, 208.827);
+ polygon.ps[3] = Point(577.401, 148.265);
+ new ShapeRef(router, polygon, 2472);
+
+ // shapeRef2473
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8792.89, 10014.5);
+ polygon.ps[1] = Point(8792.89, 10075);
+ polygon.ps[2] = Point(8721.29, 10075);
+ polygon.ps[3] = Point(8721.29, 10014.5);
+ new ShapeRef(router, polygon, 2473);
+
+ // shapeRef2474
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(253, 148.265);
+ polygon.ps[1] = Point(253, 232.363);
+ polygon.ps[2] = Point(206.765, 232.363);
+ polygon.ps[3] = Point(206.765, 148.265);
+ new ShapeRef(router, polygon, 2474);
+
+ // shapeRef2475
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 5657.9);
+ polygon.ps[1] = Point(9009.99, 5716.12);
+ polygon.ps[2] = Point(8965.3, 5716.12);
+ polygon.ps[3] = Point(8965.3, 5657.9);
+ new ShapeRef(router, polygon, 2475);
+
+ // shapeRef2476
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15138.3, 11893.9);
+ polygon.ps[1] = Point(15138.3, 11952.1);
+ polygon.ps[2] = Point(15093.7, 11952.1);
+ polygon.ps[3] = Point(15093.7, 11893.9);
+ new ShapeRef(router, polygon, 2476);
+
+ // shapeRef2477
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10572.8, 10692.3);
+ polygon.ps[1] = Point(10572.8, 10763.9);
+ polygon.ps[2] = Point(10512.2, 10763.9);
+ polygon.ps[3] = Point(10512.2, 10692.3);
+ new ShapeRef(router, polygon, 2477);
+
+ // shapeRef2478
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10667.2, 8521.76);
+ polygon.ps[1] = Point(10667.2, 8579.99);
+ polygon.ps[2] = Point(10622.5, 8579.99);
+ polygon.ps[3] = Point(10622.5, 8521.76);
+ new ShapeRef(router, polygon, 2478);
+
+ // shapeRef2479
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9751.69, 818.091);
+ polygon.ps[1] = Point(9751.69, 862.785);
+ polygon.ps[2] = Point(9693.46, 862.785);
+ polygon.ps[3] = Point(9693.46, 818.091);
+ new ShapeRef(router, polygon, 2479);
+
+ // shapeRef2480
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10964.2, 1057.06);
+ polygon.ps[1] = Point(10964.2, 1115.29);
+ polygon.ps[2] = Point(10919.5, 1115.29);
+ polygon.ps[3] = Point(10919.5, 1057.06);
+ new ShapeRef(router, polygon, 2480);
+
+ // shapeRef2481
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 7810.79);
+ polygon.ps[1] = Point(10799.2, 7871.36);
+ polygon.ps[2] = Point(10727.6, 7871.36);
+ polygon.ps[3] = Point(10727.6, 7810.79);
+ new ShapeRef(router, polygon, 2481);
+
+ // shapeRef2482
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7476.1, 3575.51);
+ polygon.ps[1] = Point(7476.1, 3620.21);
+ polygon.ps[2] = Point(7417.87, 3620.21);
+ polygon.ps[3] = Point(7417.87, 3575.51);
+ new ShapeRef(router, polygon, 2482);
+
+ // shapeRef2483
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 4575.4);
+ polygon.ps[1] = Point(5302, 4659.5);
+ polygon.ps[2] = Point(5255.77, 4659.5);
+ polygon.ps[3] = Point(5255.77, 4575.4);
+ new ShapeRef(router, polygon, 2483);
+
+ // shapeRef2484
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6321.1, 435.265);
+ polygon.ps[1] = Point(6321.1, 479.96);
+ polygon.ps[2] = Point(6262.87, 479.96);
+ polygon.ps[3] = Point(6262.87, 435.265);
+ new ShapeRef(router, polygon, 2484);
+
+ // shapeRef2485
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11296.4, 4371.11);
+ polygon.ps[1] = Point(11296.4, 4415.81);
+ polygon.ps[2] = Point(11238.2, 4415.81);
+ polygon.ps[3] = Point(11238.2, 4371.11);
+ new ShapeRef(router, polygon, 2485);
+
+ // shapeRef2486
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16618.4, 10184);
+ polygon.ps[1] = Point(16618.4, 10255.6);
+ polygon.ps[2] = Point(16557.8, 10255.6);
+ polygon.ps[3] = Point(16557.8, 10184);
+ new ShapeRef(router, polygon, 2486);
+
+ // shapeRef2487
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12815.7, 11642.9);
+ polygon.ps[1] = Point(12815.7, 11687.6);
+ polygon.ps[2] = Point(12757.5, 11687.6);
+ polygon.ps[3] = Point(12757.5, 11642.9);
+ new ShapeRef(router, polygon, 2487);
+
+ // shapeRef2488
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13159.2, 10791.3);
+ polygon.ps[1] = Point(13159.2, 10836);
+ polygon.ps[2] = Point(13101, 10836);
+ polygon.ps[3] = Point(13101, 10791.3);
+ new ShapeRef(router, polygon, 2488);
+
+ // shapeRef2489
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 2320.72);
+ polygon.ps[1] = Point(9009.99, 2381.29);
+ polygon.ps[2] = Point(8938.39, 2381.29);
+ polygon.ps[3] = Point(8938.39, 2320.72);
+ new ShapeRef(router, polygon, 2489);
+
+ // shapeRef2490
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13101, 4552.4);
+ polygon.ps[1] = Point(13101, 4597.1);
+ polygon.ps[2] = Point(13042.8, 4597.1);
+ polygon.ps[3] = Point(13042.8, 4552.4);
+ new ShapeRef(router, polygon, 2490);
+
+ // shapeRef2491
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11296.4, 8993.72);
+ polygon.ps[1] = Point(11296.4, 9038.42);
+ polygon.ps[2] = Point(11238.2, 9038.42);
+ polygon.ps[3] = Point(11238.2, 8993.72);
+ new ShapeRef(router, polygon, 2491);
+
+ // shapeRef2492
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11164.4, 8195.3);
+ polygon.ps[1] = Point(11164.4, 8239.99);
+ polygon.ps[2] = Point(11106.2, 8239.99);
+ polygon.ps[3] = Point(11106.2, 8195.3);
+ new ShapeRef(router, polygon, 2492);
+
+ // shapeRef2493
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14598, 6908.71);
+ polygon.ps[1] = Point(14598, 6953.4);
+ polygon.ps[2] = Point(14539.8, 6953.4);
+ polygon.ps[3] = Point(14539.8, 6908.71);
+ new ShapeRef(router, polygon, 2493);
+
+ // shapeRef2494
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10037.4, 9708.42);
+ polygon.ps[1] = Point(10037.4, 9766.64);
+ polygon.ps[2] = Point(9992.69, 9766.64);
+ polygon.ps[3] = Point(9992.69, 9708.42);
+ new ShapeRef(router, polygon, 2494);
+
+ // shapeRef2495
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9835.79, 818.091);
+ polygon.ps[1] = Point(9835.79, 864.326);
+ polygon.ps[2] = Point(9751.69, 864.326);
+ polygon.ps[3] = Point(9751.69, 818.091);
+ new ShapeRef(router, polygon, 2495);
+
+ // shapeRef2496
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10964.2, 1115.29);
+ polygon.ps[1] = Point(10964.2, 1205.05);
+ polygon.ps[2] = Point(10888, 1205.05);
+ polygon.ps[3] = Point(10888, 1115.29);
+ new ShapeRef(router, polygon, 2496);
+
+ // shapeRef2497
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 7726.7);
+ polygon.ps[1] = Point(10799.2, 7810.79);
+ polygon.ps[2] = Point(10753, 7810.79);
+ polygon.ps[3] = Point(10753, 7726.7);
+ new ShapeRef(router, polygon, 2497);
+
+ // shapeRef2498
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7560.2, 3575.51);
+ polygon.ps[1] = Point(7560.2, 3621.75);
+ polygon.ps[2] = Point(7476.1, 3621.75);
+ polygon.ps[3] = Point(7476.1, 3575.51);
+ new ShapeRef(router, polygon, 2498);
+
+ // shapeRef2499
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 4491.31);
+ polygon.ps[1] = Point(5302, 4575.4);
+ polygon.ps[2] = Point(5255.77, 4575.4);
+ polygon.ps[3] = Point(5255.77, 4491.31);
+ new ShapeRef(router, polygon, 2499);
+
+ // shapeRef2500
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6405.2, 435.265);
+ polygon.ps[1] = Point(6405.2, 481.5);
+ polygon.ps[2] = Point(6321.1, 481.5);
+ polygon.ps[3] = Point(6321.1, 435.265);
+ new ShapeRef(router, polygon, 2500);
+
+ // shapeRef2501
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 4371.11);
+ polygon.ps[1] = Point(11238.2, 4417.35);
+ polygon.ps[2] = Point(11154.1, 4417.35);
+ polygon.ps[3] = Point(11154.1, 4371.11);
+ new ShapeRef(router, polygon, 2501);
+
+ // shapeRef2502
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16557.8, 10184);
+ polygon.ps[1] = Point(16557.8, 10230.2);
+ polygon.ps[2] = Point(16473.7, 10230.2);
+ polygon.ps[3] = Point(16473.7, 10184);
+ new ShapeRef(router, polygon, 2502);
+
+ // shapeRef2503
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12757.5, 11642.9);
+ polygon.ps[1] = Point(12757.5, 11689.1);
+ polygon.ps[2] = Point(12673.4, 11689.1);
+ polygon.ps[3] = Point(12673.4, 11642.9);
+ new ShapeRef(router, polygon, 2503);
+
+ // shapeRef2504
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13101, 10791.3);
+ polygon.ps[1] = Point(13101, 10837.5);
+ polygon.ps[2] = Point(13016.9, 10837.5);
+ polygon.ps[3] = Point(13016.9, 10791.3);
+ new ShapeRef(router, polygon, 2504);
+
+ // shapeRef2505
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 2381.29);
+ polygon.ps[1] = Point(9009.99, 2465.38);
+ polygon.ps[2] = Point(8963.76, 2465.38);
+ polygon.ps[3] = Point(8963.76, 2381.29);
+ new ShapeRef(router, polygon, 2505);
+
+ // shapeRef2506
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13190.7, 4552.4);
+ polygon.ps[1] = Point(13190.7, 4628.63);
+ polygon.ps[2] = Point(13101, 4628.63);
+ polygon.ps[3] = Point(13101, 4552.4);
+ new ShapeRef(router, polygon, 2506);
+
+ // shapeRef2507
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11238.2, 8992.18);
+ polygon.ps[1] = Point(11238.2, 9038.42);
+ polygon.ps[2] = Point(11154.1, 9038.42);
+ polygon.ps[3] = Point(11154.1, 8992.18);
+ new ShapeRef(router, polygon, 2507);
+
+ // shapeRef2508
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11106.2, 8193.76);
+ polygon.ps[1] = Point(11106.2, 8239.99);
+ polygon.ps[2] = Point(11022.1, 8239.99);
+ polygon.ps[3] = Point(11022.1, 8193.76);
+ new ShapeRef(router, polygon, 2508);
+
+ // shapeRef2509
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14682.1, 6907.17);
+ polygon.ps[1] = Point(14682.1, 6953.4);
+ polygon.ps[2] = Point(14598, 6953.4);
+ polygon.ps[3] = Point(14598, 6907.17);
+ new ShapeRef(router, polygon, 2509);
+
+ // shapeRef2510
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10068.9, 9618.65);
+ polygon.ps[1] = Point(10068.9, 9708.42);
+ polygon.ps[2] = Point(9992.69, 9708.42);
+ polygon.ps[3] = Point(9992.69, 9618.65);
+ new ShapeRef(router, polygon, 2510);
+
+ // shapeRef2511
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5302, 5085.31);
+ polygon.ps[1] = Point(5302, 5169.4);
+ polygon.ps[2] = Point(5255.77, 5169.4);
+ polygon.ps[3] = Point(5255.77, 5085.31);
+ new ShapeRef(router, polygon, 2511);
+
+ // shapeRef2512
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10512.2, 10692.3);
+ polygon.ps[1] = Point(10512.2, 10738.5);
+ polygon.ps[2] = Point(10428.1, 10738.5);
+ polygon.ps[3] = Point(10428.1, 10692.3);
+ new ShapeRef(router, polygon, 2512);
+
+ // shapeRef2513
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9194.59, 11638.3);
+ polygon.ps[1] = Point(9194.59, 11698.9);
+ polygon.ps[2] = Point(9122.99, 11698.9);
+ polygon.ps[3] = Point(9122.99, 11638.3);
+ new ShapeRef(router, polygon, 2513);
+
+ // shapeRef2514
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(649, 87.7033);
+ polygon.ps[1] = Point(649, 148.265);
+ polygon.ps[2] = Point(577.401, 148.265);
+ polygon.ps[3] = Point(577.401, 87.7033);
+ new ShapeRef(router, polygon, 2514);
+
+ // shapeRef2515
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9042.99, 8290.76);
+ polygon.ps[1] = Point(9042.99, 8348.99);
+ polygon.ps[2] = Point(8998.3, 8348.99);
+ polygon.ps[3] = Point(8998.3, 8290.76);
+ new ShapeRef(router, polygon, 2515);
+
+ // shapeRef2516
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9974.92, 11642.9);
+ polygon.ps[1] = Point(9974.92, 11687.6);
+ polygon.ps[2] = Point(9916.69, 11687.6);
+ polygon.ps[3] = Point(9916.69, 11642.9);
+ new ShapeRef(router, polygon, 2516);
+
+ // shapeRef2517
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15138.3, 10914.6);
+ polygon.ps[1] = Point(15138.3, 10972.9);
+ polygon.ps[2] = Point(15093.7, 10972.9);
+ polygon.ps[3] = Point(15093.7, 10914.6);
+ new ShapeRef(router, polygon, 2517);
+
+ // shapeRef2518
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9009.99, 5597.33);
+ polygon.ps[1] = Point(9009.99, 5657.9);
+ polygon.ps[2] = Point(8938.39, 5657.9);
+ polygon.ps[3] = Point(8938.39, 5597.33);
+ new ShapeRef(router, polygon, 2518);
+
+ // shapeRef2519
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15432.8, 1191.29);
+ polygon.ps[1] = Point(15432.8, 1235.98);
+ polygon.ps[2] = Point(15374.5, 1235.98);
+ polygon.ps[3] = Point(15374.5, 1191.29);
+ new ShapeRef(router, polygon, 2519);
+
+ // shapeRef2520
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6783.1, 3575.51);
+ polygon.ps[1] = Point(6783.1, 3620.21);
+ polygon.ps[2] = Point(6724.87, 3620.21);
+ polygon.ps[3] = Point(6724.87, 3575.51);
+ new ShapeRef(router, polygon, 2520);
+
+ // shapeRef2521
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5496.1, 5357.67);
+ polygon.ps[1] = Point(5496.1, 5402.36);
+ polygon.ps[2] = Point(5437.87, 5402.36);
+ polygon.ps[3] = Point(5437.87, 5357.67);
+ new ShapeRef(router, polygon, 2521);
+
+ // shapeRef2522
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4949, 5974.59);
+ polygon.ps[1] = Point(4949, 6019.29);
+ polygon.ps[2] = Point(4890.77, 6019.29);
+ polygon.ps[3] = Point(4890.77, 5974.59);
+ new ShapeRef(router, polygon, 2522);
+
+ // shapeRef2523
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 6056.29);
+ polygon.ps[1] = Point(4939, 6114.51);
+ polygon.ps[2] = Point(4894.31, 6114.51);
+ polygon.ps[3] = Point(4894.31, 6056.29);
+ new ShapeRef(router, polygon, 2523);
+
+ // shapeRef2524
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8293.29, 435.265);
+ polygon.ps[1] = Point(8293.29, 479.96);
+ polygon.ps[2] = Point(8235.07, 479.96);
+ polygon.ps[3] = Point(8235.07, 435.265);
+ new ShapeRef(router, polygon, 2524);
+
+ // shapeRef2525
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15173.6, 1191.29);
+ polygon.ps[1] = Point(15173.6, 1235.98);
+ polygon.ps[2] = Point(15115.3, 1235.98);
+ polygon.ps[3] = Point(15115.3, 1191.29);
+ new ShapeRef(router, polygon, 2525);
+
+ // shapeRef2526
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5651.1, 4517.18);
+ polygon.ps[1] = Point(5651.1, 4575.4);
+ polygon.ps[2] = Point(5606.4, 4575.4);
+ polygon.ps[3] = Point(5606.4, 4517.18);
+ new ShapeRef(router, polygon, 2526);
+
+ // shapeRef2527
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10170.7, 10372);
+ polygon.ps[1] = Point(10170.7, 10430.2);
+ polygon.ps[2] = Point(10126, 10430.2);
+ polygon.ps[3] = Point(10126, 10372);
+ new ShapeRef(router, polygon, 2527);
+
+ // shapeRef2528
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8285.52, 10725.3);
+ polygon.ps[1] = Point(8285.52, 10770);
+ polygon.ps[2] = Point(8227.29, 10770);
+ polygon.ps[3] = Point(8227.29, 10725.3);
+ new ShapeRef(router, polygon, 2528);
+
+ // shapeRef2529
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6709.33, 7006.4);
+ polygon.ps[1] = Point(6709.33, 7051.1);
+ polygon.ps[2] = Point(6651.1, 7051.1);
+ polygon.ps[3] = Point(6651.1, 7006.4);
+ new ShapeRef(router, polygon, 2529);
+
+ // shapeRef2530
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6542.1, 7579.79);
+ polygon.ps[1] = Point(6542.1, 7638.02);
+ polygon.ps[2] = Point(6497.4, 7638.02);
+ polygon.ps[3] = Point(6497.4, 7579.79);
+ new ShapeRef(router, polygon, 2530);
+
+ // shapeRef2531
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7329.2, 6524.51);
+ polygon.ps[1] = Point(7329.2, 6570.75);
+ polygon.ps[2] = Point(7245.1, 6570.75);
+ polygon.ps[3] = Point(7245.1, 6524.51);
+ new ShapeRef(router, polygon, 2531);
+
+ // shapeRef2532
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6387.1, 6798.21);
+ polygon.ps[1] = Point(6387.1, 6869.81);
+ polygon.ps[2] = Point(6326.54, 6869.81);
+ polygon.ps[3] = Point(6326.54, 6798.21);
+ new ShapeRef(router, polygon, 2532);
+
+ // shapeRef2533
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5007.23, 5832.9);
+ polygon.ps[1] = Point(5007.23, 5877.59);
+ polygon.ps[2] = Point(4949, 5877.59);
+ polygon.ps[3] = Point(4949, 5832.9);
+ new ShapeRef(router, polygon, 2533);
+
+ // shapeRef2534
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 3338.29);
+ polygon.ps[1] = Point(11353.1, 3396.51);
+ polygon.ps[2] = Point(11308.4, 3396.51);
+ polygon.ps[3] = Point(11308.4, 3338.29);
+ new ShapeRef(router, polygon, 2534);
+
+ // shapeRef2535
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15045.1, 1191.29);
+ polygon.ps[1] = Point(15045.1, 1235.98);
+ polygon.ps[2] = Point(14986.9, 1235.98);
+ polygon.ps[3] = Point(14986.9, 1191.29);
+ new ShapeRef(router, polygon, 2535);
+
+ // shapeRef2536
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 6151.51);
+ polygon.ps[1] = Point(4939, 6209.74);
+ polygon.ps[2] = Point(4894.31, 6209.74);
+ polygon.ps[3] = Point(4894.31, 6151.51);
+ new ShapeRef(router, polygon, 2536);
+
+ // shapeRef2537
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15604.3, 1191.29);
+ polygon.ps[1] = Point(15604.3, 1235.98);
+ polygon.ps[2] = Point(15546, 1235.98);
+ polygon.ps[3] = Point(15546, 1191.29);
+ new ShapeRef(router, polygon, 2537);
+
+ // shapeRef2538
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7755.29, 1412.29);
+ polygon.ps[1] = Point(7755.29, 1470.51);
+ polygon.ps[2] = Point(7710.6, 1470.51);
+ polygon.ps[3] = Point(7710.6, 1412.29);
+ new ShapeRef(router, polygon, 2538);
+
+ // shapeRef2539
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 3474.29);
+ polygon.ps[1] = Point(12521.5, 3532.51);
+ polygon.ps[2] = Point(12476.8, 3532.51);
+ polygon.ps[3] = Point(12476.8, 3474.29);
+ new ShapeRef(router, polygon, 2539);
+
+ // shapeRef2540
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 1420.06);
+ polygon.ps[1] = Point(11353.1, 1478.29);
+ polygon.ps[2] = Point(11308.4, 1478.29);
+ polygon.ps[3] = Point(11308.4, 1420.06);
+ new ShapeRef(router, polygon, 2540);
+
+ // shapeRef2541
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16155.6, 749.864);
+ polygon.ps[1] = Point(16155.6, 808.091);
+ polygon.ps[2] = Point(16110.9, 808.091);
+ polygon.ps[3] = Point(16110.9, 749.864);
+ new ShapeRef(router, polygon, 2541);
+
+ // shapeRef2542
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(17274.1, 7112.81);
+ polygon.ps[1] = Point(17274.1, 7184.4);
+ polygon.ps[2] = Point(17213.5, 7184.4);
+ polygon.ps[3] = Point(17213.5, 7112.81);
+ new ShapeRef(router, polygon, 2542);
+
+ // shapeRef2543
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 2249.29);
+ polygon.ps[1] = Point(11353.1, 2307.51);
+ polygon.ps[2] = Point(11308.4, 2307.51);
+ polygon.ps[3] = Point(11308.4, 2249.29);
+ new ShapeRef(router, polygon, 2543);
+
+ // shapeRef2544
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9105.49, 2341.29);
+ polygon.ps[1] = Point(9105.49, 2381.29);
+ polygon.ps[2] = Point(9029.99, 2381.29);
+ polygon.ps[3] = Point(9029.99, 2341.29);
+ new ShapeRef(router, polygon, 2544);
+
+ // shapeRef2545
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15479.8, 1356.29);
+ polygon.ps[1] = Point(15479.8, 1416.29);
+ polygon.ps[2] = Point(15424.8, 1416.29);
+ polygon.ps[3] = Point(15424.8, 1356.29);
+ new ShapeRef(router, polygon, 2545);
+
+ // shapeRef2546
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15656.8, 1356.29);
+ polygon.ps[1] = Point(15656.8, 1416.29);
+ polygon.ps[2] = Point(15601.8, 1416.29);
+ polygon.ps[3] = Point(15601.8, 1356.29);
+ new ShapeRef(router, polygon, 2546);
+
+ // shapeRef2547
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8676.52, 993.285);
+ polygon.ps[1] = Point(8676.52, 1037.98);
+ polygon.ps[2] = Point(8618.29, 1037.98);
+ polygon.ps[3] = Point(8618.29, 993.285);
+ new ShapeRef(router, polygon, 2547);
+
+ // shapeRef2548
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8260.29, 818.091);
+ polygon.ps[1] = Point(8260.29, 862.785);
+ polygon.ps[2] = Point(8202.07, 862.785);
+ polygon.ps[3] = Point(8202.07, 818.091);
+ new ShapeRef(router, polygon, 2548);
+
+ // shapeRef2549
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8618.29, 993.285);
+ polygon.ps[1] = Point(8618.29, 1037.98);
+ polygon.ps[2] = Point(8560.07, 1037.98);
+ polygon.ps[3] = Point(8560.07, 993.285);
+ new ShapeRef(router, polygon, 2549);
+
+ // shapeRef2550
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15325, 945.785);
+ polygon.ps[1] = Point(15325, 985.785);
+ polygon.ps[2] = Point(15249.5, 985.785);
+ polygon.ps[3] = Point(15249.5, 945.785);
+ new ShapeRef(router, polygon, 2550);
+
+ // shapeRef2551
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14310.3, 12302.3);
+ polygon.ps[1] = Point(14310.3, 12349.1);
+ polygon.ps[2] = Point(14202, 12349.1);
+ polygon.ps[3] = Point(14202, 12302.3);
+ new ShapeRef(router, polygon, 2551);
+
+ // shapeRef2552
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9260.59, 5599.67);
+ polygon.ps[1] = Point(9260.59, 5657.9);
+ polygon.ps[2] = Point(9215.9, 5657.9);
+ polygon.ps[3] = Point(9215.9, 5599.67);
+ new ShapeRef(router, polygon, 2552);
+
+ // shapeRef2553
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9491.59, 10372);
+ polygon.ps[1] = Point(9491.59, 10430.2);
+ polygon.ps[2] = Point(9446.9, 10430.2);
+ polygon.ps[3] = Point(9446.9, 10372);
+ new ShapeRef(router, polygon, 2553);
+
+ // shapeRef2554
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15765.9, 10791.3);
+ polygon.ps[1] = Point(15765.9, 10838.1);
+ polygon.ps[2] = Point(15657.6, 10838.1);
+ polygon.ps[3] = Point(15657.6, 10791.3);
+ new ShapeRef(router, polygon, 2554);
+
+ // shapeRef2555
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10799.2, 5657.9);
+ polygon.ps[1] = Point(10799.2, 5716.12);
+ polygon.ps[2] = Point(10754.5, 5716.12);
+ polygon.ps[3] = Point(10754.5, 5657.9);
+ new ShapeRef(router, polygon, 2555);
+
+ // shapeRef2556
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16066.6, 11396.8);
+ polygon.ps[1] = Point(16066.6, 11443.6);
+ polygon.ps[2] = Point(15958.3, 11443.6);
+ polygon.ps[3] = Point(15958.3, 11396.8);
+ new ShapeRef(router, polygon, 2556);
+
+ // shapeRef2557
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12521.5, 3994.51);
+ polygon.ps[1] = Point(12521.5, 4052.74);
+ polygon.ps[2] = Point(12476.8, 4052.74);
+ polygon.ps[3] = Point(12476.8, 3994.51);
+ new ShapeRef(router, polygon, 2557);
+
+ // shapeRef2558
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15115.3, 1191.29);
+ polygon.ps[1] = Point(15115.3, 1235.98);
+ polygon.ps[2] = Point(15057.1, 1235.98);
+ polygon.ps[3] = Point(15057.1, 1191.29);
+ new ShapeRef(router, polygon, 2558);
+
+ // shapeRef2559
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13534.2, 3872.51);
+ polygon.ps[1] = Point(13534.2, 3917.21);
+ polygon.ps[2] = Point(13476, 3917.21);
+ polygon.ps[3] = Point(13476, 3872.51);
+ new ShapeRef(router, polygon, 2559);
+
+ // shapeRef2560
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16056.6, 11547.7);
+ polygon.ps[1] = Point(16056.6, 11605.9);
+ polygon.ps[2] = Point(16011.9, 11605.9);
+ polygon.ps[3] = Point(16011.9, 11547.7);
+ new ShapeRef(router, polygon, 2560);
+
+ // shapeRef2561
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13478.5, 3792.51);
+ polygon.ps[1] = Point(13478.5, 3852.51);
+ polygon.ps[2] = Point(13423.5, 3852.51);
+ polygon.ps[3] = Point(13423.5, 3792.51);
+ new ShapeRef(router, polygon, 2561);
+
+ // shapeRef2562
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12353.1, 5244.67);
+ polygon.ps[1] = Point(12353.1, 5304.67);
+ polygon.ps[2] = Point(12298.1, 5304.67);
+ polygon.ps[3] = Point(12298.1, 5244.67);
+ new ShapeRef(router, polygon, 2562);
+
+ // shapeRef2563
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12380.6, 5209.67);
+ polygon.ps[1] = Point(12380.6, 5304.67);
+ polygon.ps[2] = Point(12325.6, 5304.67);
+ polygon.ps[3] = Point(12325.6, 5209.67);
+ new ShapeRef(router, polygon, 2563);
+
+ // shapeRef2564
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10314.9, 9600.15);
+ polygon.ps[1] = Point(10314.9, 9708.42);
+ polygon.ps[2] = Point(10268.1, 9708.42);
+ polygon.ps[3] = Point(10268.1, 9600.15);
+ new ShapeRef(router, polygon, 2564);
+
+ // shapeRef2565
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10039.5, 9600.15);
+ polygon.ps[1] = Point(10039.5, 9708.42);
+ polygon.ps[2] = Point(9992.69, 9708.42);
+ polygon.ps[3] = Point(9992.69, 9600.15);
+ new ShapeRef(router, polygon, 2565);
+
+ // shapeRef2566
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11528.1, 468.265);
+ polygon.ps[1] = Point(11528.1, 514.5);
+ polygon.ps[2] = Point(11444, 514.5);
+ polygon.ps[3] = Point(11444, 468.265);
+ new ShapeRef(router, polygon, 2566);
+
+ // shapeRef2567
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11353.1, 6522.29);
+ polygon.ps[1] = Point(11353.1, 6580.51);
+ polygon.ps[2] = Point(11308.4, 6580.51);
+ polygon.ps[3] = Point(11308.4, 6522.29);
+ new ShapeRef(router, polygon, 2567);
+
+ // shapeRef2568
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(12749.7, 4004.51);
+ polygon.ps[1] = Point(12749.7, 4049.21);
+ polygon.ps[2] = Point(12691.5, 4049.21);
+ polygon.ps[3] = Point(12691.5, 4004.51);
+ new ShapeRef(router, polygon, 2568);
+
+ // shapeRef2569
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15688.4, 1191.29);
+ polygon.ps[1] = Point(15688.4, 1237.52);
+ polygon.ps[2] = Point(15604.3, 1237.52);
+ polygon.ps[3] = Point(15604.3, 1191.29);
+ new ShapeRef(router, polygon, 2569);
+
+ // shapeRef2570
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15954.1, 8410.49);
+ polygon.ps[1] = Point(15954.1, 8450.49);
+ polygon.ps[2] = Point(15878.6, 8450.49);
+ polygon.ps[3] = Point(15878.6, 8410.49);
+ new ShapeRef(router, polygon, 2570);
+
+ // shapeRef2571
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16808.3, 8412.49);
+ polygon.ps[1] = Point(16808.3, 8452.49);
+ polygon.ps[2] = Point(16732.8, 8452.49);
+ polygon.ps[3] = Point(16732.8, 8412.49);
+ new ShapeRef(router, polygon, 2571);
+
+ // shapeRef2572
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5084.5, 8361.99);
+ polygon.ps[1] = Point(5084.5, 8401.99);
+ polygon.ps[2] = Point(4959, 8401.99);
+ polygon.ps[3] = Point(4959, 8361.99);
+ new ShapeRef(router, polygon, 2572);
+
+ // shapeRef2573
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 8767.22);
+ polygon.ps[1] = Point(5034.5, 8807.22);
+ polygon.ps[2] = Point(4959, 8807.22);
+ polygon.ps[3] = Point(4959, 8767.22);
+ new ShapeRef(router, polygon, 2573);
+
+ // shapeRef2574
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5084.5, 9292.42);
+ polygon.ps[1] = Point(5084.5, 9332.42);
+ polygon.ps[2] = Point(4959, 9332.42);
+ polygon.ps[3] = Point(4959, 9292.42);
+ new ShapeRef(router, polygon, 2574);
+
+ // shapeRef2575
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4939, 9251.85);
+ polygon.ps[1] = Point(4939, 9312.42);
+ polygon.ps[2] = Point(4867.4, 9312.42);
+ polygon.ps[3] = Point(4867.4, 9251.85);
+ new ShapeRef(router, polygon, 2575);
+
+ // shapeRef2576
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4279, 9815.61);
+ polygon.ps[1] = Point(4279, 9877.02);
+ polygon.ps[2] = Point(4182.65, 9877.02);
+ polygon.ps[3] = Point(4182.65, 9815.61);
+ new ShapeRef(router, polygon, 2576);
+
+ // shapeRef2577
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4812.4, 10448);
+ polygon.ps[1] = Point(4812.4, 10544.4);
+ polygon.ps[2] = Point(4751, 10544.4);
+ polygon.ps[3] = Point(4751, 10448);
+ new ShapeRef(router, polygon, 2577);
+
+ // shapeRef2578
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(4543, 10521.9);
+ polygon.ps[1] = Point(4543, 10583.3);
+ polygon.ps[2] = Point(4446.65, 10583.3);
+ polygon.ps[3] = Point(4446.65, 10521.9);
+ new ShapeRef(router, polygon, 2578);
+
+ // shapeRef2579
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8742.52, 11221.6);
+ polygon.ps[1] = Point(8742.52, 11266.3);
+ polygon.ps[2] = Point(8684.29, 11266.3);
+ polygon.ps[3] = Point(8684.29, 11221.6);
+ new ShapeRef(router, polygon, 2579);
+
+ // shapeRef2580
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(5034.5, 9272.42);
+ polygon.ps[1] = Point(5034.5, 9312.42);
+ polygon.ps[2] = Point(4959, 9312.42);
+ polygon.ps[3] = Point(4959, 9272.42);
+ new ShapeRef(router, polygon, 2580);
+
+ // shapeRef2581
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14334, 468.265);
+ polygon.ps[1] = Point(14334, 512.96);
+ polygon.ps[2] = Point(14275.8, 512.96);
+ polygon.ps[3] = Point(14275.8, 468.265);
+ new ShapeRef(router, polygon, 2581);
+
+ // shapeRef2582
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14392.2, 468.265);
+ polygon.ps[1] = Point(14392.2, 512.96);
+ polygon.ps[2] = Point(14334, 512.96);
+ polygon.ps[3] = Point(14334, 468.265);
+ new ShapeRef(router, polygon, 2582);
+
+ // shapeRef2583
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16124.8, 11804.9);
+ polygon.ps[1] = Point(16124.8, 11849.6);
+ polygon.ps[2] = Point(16066.6, 11849.6);
+ polygon.ps[3] = Point(16066.6, 11804.9);
+ new ShapeRef(router, polygon, 2583);
+
+ // shapeRef2584
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(16583, 7435.4);
+ polygon.ps[1] = Point(16583, 7480.1);
+ polygon.ps[2] = Point(16524.8, 7480.1);
+ polygon.ps[3] = Point(16524.8, 7435.4);
+ new ShapeRef(router, polygon, 2584);
+
+ // shapeRef2585
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9675.69, 7301.18);
+ polygon.ps[1] = Point(9675.69, 7359.4);
+ polygon.ps[2] = Point(9630.99, 7359.4);
+ polygon.ps[3] = Point(9630.99, 7301.18);
+ new ShapeRef(router, polygon, 2585);
+
+ // shapeRef2586
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14916.7, 1356.29);
+ polygon.ps[1] = Point(14916.7, 1400.98);
+ polygon.ps[2] = Point(14858.4, 1400.98);
+ polygon.ps[3] = Point(14858.4, 1356.29);
+ new ShapeRef(router, polygon, 2586);
+
+ // shapeRef2587
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(13299, 9256.42);
+ polygon.ps[1] = Point(13299, 9301.11);
+ polygon.ps[2] = Point(13240.8, 9301.11);
+ polygon.ps[3] = Point(13240.8, 9256.42);
+ new ShapeRef(router, polygon, 2587);
+
+ // shapeRef2588
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(7202.1, 9213.42);
+ polygon.ps[1] = Point(7202.1, 9271.64);
+ polygon.ps[2] = Point(7157.4, 9271.64);
+ polygon.ps[3] = Point(7157.4, 9213.42);
+ new ShapeRef(router, polygon, 2588);
+
+ // shapeRef2589
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6542.1, 9877.02);
+ polygon.ps[1] = Point(6542.1, 9935.24);
+ polygon.ps[2] = Point(6497.4, 9935.24);
+ polygon.ps[3] = Point(6497.4, 9877.02);
+ new ShapeRef(router, polygon, 2589);
+
+ // shapeRef2590
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(8219.52, 6524.51);
+ polygon.ps[1] = Point(8219.52, 6569.21);
+ polygon.ps[2] = Point(8161.29, 6569.21);
+ polygon.ps[3] = Point(8161.29, 6524.51);
+ new ShapeRef(router, polygon, 2590);
+
+ // shapeRef2591
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(6113.1, 7975.79);
+ polygon.ps[1] = Point(6113.1, 8034.02);
+ polygon.ps[2] = Point(6068.4, 8034.02);
+ polygon.ps[3] = Point(6068.4, 7975.79);
+ new ShapeRef(router, polygon, 2591);
+
+ // shapeRef2592
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11240.7, 4122.51);
+ polygon.ps[1] = Point(11240.7, 4182.51);
+ polygon.ps[2] = Point(11185.7, 4182.51);
+ polygon.ps[3] = Point(11185.7, 4122.51);
+ new ShapeRef(router, polygon, 2592);
+
+ // shapeRef2593
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(10170.7, 10313.8);
+ polygon.ps[1] = Point(10170.7, 10372);
+ polygon.ps[2] = Point(10126, 10372);
+ polygon.ps[3] = Point(10126, 10313.8);
+ new ShapeRef(router, polygon, 2593);
+
+ // shapeRef2594
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(11662.6, 10711.3);
+ polygon.ps[1] = Point(11662.6, 10771.3);
+ polygon.ps[2] = Point(11607.6, 10771.3);
+ polygon.ps[3] = Point(11607.6, 10711.3);
+ new ShapeRef(router, polygon, 2594);
+
+ // shapeRef2595
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(14229.5, 12435.7);
+ polygon.ps[1] = Point(14229.5, 12530.7);
+ polygon.ps[2] = Point(14174.5, 12530.7);
+ polygon.ps[3] = Point(14174.5, 12435.7);
+ new ShapeRef(router, polygon, 2595);
+
+ // shapeRef2596
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(9675.69, 7359.4);
+ polygon.ps[1] = Point(9675.69, 7443.5);
+ polygon.ps[2] = Point(9629.45, 7443.5);
+ polygon.ps[3] = Point(9629.45, 7359.4);
+ new ShapeRef(router, polygon, 2596);
+
+ // shapeRef2597
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(649, 148.265);
+ polygon.ps[1] = Point(649, 232.363);
+ polygon.ps[2] = Point(602.765, 232.363);
+ polygon.ps[3] = Point(602.765, 148.265);
+ new ShapeRef(router, polygon, 2597);
+
+ // shapeRef2598
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(744.5, 145.765);
+ polygon.ps[1] = Point(744.5, 185.765);
+ polygon.ps[2] = Point(669, 185.765);
+ polygon.ps[3] = Point(669, 145.765);
+ new ShapeRef(router, polygon, 2598);
+
+ // shapeRef2599
+ polygon = Polygon(4);
+ polygon.ps[0] = Point(15138.3, 11833.3);
+ polygon.ps[1] = Point(15138.3, 11893.9);
+ polygon.ps[2] = Point(15066.7, 11893.9);
+ polygon.ps[3] = Point(15066.7, 11833.3);
+ new ShapeRef(router, polygon, 2599);
+
+ // connRef2600
+ connRef = new ConnRef(router, 2600);
+ srcPt = ConnEnd(Point(7765.29, 7425.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7915.29, 7128.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2601
+ connRef = new ConnRef(router, 2601);
+ srcPt = ConnEnd(Point(7945.29, 7128.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8293.29, 6854.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2602
+ connRef = new ConnRef(router, 2602);
+ srcPt = ConnEnd(Point(9435.59, 6963.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9153.59, 6151.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2603
+ connRef = new ConnRef(router, 2603);
+ srcPt = ConnEnd(Point(9123.59, 6151.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2604
+ connRef = new ConnRef(router, 2604);
+ srcPt = ConnEnd(Point(9123.59, 6151.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8293.29, 6854.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2605
+ connRef = new ConnRef(router, 2605);
+ srcPt = ConnEnd(Point(9435.59, 6963.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9802.69, 7161.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2606
+ connRef = new ConnRef(router, 2606);
+ srcPt = ConnEnd(Point(9832.69, 7161.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10149, 7458.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2607
+ connRef = new ConnRef(router, 2607);
+ srcPt = ConnEnd(Point(10611.2, 8282.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10456.9, 7891.79), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2608
+ connRef = new ConnRef(router, 2608);
+ srcPt = ConnEnd(Point(10456.9, 7861.79), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10149, 7458.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2609
+ connRef = new ConnRef(router, 2609);
+ srcPt = ConnEnd(Point(7831.29, 9477.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7575.1, 9096.42), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2610
+ connRef = new ConnRef(router, 2610);
+ srcPt = ConnEnd(Point(7575.1, 9066.42), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7410.1, 8579.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2611
+ connRef = new ConnRef(router, 2611);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1361.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2612
+ connRef = new ConnRef(router, 2612);
+ srcPt = ConnEnd(Point(7831.29, 9477.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1361.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2613
+ connRef = new ConnRef(router, 2613);
+ srcPt = ConnEnd(Point(15239.5, 1331.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2614
+ connRef = new ConnRef(router, 2614);
+ srcPt = ConnEnd(Point(15239.5, 1331.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8684.29, 9976.02), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2615
+ connRef = new ConnRef(router, 2615);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9384.59, 9642.42), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2616
+ connRef = new ConnRef(router, 2616);
+ srcPt = ConnEnd(Point(9354.59, 9642.42), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8684.29, 9976.02), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2617
+ connRef = new ConnRef(router, 2617);
+ srcPt = ConnEnd(Point(7765.29, 7425.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7509.1, 7993.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2618
+ connRef = new ConnRef(router, 2618);
+ srcPt = ConnEnd(Point(7509.1, 8023.79), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7410.1, 8579.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2619
+ connRef = new ConnRef(router, 2619);
+ srcPt = ConnEnd(Point(10611.2, 8282.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10677.2, 8564.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2620
+ connRef = new ConnRef(router, 2620);
+ srcPt = ConnEnd(Point(10677.2, 8594.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10710.2, 8873.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2621
+ connRef = new ConnRef(router, 2621);
+ srcPt = ConnEnd(Point(10710.2, 8873.22), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10512.2, 9132.42), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2622
+ connRef = new ConnRef(router, 2622);
+ srcPt = ConnEnd(Point(10512.2, 9162.42), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2623
+ connRef = new ConnRef(router, 2623);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9052.99, 8333.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2624
+ connRef = new ConnRef(router, 2624);
+ srcPt = ConnEnd(Point(9052.99, 8363.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9085.99, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2625
+ connRef = new ConnRef(router, 2625);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 4656.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2626
+ connRef = new ConnRef(router, 2626);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 4656.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2627
+ connRef = new ConnRef(router, 2627);
+ srcPt = ConnEnd(Point(8835.89, 4626.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2628
+ connRef = new ConnRef(router, 2628);
+ srcPt = ConnEnd(Point(8835.89, 4626.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2629
+ connRef = new ConnRef(router, 2629);
+ srcPt = ConnEnd(Point(8835.89, 3664.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 3946.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2630
+ connRef = new ConnRef(router, 2630);
+ srcPt = ConnEnd(Point(8835.89, 3976.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2631
+ connRef = new ConnRef(router, 2631);
+ srcPt = ConnEnd(Point(9784.69, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9351.59, 5512.67), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2632
+ connRef = new ConnRef(router, 2632);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9351.59, 5512.67), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2633
+ connRef = new ConnRef(router, 2633);
+ srcPt = ConnEnd(Point(9321.59, 5512.67), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2634
+ connRef = new ConnRef(router, 2634);
+ srcPt = ConnEnd(Point(9321.59, 5512.67), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2635
+ connRef = new ConnRef(router, 2635);
+ srcPt = ConnEnd(Point(8835.89, 3664.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 3448.51), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2636
+ connRef = new ConnRef(router, 2636);
+ srcPt = ConnEnd(Point(8835.89, 3418.51), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 3173.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2637
+ connRef = new ConnRef(router, 2637);
+ srcPt = ConnEnd(Point(8835.89, 3173.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2924.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2638
+ connRef = new ConnRef(router, 2638);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2924.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2639
+ connRef = new ConnRef(router, 2639);
+ srcPt = ConnEnd(Point(8835.89, 2894.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2579.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2640
+ connRef = new ConnRef(router, 2640);
+ srcPt = ConnEnd(Point(8835.89, 2894.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2641
+ connRef = new ConnRef(router, 2641);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2366.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2642
+ connRef = new ConnRef(router, 2642);
+ srcPt = ConnEnd(Point(8835.89, 2396.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2579.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2643
+ connRef = new ConnRef(router, 2643);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8440.29, 2108.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2644
+ connRef = new ConnRef(router, 2644);
+ srcPt = ConnEnd(Point(8410.29, 2108.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8161.29, 2108.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2645
+ connRef = new ConnRef(router, 2645);
+ srcPt = ConnEnd(Point(8458.29, 1676.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8440.29, 2150.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2646
+ connRef = new ConnRef(router, 2646);
+ srcPt = ConnEnd(Point(8410.29, 2150.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2647
+ connRef = new ConnRef(router, 2647);
+ srcPt = ConnEnd(Point(8410.29, 2150.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8161.29, 2108.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2648
+ connRef = new ConnRef(router, 2648);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15359.5, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2649
+ connRef = new ConnRef(router, 2649);
+ srcPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15359.5, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2650
+ connRef = new ConnRef(router, 2650);
+ srcPt = ConnEnd(Point(15389.5, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2651
+ connRef = new ConnRef(router, 2651);
+ srcPt = ConnEnd(Point(15389.5, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1676.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2652
+ connRef = new ConnRef(router, 2652);
+ srcPt = ConnEnd(Point(8458.29, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1100.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2653
+ connRef = new ConnRef(router, 2653);
+ srcPt = ConnEnd(Point(8458.29, 1130.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2654
+ connRef = new ConnRef(router, 2654);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15100.3, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2655
+ connRef = new ConnRef(router, 2655);
+ srcPt = ConnEnd(Point(7996.29, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15100.3, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2656
+ connRef = new ConnRef(router, 2656);
+ srcPt = ConnEnd(Point(15130.3, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2657
+ connRef = new ConnRef(router, 2657);
+ srcPt = ConnEnd(Point(15130.3, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2658
+ connRef = new ConnRef(router, 2658);
+ srcPt = ConnEnd(Point(8458.29, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8971.99, 808.091), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2659
+ connRef = new ConnRef(router, 2659);
+ srcPt = ConnEnd(Point(9001.99, 808.091), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9270.59, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2660
+ connRef = new ConnRef(router, 2660);
+ srcPt = ConnEnd(Point(9270.59, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9001.99, 1115.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2661
+ connRef = new ConnRef(router, 2661);
+ srcPt = ConnEnd(Point(8971.99, 1115.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2662
+ connRef = new ConnRef(router, 2662);
+ srcPt = ConnEnd(Point(7996.29, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7996.29, 968.285), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2663
+ connRef = new ConnRef(router, 2663);
+ srcPt = ConnEnd(Point(7996.29, 998.285), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7996.29, 1148.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2664
+ connRef = new ConnRef(router, 2664);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15462.3, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2665
+ connRef = new ConnRef(router, 2665);
+ srcPt = ConnEnd(Point(7996.29, 1148.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15462.3, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2666
+ connRef = new ConnRef(router, 2666);
+ srcPt = ConnEnd(Point(15492.3, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2667
+ connRef = new ConnRef(router, 2667);
+ srcPt = ConnEnd(Point(15492.3, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9270.59, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2668
+ connRef = new ConnRef(router, 2668);
+ srcPt = ConnEnd(Point(9270.59, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9736.69, 808.091), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2669
+ connRef = new ConnRef(router, 2669);
+ srcPt = ConnEnd(Point(9766.69, 808.091), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10456.9, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2670
+ connRef = new ConnRef(router, 2670);
+ srcPt = ConnEnd(Point(10456.9, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10761.2, 808.091), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2671
+ connRef = new ConnRef(router, 2671);
+ srcPt = ConnEnd(Point(10791.2, 808.091), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2672
+ connRef = new ConnRef(router, 2672);
+ srcPt = ConnEnd(Point(10974.2, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 1100.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2673
+ connRef = new ConnRef(router, 2673);
+ srcPt = ConnEnd(Point(10974.2, 1130.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2674
+ connRef = new ConnRef(router, 2674);
+ srcPt = ConnEnd(Point(10974.2, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10791.2, 1280.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2675
+ connRef = new ConnRef(router, 2675);
+ srcPt = ConnEnd(Point(10761.2, 1280.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10456.9, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2676
+ connRef = new ConnRef(router, 2676);
+ srcPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9354.59, 1280.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2677
+ connRef = new ConnRef(router, 2677);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9354.59, 1280.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2678
+ connRef = new ConnRef(router, 2678);
+ srcPt = ConnEnd(Point(9384.59, 1280.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10456.9, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2679
+ connRef = new ConnRef(router, 2679);
+ srcPt = ConnEnd(Point(9384.59, 1280.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9652.69, 1445.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2680
+ connRef = new ConnRef(router, 2680);
+ srcPt = ConnEnd(Point(9652.69, 1943.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9652.69, 1724.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2681
+ connRef = new ConnRef(router, 2681);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9652.69, 1724.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2682
+ connRef = new ConnRef(router, 2682);
+ srcPt = ConnEnd(Point(9652.69, 1694.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2683
+ connRef = new ConnRef(router, 2683);
+ srcPt = ConnEnd(Point(9652.69, 1694.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9652.69, 1445.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2684
+ connRef = new ConnRef(router, 2684);
+ srcPt = ConnEnd(Point(9652.69, 1943.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9288.59, 2009.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2685
+ connRef = new ConnRef(router, 2685);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9288.59, 2009.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2686
+ connRef = new ConnRef(router, 2686);
+ srcPt = ConnEnd(Point(9318.59, 2009.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10456.9, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2687
+ connRef = new ConnRef(router, 2687);
+ srcPt = ConnEnd(Point(9318.59, 2009.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 1643.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2688
+ connRef = new ConnRef(router, 2688);
+ srcPt = ConnEnd(Point(10974.2, 1643.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 1493.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2689
+ connRef = new ConnRef(router, 2689);
+ srcPt = ConnEnd(Point(10974.2, 1463.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2690
+ connRef = new ConnRef(router, 2690);
+ srcPt = ConnEnd(Point(10974.2, 1643.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11124.2, 1643.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2691
+ connRef = new ConnRef(router, 2691);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11124.2, 1643.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2692
+ connRef = new ConnRef(router, 2692);
+ srcPt = ConnEnd(Point(11154.2, 1643.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1643.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2693
+ connRef = new ConnRef(router, 2693);
+ srcPt = ConnEnd(Point(11154.2, 1643.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2694
+ connRef = new ConnRef(router, 2694);
+ srcPt = ConnEnd(Point(10974.2, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 595.091), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2695
+ connRef = new ConnRef(router, 2695);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 595.091), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2696
+ connRef = new ConnRef(router, 2696);
+ srcPt = ConnEnd(Point(10974.2, 625.091), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2697
+ connRef = new ConnRef(router, 2697);
+ srcPt = ConnEnd(Point(10974.2, 625.091), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2698
+ connRef = new ConnRef(router, 2698);
+ srcPt = ConnEnd(Point(10149, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10530.2, 4361.11), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2699
+ connRef = new ConnRef(router, 2699);
+ srcPt = ConnEnd(Point(10560.2, 4361.11), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10743.2, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2700
+ connRef = new ConnRef(router, 2700);
+ srcPt = ConnEnd(Point(10743.2, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10926.2, 4361.11), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2701
+ connRef = new ConnRef(router, 2701);
+ srcPt = ConnEnd(Point(10956.2, 4361.11), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11073.2, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2702
+ connRef = new ConnRef(router, 2702);
+ srcPt = ConnEnd(Point(11396.1, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11579.1, 4361.11), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2703
+ connRef = new ConnRef(router, 2703);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11579.1, 4361.11), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2704
+ connRef = new ConnRef(router, 2704);
+ srcPt = ConnEnd(Point(11609.1, 4361.11), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11759.1, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2705
+ connRef = new ConnRef(router, 2705);
+ srcPt = ConnEnd(Point(11609.1, 4361.11), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2706
+ connRef = new ConnRef(router, 2706);
+ srcPt = ConnEnd(Point(11759.1, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10596.2, 4509.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2707
+ connRef = new ConnRef(router, 2707);
+ srcPt = ConnEnd(Point(8835.89, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10596.2, 4509.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2708
+ connRef = new ConnRef(router, 2708);
+ srcPt = ConnEnd(Point(10626.2, 4509.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12056.1, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2709
+ connRef = new ConnRef(router, 2709);
+ srcPt = ConnEnd(Point(12056.1, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12206.1, 4361.11), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2710
+ connRef = new ConnRef(router, 2710);
+ srcPt = ConnEnd(Point(12236.1, 4361.11), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2711
+ connRef = new ConnRef(router, 2711);
+ srcPt = ConnEnd(Point(12531.5, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 4560.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2712
+ connRef = new ConnRef(router, 2712);
+ srcPt = ConnEnd(Point(12531.5, 4590.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 4740.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2713
+ connRef = new ConnRef(router, 2713);
+ srcPt = ConnEnd(Point(12531.5, 4740.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 4956.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2714
+ connRef = new ConnRef(router, 2714);
+ srcPt = ConnEnd(Point(12531.5, 4986.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 5169.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2715
+ connRef = new ConnRef(router, 2715);
+ srcPt = ConnEnd(Point(12531.5, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 5329.67), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2716
+ connRef = new ConnRef(router, 2716);
+ srcPt = ConnEnd(Point(12531.5, 5299.67), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 5169.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2717
+ connRef = new ConnRef(router, 2717);
+ srcPt = ConnEnd(Point(12531.5, 4740.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12907.5, 4509.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2718
+ connRef = new ConnRef(router, 2718);
+ srcPt = ConnEnd(Point(12937.5, 4509.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13266, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2719
+ connRef = new ConnRef(router, 2719);
+ srcPt = ConnEnd(Point(13266, 3631.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13266, 3847.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2720
+ connRef = new ConnRef(router, 2720);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13266, 3847.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2721
+ connRef = new ConnRef(router, 2721);
+ srcPt = ConnEnd(Point(13266, 3877.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13266, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2722
+ connRef = new ConnRef(router, 2722);
+ srcPt = ConnEnd(Point(13266, 3877.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2723
+ connRef = new ConnRef(router, 2723);
+ srcPt = ConnEnd(Point(12531.5, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 4009.51), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2724
+ connRef = new ConnRef(router, 2724);
+ srcPt = ConnEnd(Point(12531.5, 3979.51), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 3730.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2725
+ connRef = new ConnRef(router, 2725);
+ srcPt = ConnEnd(Point(12531.5, 3979.51), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2726
+ connRef = new ConnRef(router, 2726);
+ srcPt = ConnEnd(Point(12531.5, 3338.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 3517.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2727
+ connRef = new ConnRef(router, 2727);
+ srcPt = ConnEnd(Point(12531.5, 3547.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 3730.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2728
+ connRef = new ConnRef(router, 2728);
+ srcPt = ConnEnd(Point(12531.5, 3547.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1643.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2729
+ connRef = new ConnRef(router, 2729);
+ srcPt = ConnEnd(Point(12531.5, 3338.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 3056.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2730
+ connRef = new ConnRef(router, 2730);
+ srcPt = ConnEnd(Point(12531.5, 3026.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 2678.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2731
+ connRef = new ConnRef(router, 2731);
+ srcPt = ConnEnd(Point(12531.5, 2678.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 2297.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2732
+ connRef = new ConnRef(router, 2732);
+ srcPt = ConnEnd(Point(12531.5, 2267.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 1844.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2733
+ connRef = new ConnRef(router, 2733);
+ srcPt = ConnEnd(Point(12531.5, 1844.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12170.1, 1844.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2734
+ connRef = new ConnRef(router, 2734);
+ srcPt = ConnEnd(Point(9501.59, 6481.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12170.1, 1844.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2735
+ connRef = new ConnRef(router, 2735);
+ srcPt = ConnEnd(Point(12140.1, 1844.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 1844.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2736
+ connRef = new ConnRef(router, 2736);
+ srcPt = ConnEnd(Point(12140.1, 1844.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2737
+ connRef = new ConnRef(router, 2737);
+ srcPt = ConnEnd(Point(11990.1, 1577.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 1727.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2738
+ connRef = new ConnRef(router, 2738);
+ srcPt = ConnEnd(Point(9501.59, 6481.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 1727.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2739
+ connRef = new ConnRef(router, 2739);
+ srcPt = ConnEnd(Point(11990.1, 1757.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 1844.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2740
+ connRef = new ConnRef(router, 2740);
+ srcPt = ConnEnd(Point(12531.5, 1844.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12170.1, 1742.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2741
+ connRef = new ConnRef(router, 2741);
+ srcPt = ConnEnd(Point(12140.1, 1742.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 1577.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2742
+ connRef = new ConnRef(router, 2742);
+ srcPt = ConnEnd(Point(12140.1, 1742.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2743
+ connRef = new ConnRef(router, 2743);
+ srcPt = ConnEnd(Point(13872, 8249.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13872, 8432.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2744
+ connRef = new ConnRef(router, 2744);
+ srcPt = ConnEnd(Point(13872, 8462.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13872, 8708.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2745
+ connRef = new ConnRef(router, 2745);
+ srcPt = ConnEnd(Point(11924.1, 7612.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11924.1, 7828.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2746
+ connRef = new ConnRef(router, 2746);
+ srcPt = ConnEnd(Point(11924.1, 7858.79), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11924.1, 8074.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2747
+ connRef = new ConnRef(router, 2747);
+ srcPt = ConnEnd(Point(11924.1, 7858.79), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9171.59, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2748
+ connRef = new ConnRef(router, 2748);
+ srcPt = ConnEnd(Point(15868.6, 8249.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 8432.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2749
+ connRef = new ConnRef(router, 2749);
+ srcPt = ConnEnd(Point(15868.6, 8462.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 8708.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2750
+ connRef = new ConnRef(router, 2750);
+ srcPt = ConnEnd(Point(16722.8, 8249.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16722.8, 8399.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2751
+ connRef = new ConnRef(router, 2751);
+ srcPt = ConnEnd(Point(16722.8, 8429.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16722.8, 8642.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2752
+ connRef = new ConnRef(router, 2752);
+ srcPt = ConnEnd(Point(13872, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8636.29, 4192.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2753
+ connRef = new ConnRef(router, 2753);
+ srcPt = ConnEnd(Point(4322, 2150.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8636.29, 4192.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2754
+ connRef = new ConnRef(router, 2754);
+ srcPt = ConnEnd(Point(8666.29, 4192.51), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13167, 8249.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2755
+ connRef = new ConnRef(router, 2755);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 9693.42), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2756
+ connRef = new ConnRef(router, 2756);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 9693.42), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2757
+ connRef = new ConnRef(router, 2757);
+ srcPt = ConnEnd(Point(10116, 9723.42), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8293.29, 6854.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2758
+ connRef = new ConnRef(router, 2758);
+ srcPt = ConnEnd(Point(10116, 9723.42), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2759
+ connRef = new ConnRef(router, 2759);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15359.5, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2760
+ connRef = new ConnRef(router, 2760);
+ srcPt = ConnEnd(Point(17741.5, 5822.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15359.5, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2761
+ connRef = new ConnRef(router, 2761);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15359.5, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2762
+ connRef = new ConnRef(router, 2762);
+ srcPt = ConnEnd(Point(15389.5, 1181.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18368.5, 5070.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2763
+ connRef = new ConnRef(router, 2763);
+ srcPt = ConnEnd(Point(15389.5, 1181.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2764
+ connRef = new ConnRef(router, 2764);
+ srcPt = ConnEnd(Point(18368.5, 5070.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13608, 6664.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2765
+ connRef = new ConnRef(router, 2765);
+ srcPt = ConnEnd(Point(13608, 6694.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7410.1, 8579.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2766
+ connRef = new ConnRef(router, 2766);
+ srcPt = ConnEnd(Point(13608, 6694.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18725.5, 5822.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2767
+ connRef = new ConnRef(router, 2767);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 7311.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2768
+ connRef = new ConnRef(router, 2768);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 7311.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2769
+ connRef = new ConnRef(router, 2769);
+ srcPt = ConnEnd(Point(10809.2, 7341.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 7579.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2770
+ connRef = new ConnRef(router, 2770);
+ srcPt = ConnEnd(Point(10809.2, 7341.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2771
+ connRef = new ConnRef(router, 2771);
+ srcPt = ConnEnd(Point(10809.2, 8074.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 7825.79), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2772
+ connRef = new ConnRef(router, 2772);
+ srcPt = ConnEnd(Point(10809.2, 7795.79), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 7579.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2773
+ connRef = new ConnRef(router, 2773);
+ srcPt = ConnEnd(Point(10809.2, 8074.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9850.69, 6400.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2774
+ connRef = new ConnRef(router, 2774);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9850.69, 6400.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2775
+ connRef = new ConnRef(router, 2775);
+ srcPt = ConnEnd(Point(9850.69, 6430.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11040.2, 8873.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2776
+ connRef = new ConnRef(router, 2776);
+ srcPt = ConnEnd(Point(11429.1, 8873.22), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11253.2, 8873.22), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2777
+ connRef = new ConnRef(router, 2777);
+ srcPt = ConnEnd(Point(11223.2, 8873.22), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11040.2, 8873.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2778
+ connRef = new ConnRef(router, 2778);
+ srcPt = ConnEnd(Point(11990.1, 8873.22), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12305.1, 8873.22), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2779
+ connRef = new ConnRef(router, 2779);
+ srcPt = ConnEnd(Point(12335.1, 8873.22), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12889.5, 8873.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2780
+ connRef = new ConnRef(router, 2780);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9034.99, 3433.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2781
+ connRef = new ConnRef(router, 2781);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9034.99, 3433.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2782
+ connRef = new ConnRef(router, 2782);
+ srcPt = ConnEnd(Point(9004.99, 3433.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7798.29, 3565.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2783
+ connRef = new ConnRef(router, 2783);
+ srcPt = ConnEnd(Point(7146.1, 3565.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7461.1, 3565.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2784
+ connRef = new ConnRef(router, 2784);
+ srcPt = ConnEnd(Point(7491.1, 3565.51), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7798.29, 3565.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2785
+ connRef = new ConnRef(router, 2785);
+ srcPt = ConnEnd(Point(7146.1, 3565.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6798.1, 3565.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2786
+ connRef = new ConnRef(router, 2786);
+ srcPt = ConnEnd(Point(6768.1, 3565.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6519.1, 3565.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2787
+ connRef = new ConnRef(router, 2787);
+ srcPt = ConnEnd(Point(6519.1, 3565.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6204.1, 3565.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2788
+ connRef = new ConnRef(router, 2788);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6204.1, 3565.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2789
+ connRef = new ConnRef(router, 2789);
+ srcPt = ConnEnd(Point(6174.1, 3565.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6024.1, 3565.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2790
+ connRef = new ConnRef(router, 2790);
+ srcPt = ConnEnd(Point(6174.1, 3565.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2791
+ connRef = new ConnRef(router, 2791);
+ srcPt = ConnEnd(Point(6024.1, 3565.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5709.1, 3565.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2792
+ connRef = new ConnRef(router, 2792);
+ srcPt = ConnEnd(Point(5679.1, 3565.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 3565.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2793
+ connRef = new ConnRef(router, 2793);
+ srcPt = ConnEnd(Point(5312, 3565.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 3814.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2794
+ connRef = new ConnRef(router, 2794);
+ srcPt = ConnEnd(Point(5312, 3844.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2795
+ connRef = new ConnRef(router, 2795);
+ srcPt = ConnEnd(Point(5312, 4938.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 4590.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2796
+ connRef = new ConnRef(router, 2796);
+ srcPt = ConnEnd(Point(5312, 4560.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2797
+ connRef = new ConnRef(router, 2797);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 5362.67), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2798
+ connRef = new ConnRef(router, 2798);
+ srcPt = ConnEnd(Point(5312, 5332.67), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 4938.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2799
+ connRef = new ConnRef(router, 2799);
+ srcPt = ConnEnd(Point(5312, 4126.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 5154.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2800
+ connRef = new ConnRef(router, 2800);
+ srcPt = ConnEnd(Point(5312, 5184.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2801
+ connRef = new ConnRef(router, 2801);
+ srcPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8407.29, 5512.67), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2802
+ connRef = new ConnRef(router, 2802);
+ srcPt = ConnEnd(Point(8377.29, 5512.67), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8095.29, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2803
+ connRef = new ConnRef(router, 2803);
+ srcPt = ConnEnd(Point(5312, 4938.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5511.1, 5347.67), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2804
+ connRef = new ConnRef(router, 2804);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5511.1, 5347.67), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2805
+ connRef = new ConnRef(router, 2805);
+ srcPt = ConnEnd(Point(5481.1, 5347.67), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4982, 5347.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2806
+ connRef = new ConnRef(router, 2806);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4964, 5964.59), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2807
+ connRef = new ConnRef(router, 2807);
+ srcPt = ConnEnd(Point(4982, 5347.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4964, 5964.59), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2808
+ connRef = new ConnRef(router, 2808);
+ srcPt = ConnEnd(Point(4934, 5964.59), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4553, 5964.59), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2809
+ connRef = new ConnRef(router, 2809);
+ srcPt = ConnEnd(Point(4553, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 6041.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2810
+ connRef = new ConnRef(router, 2810);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 6041.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2811
+ connRef = new ConnRef(router, 2811);
+ srcPt = ConnEnd(Point(4949, 6071.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 6613.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2812
+ connRef = new ConnRef(router, 2812);
+ srcPt = ConnEnd(Point(4949, 7579.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 7795.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2813
+ connRef = new ConnRef(router, 2813);
+ srcPt = ConnEnd(Point(4949, 7825.79), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 8107.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2814
+ connRef = new ConnRef(router, 2814);
+ srcPt = ConnEnd(Point(4949, 8107.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 8366.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2815
+ connRef = new ConnRef(router, 2815);
+ srcPt = ConnEnd(Point(4949, 8396.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 8579.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2816
+ connRef = new ConnRef(router, 2816);
+ srcPt = ConnEnd(Point(4949, 8579.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 8792.22), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2817
+ connRef = new ConnRef(router, 2817);
+ srcPt = ConnEnd(Point(4949, 8822.22), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 9114.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2818
+ connRef = new ConnRef(router, 2818);
+ srcPt = ConnEnd(Point(4949, 9114.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 9297.42), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2819
+ connRef = new ConnRef(router, 2819);
+ srcPt = ConnEnd(Point(4949, 9327.42), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 9576.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2820
+ connRef = new ConnRef(router, 2820);
+ srcPt = ConnEnd(Point(4289, 9576.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4289, 9862.02), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2821
+ connRef = new ConnRef(router, 2821);
+ srcPt = ConnEnd(Point(4289, 9892.02), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4289, 10075), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2822
+ connRef = new ConnRef(router, 2822);
+ srcPt = ConnEnd(Point(4949, 10438), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4766, 10438), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2823
+ connRef = new ConnRef(router, 2823);
+ srcPt = ConnEnd(Point(4736, 10438), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4553, 10438), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2824
+ connRef = new ConnRef(router, 2824);
+ srcPt = ConnEnd(Point(4553, 10438), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4553, 10568.3), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2825
+ connRef = new ConnRef(router, 2825);
+ srcPt = ConnEnd(Point(4553, 10598.3), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4553, 10748.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2826
+ connRef = new ConnRef(router, 2826);
+ srcPt = ConnEnd(Point(11363.1, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1463.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2827
+ connRef = new ConnRef(router, 2827);
+ srcPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1463.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2828
+ connRef = new ConnRef(router, 2828);
+ srcPt = ConnEnd(Point(11363.1, 1493.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1643.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2829
+ connRef = new ConnRef(router, 2829);
+ srcPt = ConnEnd(Point(11363.1, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1130.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2830
+ connRef = new ConnRef(router, 2830);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1130.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2831
+ connRef = new ConnRef(router, 2831);
+ srcPt = ConnEnd(Point(9501.59, 8249.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1130.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2832
+ connRef = new ConnRef(router, 2832);
+ srcPt = ConnEnd(Point(11363.1, 1100.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2833
+ connRef = new ConnRef(router, 2833);
+ srcPt = ConnEnd(Point(11363.1, 1100.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2834
+ connRef = new ConnRef(router, 2834);
+ srcPt = ConnEnd(Point(11363.1, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 625.091), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2835
+ connRef = new ConnRef(router, 2835);
+ srcPt = ConnEnd(Point(11363.1, 595.091), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2836
+ connRef = new ConnRef(router, 2836);
+ srcPt = ConnEnd(Point(11363.1, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11513.1, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2837
+ connRef = new ConnRef(router, 2837);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11513.1, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2838
+ connRef = new ConnRef(router, 2838);
+ srcPt = ConnEnd(Point(11543.1, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11726.1, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2839
+ connRef = new ConnRef(router, 2839);
+ srcPt = ConnEnd(Point(11543.1, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2840
+ connRef = new ConnRef(router, 2840);
+ srcPt = ConnEnd(Point(11543.1, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2841
+ connRef = new ConnRef(router, 2841);
+ srcPt = ConnEnd(Point(11726.1, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11942.1, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2842
+ connRef = new ConnRef(router, 2842);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11942.1, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2843
+ connRef = new ConnRef(router, 2843);
+ srcPt = ConnEnd(Point(11972.1, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12089.1, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2844
+ connRef = new ConnRef(router, 2844);
+ srcPt = ConnEnd(Point(11972.1, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2845
+ connRef = new ConnRef(router, 2845);
+ srcPt = ConnEnd(Point(12089.1, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14971.9, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2846
+ connRef = new ConnRef(router, 2846);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14971.9, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2847
+ connRef = new ConnRef(router, 2847);
+ srcPt = ConnEnd(Point(15001.9, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12353.1, 643.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2848
+ connRef = new ConnRef(router, 2848);
+ srcPt = ConnEnd(Point(15001.9, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2849
+ connRef = new ConnRef(router, 2849);
+ srcPt = ConnEnd(Point(12353.1, 643.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12709.5, 577.091), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2850
+ connRef = new ConnRef(router, 2850);
+ srcPt = ConnEnd(Point(12739.5, 577.091), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12856.5, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2851
+ connRef = new ConnRef(router, 2851);
+ srcPt = ConnEnd(Point(12856.5, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13185, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2852
+ connRef = new ConnRef(router, 2852);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13185, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2853
+ connRef = new ConnRef(router, 2853);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13185, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2854
+ connRef = new ConnRef(router, 2854);
+ srcPt = ConnEnd(Point(13215, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13509, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2855
+ connRef = new ConnRef(router, 2855);
+ srcPt = ConnEnd(Point(13215, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2856
+ connRef = new ConnRef(router, 2856);
+ srcPt = ConnEnd(Point(13509, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13857, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2857
+ connRef = new ConnRef(router, 2857);
+ srcPt = ConnEnd(Point(13887, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14037, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2858
+ connRef = new ConnRef(router, 2858);
+ srcPt = ConnEnd(Point(13887, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7410.1, 8579.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2859
+ connRef = new ConnRef(router, 2859);
+ srcPt = ConnEnd(Point(14037, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14319, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2860
+ connRef = new ConnRef(router, 2860);
+ srcPt = ConnEnd(Point(14349, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14565, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2861
+ connRef = new ConnRef(router, 2861);
+ srcPt = ConnEnd(Point(15239.5, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14811, 458.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2862
+ connRef = new ConnRef(router, 2862);
+ srcPt = ConnEnd(Point(14781, 458.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14565, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2863
+ connRef = new ConnRef(router, 2863);
+ srcPt = ConnEnd(Point(15239.5, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15622.3, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2864
+ connRef = new ConnRef(router, 2864);
+ srcPt = ConnEnd(Point(15652.3, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15967.6, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2865
+ connRef = new ConnRef(router, 2865);
+ srcPt = ConnEnd(Point(15967.6, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16150.6, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2866
+ connRef = new ConnRef(router, 2866);
+ srcPt = ConnEnd(Point(16180.6, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16363.6, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2867
+ connRef = new ConnRef(router, 2867);
+ srcPt = ConnEnd(Point(16363.6, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16363.6, 793.091), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2868
+ connRef = new ConnRef(router, 2868);
+ srcPt = ConnEnd(Point(16363.6, 823.091), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16363.6, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2869
+ connRef = new ConnRef(router, 2869);
+ srcPt = ConnEnd(Point(15967.6, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16165.6, 793.091), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2870
+ connRef = new ConnRef(router, 2870);
+ srcPt = ConnEnd(Point(16165.6, 823.091), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16363.6, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2871
+ connRef = new ConnRef(router, 2871);
+ srcPt = ConnEnd(Point(16165.6, 823.091), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1643.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2872
+ connRef = new ConnRef(router, 2872);
+ srcPt = ConnEnd(Point(11495.1, 8074.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11121.2, 8074.79), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2873
+ connRef = new ConnRef(router, 2873);
+ srcPt = ConnEnd(Point(11091.2, 8074.79), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 8074.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2874
+ connRef = new ConnRef(router, 2874);
+ srcPt = ConnEnd(Point(11495.1, 8074.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11495.1, 7759.79), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2875
+ connRef = new ConnRef(router, 2875);
+ srcPt = ConnEnd(Point(8684.29, 9976.02), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11495.1, 7759.79), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2876
+ connRef = new ConnRef(router, 2876);
+ srcPt = ConnEnd(Point(11495.1, 7729.79), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11495.1, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2877
+ connRef = new ConnRef(router, 2877);
+ srcPt = ConnEnd(Point(11495.1, 7425.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12008.1, 7425.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2878
+ connRef = new ConnRef(router, 2878);
+ srcPt = ConnEnd(Point(12038.1, 7425.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12856.5, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2879
+ connRef = new ConnRef(router, 2879);
+ srcPt = ConnEnd(Point(12038.1, 7425.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7831.29, 9477.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2880
+ connRef = new ConnRef(router, 2880);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7179.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2881
+ connRef = new ConnRef(router, 2881);
+ srcPt = ConnEnd(Point(15407.5, 7425.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7179.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2882
+ connRef = new ConnRef(router, 2882);
+ srcPt = ConnEnd(Point(17052.8, 7209.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2883
+ connRef = new ConnRef(router, 2883);
+ srcPt = ConnEnd(Point(7765.29, 610.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18501, 11860.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2884
+ connRef = new ConnRef(router, 2884);
+ srcPt = ConnEnd(Point(18401.5, 11860.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18501, 11860.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2885
+ connRef = new ConnRef(router, 2885);
+ srcPt = ConnEnd(Point(18531, 11860.9), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18630.5, 11860.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2886
+ connRef = new ConnRef(router, 2886);
+ srcPt = ConnEnd(Point(12889.5, 8873.22), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13251, 8873.22), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2887
+ connRef = new ConnRef(router, 2887);
+ srcPt = ConnEnd(Point(13281, 8873.22), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13872, 8873.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2888
+ connRef = new ConnRef(router, 2888);
+ srcPt = ConnEnd(Point(10456.9, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10761.2, 458.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2889
+ connRef = new ConnRef(router, 2889);
+ srcPt = ConnEnd(Point(10791.2, 458.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10974.2, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2890
+ connRef = new ConnRef(router, 2890);
+ srcPt = ConnEnd(Point(9171.59, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15619.3, 1346.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2891
+ connRef = new ConnRef(router, 2891);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15619.3, 1346.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2892
+ connRef = new ConnRef(router, 2892);
+ srcPt = ConnEnd(Point(15589.3, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 313.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2893
+ connRef = new ConnRef(router, 2893);
+ srcPt = ConnEnd(Point(15589.3, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2894
+ connRef = new ConnRef(router, 2894);
+ srcPt = ConnEnd(Point(8194.29, 313.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8044.29, 313.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2895
+ connRef = new ConnRef(router, 2895);
+ srcPt = ConnEnd(Point(8014.29, 313.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7864.29, 313.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2896
+ connRef = new ConnRef(router, 2896);
+ srcPt = ConnEnd(Point(8458.29, 425.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8308.29, 425.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2897
+ connRef = new ConnRef(router, 2897);
+ srcPt = ConnEnd(Point(8278.29, 425.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8062.29, 425.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2898
+ connRef = new ConnRef(router, 2898);
+ srcPt = ConnEnd(Point(8062.29, 425.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7780.29, 425.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2899
+ connRef = new ConnRef(router, 2899);
+ srcPt = ConnEnd(Point(7750.29, 425.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7344.1, 425.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2900
+ connRef = new ConnRef(router, 2900);
+ srcPt = ConnEnd(Point(7344.1, 425.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6963.1, 425.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2901
+ connRef = new ConnRef(router, 2901);
+ srcPt = ConnEnd(Point(6933.1, 425.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6618.1, 425.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2902
+ connRef = new ConnRef(router, 2902);
+ srcPt = ConnEnd(Point(6123.1, 425.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6306.1, 425.265), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2903
+ connRef = new ConnRef(router, 2903);
+ srcPt = ConnEnd(Point(6336.1, 425.265), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6618.1, 425.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2904
+ connRef = new ConnRef(router, 2904);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15100.3, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2905
+ connRef = new ConnRef(router, 2905);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15100.3, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2906
+ connRef = new ConnRef(router, 2906);
+ srcPt = ConnEnd(Point(15130.3, 1181.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2907
+ connRef = new ConnRef(router, 2907);
+ srcPt = ConnEnd(Point(15130.3, 1181.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 4542.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2908
+ connRef = new ConnRef(router, 2908);
+ srcPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14873.4, 1346.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2909
+ connRef = new ConnRef(router, 2909);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14873.4, 1346.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2910
+ connRef = new ConnRef(router, 2910);
+ srcPt = ConnEnd(Point(14843.4, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4322, 2150.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2911
+ connRef = new ConnRef(router, 2911);
+ srcPt = ConnEnd(Point(14843.4, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2912
+ connRef = new ConnRef(router, 2912);
+ srcPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15492.3, 1181.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2913
+ connRef = new ConnRef(router, 2913);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15492.3, 1181.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2914
+ connRef = new ConnRef(router, 2914);
+ srcPt = ConnEnd(Point(15462.3, 1181.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2915
+ connRef = new ConnRef(router, 2915);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15717.9, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2916
+ connRef = new ConnRef(router, 2916);
+ srcPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15717.9, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2917
+ connRef = new ConnRef(router, 2917);
+ srcPt = ConnEnd(Point(15747.9, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2918
+ connRef = new ConnRef(router, 2918);
+ srcPt = ConnEnd(Point(15747.9, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2919
+ connRef = new ConnRef(router, 2919);
+ srcPt = ConnEnd(Point(11396.1, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11253.2, 4361.11), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2920
+ connRef = new ConnRef(router, 2920);
+ srcPt = ConnEnd(Point(11223.2, 4361.11), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11073.2, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2921
+ connRef = new ConnRef(router, 2921);
+ srcPt = ConnEnd(Point(13200, 6788.21), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14583, 6788.21), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2922
+ connRef = new ConnRef(router, 2922);
+ srcPt = ConnEnd(Point(14613, 6788.21), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16231.6, 6788.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2923
+ connRef = new ConnRef(router, 2923);
+ srcPt = ConnEnd(Point(5312, 4938.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5661.1, 4590.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2924
+ connRef = new ConnRef(router, 2924);
+ srcPt = ConnEnd(Point(5661.1, 4560.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5793.1, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2925
+ connRef = new ConnRef(router, 2925);
+ srcPt = ConnEnd(Point(18137.5, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18236.5, 8561.99), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2926
+ connRef = new ConnRef(router, 2926);
+ srcPt = ConnEnd(Point(18236.5, 8531.99), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18302.5, 6788.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2927
+ connRef = new ConnRef(router, 2927);
+ srcPt = ConnEnd(Point(18236.5, 8531.99), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9784.69, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2928
+ connRef = new ConnRef(router, 2928);
+ srcPt = ConnEnd(Point(18137.5, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17624.5, 10174), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2929
+ connRef = new ConnRef(router, 2929);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17624.5, 10174), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2930
+ connRef = new ConnRef(router, 2930);
+ srcPt = ConnEnd(Point(17594.5, 10174), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16920.8, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2931
+ connRef = new ConnRef(router, 2931);
+ srcPt = ConnEnd(Point(17594.5, 10174), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2932
+ connRef = new ConnRef(router, 2932);
+ srcPt = ConnEnd(Point(16920.8, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16572.8, 10174), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2933
+ connRef = new ConnRef(router, 2933);
+ srcPt = ConnEnd(Point(16542.8, 10174), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2934
+ connRef = new ConnRef(router, 2934);
+ srcPt = ConnEnd(Point(12122.1, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13923, 10174), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2935
+ connRef = new ConnRef(router, 2935);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13923, 10174), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2936
+ connRef = new ConnRef(router, 2936);
+ srcPt = ConnEnd(Point(13953, 10174), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2937
+ connRef = new ConnRef(router, 2937);
+ srcPt = ConnEnd(Point(13953, 10174), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2938
+ connRef = new ConnRef(router, 2938);
+ srcPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10324.9, 9723.42), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2939
+ connRef = new ConnRef(router, 2939);
+ srcPt = ConnEnd(Point(10324.9, 9693.42), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2940
+ connRef = new ConnRef(router, 2940);
+ srcPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10357), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2941
+ connRef = new ConnRef(router, 2941);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10357), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2942
+ connRef = new ConnRef(router, 2942);
+ srcPt = ConnEnd(Point(10116, 10387), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10682.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2943
+ connRef = new ConnRef(router, 2943);
+ srcPt = ConnEnd(Point(10116, 10387), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2944
+ connRef = new ConnRef(router, 2944);
+ srcPt = ConnEnd(Point(10116, 10682.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10497.2, 10682.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2945
+ connRef = new ConnRef(router, 2945);
+ srcPt = ConnEnd(Point(10527.2, 10682.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10710.2, 10682.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2946
+ connRef = new ConnRef(router, 2946);
+ srcPt = ConnEnd(Point(11007.2, 10682.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10923.2, 10682.3), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2947
+ connRef = new ConnRef(router, 2947);
+ srcPt = ConnEnd(Point(10893.2, 10682.3), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10710.2, 10682.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2948
+ connRef = new ConnRef(router, 2948);
+ srcPt = ConnEnd(Point(11007.2, 10682.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10842.2, 10965.6), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2949
+ connRef = new ConnRef(router, 2949);
+ srcPt = ConnEnd(Point(10842.2, 10995.6), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10578.2, 11211.6), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2950
+ connRef = new ConnRef(router, 2950);
+ srcPt = ConnEnd(Point(9949.69, 11211.6), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9733.69, 11211.6), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2951
+ connRef = new ConnRef(router, 2951);
+ srcPt = ConnEnd(Point(9703.69, 11211.6), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9402.59, 11211.6), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2952
+ connRef = new ConnRef(router, 2952);
+ srcPt = ConnEnd(Point(9402.59, 11211.6), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9252.59, 11211.6), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2953
+ connRef = new ConnRef(router, 2953);
+ srcPt = ConnEnd(Point(9222.59, 11211.6), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9019.99, 11211.6), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2954
+ connRef = new ConnRef(router, 2954);
+ srcPt = ConnEnd(Point(9019.99, 11211.6), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8699.29, 11211.6), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2955
+ connRef = new ConnRef(router, 2955);
+ srcPt = ConnEnd(Point(8669.29, 11211.6), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8392.29, 11211.6), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2956
+ connRef = new ConnRef(router, 2956);
+ srcPt = ConnEnd(Point(7963.29, 11211.6), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7963.29, 11028.6), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2957
+ connRef = new ConnRef(router, 2957);
+ srcPt = ConnEnd(Point(7963.29, 10998.6), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7963.29, 10715.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2958
+ connRef = new ConnRef(router, 2958);
+ srcPt = ConnEnd(Point(7963.29, 10715.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8212.29, 10715.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2959
+ connRef = new ConnRef(router, 2959);
+ srcPt = ConnEnd(Point(4553, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8212.29, 10715.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2960
+ connRef = new ConnRef(router, 2960);
+ srcPt = ConnEnd(Point(8242.29, 10715.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8392.29, 10715.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2961
+ connRef = new ConnRef(router, 2961);
+ srcPt = ConnEnd(Point(8392.29, 10715.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8669.29, 10715.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2962
+ connRef = new ConnRef(router, 2962);
+ srcPt = ConnEnd(Point(8699.29, 10715.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9019.99, 10715.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2963
+ connRef = new ConnRef(router, 2963);
+ srcPt = ConnEnd(Point(9402.59, 11211.6), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13314, 9246.42), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2964
+ connRef = new ConnRef(router, 2964);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13314, 9246.42), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2965
+ connRef = new ConnRef(router, 2965);
+ srcPt = ConnEnd(Point(13284, 9246.42), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8769.89, 12015.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2966
+ connRef = new ConnRef(router, 2966);
+ srcPt = ConnEnd(Point(6552.1, 7293.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6636.1, 6996.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2967
+ connRef = new ConnRef(router, 2967);
+ srcPt = ConnEnd(Point(6750.1, 6514.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6636.1, 6996.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2968
+ connRef = new ConnRef(router, 2968);
+ srcPt = ConnEnd(Point(6666.1, 6996.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7212.1, 7029.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2969
+ connRef = new ConnRef(router, 2969);
+ srcPt = ConnEnd(Point(7212.1, 7029.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7212.1, 7278.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2970
+ connRef = new ConnRef(router, 2970);
+ srcPt = ConnEnd(Point(7212.1, 7308.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7212.1, 7645.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2971
+ connRef = new ConnRef(router, 2971);
+ srcPt = ConnEnd(Point(7212.1, 9048.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7212.1, 9198.42), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2972
+ connRef = new ConnRef(router, 2972);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7212.1, 9198.42), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2973
+ connRef = new ConnRef(router, 2973);
+ srcPt = ConnEnd(Point(7212.1, 9228.42), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7212.1, 9411.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2974
+ connRef = new ConnRef(router, 2974);
+ srcPt = ConnEnd(Point(6552.1, 8315.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 8056.79), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2975
+ connRef = new ConnRef(router, 2975);
+ srcPt = ConnEnd(Point(6552.1, 8026.79), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 7810.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2976
+ connRef = new ConnRef(router, 2976);
+ srcPt = ConnEnd(Point(6552.1, 9543.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 9862.02), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2977
+ connRef = new ConnRef(router, 2977);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 9862.02), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2978
+ connRef = new ConnRef(router, 2978);
+ srcPt = ConnEnd(Point(6552.1, 9892.02), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 10108), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2979
+ connRef = new ConnRef(router, 2979);
+ srcPt = ConnEnd(Point(6552.1, 7293.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 7564.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2980
+ connRef = new ConnRef(router, 2980);
+ srcPt = ConnEnd(Point(6783.1, 7546.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 7564.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2981
+ connRef = new ConnRef(router, 2981);
+ srcPt = ConnEnd(Point(6552.1, 7594.79), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6552.1, 7810.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2982
+ connRef = new ConnRef(router, 2982);
+ srcPt = ConnEnd(Point(6750.1, 6514.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7230.1, 6514.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2983
+ connRef = new ConnRef(router, 2983);
+ srcPt = ConnEnd(Point(7146.1, 6250.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7230.1, 6514.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2984
+ connRef = new ConnRef(router, 2984);
+ srcPt = ConnEnd(Point(7260.1, 6514.51), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7765.29, 6514.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2985
+ connRef = new ConnRef(router, 2985);
+ srcPt = ConnEnd(Point(7765.29, 6514.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8146.29, 6514.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2986
+ connRef = new ConnRef(router, 2986);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8146.29, 6514.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2987
+ connRef = new ConnRef(router, 2987);
+ srcPt = ConnEnd(Point(8176.29, 6514.51), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8618.29, 6514.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2988
+ connRef = new ConnRef(router, 2988);
+ srcPt = ConnEnd(Point(5760.1, 7326.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6402.1, 6788.21), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2989
+ connRef = new ConnRef(router, 2989);
+ srcPt = ConnEnd(Point(7146.1, 6250.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6402.1, 6788.21), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2990
+ connRef = new ConnRef(router, 2990);
+ srcPt = ConnEnd(Point(6372.1, 6788.21), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6123.1, 7744.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2991
+ connRef = new ConnRef(router, 2991);
+ srcPt = ConnEnd(Point(6123.1, 7744.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6123.1, 7960.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2992
+ connRef = new ConnRef(router, 2992);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6123.1, 7960.79), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2993
+ connRef = new ConnRef(router, 2993);
+ srcPt = ConnEnd(Point(6123.1, 7990.79), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6123.1, 8282.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2994
+ connRef = new ConnRef(router, 2994);
+ srcPt = ConnEnd(Point(10875.2, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9931.69, 11632.9), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2995
+ connRef = new ConnRef(router, 2995);
+ srcPt = ConnEnd(Point(9901.69, 11632.9), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9085.99, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2996
+ connRef = new ConnRef(router, 2996);
+ srcPt = ConnEnd(Point(9901.69, 11632.9), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2997
+ connRef = new ConnRef(router, 2997);
+ srcPt = ConnEnd(Point(10875.2, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11414.1, 11632.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2998
+ connRef = new ConnRef(router, 2998);
+ srcPt = ConnEnd(Point(11444.1, 11632.9), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef2999
+ connRef = new ConnRef(router, 2999);
+ srcPt = ConnEnd(Point(13575, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12772.5, 11632.9), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3000
+ connRef = new ConnRef(router, 3000);
+ srcPt = ConnEnd(Point(12742.5, 11632.9), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11990.1, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3001
+ connRef = new ConnRef(router, 3001);
+ srcPt = ConnEnd(Point(13575, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14517, 11632.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3002
+ connRef = new ConnRef(router, 3002);
+ srcPt = ConnEnd(Point(14547, 11632.9), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3003
+ connRef = new ConnRef(router, 3003);
+ srcPt = ConnEnd(Point(16198.6, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16081.6, 11632.9), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3004
+ connRef = new ConnRef(router, 3004);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16081.6, 11632.9), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3005
+ connRef = new ConnRef(router, 3005);
+ srcPt = ConnEnd(Point(16051.6, 11632.9), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3006
+ connRef = new ConnRef(router, 3006);
+ srcPt = ConnEnd(Point(16051.6, 11632.9), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3007
+ connRef = new ConnRef(router, 3007);
+ srcPt = ConnEnd(Point(15868.6, 12081.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 11908.9), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3008
+ connRef = new ConnRef(router, 3008);
+ srcPt = ConnEnd(Point(15868.6, 11878.9), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3009
+ connRef = new ConnRef(router, 3009);
+ srcPt = ConnEnd(Point(15868.6, 11878.9), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3010
+ connRef = new ConnRef(router, 3010);
+ srcPt = ConnEnd(Point(15868.6, 12081.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 12178.3), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3011
+ connRef = new ConnRef(router, 3011);
+ srcPt = ConnEnd(Point(15868.6, 12208.3), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 12292.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3012
+ connRef = new ConnRef(router, 3012);
+ srcPt = ConnEnd(Point(15272.5, 12292.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15589.3, 12292.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3013
+ connRef = new ConnRef(router, 3013);
+ srcPt = ConnEnd(Point(15619.3, 12292.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 12292.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3014
+ connRef = new ConnRef(router, 3014);
+ srcPt = ConnEnd(Point(15272.5, 12292.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15001.9, 12292.3), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3015
+ connRef = new ConnRef(router, 3015);
+ srcPt = ConnEnd(Point(14971.9, 12292.3), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14697, 12292.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3016
+ connRef = new ConnRef(router, 3016);
+ srcPt = ConnEnd(Point(14004, 12292.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14187, 12292.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3017
+ connRef = new ConnRef(router, 3017);
+ srcPt = ConnEnd(Point(14217, 12292.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14400, 12292.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3018
+ connRef = new ConnRef(router, 3018);
+ srcPt = ConnEnd(Point(9501.59, 6481.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9270.59, 5672.9), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3019
+ connRef = new ConnRef(router, 3019);
+ srcPt = ConnEnd(Point(9270.59, 5642.9), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3020
+ connRef = new ConnRef(router, 3020);
+ srcPt = ConnEnd(Point(9501.59, 6481.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9501.59, 7344.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3021
+ connRef = new ConnRef(router, 3021);
+ srcPt = ConnEnd(Point(9501.59, 7374.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9501.59, 8249.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3022
+ connRef = new ConnRef(router, 3022);
+ srcPt = ConnEnd(Point(9501.59, 9976.02), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9501.59, 10357), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3023
+ connRef = new ConnRef(router, 3023);
+ srcPt = ConnEnd(Point(9501.59, 10387), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9501.59, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3024
+ connRef = new ConnRef(router, 3024);
+ srcPt = ConnEnd(Point(9501.59, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10342.9, 10781.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3025
+ connRef = new ConnRef(router, 3025);
+ srcPt = ConnEnd(Point(9085.99, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10342.9, 10781.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3026
+ connRef = new ConnRef(router, 3026);
+ srcPt = ConnEnd(Point(10372.9, 10781.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10875.2, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3027
+ connRef = new ConnRef(router, 3027);
+ srcPt = ConnEnd(Point(10875.2, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11645.1, 10781.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3028
+ connRef = new ConnRef(router, 3028);
+ srcPt = ConnEnd(Point(11675.1, 10781.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3029
+ connRef = new ConnRef(router, 3029);
+ srcPt = ConnEnd(Point(13575, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13116, 10781.3), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3030
+ connRef = new ConnRef(router, 3030);
+ srcPt = ConnEnd(Point(13086, 10781.3), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3031
+ connRef = new ConnRef(router, 3031);
+ srcPt = ConnEnd(Point(13575, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14286, 10781.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3032
+ connRef = new ConnRef(router, 3032);
+ srcPt = ConnEnd(Point(14316, 10781.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15019.9, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3033
+ connRef = new ConnRef(router, 3033);
+ srcPt = ConnEnd(Point(16198.6, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15780.9, 10781.3), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3034
+ connRef = new ConnRef(router, 3034);
+ srcPt = ConnEnd(Point(15750.9, 10781.3), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15019.9, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3035
+ connRef = new ConnRef(router, 3035);
+ srcPt = ConnEnd(Point(6189.1, 214.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6105.1, 214.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3036
+ connRef = new ConnRef(router, 3036);
+ srcPt = ConnEnd(Point(10974.2, 1643.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6105.1, 214.265), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3037
+ connRef = new ConnRef(router, 3037);
+ srcPt = ConnEnd(Point(6075.1, 214.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5925.1, 214.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3038
+ connRef = new ConnRef(router, 3038);
+ srcPt = ConnEnd(Point(6075.1, 214.265), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9652.69, 1943.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3039
+ connRef = new ConnRef(router, 3039);
+ srcPt = ConnEnd(Point(7765.29, 610.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7765.29, 836.285), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3040
+ connRef = new ConnRef(router, 3040);
+ srcPt = ConnEnd(Point(7765.29, 866.285), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7765.29, 1148.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3041
+ connRef = new ConnRef(router, 3041);
+ srcPt = ConnEnd(Point(10423.9, 6250.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10423.9, 6400.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3042
+ connRef = new ConnRef(router, 3042);
+ srcPt = ConnEnd(Point(10423.9, 6430.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10423.9, 6547.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3043
+ connRef = new ConnRef(router, 3043);
+ srcPt = ConnEnd(Point(10423.9, 6430.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3044
+ connRef = new ConnRef(router, 3044);
+ srcPt = ConnEnd(Point(15019.9, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15148.3, 10929.6), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3045
+ connRef = new ConnRef(router, 3045);
+ srcPt = ConnEnd(Point(7897.29, 983.285), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7897.29, 4428.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3046
+ connRef = new ConnRef(router, 3046);
+ srcPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7897.29, 4428.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3047
+ connRef = new ConnRef(router, 3047);
+ srcPt = ConnEnd(Point(7897.29, 4458.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7897.29, 8939.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3048
+ connRef = new ConnRef(router, 3048);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17228.5, 7194.4), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3049
+ connRef = new ConnRef(router, 3049);
+ srcPt = ConnEnd(Point(17198.5, 7194.4), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3050
+ connRef = new ConnRef(router, 3050);
+ srcPt = ConnEnd(Point(17198.5, 7194.4), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3051
+ connRef = new ConnRef(router, 3051);
+ srcPt = ConnEnd(Point(4553, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4934, 5822.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3052
+ connRef = new ConnRef(router, 3052);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4934, 5822.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3053
+ connRef = new ConnRef(router, 3053);
+ srcPt = ConnEnd(Point(4964, 5822.9), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5991.1, 6382.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3054
+ connRef = new ConnRef(router, 3054);
+ srcPt = ConnEnd(Point(11363.1, 2843.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 2264.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3055
+ connRef = new ConnRef(router, 3055);
+ srcPt = ConnEnd(Point(11363.1, 2234.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 1643.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3056
+ connRef = new ConnRef(router, 3056);
+ srcPt = ConnEnd(Point(11363.1, 2234.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3057
+ connRef = new ConnRef(router, 3057);
+ srcPt = ConnEnd(Point(11363.1, 2843.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 3323.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3058
+ connRef = new ConnRef(router, 3058);
+ srcPt = ConnEnd(Point(11363.1, 3353.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 3697.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3059
+ connRef = new ConnRef(router, 3059);
+ srcPt = ConnEnd(Point(11363.1, 3697.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 4461.4), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3060
+ connRef = new ConnRef(router, 3060);
+ srcPt = ConnEnd(Point(11363.1, 4491.4), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 5169.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3061
+ connRef = new ConnRef(router, 3061);
+ srcPt = ConnEnd(Point(11363.1, 5169.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 5365.67), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3062
+ connRef = new ConnRef(router, 3062);
+ srcPt = ConnEnd(Point(11363.1, 5395.67), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 5756.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3063
+ connRef = new ConnRef(router, 3063);
+ srcPt = ConnEnd(Point(11363.1, 5756.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 6565.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3064
+ connRef = new ConnRef(router, 3064);
+ srcPt = ConnEnd(Point(11363.1, 6595.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 7579.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3065
+ connRef = new ConnRef(router, 3065);
+ srcPt = ConnEnd(Point(11363.1, 6595.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14037, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3066
+ connRef = new ConnRef(router, 3066);
+ srcPt = ConnEnd(Point(11363.1, 6595.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3067
+ connRef = new ConnRef(router, 3067);
+ srcPt = ConnEnd(Point(11363.1, 7579.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 8399.99), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3068
+ connRef = new ConnRef(router, 3068);
+ srcPt = ConnEnd(Point(11363.1, 8429.99), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 9213.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3069
+ connRef = new ConnRef(router, 3069);
+ srcPt = ConnEnd(Point(11363.1, 10537), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 9991.02), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3070
+ connRef = new ConnRef(router, 3070);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 9991.02), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3071
+ connRef = new ConnRef(router, 3071);
+ srcPt = ConnEnd(Point(11363.1, 9961.02), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 9213.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3072
+ connRef = new ConnRef(router, 3072);
+ srcPt = ConnEnd(Point(11363.1, 9961.02), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3073
+ connRef = new ConnRef(router, 3073);
+ srcPt = ConnEnd(Point(11363.1, 10537), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 11163.6), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3074
+ connRef = new ConnRef(router, 3074);
+ srcPt = ConnEnd(Point(11363.1, 11193.6), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11363.1, 12127.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3075
+ connRef = new ConnRef(router, 3075);
+ srcPt = ConnEnd(Point(11363.1, 12127.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11909.1, 12127.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3076
+ connRef = new ConnRef(router, 3076);
+ srcPt = ConnEnd(Point(11939.1, 12127.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 12127.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3077
+ connRef = new ConnRef(router, 3077);
+ srcPt = ConnEnd(Point(12531.5, 12127.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12907.5, 12127.3), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3078
+ connRef = new ConnRef(router, 3078);
+ srcPt = ConnEnd(Point(12937.5, 12127.3), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13233, 12127.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3079
+ connRef = new ConnRef(router, 3079);
+ srcPt = ConnEnd(Point(8161.29, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8344.29, 1280.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3080
+ connRef = new ConnRef(router, 3080);
+ srcPt = ConnEnd(Point(8374.29, 1280.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3081
+ connRef = new ConnRef(router, 3081);
+ srcPt = ConnEnd(Point(8161.29, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7912.29, 1280.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3082
+ connRef = new ConnRef(router, 3082);
+ srcPt = ConnEnd(Point(7882.29, 1280.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7608.1, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3083
+ connRef = new ConnRef(router, 3083);
+ srcPt = ConnEnd(Point(7608.1, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7608.1, 1397.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3084
+ connRef = new ConnRef(router, 3084);
+ srcPt = ConnEnd(Point(7608.1, 1427.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7608.1, 1610.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3085
+ connRef = new ConnRef(router, 3085);
+ srcPt = ConnEnd(Point(7608.1, 2777.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7608.1, 2993.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3086
+ connRef = new ConnRef(router, 3086);
+ srcPt = ConnEnd(Point(7608.1, 3023.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7608.1, 3206.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3087
+ connRef = new ConnRef(router, 3087);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9949.69, 9961.02), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3088
+ connRef = new ConnRef(router, 3088);
+ srcPt = ConnEnd(Point(9949.69, 9991.02), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9237.59, 12458.7), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3089
+ connRef = new ConnRef(router, 3089);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14971.9, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3090
+ connRef = new ConnRef(router, 3090);
+ srcPt = ConnEnd(Point(16557.8, 11982.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14971.9, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3091
+ connRef = new ConnRef(router, 3091);
+ srcPt = ConnEnd(Point(9237.59, 12458.7), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14971.9, 1181.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3092
+ connRef = new ConnRef(router, 3092);
+ srcPt = ConnEnd(Point(15001.9, 1181.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3093
+ connRef = new ConnRef(router, 3093);
+ srcPt = ConnEnd(Point(15001.9, 1181.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16788.8, 12458.7), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3094
+ connRef = new ConnRef(router, 3094);
+ srcPt = ConnEnd(Point(15868.6, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16051.6, 11794.9), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3095
+ connRef = new ConnRef(router, 3095);
+ srcPt = ConnEnd(Point(16081.6, 11794.9), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16198.6, 11982.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3096
+ connRef = new ConnRef(router, 3096);
+ srcPt = ConnEnd(Point(1385, 4773.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1568, 4773.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3097
+ connRef = new ConnRef(router, 3097);
+ srcPt = ConnEnd(Point(1598, 4773.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(1715, 4773.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3098
+ connRef = new ConnRef(router, 3098);
+ srcPt = ConnEnd(Point(1598, 4773.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3099
+ connRef = new ConnRef(router, 3099);
+ srcPt = ConnEnd(Point(2837, 4773.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(3020, 4773.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3100
+ connRef = new ConnRef(router, 3100);
+ srcPt = ConnEnd(Point(3050, 4773.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(3233, 4773.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3101
+ connRef = new ConnRef(router, 3101);
+ srcPt = ConnEnd(Point(3050, 4773.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3102
+ connRef = new ConnRef(router, 3102);
+ srcPt = ConnEnd(Point(4553, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 6136.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3103
+ connRef = new ConnRef(router, 3103);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(4949, 6136.51), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3104
+ connRef = new ConnRef(router, 3104);
+ srcPt = ConnEnd(Point(4949, 6166.51), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(6750.1, 6514.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3105
+ connRef = new ConnRef(router, 3105);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14745, 1346.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3106
+ connRef = new ConnRef(router, 3106);
+ srcPt = ConnEnd(Point(9435.59, 6963.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14745, 1346.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3107
+ connRef = new ConnRef(router, 3107);
+ srcPt = ConnEnd(Point(14715, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3108
+ connRef = new ConnRef(router, 3108);
+ srcPt = ConnEnd(Point(14715, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3109
+ connRef = new ConnRef(router, 3109);
+ srcPt = ConnEnd(Point(14715, 1346.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8293.29, 6854.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3110
+ connRef = new ConnRef(router, 3110);
+ srcPt = ConnEnd(Point(9435.59, 6963.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9667.69, 6184.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3111
+ connRef = new ConnRef(router, 3111);
+ srcPt = ConnEnd(Point(9637.69, 6184.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9784.69, 5512.67), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3112
+ connRef = new ConnRef(router, 3112);
+ srcPt = ConnEnd(Point(9637.69, 6184.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8293.29, 6854.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3113
+ connRef = new ConnRef(router, 3113);
+ srcPt = ConnEnd(Point(6552.1, 10715.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7098.1, 10240), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3114
+ connRef = new ConnRef(router, 3114);
+ srcPt = ConnEnd(Point(7831.29, 9477.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7098.1, 10240), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3115
+ connRef = new ConnRef(router, 3115);
+ srcPt = ConnEnd(Point(7128.1, 10240), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7410.1, 8579.99), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3116
+ connRef = new ConnRef(router, 3116);
+ srcPt = ConnEnd(Point(7831.29, 9477.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8212.29, 9675.42), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3117
+ connRef = new ConnRef(router, 3117);
+ srcPt = ConnEnd(Point(8242.29, 9675.42), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8684.29, 9976.02), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3118
+ connRef = new ConnRef(router, 3118);
+ srcPt = ConnEnd(Point(7831.29, 9477.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8311.29, 9844.02), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3119
+ connRef = new ConnRef(router, 3119);
+ srcPt = ConnEnd(Point(8341.29, 9844.02), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8684.29, 9976.02), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3120
+ connRef = new ConnRef(router, 3120);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10324.9, 9459.42), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3121
+ connRef = new ConnRef(router, 3121);
+ srcPt = ConnEnd(Point(8684.29, 9976.02), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8802.89, 10090), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3122
+ connRef = new ConnRef(router, 3122);
+ srcPt = ConnEnd(Point(9085.99, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9204.59, 11713.9), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3123
+ connRef = new ConnRef(router, 3123);
+ srcPt = ConnEnd(Point(8835.89, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9019.99, 5672.9), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3124
+ connRef = new ConnRef(router, 3124);
+ srcPt = ConnEnd(Point(8835.89, 2108.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9019.99, 2366.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3125
+ connRef = new ConnRef(router, 3125);
+ srcPt = ConnEnd(Point(9019.99, 2396.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 2579.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3126
+ connRef = new ConnRef(router, 3126);
+ srcPt = ConnEnd(Point(8458.29, 1676.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1493.29), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3127
+ connRef = new ConnRef(router, 3127);
+ srcPt = ConnEnd(Point(8458.29, 1463.29), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3128
+ connRef = new ConnRef(router, 3128);
+ srcPt = ConnEnd(Point(8458.29, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8603.29, 1478.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3129
+ connRef = new ConnRef(router, 3129);
+ srcPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8603.29, 1478.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3130
+ connRef = new ConnRef(router, 3130);
+ srcPt = ConnEnd(Point(8633.29, 1478.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 1676.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3131
+ connRef = new ConnRef(router, 3131);
+ srcPt = ConnEnd(Point(8633.29, 1478.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3132
+ connRef = new ConnRef(router, 3132);
+ srcPt = ConnEnd(Point(7996.29, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8245.29, 808.091), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3133
+ connRef = new ConnRef(router, 3133);
+ srcPt = ConnEnd(Point(8275.29, 808.091), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3134
+ connRef = new ConnRef(router, 3134);
+ srcPt = ConnEnd(Point(7996.29, 808.091), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8260.29, 932.285), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3135
+ connRef = new ConnRef(router, 3135);
+ srcPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8260.29, 932.285), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3136
+ connRef = new ConnRef(router, 3136);
+ srcPt = ConnEnd(Point(8260.29, 902.285), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8458.29, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3137
+ connRef = new ConnRef(router, 3137);
+ srcPt = ConnEnd(Point(8260.29, 902.285), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3138
+ connRef = new ConnRef(router, 3138);
+ srcPt = ConnEnd(Point(7996.29, 1148.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8603.29, 983.285), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3139
+ connRef = new ConnRef(router, 3139);
+ srcPt = ConnEnd(Point(8633.29, 983.285), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9270.59, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3140
+ connRef = new ConnRef(router, 3140);
+ srcPt = ConnEnd(Point(7996.29, 1148.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 998.285), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3141
+ connRef = new ConnRef(router, 3141);
+ srcPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 998.285), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3142
+ connRef = new ConnRef(router, 3142);
+ srcPt = ConnEnd(Point(15239.5, 968.285), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9270.59, 808.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3143
+ connRef = new ConnRef(router, 3143);
+ srcPt = ConnEnd(Point(15239.5, 968.285), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3144
+ connRef = new ConnRef(router, 3144);
+ srcPt = ConnEnd(Point(12531.5, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12676.5, 5314.67), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3145
+ connRef = new ConnRef(router, 3145);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12676.5, 5314.67), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3146
+ connRef = new ConnRef(router, 3146);
+ srcPt = ConnEnd(Point(12706.5, 5314.67), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 5169.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3147
+ connRef = new ConnRef(router, 3147);
+ srcPt = ConnEnd(Point(12531.5, 5512.67), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12338.1, 5314.67), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3148
+ connRef = new ConnRef(router, 3148);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12338.1, 5314.67), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3149
+ connRef = new ConnRef(router, 3149);
+ srcPt = ConnEnd(Point(12368.1, 5314.67), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 5169.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3150
+ connRef = new ConnRef(router, 3150);
+ srcPt = ConnEnd(Point(12368.1, 5314.67), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3151
+ connRef = new ConnRef(router, 3151);
+ srcPt = ConnEnd(Point(12531.5, 4740.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13086, 4542.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3152
+ connRef = new ConnRef(router, 3152);
+ srcPt = ConnEnd(Point(13116, 4542.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13266, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3153
+ connRef = new ConnRef(router, 3153);
+ srcPt = ConnEnd(Point(13266, 3631.51), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13461, 3862.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3154
+ connRef = new ConnRef(router, 3154);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13461, 3862.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3155
+ connRef = new ConnRef(router, 3155);
+ srcPt = ConnEnd(Point(13491, 3862.51), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(13266, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3156
+ connRef = new ConnRef(router, 3156);
+ srcPt = ConnEnd(Point(12531.5, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12706.5, 3994.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3157
+ connRef = new ConnRef(router, 3157);
+ srcPt = ConnEnd(Point(12676.5, 3994.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12531.5, 3730.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3158
+ connRef = new ConnRef(router, 3158);
+ srcPt = ConnEnd(Point(12676.5, 3994.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3159
+ connRef = new ConnRef(router, 3159);
+ srcPt = ConnEnd(Point(12676.5, 3994.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3160
+ connRef = new ConnRef(router, 3160);
+ srcPt = ConnEnd(Point(11429.1, 8873.22), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11253.2, 9048.42), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3161
+ connRef = new ConnRef(router, 3161);
+ srcPt = ConnEnd(Point(11223.2, 9048.42), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11040.2, 8873.22), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3162
+ connRef = new ConnRef(router, 3162);
+ srcPt = ConnEnd(Point(5312, 4938.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5496.1, 4590.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3163
+ connRef = new ConnRef(router, 3163);
+ srcPt = ConnEnd(Point(5496.1, 4560.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3164
+ connRef = new ConnRef(router, 3164);
+ srcPt = ConnEnd(Point(5312, 5964.59), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5496.1, 5184.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3165
+ connRef = new ConnRef(router, 3165);
+ srcPt = ConnEnd(Point(5496.1, 5154.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(5312, 4126.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3166
+ connRef = new ConnRef(router, 3166);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15820.6, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3167
+ connRef = new ConnRef(router, 3167);
+ srcPt = ConnEnd(Point(14037, 458.265), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15820.6, 1346.29), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3168
+ connRef = new ConnRef(router, 3168);
+ srcPt = ConnEnd(Point(15850.6, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 1181.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3169
+ connRef = new ConnRef(router, 3169);
+ srcPt = ConnEnd(Point(15850.6, 1346.29), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14565, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3170
+ connRef = new ConnRef(router, 3170);
+ srcPt = ConnEnd(Point(11495.1, 8074.79), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11121.2, 8249.99), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3171
+ connRef = new ConnRef(router, 3171);
+ srcPt = ConnEnd(Point(11091.2, 8249.99), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 8074.79), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3172
+ connRef = new ConnRef(router, 3172);
+ srcPt = ConnEnd(Point(15407.5, 7425.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16509.8, 7425.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3173
+ connRef = new ConnRef(router, 3173);
+ srcPt = ConnEnd(Point(16539.8, 7425.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3174
+ connRef = new ConnRef(router, 3174);
+ srcPt = ConnEnd(Point(15407.5, 7425.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16509.8, 7546.79), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3175
+ connRef = new ConnRef(router, 3175);
+ srcPt = ConnEnd(Point(16539.8, 7546.79), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3176
+ connRef = new ConnRef(router, 3176);
+ srcPt = ConnEnd(Point(18630.5, 11860.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18531, 11982.3), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3177
+ connRef = new ConnRef(router, 3177);
+ srcPt = ConnEnd(Point(18501, 11982.3), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(18401.5, 11860.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3178
+ connRef = new ConnRef(router, 3178);
+ srcPt = ConnEnd(Point(18501, 11982.3), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9171.59, 458.265), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3179
+ connRef = new ConnRef(router, 3179);
+ srcPt = ConnEnd(Point(10809.2, 4542.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 5642.9), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3180
+ connRef = new ConnRef(router, 3180);
+ srcPt = ConnEnd(Point(10809.2, 5672.9), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3181
+ connRef = new ConnRef(router, 3181);
+ srcPt = ConnEnd(Point(15239.5, 1511.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15619.3, 1181.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3182
+ connRef = new ConnRef(router, 3182);
+ srcPt = ConnEnd(Point(10809.2, 7128.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15619.3, 1181.29), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3183
+ connRef = new ConnRef(router, 3183);
+ srcPt = ConnEnd(Point(15589.3, 1181.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15239.5, 742.091), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3184
+ connRef = new ConnRef(router, 3184);
+ srcPt = ConnEnd(Point(15589.3, 1181.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10809.2, 4542.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3185
+ connRef = new ConnRef(router, 3185);
+ srcPt = ConnEnd(Point(15589.3, 1181.29), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3186
+ connRef = new ConnRef(router, 3186);
+ srcPt = ConnEnd(Point(11396.1, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11253.2, 4509.4), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3187
+ connRef = new ConnRef(router, 3187);
+ srcPt = ConnEnd(Point(11223.2, 4509.4), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11073.2, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3188
+ connRef = new ConnRef(router, 3188);
+ srcPt = ConnEnd(Point(11396.1, 4361.11), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11253.2, 4192.51), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3189
+ connRef = new ConnRef(router, 3189);
+ srcPt = ConnEnd(Point(11223.2, 4192.51), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(11073.2, 4361.11), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3190
+ connRef = new ConnRef(router, 3190);
+ srcPt = ConnEnd(Point(13200, 6788.21), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14583, 6963.4), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3191
+ connRef = new ConnRef(router, 3191);
+ srcPt = ConnEnd(Point(14613, 6963.4), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16231.6, 6788.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3192
+ connRef = new ConnRef(router, 3192);
+ srcPt = ConnEnd(Point(13200, 6788.21), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14583, 6646.51), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3193
+ connRef = new ConnRef(router, 3193);
+ srcPt = ConnEnd(Point(14613, 6646.51), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16231.6, 6788.21), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3194
+ connRef = new ConnRef(router, 3194);
+ srcPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9982.69, 9723.42), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3195
+ connRef = new ConnRef(router, 3195);
+ srcPt = ConnEnd(Point(9982.69, 9693.42), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3196
+ connRef = new ConnRef(router, 3196);
+ srcPt = ConnEnd(Point(9019.99, 11211.6), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8699.29, 11386.8), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3197
+ connRef = new ConnRef(router, 3197);
+ srcPt = ConnEnd(Point(17052.8, 7062.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8699.29, 11386.8), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3198
+ connRef = new ConnRef(router, 3198);
+ srcPt = ConnEnd(Point(8669.29, 11386.8), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(8392.29, 11211.6), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3199
+ connRef = new ConnRef(router, 3199);
+ srcPt = ConnEnd(Point(8669.29, 11386.8), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(17052.8, 7425.4), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3200
+ connRef = new ConnRef(router, 3200);
+ srcPt = ConnEnd(Point(16198.6, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16066.6, 11532.7), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3201
+ connRef = new ConnRef(router, 3201);
+ srcPt = ConnEnd(Point(8835.89, 5004.4), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16066.6, 11532.7), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3202
+ connRef = new ConnRef(router, 3202);
+ srcPt = ConnEnd(Point(16066.6, 11562.7), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3203
+ connRef = new ConnRef(router, 3203);
+ srcPt = ConnEnd(Point(16198.6, 11632.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16081.6, 11386.8), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3204
+ connRef = new ConnRef(router, 3204);
+ srcPt = ConnEnd(Point(16051.6, 11386.8), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15868.6, 11632.9), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3205
+ connRef = new ConnRef(router, 3205);
+ srcPt = ConnEnd(Point(14004, 12292.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14187, 12425.7), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3206
+ connRef = new ConnRef(router, 3206);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14187, 12425.7), 4);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3207
+ connRef = new ConnRef(router, 3207);
+ srcPt = ConnEnd(Point(14217, 12425.7), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(14400, 12292.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3208
+ connRef = new ConnRef(router, 3208);
+ srcPt = ConnEnd(Point(14217, 12425.7), 8);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3209
+ connRef = new ConnRef(router, 3209);
+ srcPt = ConnEnd(Point(9501.59, 8249.99), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9685.69, 7374.4), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3210
+ connRef = new ConnRef(router, 3210);
+ srcPt = ConnEnd(Point(9685.69, 7344.4), 1);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9501.59, 6481.51), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3211
+ connRef = new ConnRef(router, 3211);
+ srcPt = ConnEnd(Point(16198.6, 10781.3), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15780.9, 10914.6), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3212
+ connRef = new ConnRef(router, 3212);
+ srcPt = ConnEnd(Point(10116, 9345.42), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15780.9, 10914.6), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3213
+ connRef = new ConnRef(router, 3213);
+ srcPt = ConnEnd(Point(15750.9, 10914.6), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15019.9, 10781.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3214
+ connRef = new ConnRef(router, 3214);
+ srcPt = ConnEnd(Point(15750.9, 10914.6), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(10116, 10174), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3215
+ connRef = new ConnRef(router, 3215);
+ srcPt = ConnEnd(Point(15019.9, 11794.9), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(15148.3, 11908.9), 2);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3216
+ connRef = new ConnRef(router, 3216);
+ srcPt = ConnEnd(Point(7608.1, 1280.29), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7765.29, 1397.29), 1);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3217
+ connRef = new ConnRef(router, 3217);
+ srcPt = ConnEnd(Point(7765.29, 1427.29), 2);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(7608.1, 1610.29), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3218
+ connRef = new ConnRef(router, 3218);
+ srcPt = ConnEnd(Point(16788.8, 12458.7), 15);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(12937.5, 12458.7), 8);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3219
+ connRef = new ConnRef(router, 3219);
+ srcPt = ConnEnd(Point(12907.5, 12458.7), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(16557.8, 11982.3), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ // connRef3220
+ connRef = new ConnRef(router, 3220);
+ srcPt = ConnEnd(Point(12907.5, 12458.7), 4);
+ connRef->setSourceEndpoint(srcPt);
+ dstPt = ConnEnd(Point(9237.59, 12458.7), 15);
+ connRef->setDestEndpoint(dstPt);
+ connRef->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+
+ router->outputDiagram("output/UnsatisfiableRangeAssertion");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/validPaths01.cpp b/src/3rdparty/adaptagrams/libavoid/tests/validPaths01.cpp
new file mode 100644
index 0000000..eb79ee2
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/validPaths01.cpp
@@ -0,0 +1,457 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly3075375(4);
+ poly3075375.ps[0] = Point(51925, 52070);
+ poly3075375.ps[1] = Point(51925, 52130);
+ poly3075375.ps[2] = Point(51725, 52130);
+ poly3075375.ps[3] = Point(51725, 52070);
+ new ShapeRef(router, poly3075375, 3075375);
+
+ Polygon poly101599344(4);
+ poly101599344.ps[0] = Point(50275, 52410);
+ poly101599344.ps[1] = Point(50275, 52490);
+ poly101599344.ps[2] = Point(50075, 52490);
+ poly101599344.ps[3] = Point(50075, 52410);
+ new ShapeRef(router, poly101599344, 101599344);
+
+ Polygon poly127957550(4);
+ poly127957550.ps[0] = Point(52010, 51617);
+ poly127957550.ps[1] = Point(52010, 51683);
+ poly127957550.ps[2] = Point(51890, 51683);
+ poly127957550.ps[3] = Point(51890, 51617);
+ ShapeRef *shapeRef127957550 = new ShapeRef(router, poly127957550, 127957550);
+ new ShapeConnectionPin(shapeRef127957550, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 1);
+ new ShapeConnectionPin(shapeRef127957550, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 2);
+ new ShapeConnectionPin(shapeRef127957550, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef127957550, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 8);
+
+ Polygon poly129612347(4);
+ poly129612347.ps[0] = Point(51900, 51696);
+ poly129612347.ps[1] = Point(51900, 51754);
+ poly129612347.ps[2] = Point(51815, 51754);
+ poly129612347.ps[3] = Point(51815, 51696);
+ new ShapeRef(router, poly129612347, 129612347);
+
+ Polygon poly203389050(4);
+ poly203389050.ps[0] = Point(51825, 52260);
+ poly203389050.ps[1] = Point(51825, 52340);
+ poly203389050.ps[2] = Point(51625, 52340);
+ poly203389050.ps[3] = Point(51625, 52260);
+ new ShapeRef(router, poly203389050, 203389050);
+
+ Polygon poly208676910(4);
+ poly208676910.ps[0] = Point(51950, 51760);
+ poly208676910.ps[1] = Point(51950, 51840);
+ poly208676910.ps[2] = Point(51750, 51840);
+ poly208676910.ps[3] = Point(51750, 51760);
+ new ShapeRef(router, poly208676910, 208676910);
+
+ Polygon poly219117032(4);
+ poly219117032.ps[0] = Point(50225, 52070);
+ poly219117032.ps[1] = Point(50225, 52130);
+ poly219117032.ps[2] = Point(50025, 52130);
+ poly219117032.ps[3] = Point(50025, 52070);
+ new ShapeRef(router, poly219117032, 219117032);
+
+ Polygon poly258454350(4);
+ poly258454350.ps[0] = Point(50185, 51617);
+ poly258454350.ps[1] = Point(50185, 51683);
+ poly258454350.ps[2] = Point(50065, 51683);
+ poly258454350.ps[3] = Point(50065, 51617);
+ ShapeRef *shapeRef258454350 = new ShapeRef(router, poly258454350, 258454350);
+ new ShapeConnectionPin(shapeRef258454350, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 1);
+ new ShapeConnectionPin(shapeRef258454350, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 2);
+ new ShapeConnectionPin(shapeRef258454350, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 4);
+ new ShapeConnectionPin(shapeRef258454350, 2147483646, 0.5, 0.5, true, 0, (ConnDirFlags) 8);
+
+ Polygon poly274504590(4);
+ poly274504590.ps[0] = Point(51400, 52470);
+ poly274504590.ps[1] = Point(51400, 52530);
+ poly274504590.ps[2] = Point(51150, 52530);
+ poly274504590.ps[3] = Point(51150, 52470);
+ new ShapeRef(router, poly274504590, 274504590);
+
+ Polygon poly320957826(4);
+ poly320957826.ps[0] = Point(50275, 51910);
+ poly320957826.ps[1] = Point(50275, 51990);
+ poly320957826.ps[2] = Point(50075, 51990);
+ poly320957826.ps[3] = Point(50075, 51910);
+ new ShapeRef(router, poly320957826, 320957826);
+
+ Polygon poly368436384(4);
+ poly368436384.ps[0] = Point(50325, 51696);
+ poly368436384.ps[1] = Point(50325, 51754);
+ poly368436384.ps[2] = Point(50240, 51754);
+ poly368436384.ps[3] = Point(50240, 51696);
+ new ShapeRef(router, poly368436384, 368436384);
+
+ Polygon poly381499178(4);
+ poly381499178.ps[0] = Point(51850, 51345);
+ poly381499178.ps[1] = Point(51850, 51405);
+ poly381499178.ps[2] = Point(51650, 51405);
+ poly381499178.ps[3] = Point(51650, 51345);
+ new ShapeRef(router, poly381499178, 381499178);
+
+ Polygon poly426410694(4);
+ poly426410694.ps[0] = Point(50325, 52270);
+ poly426410694.ps[1] = Point(50325, 52330);
+ poly426410694.ps[2] = Point(50125, 52330);
+ poly426410694.ps[3] = Point(50125, 52270);
+ new ShapeRef(router, poly426410694, 426410694);
+
+ Polygon poly428912890(4);
+ poly428912890.ps[0] = Point(51825, 51510);
+ poly428912890.ps[1] = Point(51825, 51590);
+ poly428912890.ps[2] = Point(51625, 51590);
+ poly428912890.ps[3] = Point(51625, 51510);
+ new ShapeRef(router, poly428912890, 428912890);
+
+ Polygon poly468897320(4);
+ poly468897320.ps[0] = Point(50425, 51520);
+ poly468897320.ps[1] = Point(50425, 51580);
+ poly468897320.ps[2] = Point(50225, 51580);
+ poly468897320.ps[3] = Point(50225, 51520);
+ new ShapeRef(router, poly468897320, 468897320);
+
+ Polygon poly517518507(4);
+ poly517518507.ps[0] = Point(51925, 51910);
+ poly517518507.ps[1] = Point(51925, 51990);
+ poly517518507.ps[2] = Point(51725, 51990);
+ poly517518507.ps[3] = Point(51725, 51910);
+ new ShapeRef(router, poly517518507, 517518507);
+
+ Polygon poly565878858(4);
+ poly565878858.ps[0] = Point(51160, 52500);
+ poly565878858.ps[1] = Point(51160, 52810);
+ poly565878858.ps[2] = Point(50890, 52810);
+ poly565878858.ps[3] = Point(50890, 52500);
+ new ShapeRef(router, poly565878858, 565878858);
+
+ Polygon poly706147100(4);
+ poly706147100.ps[0] = Point(51160, 50990);
+ poly706147100.ps[1] = Point(51160, 51300);
+ poly706147100.ps[2] = Point(50890, 51300);
+ poly706147100.ps[3] = Point(50890, 50990);
+ new ShapeRef(router, poly706147100, 706147100);
+
+ Polygon poly746254622(4);
+ poly746254622.ps[0] = Point(50275, 51760);
+ poly746254622.ps[1] = Point(50275, 51840);
+ poly746254622.ps[2] = Point(50075, 51840);
+ poly746254622.ps[3] = Point(50075, 51760);
+ new ShapeRef(router, poly746254622, 746254622);
+
+ Polygon poly829835240(4);
+ poly829835240.ps[0] = Point(50425, 51360);
+ poly829835240.ps[1] = Point(50425, 51440);
+ poly829835240.ps[2] = Point(50225, 51440);
+ poly829835240.ps[3] = Point(50225, 51360);
+ new ShapeRef(router, poly829835240, 829835240);
+
+ Polygon poly157548160(4);
+ poly157548160.ps[0] = Point(51550, 51500);
+ poly157548160.ps[1] = Point(51550, 52225);
+ poly157548160.ps[2] = Point(50525, 52225);
+ poly157548160.ps[3] = Point(50525, 51500);
+ new ShapeRef(router, poly157548160, 157548160);
+
+ ConnRef *connRef6675422 = new ConnRef(router, 6675422);
+ ConnEnd srcPt6675422(Point(51100, 51290), 2);
+ connRef6675422->setSourceEndpoint(srcPt6675422);
+ ConnEnd dstPt6675422(Point(51150, 51510), 1);
+ connRef6675422->setDestEndpoint(dstPt6675422);
+ connRef6675422->setRoutingType((ConnType)2);
+
+ ConnRef *connRef13259320 = new ConnRef(router, 13259320);
+ ConnEnd srcPt13259320(Point(50535, 51675), 4);
+ connRef13259320->setSourceEndpoint(srcPt13259320);
+ ConnEnd dstPt13259320(Point(50315, 51725), 8);
+ connRef13259320->setDestEndpoint(dstPt13259320);
+ connRef13259320->setRoutingType((ConnType)2);
+
+ ConnRef *connRef17108208 = new ConnRef(router, 17108208);
+ ConnEnd srcPt17108208(Point(51540, 52050), 8);
+ connRef17108208->setSourceEndpoint(srcPt17108208);
+ ConnEnd dstPt17108208(Point(51735, 52100), 4);
+ connRef17108208->setDestEndpoint(dstPt17108208);
+ connRef17108208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef41442471 = new ConnRef(router, 41442471);
+ ConnEnd srcPt41442471(Point(51075, 52215), 2);
+ connRef41442471->setSourceEndpoint(srcPt41442471);
+ ConnEnd dstPt41442471(Point(51050, 52510), 1);
+ connRef41442471->setDestEndpoint(dstPt41442471);
+ connRef41442471->setRoutingType((ConnType)2);
+
+ ConnRef *connRef45863720 = new ConnRef(router, 45863720);
+ ConnEnd srcPt45863720(Point(51660, 51375), 4);
+ connRef45863720->setSourceEndpoint(srcPt45863720);
+ ConnEnd dstPt45863720(Point(51300, 51510), 1);
+ connRef45863720->setDestEndpoint(dstPt45863720);
+ connRef45863720->setRoutingType((ConnType)2);
+
+ ConnRef *connRef52653348 = new ConnRef(router, 52653348);
+ ConnEnd srcPt52653348(Point(50535, 52050), 4);
+ connRef52653348->setSourceEndpoint(srcPt52653348);
+ ConnEnd dstPt52653348(Point(50215, 52100), 8);
+ connRef52653348->setDestEndpoint(dstPt52653348);
+ connRef52653348->setRoutingType((ConnType)2);
+
+ ConnRef *connRef57649636 = new ConnRef(router, 57649636);
+ ConnEnd srcPt57649636(Point(51540, 52125), 8);
+ connRef57649636->setSourceEndpoint(srcPt57649636);
+ ConnEnd dstPt57649636(Point(51915, 52100), 8);
+ connRef57649636->setDestEndpoint(dstPt57649636);
+ connRef57649636->setRoutingType((ConnType)2);
+
+ ConnRef *connRef64735671 = new ConnRef(router, 64735671);
+ ConnEnd srcPt64735671(Point(51375, 52215), 2);
+ connRef64735671->setSourceEndpoint(srcPt64735671);
+ ConnEnd dstPt64735671(Point(51815, 52300), 8);
+ connRef64735671->setDestEndpoint(dstPt64735671);
+ connRef64735671->setRoutingType((ConnType)2);
+
+ ConnRef *connRef81789576 = new ConnRef(router, 81789576);
+ ConnEnd srcPt81789576(Point(50950, 51290), 2);
+ connRef81789576->setSourceEndpoint(srcPt81789576);
+ ConnEnd dstPt81789576(Point(50925, 51510), 1);
+ connRef81789576->setDestEndpoint(dstPt81789576);
+ connRef81789576->setRoutingType((ConnType)2);
+
+ ConnRef *connRef87742344 = new ConnRef(router, 87742344);
+ ConnEnd srcPt87742344(Point(51540, 51600), 8);
+ connRef87742344->setSourceEndpoint(srcPt87742344);
+ ConnEnd dstPt87742344(shapeRef127957550, 2147483646);
+ connRef87742344->setDestEndpoint(dstPt87742344);
+ connRef87742344->setRoutingType((ConnType)2);
+
+ ConnRef *connRef92624219 = new ConnRef(router, 92624219);
+ ConnEnd srcPt92624219(Point(51450, 52215), 2);
+ connRef92624219->setSourceEndpoint(srcPt92624219);
+ ConnEnd dstPt92624219(Point(51635, 52300), 4);
+ connRef92624219->setDestEndpoint(dstPt92624219);
+ connRef92624219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef126568050 = new ConnRef(router, 126568050);
+ ConnEnd srcPt126568050(Point(51540, 51975), 8);
+ connRef126568050->setSourceEndpoint(srcPt126568050);
+ ConnEnd dstPt126568050(Point(51915, 51950), 8);
+ connRef126568050->setDestEndpoint(dstPt126568050);
+ connRef126568050->setRoutingType((ConnType)2);
+
+ ConnRef *connRef128113340 = new ConnRef(router, 128113340);
+ ConnEnd srcPt128113340(Point(51300, 52215), 2);
+ connRef128113340->setSourceEndpoint(srcPt128113340);
+ ConnEnd dstPt128113340(Point(51390, 52500), 8);
+ connRef128113340->setDestEndpoint(dstPt128113340);
+ connRef128113340->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157642749 = new ConnRef(router, 157642749);
+ ConnEnd srcPt157642749(Point(51225, 52215), 2);
+ connRef157642749->setSourceEndpoint(srcPt157642749);
+ // Problem point:
+ ConnEnd dstPt157642749(Point(51160, 52500), 4);
+ connRef157642749->setDestEndpoint(dstPt157642749);
+ connRef157642749->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182970626 = new ConnRef(router, 182970626);
+ ConnEnd srcPt182970626(Point(51000, 52215), 2);
+ connRef182970626->setSourceEndpoint(srcPt182970626);
+ ConnEnd dstPt182970626(Point(51000, 52510), 1);
+ connRef182970626->setDestEndpoint(dstPt182970626);
+ connRef182970626->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191618599 = new ConnRef(router, 191618599);
+ ConnEnd srcPt191618599(Point(50535, 51900), 4);
+ connRef191618599->setSourceEndpoint(srcPt191618599);
+ ConnEnd dstPt191618599(Point(50265, 51950), 8);
+ connRef191618599->setDestEndpoint(dstPt191618599);
+ connRef191618599->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215646300 = new ConnRef(router, 215646300);
+ ConnEnd srcPt215646300(Point(50415, 51400), 8);
+ connRef215646300->setSourceEndpoint(srcPt215646300);
+ ConnEnd dstPt215646300(Point(50775, 51510), 1);
+ connRef215646300->setDestEndpoint(dstPt215646300);
+ connRef215646300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217181718 = new ConnRef(router, 217181718);
+ ConnEnd srcPt217181718(Point(51000, 51290), 2);
+ connRef217181718->setSourceEndpoint(srcPt217181718);
+ ConnEnd dstPt217181718(Point(51000, 51510), 1);
+ connRef217181718->setDestEndpoint(dstPt217181718);
+ connRef217181718->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217236398 = new ConnRef(router, 217236398);
+ ConnEnd srcPt217236398(Point(50700, 52215), 2);
+ connRef217236398->setSourceEndpoint(srcPt217236398);
+ ConnEnd dstPt217236398(Point(50135, 52300), 4);
+ connRef217236398->setDestEndpoint(dstPt217236398);
+ connRef217236398->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227676560 = new ConnRef(router, 227676560);
+ ConnEnd srcPt227676560(Point(50850, 51510), 1);
+ connRef227676560->setSourceEndpoint(srcPt227676560);
+ ConnEnd dstPt227676560(Point(50235, 51400), 4);
+ connRef227676560->setDestEndpoint(dstPt227676560);
+ connRef227676560->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235740708 = new ConnRef(router, 235740708);
+ ConnEnd srcPt235740708(Point(51540, 51675), 8);
+ connRef235740708->setSourceEndpoint(srcPt235740708);
+ ConnEnd dstPt235740708(Point(51870, 51725), 8);
+ connRef235740708->setDestEndpoint(dstPt235740708);
+ connRef235740708->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307166980 = new ConnRef(router, 307166980);
+ ConnEnd srcPt307166980(Point(50925, 52215), 2);
+ connRef307166980->setSourceEndpoint(srcPt307166980);
+ ConnEnd dstPt307166980(Point(50950, 52510), 1);
+ connRef307166980->setDestEndpoint(dstPt307166980);
+ connRef307166980->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314353850 = new ConnRef(router, 314353850);
+ ConnEnd srcPt314353850(Point(51050, 51290), 2);
+ connRef314353850->setSourceEndpoint(srcPt314353850);
+ ConnEnd dstPt314353850(Point(51075, 51510), 1);
+ connRef314353850->setDestEndpoint(dstPt314353850);
+ connRef314353850->setRoutingType((ConnType)2);
+
+ ConnRef *connRef356343444 = new ConnRef(router, 356343444);
+ ConnEnd srcPt356343444(Point(50625, 51510), 1);
+ connRef356343444->setSourceEndpoint(srcPt356343444);
+ ConnEnd dstPt356343444(Point(50415, 51550), 8);
+ connRef356343444->setDestEndpoint(dstPt356343444);
+ connRef356343444->setRoutingType((ConnType)2);
+
+ ConnRef *connRef401560509 = new ConnRef(router, 401560509);
+ ConnEnd srcPt401560509(Point(50625, 52215), 2);
+ connRef401560509->setSourceEndpoint(srcPt401560509);
+ ConnEnd dstPt401560509(Point(50315, 52300), 8);
+ connRef401560509->setDestEndpoint(dstPt401560509);
+ connRef401560509->setRoutingType((ConnType)2);
+
+ ConnRef *connRef413072940 = new ConnRef(router, 413072940);
+ ConnEnd srcPt413072940(Point(51840, 51375), 8);
+ connRef413072940->setSourceEndpoint(srcPt413072940);
+ ConnEnd dstPt413072940(Point(51225, 51510), 1);
+ connRef413072940->setDestEndpoint(dstPt413072940);
+ connRef413072940->setRoutingType((ConnType)2);
+
+ ConnRef *connRef413766381 = new ConnRef(router, 413766381);
+ ConnEnd srcPt413766381(Point(50535, 51750), 4);
+ connRef413766381->setSourceEndpoint(srcPt413766381);
+ ConnEnd dstPt413766381(Point(50265, 51800), 8);
+ connRef413766381->setDestEndpoint(dstPt413766381);
+ connRef413766381->setRoutingType((ConnType)2);
+
+ ConnRef *connRef422359365 = new ConnRef(router, 422359365);
+ ConnEnd srcPt422359365(Point(50535, 51825), 4);
+ connRef422359365->setSourceEndpoint(srcPt422359365);
+ ConnEnd dstPt422359365(Point(50085, 51800), 4);
+ connRef422359365->setDestEndpoint(dstPt422359365);
+ connRef422359365->setRoutingType((ConnType)2);
+
+ ConnRef *connRef427415850 = new ConnRef(router, 427415850);
+ ConnEnd srcPt427415850(Point(50775, 52215), 2);
+ connRef427415850->setSourceEndpoint(srcPt427415850);
+ ConnEnd dstPt427415850(Point(50265, 52450), 8);
+ connRef427415850->setDestEndpoint(dstPt427415850);
+ connRef427415850->setRoutingType((ConnType)2);
+
+ ConnRef *connRef444649182 = new ConnRef(router, 444649182);
+ ConnEnd srcPt444649182(Point(51540, 51750), 8);
+ connRef444649182->setSourceEndpoint(srcPt444649182);
+ ConnEnd dstPt444649182(Point(51760, 51800), 4);
+ connRef444649182->setDestEndpoint(dstPt444649182);
+ connRef444649182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef505297694 = new ConnRef(router, 505297694);
+ ConnEnd srcPt505297694(Point(50700, 51510), 1);
+ connRef505297694->setSourceEndpoint(srcPt505297694);
+ ConnEnd dstPt505297694(Point(50235, 51550), 4);
+ connRef505297694->setDestEndpoint(dstPt505297694);
+ connRef505297694->setRoutingType((ConnType)2);
+
+ ConnRef *connRef528809632 = new ConnRef(router, 528809632);
+ ConnEnd srcPt528809632(Point(51540, 51900), 8);
+ connRef528809632->setSourceEndpoint(srcPt528809632);
+ ConnEnd dstPt528809632(Point(51735, 51950), 4);
+ connRef528809632->setDestEndpoint(dstPt528809632);
+ connRef528809632->setRoutingType((ConnType)2);
+
+ ConnRef *connRef548127810 = new ConnRef(router, 548127810);
+ ConnEnd srcPt548127810(Point(50535, 51975), 4);
+ connRef548127810->setSourceEndpoint(srcPt548127810);
+ ConnEnd dstPt548127810(Point(50085, 51950), 4);
+ connRef548127810->setDestEndpoint(dstPt548127810);
+ connRef548127810->setRoutingType((ConnType)2);
+
+ ConnRef *connRef648819584 = new ConnRef(router, 648819584);
+ ConnEnd srcPt648819584(Point(51540, 51825), 8);
+ connRef648819584->setSourceEndpoint(srcPt648819584);
+ ConnEnd dstPt648819584(Point(51940, 51800), 8);
+ connRef648819584->setDestEndpoint(dstPt648819584);
+ connRef648819584->setRoutingType((ConnType)2);
+
+ ConnRef *connRef651183694 = new ConnRef(router, 651183694);
+ ConnEnd srcPt651183694(Point(51635, 51550), 4);
+ connRef651183694->setSourceEndpoint(srcPt651183694);
+ ConnEnd dstPt651183694(Point(51450, 51510), 1);
+ connRef651183694->setDestEndpoint(dstPt651183694);
+ connRef651183694->setRoutingType((ConnType)2);
+
+ ConnRef *connRef655025700 = new ConnRef(router, 655025700);
+ ConnEnd srcPt655025700(Point(51150, 52215), 2);
+ connRef655025700->setSourceEndpoint(srcPt655025700);
+ ConnEnd dstPt655025700(Point(51100, 52510), 1);
+ connRef655025700->setDestEndpoint(dstPt655025700);
+ connRef655025700->setRoutingType((ConnType)2);
+
+ ConnRef *connRef662151765 = new ConnRef(router, 662151765);
+ ConnEnd srcPt662151765(Point(50535, 51600), 4);
+ connRef662151765->setSourceEndpoint(srcPt662151765);
+ ConnEnd dstPt662151765(shapeRef258454350, 2147483646);
+ connRef662151765->setDestEndpoint(dstPt662151765);
+ connRef662151765->setRoutingType((ConnType)2);
+
+ ConnRef *connRef678159455 = new ConnRef(router, 678159455);
+ ConnEnd srcPt678159455(Point(51815, 51550), 8);
+ connRef678159455->setSourceEndpoint(srcPt678159455);
+ ConnEnd dstPt678159455(Point(51375, 51510), 1);
+ connRef678159455->setDestEndpoint(dstPt678159455);
+ connRef678159455->setRoutingType((ConnType)2);
+
+ ConnRef *connRef803304040 = new ConnRef(router, 803304040);
+ ConnEnd srcPt803304040(Point(50850, 52215), 2);
+ connRef803304040->setSourceEndpoint(srcPt803304040);
+ ConnEnd dstPt803304040(Point(50085, 52450), 4);
+ connRef803304040->setDestEndpoint(dstPt803304040);
+ connRef803304040->setRoutingType((ConnType)2);
+
+ ConnRef *connRef960638799 = new ConnRef(router, 960638799);
+ ConnEnd srcPt960638799(Point(50535, 52125), 4);
+ connRef960638799->setSourceEndpoint(srcPt960638799);
+ ConnEnd dstPt960638799(Point(50035, 52100), 4);
+ connRef960638799->setDestEndpoint(dstPt960638799);
+ connRef960638799->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/validPaths01");
+ int result = router->existsInvalidOrthogonalPaths();
+ delete router;
+ return result;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/validPaths02.cpp b/src/3rdparty/adaptagrams/libavoid/tests/validPaths02.cpp
new file mode 100644
index 0000000..2de3f3b
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/validPaths02.cpp
@@ -0,0 +1,53 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 200);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 110);
+ router->setRoutingPenalty((PenaltyType)5, 100);
+ router->setRoutingOption((RoutingOption)0, false);
+ router->setRoutingOption((RoutingOption)1, true);
+ router->setRoutingParameter(idealNudgingDistance, 25);
+
+ Polygon poly186982048(4);
+ poly186982048.ps[0] = Point(52660, 50490);
+ poly186982048.ps[1] = Point(52660, 50960);
+ poly186982048.ps[2] = Point(52090, 50960);
+ poly186982048.ps[3] = Point(52090, 50490);
+ ShapeRef *shapeRef186982048 = new ShapeRef(router, poly186982048, 186982048);
+ new ShapeConnectionPin(shapeRef186982048, 5, 0.982456, 0.12766, true, 0, (ConnDirFlags) 8);
+ new ShapeConnectionPin(shapeRef186982048, 13, 0.982456, 0.234043, true, 0, (ConnDirFlags) 8);
+
+ Polygon poly197692264(4);
+ poly197692264.ps[0] = Point(52560, 50342);
+ poly197692264.ps[1] = Point(52560, 50425);
+ poly197692264.ps[2] = Point(52440, 50425);
+ poly197692264.ps[3] = Point(52440, 50342);
+ ShapeRef *shapeRef197692264 = new ShapeRef(router, poly197692264, 197692264);
+ new ShapeConnectionPin(shapeRef197692264, 1, 0.5, 0.39759, true, 0, (ConnDirFlags) 13);
+ new ShapeConnectionPin(shapeRef197692264, 2, 0.5, 1, true, 10, (ConnDirFlags) 2);
+
+ ConnRef *connRef111820287 = new ConnRef(router, 111820287);
+ ConnEnd srcPt111820287(shapeRef186982048, 13);
+ connRef111820287->setSourceEndpoint(srcPt111820287);
+ ConnEnd dstPt111820287(shapeRef197692264, 2);
+ connRef111820287->setDestEndpoint(dstPt111820287);
+ connRef111820287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef744282799 = new ConnRef(router, 744282799);
+ ConnEnd srcPt744282799(shapeRef186982048, 5);
+ connRef744282799->setSourceEndpoint(srcPt744282799);
+ ConnEnd dstPt744282799(shapeRef197692264, 1);
+ connRef744282799->setDestEndpoint(dstPt744282799);
+ connRef744282799->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/validPaths02");
+ int result = router->existsInvalidOrthogonalPaths();
+ delete router;
+ return result;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/tests/vertlineassertion.cpp b/src/3rdparty/adaptagrams/libavoid/tests/vertlineassertion.cpp
new file mode 100644
index 0000000..2609dd8
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/tests/vertlineassertion.cpp
@@ -0,0 +1,2214 @@
+#include "libavoid/libavoid.h"
+using namespace Avoid;
+int main(void) {
+ Router *router = new Router(
+ PolyLineRouting | OrthogonalRouting);
+ router->setRoutingPenalty((PenaltyType)0, 50);
+ router->setRoutingPenalty((PenaltyType)1, 0);
+ router->setRoutingPenalty((PenaltyType)2, 0);
+ router->setRoutingPenalty((PenaltyType)3, 4000);
+ router->setRoutingPenalty((PenaltyType)4, 0);
+
+ Polygon poly2(4);
+ poly2.ps[0] = Point(129, 898);
+ poly2.ps[1] = Point(129, 918);
+ poly2.ps[2] = Point(109, 918);
+ poly2.ps[3] = Point(109, 898);
+ new ShapeRef(router, poly2, 2);
+
+ Polygon poly3(4);
+ poly3.ps[0] = Point(272, 951);
+ poly3.ps[1] = Point(272, 971);
+ poly3.ps[2] = Point(252, 971);
+ poly3.ps[3] = Point(252, 951);
+ new ShapeRef(router, poly3, 3);
+
+ Polygon poly4(4);
+ poly4.ps[0] = Point(139, 931);
+ poly4.ps[1] = Point(139, 971);
+ poly4.ps[2] = Point(99, 971);
+ poly4.ps[3] = Point(99, 931);
+ new ShapeRef(router, poly4, 4);
+
+ Polygon poly5(4);
+ poly5.ps[0] = Point(665, 212.5);
+ poly5.ps[1] = Point(665, 459.5);
+ poly5.ps[2] = Point(593, 459.5);
+ poly5.ps[3] = Point(593, 212.5);
+ new ShapeRef(router, poly5, 5);
+
+ Polygon poly6(4);
+ poly6.ps[0] = Point(518, 52);
+ poly6.ps[1] = Point(518, 96);
+ poly6.ps[2] = Point(398, 96);
+ poly6.ps[3] = Point(398, 52);
+ new ShapeRef(router, poly6, 6);
+
+ Polygon poly7(4);
+ poly7.ps[0] = Point(361, 899);
+ poly7.ps[1] = Point(361, 919);
+ poly7.ps[2] = Point(341, 919);
+ poly7.ps[3] = Point(341, 899);
+ new ShapeRef(router, poly7, 7);
+
+ Polygon poly8(4);
+ poly8.ps[0] = Point(470, 930);
+ poly8.ps[1] = Point(470, 950);
+ poly8.ps[2] = Point(450, 950);
+ poly8.ps[3] = Point(450, 930);
+ new ShapeRef(router, poly8, 8);
+
+ Polygon poly9(4);
+ poly9.ps[0] = Point(422, 930);
+ poly9.ps[1] = Point(422, 950);
+ poly9.ps[2] = Point(402, 950);
+ poly9.ps[3] = Point(402, 930);
+ new ShapeRef(router, poly9, 9);
+
+ Polygon poly10(4);
+ poly10.ps[0] = Point(414, 861);
+ poly10.ps[1] = Point(414, 881);
+ poly10.ps[2] = Point(394, 881);
+ poly10.ps[3] = Point(394, 861);
+ new ShapeRef(router, poly10, 10);
+
+ Polygon poly11(4);
+ poly11.ps[0] = Point(414, 840);
+ poly11.ps[1] = Point(414, 860);
+ poly11.ps[2] = Point(394, 860);
+ poly11.ps[3] = Point(394, 840);
+ new ShapeRef(router, poly11, 11);
+
+ Polygon poly12(4);
+ poly12.ps[0] = Point(302, 852);
+ poly12.ps[1] = Point(302, 872);
+ poly12.ps[2] = Point(282, 872);
+ poly12.ps[3] = Point(282, 852);
+ new ShapeRef(router, poly12, 12);
+
+ Polygon poly13(4);
+ poly13.ps[0] = Point(193, 852);
+ poly13.ps[1] = Point(193, 872);
+ poly13.ps[2] = Point(173, 872);
+ poly13.ps[3] = Point(173, 852);
+ new ShapeRef(router, poly13, 13);
+
+ Polygon poly14(4);
+ poly14.ps[0] = Point(541, 851);
+ poly14.ps[1] = Point(541, 871);
+ poly14.ps[2] = Point(521, 871);
+ poly14.ps[3] = Point(521, 851);
+ new ShapeRef(router, poly14, 14);
+
+ Polygon poly15(4);
+ poly15.ps[0] = Point(401, 739);
+ poly15.ps[1] = Point(401, 783);
+ poly15.ps[2] = Point(313, 783);
+ poly15.ps[3] = Point(313, 739);
+ new ShapeRef(router, poly15, 15);
+
+ Polygon poly16(4);
+ poly16.ps[0] = Point(466, 757);
+ poly16.ps[1] = Point(466, 777);
+ poly16.ps[2] = Point(446, 777);
+ poly16.ps[3] = Point(446, 757);
+ new ShapeRef(router, poly16, 16);
+
+ Polygon poly17(4);
+ poly17.ps[0] = Point(466, 688);
+ poly17.ps[1] = Point(466, 708);
+ poly17.ps[2] = Point(446, 708);
+ poly17.ps[3] = Point(446, 688);
+ new ShapeRef(router, poly17, 17);
+
+ Polygon poly18(4);
+ poly18.ps[0] = Point(467, 616);
+ poly18.ps[1] = Point(467, 636);
+ poly18.ps[2] = Point(447, 636);
+ poly18.ps[3] = Point(447, 616);
+ new ShapeRef(router, poly18, 18);
+
+ Polygon poly19(4);
+ poly19.ps[0] = Point(441, 471);
+ poly19.ps[1] = Point(441, 491);
+ poly19.ps[2] = Point(421, 491);
+ poly19.ps[3] = Point(421, 471);
+ new ShapeRef(router, poly19, 19);
+
+ Polygon poly20(4);
+ poly20.ps[0] = Point(359.5, 575);
+ poly20.ps[1] = Point(359.5, 619);
+ poly20.ps[2] = Point(196.5, 619);
+ poly20.ps[3] = Point(196.5, 575);
+ new ShapeRef(router, poly20, 20);
+
+ Polygon poly21(4);
+ poly21.ps[0] = Point(386, 437);
+ poly21.ps[1] = Point(386, 457);
+ poly21.ps[2] = Point(366, 457);
+ poly21.ps[3] = Point(366, 437);
+ new ShapeRef(router, poly21, 21);
+
+ Polygon poly22(4);
+ poly22.ps[0] = Point(466, 391);
+ poly22.ps[1] = Point(466, 411);
+ poly22.ps[2] = Point(446, 411);
+ poly22.ps[3] = Point(446, 391);
+ new ShapeRef(router, poly22, 22);
+
+ Polygon poly23(4);
+ poly23.ps[0] = Point(466, 325);
+ poly23.ps[1] = Point(466, 345);
+ poly23.ps[2] = Point(446, 345);
+ poly23.ps[3] = Point(446, 325);
+ new ShapeRef(router, poly23, 23);
+
+ Polygon poly24(4);
+ poly24.ps[0] = Point(413, 325);
+ poly24.ps[1] = Point(413, 345);
+ poly24.ps[2] = Point(393, 345);
+ poly24.ps[3] = Point(393, 325);
+ new ShapeRef(router, poly24, 24);
+
+ Polygon poly25(4);
+ poly25.ps[0] = Point(535, 182);
+ poly25.ps[1] = Point(535, 202);
+ poly25.ps[2] = Point(515, 202);
+ poly25.ps[3] = Point(515, 182);
+ new ShapeRef(router, poly25, 25);
+
+ Polygon poly26(4);
+ poly26.ps[0] = Point(466, 255);
+ poly26.ps[1] = Point(466, 275);
+ poly26.ps[2] = Point(446, 275);
+ poly26.ps[3] = Point(446, 255);
+ new ShapeRef(router, poly26, 26);
+
+ Polygon poly27(4);
+ poly27.ps[0] = Point(466, 160);
+ poly27.ps[1] = Point(466, 180);
+ poly27.ps[2] = Point(446, 180);
+ poly27.ps[3] = Point(446, 160);
+ new ShapeRef(router, poly27, 27);
+
+ Polygon poly28(4);
+ poly28.ps[0] = Point(386, 289);
+ poly28.ps[1] = Point(386, 309);
+ poly28.ps[2] = Point(366, 309);
+ poly28.ps[3] = Point(366, 289);
+ new ShapeRef(router, poly28, 28);
+
+ Polygon poly29(4);
+ poly29.ps[0] = Point(231, 270);
+ poly29.ps[1] = Point(231, 290);
+ poly29.ps[2] = Point(211, 290);
+ poly29.ps[3] = Point(211, 270);
+ new ShapeRef(router, poly29, 29);
+
+ Polygon poly30(4);
+ poly30.ps[0] = Point(231, 289);
+ poly30.ps[1] = Point(231, 309);
+ poly30.ps[2] = Point(211, 309);
+ poly30.ps[3] = Point(211, 289);
+ new ShapeRef(router, poly30, 30);
+
+ Polygon poly31(4);
+ poly31.ps[0] = Point(340, 256);
+ poly31.ps[1] = Point(340, 276);
+ poly31.ps[2] = Point(320, 276);
+ poly31.ps[3] = Point(320, 256);
+ new ShapeRef(router, poly31, 31);
+
+ Polygon poly32(4);
+ poly32.ps[0] = Point(290, 256);
+ poly32.ps[1] = Point(290, 276);
+ poly32.ps[2] = Point(270, 276);
+ poly32.ps[3] = Point(270, 256);
+ new ShapeRef(router, poly32, 32);
+
+ Polygon poly33(4);
+ poly33.ps[0] = Point(164, 251);
+ poly33.ps[1] = Point(164, 271);
+ poly33.ps[2] = Point(144, 271);
+ poly33.ps[3] = Point(144, 251);
+ new ShapeRef(router, poly33, 33);
+
+ Polygon poly34(4);
+ poly34.ps[0] = Point(231, 214);
+ poly34.ps[1] = Point(231, 234);
+ poly34.ps[2] = Point(211, 234);
+ poly34.ps[3] = Point(211, 214);
+ new ShapeRef(router, poly34, 34);
+
+ Polygon poly35(4);
+ poly35.ps[0] = Point(231, 195);
+ poly35.ps[1] = Point(231, 215);
+ poly35.ps[2] = Point(211, 215);
+ poly35.ps[3] = Point(211, 195);
+ new ShapeRef(router, poly35, 35);
+
+ Polygon poly36(4);
+ poly36.ps[0] = Point(299, 173);
+ poly36.ps[1] = Point(299, 193);
+ poly36.ps[2] = Point(279, 193);
+ poly36.ps[3] = Point(279, 173);
+ new ShapeRef(router, poly36, 36);
+
+ Polygon poly37(4);
+ poly37.ps[0] = Point(326, 141);
+ poly37.ps[1] = Point(326, 161);
+ poly37.ps[2] = Point(306, 161);
+ poly37.ps[3] = Point(306, 141);
+ new ShapeRef(router, poly37, 37);
+
+ Polygon poly38(4);
+ poly38.ps[0] = Point(326, 120);
+ poly38.ps[1] = Point(326, 140);
+ poly38.ps[2] = Point(306, 140);
+ poly38.ps[3] = Point(306, 120);
+ new ShapeRef(router, poly38, 38);
+
+ Polygon poly39(4);
+ poly39.ps[0] = Point(295.5, 39.5);
+ poly39.ps[1] = Point(295.5, 74.5);
+ poly39.ps[2] = Point(34.5, 74.5);
+ poly39.ps[3] = Point(34.5, 39.5);
+ new ShapeRef(router, poly39, 39);
+
+ Polygon poly40(4);
+ poly40.ps[0] = Point(245, 895);
+ poly40.ps[1] = Point(245, 915);
+ poly40.ps[2] = Point(225, 915);
+ poly40.ps[3] = Point(225, 895);
+ new ShapeRef(router, poly40, 40);
+
+ Polygon poly41(4);
+ poly41.ps[0] = Point(466, 543);
+ poly41.ps[1] = Point(466, 563);
+ poly41.ps[2] = Point(446, 563);
+ poly41.ps[3] = Point(446, 543);
+ new ShapeRef(router, poly41, 41);
+
+ Polygon poly42(4);
+ poly42.ps[0] = Point(231, 233);
+ poly42.ps[1] = Point(231, 253);
+ poly42.ps[2] = Point(211, 253);
+ poly42.ps[3] = Point(211, 233);
+ new ShapeRef(router, poly42, 42);
+
+ Polygon poly43(4);
+ poly43.ps[0] = Point(231, 308);
+ poly43.ps[1] = Point(231, 328);
+ poly43.ps[2] = Point(211, 328);
+ poly43.ps[3] = Point(211, 308);
+ new ShapeRef(router, poly43, 43);
+
+ Polygon poly44(4);
+ poly44.ps[0] = Point(164, 347);
+ poly44.ps[1] = Point(164, 367);
+ poly44.ps[2] = Point(144, 367);
+ poly44.ps[3] = Point(144, 347);
+ new ShapeRef(router, poly44, 44);
+
+ Polygon poly45(4);
+ poly45.ps[0] = Point(164, 373);
+ poly45.ps[1] = Point(164, 393);
+ poly45.ps[2] = Point(144, 393);
+ poly45.ps[3] = Point(144, 373);
+ new ShapeRef(router, poly45, 45);
+
+ Polygon poly46(4);
+ poly46.ps[0] = Point(274, 346);
+ poly46.ps[1] = Point(274, 366);
+ poly46.ps[2] = Point(254, 366);
+ poly46.ps[3] = Point(254, 346);
+ new ShapeRef(router, poly46, 46);
+
+ Polygon poly47(4);
+ poly47.ps[0] = Point(274, 372);
+ poly47.ps[1] = Point(274, 392);
+ poly47.ps[2] = Point(254, 392);
+ poly47.ps[3] = Point(254, 372);
+ new ShapeRef(router, poly47, 47);
+
+ Polygon poly48(4);
+ poly48.ps[0] = Point(594, 173);
+ poly48.ps[1] = Point(594, 213);
+ poly48.ps[2] = Point(554, 213);
+ poly48.ps[3] = Point(554, 173);
+ new ShapeRef(router, poly48, 48);
+
+ Polygon poly49(4);
+ poly49.ps[0] = Point(476, 121);
+ poly49.ps[1] = Point(476, 161);
+ poly49.ps[2] = Point(436, 161);
+ poly49.ps[3] = Point(436, 121);
+ new ShapeRef(router, poly49, 49);
+
+ Polygon poly50(4);
+ poly50.ps[0] = Point(476, 642);
+ poly50.ps[1] = Point(476, 682);
+ poly50.ps[2] = Point(436, 682);
+ poly50.ps[3] = Point(436, 642);
+ new ShapeRef(router, poly50, 50);
+
+ Polygon poly51(4);
+ poly51.ps[0] = Point(174, 206);
+ poly51.ps[1] = Point(174, 246);
+ poly51.ps[2] = Point(134, 246);
+ poly51.ps[3] = Point(134, 206);
+ new ShapeRef(router, poly51, 51);
+
+ Polygon poly52(4);
+ poly52.ps[0] = Point(174, 279);
+ poly52.ps[1] = Point(174, 319);
+ poly52.ps[2] = Point(134, 319);
+ poly52.ps[3] = Point(134, 279);
+ new ShapeRef(router, poly52, 52);
+
+ Polygon poly53(4);
+ poly53.ps[0] = Point(325, 426);
+ poly53.ps[1] = Point(325, 466);
+ poly53.ps[2] = Point(285, 466);
+ poly53.ps[3] = Point(285, 426);
+ new ShapeRef(router, poly53, 53);
+
+ Polygon poly54(4);
+ poly54.ps[0] = Point(325, 279);
+ poly54.ps[1] = Point(325, 319);
+ poly54.ps[2] = Point(285, 319);
+ poly54.ps[3] = Point(285, 279);
+ new ShapeRef(router, poly54, 54);
+
+ Polygon poly55(4);
+ poly55.ps[0] = Point(476, 208);
+ poly55.ps[1] = Point(476, 248);
+ poly55.ps[2] = Point(436, 248);
+ poly55.ps[3] = Point(436, 208);
+ new ShapeRef(router, poly55, 55);
+
+ Polygon poly56(4);
+ poly56.ps[0] = Point(476, 281);
+ poly56.ps[1] = Point(476, 321);
+ poly56.ps[2] = Point(436, 321);
+ poly56.ps[3] = Point(436, 281);
+ new ShapeRef(router, poly56, 56);
+
+ Polygon poly57(4);
+ poly57.ps[0] = Point(476, 714);
+ poly57.ps[1] = Point(476, 754);
+ poly57.ps[2] = Point(436, 754);
+ poly57.ps[3] = Point(436, 714);
+ new ShapeRef(router, poly57, 57);
+
+ Polygon poly58(4);
+ poly58.ps[0] = Point(476, 570);
+ poly58.ps[1] = Point(476, 610);
+ poly58.ps[2] = Point(436, 610);
+ poly58.ps[3] = Point(436, 570);
+ new ShapeRef(router, poly58, 58);
+
+ Polygon poly59(4);
+ poly59.ps[0] = Point(476, 498);
+ poly59.ps[1] = Point(476, 538);
+ poly59.ps[2] = Point(436, 538);
+ poly59.ps[3] = Point(436, 498);
+ new ShapeRef(router, poly59, 59);
+
+ Polygon poly60(4);
+ poly60.ps[0] = Point(620, 841);
+ poly60.ps[1] = Point(620, 881);
+ poly60.ps[2] = Point(580, 881);
+ poly60.ps[3] = Point(580, 841);
+ new ShapeRef(router, poly60, 60);
+
+ Polygon poly61(4);
+ poly61.ps[0] = Point(307, 884);
+ poly61.ps[1] = Point(307, 924);
+ poly61.ps[2] = Point(267, 924);
+ poly61.ps[3] = Point(267, 884);
+ new ShapeRef(router, poly61, 61);
+
+ Polygon poly62(4);
+ poly62.ps[0] = Point(543, 931);
+ poly62.ps[1] = Point(543, 971);
+ poly62.ps[2] = Point(503, 971);
+ poly62.ps[3] = Point(503, 931);
+ new ShapeRef(router, poly62, 62);
+
+ Polygon poly63(4);
+ poly63.ps[0] = Point(476, 841);
+ poly63.ps[1] = Point(476, 881);
+ poly63.ps[2] = Point(436, 881);
+ poly63.ps[3] = Point(436, 841);
+ new ShapeRef(router, poly63, 63);
+
+ Polygon poly64(4);
+ poly64.ps[0] = Point(371, 841);
+ poly64.ps[1] = Point(371, 881);
+ poly64.ps[2] = Point(331, 881);
+ poly64.ps[3] = Point(331, 841);
+ new ShapeRef(router, poly64, 64);
+
+ Polygon poly65(4);
+ poly65.ps[0] = Point(371, 798);
+ poly65.ps[1] = Point(371, 838);
+ poly65.ps[2] = Point(331, 838);
+ poly65.ps[3] = Point(331, 798);
+ new ShapeRef(router, poly65, 65);
+
+ Polygon poly66(4);
+ poly66.ps[0] = Point(139, 841);
+ poly66.ps[1] = Point(139, 881);
+ poly66.ps[2] = Point(99, 881);
+ poly66.ps[3] = Point(99, 841);
+ new ShapeRef(router, poly66, 66);
+
+ Polygon poly67(4);
+ poly67.ps[0] = Point(371, 931);
+ poly67.ps[1] = Point(371, 971);
+ poly67.ps[2] = Point(331, 971);
+ poly67.ps[3] = Point(331, 931);
+ new ShapeRef(router, poly67, 67);
+
+ Polygon poly68(4);
+ poly68.ps[0] = Point(258, 841);
+ poly68.ps[1] = Point(258, 881);
+ poly68.ps[2] = Point(218, 881);
+ poly68.ps[3] = Point(218, 841);
+ new ShapeRef(router, poly68, 68);
+
+ Polygon poly69(4);
+ poly69.ps[0] = Point(205, 884);
+ poly69.ps[1] = Point(205, 924);
+ poly69.ps[2] = Point(165, 924);
+ poly69.ps[3] = Point(165, 884);
+ new ShapeRef(router, poly69, 69);
+
+ Polygon poly70(4);
+ poly70.ps[0] = Point(476, 351);
+ poly70.ps[1] = Point(476, 391);
+ poly70.ps[2] = Point(436, 391);
+ poly70.ps[3] = Point(436, 351);
+ new ShapeRef(router, poly70, 70);
+
+ Polygon poly71(4);
+ poly71.ps[0] = Point(125, 336);
+ poly71.ps[1] = Point(125, 376);
+ poly71.ps[2] = Point(85, 376);
+ poly71.ps[3] = Point(85, 336);
+ new ShapeRef(router, poly71, 71);
+
+ Polygon poly72(4);
+ poly72.ps[0] = Point(232, 336);
+ poly72.ps[1] = Point(232, 376);
+ poly72.ps[2] = Point(192, 376);
+ poly72.ps[3] = Point(192, 336);
+ new ShapeRef(router, poly72, 72);
+
+ Polygon poly73(4);
+ poly73.ps[0] = Point(232, 362);
+ poly73.ps[1] = Point(232, 402);
+ poly73.ps[2] = Point(192, 402);
+ poly73.ps[3] = Point(192, 362);
+ new ShapeRef(router, poly73, 73);
+
+ Polygon poly74(4);
+ poly74.ps[0] = Point(125, 362);
+ poly74.ps[1] = Point(125, 402);
+ poly74.ps[2] = Point(85, 402);
+ poly74.ps[3] = Point(85, 362);
+ new ShapeRef(router, poly74, 74);
+
+ Polygon poly75(4);
+ poly75.ps[0] = Point(77.5, 716);
+ poly75.ps[1] = Point(77.5, 880);
+ poly75.ps[2] = Point(20.5, 880);
+ poly75.ps[3] = Point(20.5, 716);
+ new ShapeRef(router, poly75, 75);
+
+ Polygon poly76(4);
+ poly76.ps[0] = Point(187, 713);
+ poly76.ps[1] = Point(187, 733);
+ poly76.ps[2] = Point(167, 733);
+ poly76.ps[3] = Point(167, 713);
+ new ShapeRef(router, poly76, 76);
+
+ Polygon poly77(4);
+ poly77.ps[0] = Point(139, 714);
+ poly77.ps[1] = Point(139, 754);
+ poly77.ps[2] = Point(99, 754);
+ poly77.ps[3] = Point(99, 714);
+ new ShapeRef(router, poly77, 77);
+
+ Polygon poly78(4);
+ poly78.ps[0] = Point(422, 951);
+ poly78.ps[1] = Point(422, 971);
+ poly78.ps[2] = Point(402, 971);
+ poly78.ps[3] = Point(402, 951);
+ new ShapeRef(router, poly78, 78);
+
+ Polygon poly79(4);
+ poly79.ps[0] = Point(187, 734);
+ poly79.ps[1] = Point(187, 754);
+ poly79.ps[2] = Point(167, 754);
+ poly79.ps[3] = Point(167, 734);
+ new ShapeRef(router, poly79, 79);
+
+ Polygon poly80(4);
+ poly80.ps[0] = Point(470, 951);
+ poly80.ps[1] = Point(470, 971);
+ poly80.ps[2] = Point(450, 971);
+ poly80.ps[3] = Point(450, 951);
+ new ShapeRef(router, poly80, 80);
+
+ Polygon poly81(4);
+ poly81.ps[0] = Point(669.5, 899.5);
+ poly81.ps[1] = Point(669.5, 934.5);
+ poly81.ps[2] = Point(532.5, 934.5);
+ poly81.ps[3] = Point(532.5, 899.5);
+ new ShapeRef(router, poly81, 81);
+
+ Polygon poly82(4);
+ poly82.ps[0] = Point(491, 471);
+ poly82.ps[1] = Point(491, 491);
+ poly82.ps[2] = Point(471, 491);
+ poly82.ps[3] = Point(471, 471);
+ new ShapeRef(router, poly82, 82);
+
+ Polygon poly83(4);
+ poly83.ps[0] = Point(565, 512);
+ poly83.ps[1] = Point(565, 532);
+ poly83.ps[2] = Point(545, 532);
+ poly83.ps[3] = Point(545, 512);
+ new ShapeRef(router, poly83, 83);
+
+ Polygon poly84(4);
+ poly84.ps[0] = Point(538, 531);
+ poly84.ps[1] = Point(538, 551);
+ poly84.ps[2] = Point(518, 551);
+ poly84.ps[3] = Point(518, 531);
+ new ShapeRef(router, poly84, 84);
+
+ Polygon poly85(4);
+ poly85.ps[0] = Point(272, 782);
+ poly85.ps[1] = Point(272, 802);
+ poly85.ps[2] = Point(252, 802);
+ poly85.ps[3] = Point(252, 782);
+ new ShapeRef(router, poly85, 85);
+
+ Polygon poly86(4);
+ poly86.ps[0] = Point(515, 512);
+ poly86.ps[1] = Point(515, 532);
+ poly86.ps[2] = Point(495, 532);
+ poly86.ps[3] = Point(495, 512);
+ new ShapeRef(router, poly86, 86);
+
+ Polygon poly87(4);
+ poly87.ps[0] = Point(391, 534);
+ poly87.ps[1] = Point(391, 574);
+ poly87.ps[2] = Point(351, 574);
+ poly87.ps[3] = Point(351, 534);
+ new ShapeRef(router, poly87, 87);
+
+ Polygon poly88(4);
+ poly88.ps[0] = Point(420, 573);
+ poly88.ps[1] = Point(420, 593);
+ poly88.ps[2] = Point(400, 593);
+ poly88.ps[3] = Point(400, 573);
+ new ShapeRef(router, poly88, 88);
+
+ Polygon poly89(4);
+ poly89.ps[0] = Point(421, 509);
+ poly89.ps[1] = Point(421, 529);
+ poly89.ps[2] = Point(401, 529);
+ poly89.ps[3] = Point(401, 509);
+ new ShapeRef(router, poly89, 89);
+
+ Polygon poly90(4);
+ poly90.ps[0] = Point(476, 426);
+ poly90.ps[1] = Point(476, 466);
+ poly90.ps[2] = Point(436, 466);
+ poly90.ps[3] = Point(436, 426);
+ new ShapeRef(router, poly90, 90);
+
+ Polygon poly91(4);
+ poly91.ps[0] = Point(290, 970);
+ poly91.ps[1] = Point(290, 1010);
+ poly91.ps[2] = Point(234, 1010);
+ poly91.ps[3] = Point(234, 970);
+ new ShapeRef(router, poly91, 91);
+
+ Polygon poly92(4);
+ poly92.ps[0] = Point(85, 888);
+ poly92.ps[1] = Point(85, 928);
+ poly92.ps[2] = Point(29, 928);
+ poly92.ps[3] = Point(29, 888);
+ new ShapeRef(router, poly92, 92);
+
+ Polygon poly93(4);
+ poly93.ps[0] = Point(290, 991);
+ poly93.ps[1] = Point(290, 1031);
+ poly93.ps[2] = Point(234, 1031);
+ poly93.ps[3] = Point(234, 991);
+ new ShapeRef(router, poly93, 93);
+
+ Polygon poly94(4);
+ poly94.ps[0] = Point(317, 889);
+ poly94.ps[1] = Point(317, 929);
+ poly94.ps[2] = Point(261, 929);
+ poly94.ps[3] = Point(261, 889);
+ new ShapeRef(router, poly94, 94);
+
+ Polygon poly95(4);
+ poly95.ps[0] = Point(488, 870);
+ poly95.ps[1] = Point(488, 910);
+ poly95.ps[2] = Point(432, 910);
+ poly95.ps[3] = Point(432, 870);
+ new ShapeRef(router, poly95, 95);
+
+ Polygon poly96(4);
+ poly96.ps[0] = Point(440, 970);
+ poly96.ps[1] = Point(440, 1010);
+ poly96.ps[2] = Point(384, 1010);
+ poly96.ps[3] = Point(384, 970);
+ new ShapeRef(router, poly96, 96);
+
+ Polygon poly97(4);
+ poly97.ps[0] = Point(370, 851);
+ poly97.ps[1] = Point(370, 891);
+ poly97.ps[2] = Point(314, 891);
+ poly97.ps[3] = Point(314, 851);
+ new ShapeRef(router, poly97, 97);
+
+ Polygon poly98(4);
+ poly98.ps[0] = Point(494, 830);
+ poly98.ps[1] = Point(494, 870);
+ poly98.ps[2] = Point(438, 870);
+ poly98.ps[3] = Point(438, 830);
+ new ShapeRef(router, poly98, 98);
+
+ Polygon poly99(4);
+ poly99.ps[0] = Point(258, 842);
+ poly99.ps[1] = Point(258, 882);
+ poly99.ps[2] = Point(202, 882);
+ poly99.ps[3] = Point(202, 842);
+ new ShapeRef(router, poly99, 99);
+
+ Polygon poly100(4);
+ poly100.ps[0] = Point(211, 792);
+ poly100.ps[1] = Point(211, 832);
+ poly100.ps[2] = Point(155, 832);
+ poly100.ps[3] = Point(155, 792);
+ new ShapeRef(router, poly100, 100);
+
+ Polygon poly101(4);
+ poly101.ps[0] = Point(559, 791);
+ poly101.ps[1] = Point(559, 831);
+ poly101.ps[2] = Point(503, 831);
+ poly101.ps[3] = Point(503, 791);
+ new ShapeRef(router, poly101, 101);
+
+ Polygon poly102(4);
+ poly102.ps[0] = Point(546, 747);
+ poly102.ps[1] = Point(546, 787);
+ poly102.ps[2] = Point(490, 787);
+ poly102.ps[3] = Point(490, 747);
+ new ShapeRef(router, poly102, 102);
+
+ Polygon poly103(4);
+ poly103.ps[0] = Point(422, 678);
+ poly103.ps[1] = Point(422, 718);
+ poly103.ps[2] = Point(366, 718);
+ poly103.ps[3] = Point(366, 678);
+ new ShapeRef(router, poly103, 103);
+
+ Polygon poly104(4);
+ poly104.ps[0] = Point(423, 606);
+ poly104.ps[1] = Point(423, 646);
+ poly104.ps[2] = Point(367, 646);
+ poly104.ps[3] = Point(367, 606);
+ new ShapeRef(router, poly104, 104);
+
+ Polygon poly105(4);
+ poly105.ps[0] = Point(397, 461);
+ poly105.ps[1] = Point(397, 501);
+ poly105.ps[2] = Point(341, 501);
+ poly105.ps[3] = Point(341, 461);
+ new ShapeRef(router, poly105, 105);
+
+ Polygon poly106(4);
+ poly106.ps[0] = Point(404, 377);
+ poly106.ps[1] = Point(404, 417);
+ poly106.ps[2] = Point(348, 417);
+ poly106.ps[3] = Point(348, 377);
+ new ShapeRef(router, poly106, 106);
+
+ Polygon poly107(4);
+ poly107.ps[0] = Point(546, 381);
+ poly107.ps[1] = Point(546, 421);
+ poly107.ps[2] = Point(490, 421);
+ poly107.ps[3] = Point(490, 381);
+ new ShapeRef(router, poly107, 107);
+
+ Polygon poly108(4);
+ poly108.ps[0] = Point(546, 315);
+ poly108.ps[1] = Point(546, 355);
+ poly108.ps[2] = Point(490, 355);
+ poly108.ps[3] = Point(490, 315);
+ new ShapeRef(router, poly108, 108);
+
+ Polygon poly109(4);
+ poly109.ps[0] = Point(431, 365);
+ poly109.ps[1] = Point(431, 405);
+ poly109.ps[2] = Point(375, 405);
+ poly109.ps[3] = Point(375, 365);
+ new ShapeRef(router, poly109, 109);
+
+ Polygon poly110(4);
+ poly110.ps[0] = Point(553, 122);
+ poly110.ps[1] = Point(553, 162);
+ poly110.ps[2] = Point(497, 162);
+ poly110.ps[3] = Point(497, 122);
+ new ShapeRef(router, poly110, 110);
+
+ Polygon poly111(4);
+ poly111.ps[0] = Point(546, 245);
+ poly111.ps[1] = Point(546, 285);
+ poly111.ps[2] = Point(490, 285);
+ poly111.ps[3] = Point(490, 245);
+ new ShapeRef(router, poly111, 111);
+
+ Polygon poly112(4);
+ poly112.ps[0] = Point(422, 150);
+ poly112.ps[1] = Point(422, 190);
+ poly112.ps[2] = Point(366, 190);
+ poly112.ps[3] = Point(366, 150);
+ new ShapeRef(router, poly112, 112);
+
+ Polygon poly113(4);
+ poly113.ps[0] = Point(404, 229);
+ poly113.ps[1] = Point(404, 269);
+ poly113.ps[2] = Point(348, 269);
+ poly113.ps[3] = Point(348, 229);
+ new ShapeRef(router, poly113, 113);
+
+ Polygon poly114(4);
+ poly114.ps[0] = Point(249, 210);
+ poly114.ps[1] = Point(249, 250);
+ poly114.ps[2] = Point(193, 250);
+ poly114.ps[3] = Point(193, 210);
+ new ShapeRef(router, poly114, 114);
+
+ Polygon poly115(4);
+ poly115.ps[0] = Point(249, 229);
+ poly115.ps[1] = Point(249, 269);
+ poly115.ps[2] = Point(193, 269);
+ poly115.ps[3] = Point(193, 229);
+ new ShapeRef(router, poly115, 115);
+
+ Polygon poly116(4);
+ poly116.ps[0] = Point(420, 246);
+ poly116.ps[1] = Point(420, 286);
+ poly116.ps[2] = Point(364, 286);
+ poly116.ps[3] = Point(364, 246);
+ new ShapeRef(router, poly116, 116);
+
+ Polygon poly117(4);
+ poly117.ps[0] = Point(246, 246);
+ poly117.ps[1] = Point(246, 286);
+ poly117.ps[2] = Point(190, 286);
+ poly117.ps[3] = Point(190, 246);
+ new ShapeRef(router, poly117, 117);
+
+ Polygon poly118(4);
+ poly118.ps[0] = Point(120, 241);
+ poly118.ps[1] = Point(120, 281);
+ poly118.ps[2] = Point(64, 281);
+ poly118.ps[3] = Point(64, 241);
+ new ShapeRef(router, poly118, 118);
+
+ Polygon poly119(4);
+ poly119.ps[0] = Point(249, 154);
+ poly119.ps[1] = Point(249, 194);
+ poly119.ps[2] = Point(193, 194);
+ poly119.ps[3] = Point(193, 154);
+ new ShapeRef(router, poly119, 119);
+
+ Polygon poly120(4);
+ poly120.ps[0] = Point(249, 135);
+ poly120.ps[1] = Point(249, 175);
+ poly120.ps[2] = Point(193, 175);
+ poly120.ps[3] = Point(193, 135);
+ new ShapeRef(router, poly120, 120);
+
+ Polygon poly121(4);
+ poly121.ps[0] = Point(317, 213);
+ poly121.ps[1] = Point(317, 253);
+ poly121.ps[2] = Point(261, 253);
+ poly121.ps[3] = Point(261, 213);
+ new ShapeRef(router, poly121, 121);
+
+ Polygon poly122(4);
+ poly122.ps[0] = Point(344, 81);
+ poly122.ps[1] = Point(344, 121);
+ poly122.ps[2] = Point(288, 121);
+ poly122.ps[3] = Point(288, 81);
+ new ShapeRef(router, poly122, 122);
+
+ Polygon poly123(4);
+ poly123.ps[0] = Point(344, 160);
+ poly123.ps[1] = Point(344, 200);
+ poly123.ps[2] = Point(288, 200);
+ poly123.ps[3] = Point(288, 160);
+ new ShapeRef(router, poly123, 123);
+
+ Polygon poly124(4);
+ poly124.ps[0] = Point(263, 835);
+ poly124.ps[1] = Point(263, 875);
+ poly124.ps[2] = Point(207, 875);
+ poly124.ps[3] = Point(207, 835);
+ new ShapeRef(router, poly124, 124);
+
+ Polygon poly125(4);
+ poly125.ps[0] = Point(422, 533);
+ poly125.ps[1] = Point(422, 573);
+ poly125.ps[2] = Point(366, 573);
+ poly125.ps[3] = Point(366, 533);
+ new ShapeRef(router, poly125, 125);
+
+ Polygon poly126(4);
+ poly126.ps[0] = Point(249, 173);
+ poly126.ps[1] = Point(249, 213);
+ poly126.ps[2] = Point(193, 213);
+ poly126.ps[3] = Point(193, 173);
+ new ShapeRef(router, poly126, 126);
+
+ Polygon poly127(4);
+ poly127.ps[0] = Point(249, 248);
+ poly127.ps[1] = Point(249, 288);
+ poly127.ps[2] = Point(193, 288);
+ poly127.ps[3] = Point(193, 248);
+ new ShapeRef(router, poly127, 127);
+
+ Polygon poly128(4);
+ poly128.ps[0] = Point(182, 287);
+ poly128.ps[1] = Point(182, 327);
+ poly128.ps[2] = Point(126, 327);
+ poly128.ps[3] = Point(126, 287);
+ new ShapeRef(router, poly128, 128);
+
+ Polygon poly129(4);
+ poly129.ps[0] = Point(182, 413);
+ poly129.ps[1] = Point(182, 453);
+ poly129.ps[2] = Point(126, 453);
+ poly129.ps[3] = Point(126, 413);
+ new ShapeRef(router, poly129, 129);
+
+ Polygon poly130(4);
+ poly130.ps[0] = Point(292, 286);
+ poly130.ps[1] = Point(292, 326);
+ poly130.ps[2] = Point(236, 326);
+ poly130.ps[3] = Point(236, 286);
+ new ShapeRef(router, poly130, 130);
+
+ Polygon poly131(4);
+ poly131.ps[0] = Point(292, 412);
+ poly131.ps[1] = Point(292, 452);
+ poly131.ps[2] = Point(236, 452);
+ poly131.ps[3] = Point(236, 412);
+ new ShapeRef(router, poly131, 131);
+
+ Polygon poly132(4);
+ poly132.ps[0] = Point(205, 653);
+ poly132.ps[1] = Point(205, 693);
+ poly132.ps[2] = Point(149, 693);
+ poly132.ps[3] = Point(149, 653);
+ new ShapeRef(router, poly132, 132);
+
+ Polygon poly133(4);
+ poly133.ps[0] = Point(440, 891);
+ poly133.ps[1] = Point(440, 931);
+ poly133.ps[2] = Point(384, 931);
+ poly133.ps[3] = Point(384, 891);
+ new ShapeRef(router, poly133, 133);
+
+ Polygon poly134(4);
+ poly134.ps[0] = Point(205, 674);
+ poly134.ps[1] = Point(205, 714);
+ poly134.ps[2] = Point(149, 714);
+ poly134.ps[3] = Point(149, 674);
+ new ShapeRef(router, poly134, 134);
+
+ Polygon poly135(4);
+ poly135.ps[0] = Point(488, 991);
+ poly135.ps[1] = Point(488, 1031);
+ poly135.ps[2] = Point(432, 1031);
+ poly135.ps[3] = Point(432, 991);
+ new ShapeRef(router, poly135, 135);
+
+ Polygon poly136(4);
+ poly136.ps[0] = Point(571, 461);
+ poly136.ps[1] = Point(571, 501);
+ poly136.ps[2] = Point(515, 501);
+ poly136.ps[3] = Point(515, 461);
+ new ShapeRef(router, poly136, 136);
+
+ Polygon poly137(4);
+ poly137.ps[0] = Point(583, 452);
+ poly137.ps[1] = Point(583, 492);
+ poly137.ps[2] = Point(527, 492);
+ poly137.ps[3] = Point(527, 452);
+ new ShapeRef(router, poly137, 137);
+
+ Polygon poly138(4);
+ poly138.ps[0] = Point(556, 571);
+ poly138.ps[1] = Point(556, 611);
+ poly138.ps[2] = Point(500, 611);
+ poly138.ps[3] = Point(500, 571);
+ new ShapeRef(router, poly138, 138);
+
+ Polygon poly139(4);
+ poly139.ps[0] = Point(290, 722);
+ poly139.ps[1] = Point(290, 762);
+ poly139.ps[2] = Point(234, 762);
+ poly139.ps[3] = Point(234, 722);
+ new ShapeRef(router, poly139, 139);
+
+ Polygon poly140(4);
+ poly140.ps[0] = Point(595, 502);
+ poly140.ps[1] = Point(595, 542);
+ poly140.ps[2] = Point(539, 542);
+ poly140.ps[3] = Point(539, 502);
+ new ShapeRef(router, poly140, 140);
+
+ Polygon poly141(4);
+ poly141.ps[0] = Point(438, 613);
+ poly141.ps[1] = Point(438, 653);
+ poly141.ps[2] = Point(382, 653);
+ poly141.ps[3] = Point(382, 613);
+ new ShapeRef(router, poly141, 141);
+
+ Polygon poly142(4);
+ poly142.ps[0] = Point(439, 449);
+ poly142.ps[1] = Point(439, 489);
+ poly142.ps[2] = Point(383, 489);
+ poly142.ps[3] = Point(383, 449);
+ new ShapeRef(router, poly142, 142);
+
+ ConnRef *connRef143 = new ConnRef(router, 143);
+ ConnEnd srcPt143(Point(262, 940), 15);
+ connRef143->setSourceEndpoint(srcPt143);
+ ConnEnd dstPt143(Point(119, 951), 15);
+ connRef143->setDestEndpoint(dstPt143);
+ connRef143->setRoutingType((ConnType)2);
+
+ ConnRef *connRef144 = new ConnRef(router, 144);
+ ConnEnd srcPt144(Point(262, 940), 15);
+ connRef144->setSourceEndpoint(srcPt144);
+ ConnEnd dstPt144(Point(351, 951), 15);
+ connRef144->setDestEndpoint(dstPt144);
+ connRef144->setRoutingType((ConnType)2);
+
+ ConnRef *connRef145 = new ConnRef(router, 145);
+ ConnEnd srcPt145(Point(119, 908), 15);
+ connRef145->setSourceEndpoint(srcPt145);
+ ConnEnd dstPt145(Point(119, 951), 15);
+ connRef145->setDestEndpoint(dstPt145);
+ connRef145->setRoutingType((ConnType)2);
+
+ ConnRef *connRef146 = new ConnRef(router, 146);
+ ConnEnd srcPt146(Point(119, 908), 15);
+ connRef146->setSourceEndpoint(srcPt146);
+ ConnEnd dstPt146(Point(119, 861), 15);
+ connRef146->setDestEndpoint(dstPt146);
+ connRef146->setRoutingType((ConnType)2);
+
+ ConnRef *connRef147 = new ConnRef(router, 147);
+ ConnEnd srcPt147(Point(262, 961), 15);
+ connRef147->setSourceEndpoint(srcPt147);
+ ConnEnd dstPt147(Point(119, 951), 15);
+ connRef147->setDestEndpoint(dstPt147);
+ connRef147->setRoutingType((ConnType)2);
+
+ ConnRef *connRef148 = new ConnRef(router, 148);
+ ConnEnd srcPt148(Point(262, 961), 15);
+ connRef148->setSourceEndpoint(srcPt148);
+ ConnEnd dstPt148(Point(351, 951), 15);
+ connRef148->setDestEndpoint(dstPt148);
+ connRef148->setRoutingType((ConnType)2);
+
+ ConnRef *connRef149 = new ConnRef(router, 149);
+ ConnEnd srcPt149(Point(629, 336), 15);
+ connRef149->setSourceEndpoint(srcPt149);
+ ConnEnd dstPt149(Point(456, 446), 15);
+ connRef149->setDestEndpoint(dstPt149);
+ connRef149->setRoutingType((ConnType)2);
+
+ ConnRef *connRef150 = new ConnRef(router, 150);
+ ConnEnd srcPt150(Point(351, 909), 15);
+ connRef150->setSourceEndpoint(srcPt150);
+ ConnEnd dstPt150(Point(351, 951), 15);
+ connRef150->setDestEndpoint(dstPt150);
+ connRef150->setRoutingType((ConnType)2);
+
+ ConnRef *connRef151 = new ConnRef(router, 151);
+ ConnEnd srcPt151(Point(460, 940), 15);
+ connRef151->setSourceEndpoint(srcPt151);
+ ConnEnd dstPt151(Point(351, 951), 15);
+ connRef151->setDestEndpoint(dstPt151);
+ connRef151->setRoutingType((ConnType)2);
+
+ ConnRef *connRef152 = new ConnRef(router, 152);
+ ConnEnd srcPt152(Point(412, 940), 15);
+ connRef152->setSourceEndpoint(srcPt152);
+ ConnEnd dstPt152(Point(351, 951), 15);
+ connRef152->setDestEndpoint(dstPt152);
+ connRef152->setRoutingType((ConnType)2);
+
+ ConnRef *connRef153 = new ConnRef(router, 153);
+ ConnEnd srcPt153(Point(404, 871), 15);
+ connRef153->setSourceEndpoint(srcPt153);
+ ConnEnd dstPt153(Point(351, 861), 15);
+ connRef153->setDestEndpoint(dstPt153);
+ connRef153->setRoutingType((ConnType)2);
+
+ ConnRef *connRef154 = new ConnRef(router, 154);
+ ConnEnd srcPt154(Point(404, 850), 15);
+ connRef154->setSourceEndpoint(srcPt154);
+ ConnEnd dstPt154(Point(351, 861), 15);
+ connRef154->setDestEndpoint(dstPt154);
+ connRef154->setRoutingType((ConnType)2);
+
+ ConnRef *connRef155 = new ConnRef(router, 155);
+ ConnEnd srcPt155(Point(292, 862), 15);
+ connRef155->setSourceEndpoint(srcPt155);
+ ConnEnd dstPt155(Point(351, 818), 15);
+ connRef155->setDestEndpoint(dstPt155);
+ connRef155->setRoutingType((ConnType)2);
+
+ ConnRef *connRef156 = new ConnRef(router, 156);
+ ConnEnd srcPt156(Point(292, 862), 15);
+ connRef156->setSourceEndpoint(srcPt156);
+ ConnEnd dstPt156(Point(238, 861), 15);
+ connRef156->setDestEndpoint(dstPt156);
+ connRef156->setRoutingType((ConnType)2);
+
+ ConnRef *connRef157 = new ConnRef(router, 157);
+ ConnEnd srcPt157(Point(183, 862), 15);
+ connRef157->setSourceEndpoint(srcPt157);
+ ConnEnd dstPt157(Point(119, 861), 15);
+ connRef157->setDestEndpoint(dstPt157);
+ connRef157->setRoutingType((ConnType)2);
+
+ ConnRef *connRef158 = new ConnRef(router, 158);
+ ConnEnd srcPt158(Point(183, 862), 15);
+ connRef158->setSourceEndpoint(srcPt158);
+ ConnEnd dstPt158(Point(238, 861), 15);
+ connRef158->setDestEndpoint(dstPt158);
+ connRef158->setRoutingType((ConnType)2);
+
+ ConnRef *connRef159 = new ConnRef(router, 159);
+ ConnEnd srcPt159(Point(183, 862), 15);
+ connRef159->setSourceEndpoint(srcPt159);
+ ConnEnd dstPt159(Point(185, 904), 15);
+ connRef159->setDestEndpoint(dstPt159);
+ connRef159->setRoutingType((ConnType)2);
+
+ ConnRef *connRef160 = new ConnRef(router, 160);
+ ConnEnd srcPt160(Point(531, 861), 15);
+ connRef160->setSourceEndpoint(srcPt160);
+ ConnEnd dstPt160(Point(600, 861), 15);
+ connRef160->setDestEndpoint(dstPt160);
+ connRef160->setRoutingType((ConnType)2);
+
+ ConnRef *connRef161 = new ConnRef(router, 161);
+ ConnEnd srcPt161(Point(531, 861), 15);
+ connRef161->setSourceEndpoint(srcPt161);
+ ConnEnd dstPt161(Point(456, 861), 15);
+ connRef161->setDestEndpoint(dstPt161);
+ connRef161->setRoutingType((ConnType)2);
+
+ ConnRef *connRef162 = new ConnRef(router, 162);
+ ConnEnd srcPt162(Point(456, 767), 15);
+ connRef162->setSourceEndpoint(srcPt162);
+ ConnEnd dstPt162(Point(456, 861), 15);
+ connRef162->setDestEndpoint(dstPt162);
+ connRef162->setRoutingType((ConnType)2);
+
+ ConnRef *connRef163 = new ConnRef(router, 163);
+ ConnEnd srcPt163(Point(456, 698), 15);
+ connRef163->setSourceEndpoint(srcPt163);
+ ConnEnd dstPt163(Point(456, 662), 15);
+ connRef163->setDestEndpoint(dstPt163);
+ connRef163->setRoutingType((ConnType)2);
+
+ ConnRef *connRef164 = new ConnRef(router, 164);
+ ConnEnd srcPt164(Point(456, 698), 15);
+ connRef164->setSourceEndpoint(srcPt164);
+ ConnEnd dstPt164(Point(456, 734), 15);
+ connRef164->setDestEndpoint(dstPt164);
+ connRef164->setRoutingType((ConnType)2);
+
+ ConnRef *connRef165 = new ConnRef(router, 165);
+ ConnEnd srcPt165(Point(457, 626), 15);
+ connRef165->setSourceEndpoint(srcPt165);
+ ConnEnd dstPt165(Point(456, 662), 15);
+ connRef165->setDestEndpoint(dstPt165);
+ connRef165->setRoutingType((ConnType)2);
+
+ ConnRef *connRef166 = new ConnRef(router, 166);
+ ConnEnd srcPt166(Point(457, 626), 15);
+ connRef166->setSourceEndpoint(srcPt166);
+ ConnEnd dstPt166(Point(456, 590), 15);
+ connRef166->setDestEndpoint(dstPt166);
+ connRef166->setRoutingType((ConnType)2);
+
+ ConnRef *connRef167 = new ConnRef(router, 167);
+ ConnEnd srcPt167(Point(431, 481), 15);
+ connRef167->setSourceEndpoint(srcPt167);
+ ConnEnd dstPt167(Point(456, 518), 15);
+ connRef167->setDestEndpoint(dstPt167);
+ connRef167->setRoutingType((ConnType)2);
+
+ ConnRef *connRef168 = new ConnRef(router, 168);
+ ConnEnd srcPt168(Point(431, 481), 15);
+ connRef168->setSourceEndpoint(srcPt168);
+ ConnEnd dstPt168(Point(456, 446), 15);
+ connRef168->setDestEndpoint(dstPt168);
+ connRef168->setRoutingType((ConnType)2);
+
+ ConnRef *connRef169 = new ConnRef(router, 169);
+ ConnEnd srcPt169(Point(376, 447), 15);
+ connRef169->setSourceEndpoint(srcPt169);
+ ConnEnd dstPt169(Point(305, 446), 15);
+ connRef169->setDestEndpoint(dstPt169);
+ connRef169->setRoutingType((ConnType)2);
+
+ ConnRef *connRef170 = new ConnRef(router, 170);
+ ConnEnd srcPt170(Point(376, 447), 15);
+ connRef170->setSourceEndpoint(srcPt170);
+ ConnEnd dstPt170(Point(456, 446), 15);
+ connRef170->setDestEndpoint(dstPt170);
+ connRef170->setRoutingType((ConnType)2);
+
+ ConnRef *connRef171 = new ConnRef(router, 171);
+ ConnEnd srcPt171(Point(456, 401), 15);
+ connRef171->setSourceEndpoint(srcPt171);
+ ConnEnd dstPt171(Point(305, 446), 15);
+ connRef171->setDestEndpoint(dstPt171);
+ connRef171->setRoutingType((ConnType)2);
+
+ ConnRef *connRef172 = new ConnRef(router, 172);
+ ConnEnd srcPt172(Point(456, 401), 15);
+ connRef172->setSourceEndpoint(srcPt172);
+ ConnEnd dstPt172(Point(456, 371), 15);
+ connRef172->setDestEndpoint(dstPt172);
+ connRef172->setRoutingType((ConnType)2);
+
+ ConnRef *connRef173 = new ConnRef(router, 173);
+ ConnEnd srcPt173(Point(456, 401), 15);
+ connRef173->setSourceEndpoint(srcPt173);
+ ConnEnd dstPt173(Point(456, 446), 15);
+ connRef173->setDestEndpoint(dstPt173);
+ connRef173->setRoutingType((ConnType)2);
+
+ ConnRef *connRef174 = new ConnRef(router, 174);
+ ConnEnd srcPt174(Point(456, 335), 15);
+ connRef174->setSourceEndpoint(srcPt174);
+ ConnEnd dstPt174(Point(456, 371), 15);
+ connRef174->setDestEndpoint(dstPt174);
+ connRef174->setRoutingType((ConnType)2);
+
+ ConnRef *connRef175 = new ConnRef(router, 175);
+ ConnEnd srcPt175(Point(403, 335), 15);
+ connRef175->setSourceEndpoint(srcPt175);
+ ConnEnd dstPt175(Point(456, 301), 15);
+ connRef175->setDestEndpoint(dstPt175);
+ connRef175->setRoutingType((ConnType)2);
+
+ ConnRef *connRef176 = new ConnRef(router, 176);
+ ConnEnd srcPt176(Point(525, 192), 15);
+ connRef176->setSourceEndpoint(srcPt176);
+ ConnEnd dstPt176(Point(456, 228), 15);
+ connRef176->setDestEndpoint(dstPt176);
+ connRef176->setRoutingType((ConnType)2);
+
+ ConnRef *connRef177 = new ConnRef(router, 177);
+ ConnEnd srcPt177(Point(456, 265), 15);
+ connRef177->setSourceEndpoint(srcPt177);
+ ConnEnd dstPt177(Point(456, 228), 15);
+ connRef177->setDestEndpoint(dstPt177);
+ connRef177->setRoutingType((ConnType)2);
+
+ ConnRef *connRef178 = new ConnRef(router, 178);
+ ConnEnd srcPt178(Point(456, 265), 15);
+ connRef178->setSourceEndpoint(srcPt178);
+ ConnEnd dstPt178(Point(456, 301), 15);
+ connRef178->setDestEndpoint(dstPt178);
+ connRef178->setRoutingType((ConnType)2);
+
+ ConnRef *connRef179 = new ConnRef(router, 179);
+ ConnEnd srcPt179(Point(456, 170), 15);
+ connRef179->setSourceEndpoint(srcPt179);
+ ConnEnd dstPt179(Point(456, 141), 15);
+ connRef179->setDestEndpoint(dstPt179);
+ connRef179->setRoutingType((ConnType)2);
+
+ ConnRef *connRef180 = new ConnRef(router, 180);
+ ConnEnd srcPt180(Point(456, 170), 15);
+ connRef180->setSourceEndpoint(srcPt180);
+ ConnEnd dstPt180(Point(456, 228), 15);
+ connRef180->setDestEndpoint(dstPt180);
+ connRef180->setRoutingType((ConnType)2);
+
+ ConnRef *connRef181 = new ConnRef(router, 181);
+ ConnEnd srcPt181(Point(376, 299), 15);
+ connRef181->setSourceEndpoint(srcPt181);
+ ConnEnd dstPt181(Point(305, 299), 15);
+ connRef181->setDestEndpoint(dstPt181);
+ connRef181->setRoutingType((ConnType)2);
+
+ ConnRef *connRef182 = new ConnRef(router, 182);
+ ConnEnd srcPt182(Point(376, 299), 15);
+ connRef182->setSourceEndpoint(srcPt182);
+ ConnEnd dstPt182(Point(456, 301), 15);
+ connRef182->setDestEndpoint(dstPt182);
+ connRef182->setRoutingType((ConnType)2);
+
+ ConnRef *connRef183 = new ConnRef(router, 183);
+ ConnEnd srcPt183(Point(221, 280), 15);
+ connRef183->setSourceEndpoint(srcPt183);
+ ConnEnd dstPt183(Point(154, 299), 15);
+ connRef183->setDestEndpoint(dstPt183);
+ connRef183->setRoutingType((ConnType)2);
+
+ ConnRef *connRef184 = new ConnRef(router, 184);
+ ConnEnd srcPt184(Point(221, 280), 15);
+ connRef184->setSourceEndpoint(srcPt184);
+ ConnEnd dstPt184(Point(305, 299), 15);
+ connRef184->setDestEndpoint(dstPt184);
+ connRef184->setRoutingType((ConnType)2);
+
+ ConnRef *connRef185 = new ConnRef(router, 185);
+ ConnEnd srcPt185(Point(221, 299), 15);
+ connRef185->setSourceEndpoint(srcPt185);
+ ConnEnd dstPt185(Point(154, 299), 15);
+ connRef185->setDestEndpoint(dstPt185);
+ connRef185->setRoutingType((ConnType)2);
+
+ ConnRef *connRef186 = new ConnRef(router, 186);
+ ConnEnd srcPt186(Point(221, 299), 15);
+ connRef186->setSourceEndpoint(srcPt186);
+ ConnEnd dstPt186(Point(305, 299), 15);
+ connRef186->setDestEndpoint(dstPt186);
+ connRef186->setRoutingType((ConnType)2);
+
+ ConnRef *connRef187 = new ConnRef(router, 187);
+ ConnEnd srcPt187(Point(330, 266), 15);
+ connRef187->setSourceEndpoint(srcPt187);
+ ConnEnd dstPt187(Point(305, 299), 15);
+ connRef187->setDestEndpoint(dstPt187);
+ connRef187->setRoutingType((ConnType)2);
+
+ ConnRef *connRef188 = new ConnRef(router, 188);
+ ConnEnd srcPt188(Point(330, 266), 15);
+ connRef188->setSourceEndpoint(srcPt188);
+ ConnEnd dstPt188(Point(456, 228), 15);
+ connRef188->setDestEndpoint(dstPt188);
+ connRef188->setRoutingType((ConnType)2);
+
+ ConnRef *connRef189 = new ConnRef(router, 189);
+ ConnEnd srcPt189(Point(280, 266), 15);
+ connRef189->setSourceEndpoint(srcPt189);
+ ConnEnd dstPt189(Point(305, 299), 15);
+ connRef189->setDestEndpoint(dstPt189);
+ connRef189->setRoutingType((ConnType)2);
+
+ ConnRef *connRef190 = new ConnRef(router, 190);
+ ConnEnd srcPt190(Point(280, 266), 15);
+ connRef190->setSourceEndpoint(srcPt190);
+ ConnEnd dstPt190(Point(456, 228), 15);
+ connRef190->setDestEndpoint(dstPt190);
+ connRef190->setRoutingType((ConnType)2);
+
+ ConnRef *connRef191 = new ConnRef(router, 191);
+ ConnEnd srcPt191(Point(154, 261), 15);
+ connRef191->setSourceEndpoint(srcPt191);
+ ConnEnd dstPt191(Point(154, 226), 15);
+ connRef191->setDestEndpoint(dstPt191);
+ connRef191->setRoutingType((ConnType)2);
+
+ ConnRef *connRef192 = new ConnRef(router, 192);
+ ConnEnd srcPt192(Point(154, 261), 15);
+ connRef192->setSourceEndpoint(srcPt192);
+ ConnEnd dstPt192(Point(154, 299), 15);
+ connRef192->setDestEndpoint(dstPt192);
+ connRef192->setRoutingType((ConnType)2);
+
+ ConnRef *connRef193 = new ConnRef(router, 193);
+ ConnEnd srcPt193(Point(221, 224), 15);
+ connRef193->setSourceEndpoint(srcPt193);
+ ConnEnd dstPt193(Point(456, 228), 15);
+ connRef193->setDestEndpoint(dstPt193);
+ connRef193->setRoutingType((ConnType)2);
+
+ ConnRef *connRef194 = new ConnRef(router, 194);
+ ConnEnd srcPt194(Point(221, 205), 15);
+ connRef194->setSourceEndpoint(srcPt194);
+ ConnEnd dstPt194(Point(456, 228), 15);
+ connRef194->setDestEndpoint(dstPt194);
+ connRef194->setRoutingType((ConnType)2);
+
+ ConnRef *connRef195 = new ConnRef(router, 195);
+ ConnEnd srcPt195(Point(289, 183), 15);
+ connRef195->setSourceEndpoint(srcPt195);
+ ConnEnd dstPt195(Point(154, 226), 15);
+ connRef195->setDestEndpoint(dstPt195);
+ connRef195->setRoutingType((ConnType)2);
+
+ ConnRef *connRef196 = new ConnRef(router, 196);
+ ConnEnd srcPt196(Point(289, 183), 15);
+ connRef196->setSourceEndpoint(srcPt196);
+ ConnEnd dstPt196(Point(456, 228), 15);
+ connRef196->setDestEndpoint(dstPt196);
+ connRef196->setRoutingType((ConnType)2);
+
+ ConnRef *connRef197 = new ConnRef(router, 197);
+ ConnEnd srcPt197(Point(316, 151), 15);
+ connRef197->setSourceEndpoint(srcPt197);
+ ConnEnd dstPt197(Point(154, 226), 15);
+ connRef197->setDestEndpoint(dstPt197);
+ connRef197->setRoutingType((ConnType)2);
+
+ ConnRef *connRef198 = new ConnRef(router, 198);
+ ConnEnd srcPt198(Point(316, 130), 15);
+ connRef198->setSourceEndpoint(srcPt198);
+ ConnEnd dstPt198(Point(154, 226), 15);
+ connRef198->setDestEndpoint(dstPt198);
+ connRef198->setRoutingType((ConnType)2);
+
+ ConnRef *connRef199 = new ConnRef(router, 199);
+ ConnEnd srcPt199(Point(235, 905), 15);
+ connRef199->setSourceEndpoint(srcPt199);
+ ConnEnd dstPt199(Point(287, 904), 15);
+ connRef199->setDestEndpoint(dstPt199);
+ connRef199->setRoutingType((ConnType)2);
+
+ ConnRef *connRef200 = new ConnRef(router, 200);
+ ConnEnd srcPt200(Point(456, 553), 15);
+ connRef200->setSourceEndpoint(srcPt200);
+ ConnEnd dstPt200(Point(456, 590), 15);
+ connRef200->setDestEndpoint(dstPt200);
+ connRef200->setRoutingType((ConnType)2);
+
+ ConnRef *connRef201 = new ConnRef(router, 201);
+ ConnEnd srcPt201(Point(456, 553), 15);
+ connRef201->setSourceEndpoint(srcPt201);
+ ConnEnd dstPt201(Point(456, 518), 15);
+ connRef201->setDestEndpoint(dstPt201);
+ connRef201->setRoutingType((ConnType)2);
+
+ ConnRef *connRef202 = new ConnRef(router, 202);
+ ConnEnd srcPt202(Point(221, 243), 15);
+ connRef202->setSourceEndpoint(srcPt202);
+ ConnEnd dstPt202(Point(456, 228), 15);
+ connRef202->setDestEndpoint(dstPt202);
+ connRef202->setRoutingType((ConnType)2);
+
+ ConnRef *connRef203 = new ConnRef(router, 203);
+ ConnEnd srcPt203(Point(221, 318), 15);
+ connRef203->setSourceEndpoint(srcPt203);
+ ConnEnd dstPt203(Point(305, 299), 15);
+ connRef203->setDestEndpoint(dstPt203);
+ connRef203->setRoutingType((ConnType)2);
+
+ ConnRef *connRef204 = new ConnRef(router, 204);
+ ConnEnd srcPt204(Point(154, 357), 15);
+ connRef204->setSourceEndpoint(srcPt204);
+ ConnEnd dstPt204(Point(212, 356), 15);
+ connRef204->setDestEndpoint(dstPt204);
+ connRef204->setRoutingType((ConnType)2);
+
+ ConnRef *connRef205 = new ConnRef(router, 205);
+ ConnEnd srcPt205(Point(154, 383), 15);
+ connRef205->setSourceEndpoint(srcPt205);
+ ConnEnd dstPt205(Point(212, 382), 15);
+ connRef205->setDestEndpoint(dstPt205);
+ connRef205->setRoutingType((ConnType)2);
+
+ ConnRef *connRef206 = new ConnRef(router, 206);
+ ConnEnd srcPt206(Point(264, 356), 15);
+ connRef206->setSourceEndpoint(srcPt206);
+ ConnEnd dstPt206(Point(305, 299), 15);
+ connRef206->setDestEndpoint(dstPt206);
+ connRef206->setRoutingType((ConnType)2);
+
+ ConnRef *connRef207 = new ConnRef(router, 207);
+ ConnEnd srcPt207(Point(264, 382), 15);
+ connRef207->setSourceEndpoint(srcPt207);
+ ConnEnd dstPt207(Point(305, 299), 15);
+ connRef207->setDestEndpoint(dstPt207);
+ connRef207->setRoutingType((ConnType)2);
+
+ ConnRef *connRef208 = new ConnRef(router, 208);
+ ConnEnd srcPt208(Point(574, 193), 15);
+ connRef208->setSourceEndpoint(srcPt208);
+ ConnEnd dstPt208(Point(525, 192), 15);
+ connRef208->setDestEndpoint(dstPt208);
+ connRef208->setRoutingType((ConnType)2);
+
+ ConnRef *connRef209 = new ConnRef(router, 209);
+ ConnEnd srcPt209(Point(456, 141), 15);
+ connRef209->setSourceEndpoint(srcPt209);
+ ConnEnd dstPt209(Point(458, 74), 15);
+ connRef209->setDestEndpoint(dstPt209);
+ connRef209->setRoutingType((ConnType)2);
+
+ ConnRef *connRef210 = new ConnRef(router, 210);
+ ConnEnd srcPt210(Point(456, 662), 15);
+ connRef210->setSourceEndpoint(srcPt210);
+ ConnEnd dstPt210(Point(629, 336), 15);
+ connRef210->setDestEndpoint(dstPt210);
+ connRef210->setRoutingType((ConnType)2);
+
+ ConnRef *connRef211 = new ConnRef(router, 211);
+ ConnEnd srcPt211(Point(154, 226), 15);
+ connRef211->setSourceEndpoint(srcPt211);
+ ConnEnd dstPt211(Point(221, 243), 15);
+ connRef211->setDestEndpoint(dstPt211);
+ connRef211->setRoutingType((ConnType)2);
+
+ ConnRef *connRef212 = new ConnRef(router, 212);
+ ConnEnd srcPt212(Point(221, 318), 15);
+ connRef212->setSourceEndpoint(srcPt212);
+ ConnEnd dstPt212(Point(154, 299), 15);
+ connRef212->setDestEndpoint(dstPt212);
+ connRef212->setRoutingType((ConnType)2);
+
+ ConnRef *connRef213 = new ConnRef(router, 213);
+ ConnEnd srcPt213(Point(456, 228), 15);
+ connRef213->setSourceEndpoint(srcPt213);
+ ConnEnd dstPt213(Point(629, 336), 15);
+ connRef213->setDestEndpoint(dstPt213);
+ connRef213->setRoutingType((ConnType)2);
+
+ ConnRef *connRef214 = new ConnRef(router, 214);
+ ConnEnd srcPt214(Point(456, 734), 15);
+ connRef214->setSourceEndpoint(srcPt214);
+ ConnEnd dstPt214(Point(49, 798), 15);
+ connRef214->setDestEndpoint(dstPt214);
+ connRef214->setRoutingType((ConnType)2);
+
+ ConnRef *connRef215 = new ConnRef(router, 215);
+ ConnEnd srcPt215(Point(177, 744), 15);
+ connRef215->setSourceEndpoint(srcPt215);
+ ConnEnd dstPt215(Point(456, 734), 15);
+ connRef215->setDestEndpoint(dstPt215);
+ connRef215->setRoutingType((ConnType)2);
+
+ ConnRef *connRef216 = new ConnRef(router, 216);
+ ConnEnd srcPt216(Point(456, 590), 15);
+ connRef216->setSourceEndpoint(srcPt216);
+ ConnEnd dstPt216(Point(278, 597), 15);
+ connRef216->setDestEndpoint(dstPt216);
+ connRef216->setRoutingType((ConnType)2);
+
+ ConnRef *connRef217 = new ConnRef(router, 217);
+ ConnEnd srcPt217(Point(555, 522), 15);
+ connRef217->setSourceEndpoint(srcPt217);
+ ConnEnd dstPt217(Point(456, 590), 15);
+ connRef217->setDestEndpoint(dstPt217);
+ connRef217->setRoutingType((ConnType)2);
+
+ ConnRef *connRef218 = new ConnRef(router, 218);
+ ConnEnd srcPt218(Point(528, 541), 15);
+ connRef218->setSourceEndpoint(srcPt218);
+ ConnEnd dstPt218(Point(456, 590), 15);
+ connRef218->setDestEndpoint(dstPt218);
+ connRef218->setRoutingType((ConnType)2);
+
+ ConnRef *connRef219 = new ConnRef(router, 219);
+ ConnEnd srcPt219(Point(505, 522), 15);
+ connRef219->setSourceEndpoint(srcPt219);
+ ConnEnd dstPt219(Point(456, 590), 15);
+ connRef219->setDestEndpoint(dstPt219);
+ connRef219->setRoutingType((ConnType)2);
+
+ ConnRef *connRef220 = new ConnRef(router, 220);
+ ConnEnd srcPt220(Point(481, 481), 15);
+ connRef220->setSourceEndpoint(srcPt220);
+ ConnEnd dstPt220(Point(456, 518), 15);
+ connRef220->setDestEndpoint(dstPt220);
+ connRef220->setRoutingType((ConnType)2);
+
+ ConnRef *connRef221 = new ConnRef(router, 221);
+ ConnEnd srcPt221(Point(411, 519), 15);
+ connRef221->setSourceEndpoint(srcPt221);
+ ConnEnd dstPt221(Point(456, 518), 15);
+ connRef221->setDestEndpoint(dstPt221);
+ connRef221->setRoutingType((ConnType)2);
+
+ ConnRef *connRef222 = new ConnRef(router, 222);
+ ConnEnd srcPt222(Point(600, 861), 15);
+ connRef222->setSourceEndpoint(srcPt222);
+ ConnEnd dstPt222(Point(601, 917), 15);
+ connRef222->setDestEndpoint(dstPt222);
+ connRef222->setRoutingType((ConnType)2);
+
+ ConnRef *connRef223 = new ConnRef(router, 223);
+ ConnEnd srcPt223(Point(460, 940), 15);
+ connRef223->setSourceEndpoint(srcPt223);
+ ConnEnd dstPt223(Point(523, 951), 15);
+ connRef223->setDestEndpoint(dstPt223);
+ connRef223->setRoutingType((ConnType)2);
+
+ ConnRef *connRef224 = new ConnRef(router, 224);
+ ConnEnd srcPt224(Point(412, 940), 15);
+ connRef224->setSourceEndpoint(srcPt224);
+ ConnEnd dstPt224(Point(523, 951), 15);
+ connRef224->setDestEndpoint(dstPt224);
+ connRef224->setRoutingType((ConnType)2);
+
+ ConnRef *connRef225 = new ConnRef(router, 225);
+ ConnEnd srcPt225(Point(523, 951), 15);
+ connRef225->setSourceEndpoint(srcPt225);
+ ConnEnd dstPt225(Point(412, 961), 15);
+ connRef225->setDestEndpoint(dstPt225);
+ connRef225->setRoutingType((ConnType)2);
+
+ ConnRef *connRef226 = new ConnRef(router, 226);
+ ConnEnd srcPt226(Point(460, 961), 15);
+ connRef226->setSourceEndpoint(srcPt226);
+ ConnEnd dstPt226(Point(523, 951), 15);
+ connRef226->setDestEndpoint(dstPt226);
+ connRef226->setRoutingType((ConnType)2);
+
+ ConnRef *connRef227 = new ConnRef(router, 227);
+ ConnEnd srcPt227(Point(456, 861), 15);
+ connRef227->setSourceEndpoint(srcPt227);
+ ConnEnd dstPt227(Point(629, 336), 15);
+ connRef227->setDestEndpoint(dstPt227);
+ connRef227->setRoutingType((ConnType)2);
+
+ ConnRef *connRef228 = new ConnRef(router, 228);
+ ConnEnd srcPt228(Point(456, 861), 15);
+ connRef228->setSourceEndpoint(srcPt228);
+ ConnEnd dstPt228(Point(49, 798), 15);
+ connRef228->setDestEndpoint(dstPt228);
+ connRef228->setRoutingType((ConnType)2);
+
+ ConnRef *connRef229 = new ConnRef(router, 229);
+ ConnEnd srcPt229(Point(262, 792), 15);
+ connRef229->setSourceEndpoint(srcPt229);
+ ConnEnd dstPt229(Point(456, 861), 15);
+ connRef229->setDestEndpoint(dstPt229);
+ connRef229->setRoutingType((ConnType)2);
+
+ ConnRef *connRef230 = new ConnRef(router, 230);
+ ConnEnd srcPt230(Point(351, 861), 15);
+ connRef230->setSourceEndpoint(srcPt230);
+ ConnEnd dstPt230(Point(351, 909), 15);
+ connRef230->setDestEndpoint(dstPt230);
+ connRef230->setRoutingType((ConnType)2);
+
+ ConnRef *connRef231 = new ConnRef(router, 231);
+ ConnEnd srcPt231(Point(351, 818), 15);
+ connRef231->setSourceEndpoint(srcPt231);
+ ConnEnd dstPt231(Point(404, 871), 15);
+ connRef231->setDestEndpoint(dstPt231);
+ connRef231->setRoutingType((ConnType)2);
+
+ ConnRef *connRef232 = new ConnRef(router, 232);
+ ConnEnd srcPt232(Point(351, 818), 15);
+ connRef232->setSourceEndpoint(srcPt232);
+ ConnEnd dstPt232(Point(404, 850), 15);
+ connRef232->setDestEndpoint(dstPt232);
+ connRef232->setRoutingType((ConnType)2);
+
+ ConnRef *connRef233 = new ConnRef(router, 233);
+ ConnEnd srcPt233(Point(119, 861), 15);
+ connRef233->setSourceEndpoint(srcPt233);
+ ConnEnd dstPt233(Point(49, 798), 15);
+ connRef233->setDestEndpoint(dstPt233);
+ connRef233->setRoutingType((ConnType)2);
+
+ ConnRef *connRef234 = new ConnRef(router, 234);
+ ConnEnd srcPt234(Point(262, 792), 15);
+ connRef234->setSourceEndpoint(srcPt234);
+ ConnEnd dstPt234(Point(119, 861), 15);
+ connRef234->setDestEndpoint(dstPt234);
+ connRef234->setRoutingType((ConnType)2);
+
+ ConnRef *connRef235 = new ConnRef(router, 235);
+ ConnEnd srcPt235(Point(412, 961), 15);
+ connRef235->setSourceEndpoint(srcPt235);
+ ConnEnd dstPt235(Point(351, 951), 15);
+ connRef235->setDestEndpoint(dstPt235);
+ connRef235->setRoutingType((ConnType)2);
+
+ ConnRef *connRef236 = new ConnRef(router, 236);
+ ConnEnd srcPt236(Point(460, 961), 15);
+ connRef236->setSourceEndpoint(srcPt236);
+ ConnEnd dstPt236(Point(351, 951), 15);
+ connRef236->setDestEndpoint(dstPt236);
+ connRef236->setRoutingType((ConnType)2);
+
+ ConnRef *connRef237 = new ConnRef(router, 237);
+ ConnEnd srcPt237(Point(235, 905), 15);
+ connRef237->setSourceEndpoint(srcPt237);
+ ConnEnd dstPt237(Point(185, 904), 15);
+ connRef237->setDestEndpoint(dstPt237);
+ connRef237->setRoutingType((ConnType)2);
+
+ ConnRef *connRef238 = new ConnRef(router, 238);
+ ConnEnd srcPt238(Point(456, 371), 15);
+ connRef238->setSourceEndpoint(srcPt238);
+ ConnEnd dstPt238(Point(403, 335), 15);
+ connRef238->setDestEndpoint(dstPt238);
+ connRef238->setRoutingType((ConnType)2);
+
+ ConnRef *connRef239 = new ConnRef(router, 239);
+ ConnEnd srcPt239(Point(105, 356), 15);
+ connRef239->setSourceEndpoint(srcPt239);
+ ConnEnd dstPt239(Point(154, 357), 15);
+ connRef239->setDestEndpoint(dstPt239);
+ connRef239->setRoutingType((ConnType)2);
+
+ ConnRef *connRef240 = new ConnRef(router, 240);
+ ConnEnd srcPt240(Point(212, 356), 15);
+ connRef240->setSourceEndpoint(srcPt240);
+ ConnEnd dstPt240(Point(264, 356), 15);
+ connRef240->setDestEndpoint(dstPt240);
+ connRef240->setRoutingType((ConnType)2);
+
+ ConnRef *connRef241 = new ConnRef(router, 241);
+ ConnEnd srcPt241(Point(212, 382), 15);
+ connRef241->setSourceEndpoint(srcPt241);
+ ConnEnd dstPt241(Point(264, 382), 15);
+ connRef241->setDestEndpoint(dstPt241);
+ connRef241->setRoutingType((ConnType)2);
+
+ ConnRef *connRef242 = new ConnRef(router, 242);
+ ConnEnd srcPt242(Point(105, 382), 15);
+ connRef242->setSourceEndpoint(srcPt242);
+ ConnEnd dstPt242(Point(154, 383), 15);
+ connRef242->setDestEndpoint(dstPt242);
+ connRef242->setRoutingType((ConnType)2);
+
+ ConnRef *connRef243 = new ConnRef(router, 243);
+ ConnEnd srcPt243(Point(49, 798), 15);
+ connRef243->setSourceEndpoint(srcPt243);
+ ConnEnd dstPt243(Point(119, 734), 15);
+ connRef243->setDestEndpoint(dstPt243);
+ connRef243->setRoutingType((ConnType)2);
+
+ ConnRef *connRef244 = new ConnRef(router, 244);
+ ConnEnd srcPt244(Point(177, 723), 15);
+ connRef244->setSourceEndpoint(srcPt244);
+ ConnEnd dstPt244(Point(456, 734), 15);
+ connRef244->setDestEndpoint(dstPt244);
+ connRef244->setRoutingType((ConnType)2);
+
+ ConnRef *connRef245 = new ConnRef(router, 245);
+ ConnEnd srcPt245(Point(119, 734), 15);
+ connRef245->setSourceEndpoint(srcPt245);
+ ConnEnd dstPt245(Point(177, 723), 15);
+ connRef245->setDestEndpoint(dstPt245);
+ connRef245->setRoutingType((ConnType)2);
+
+ ConnRef *connRef246 = new ConnRef(router, 246);
+ ConnEnd srcPt246(Point(119, 734), 15);
+ connRef246->setSourceEndpoint(srcPt246);
+ ConnEnd dstPt246(Point(177, 744), 15);
+ connRef246->setDestEndpoint(dstPt246);
+ connRef246->setRoutingType((ConnType)2);
+
+ ConnRef *connRef247 = new ConnRef(router, 247);
+ ConnEnd srcPt247(Point(481, 481), 15);
+ connRef247->setSourceEndpoint(srcPt247);
+ ConnEnd dstPt247(Point(456, 446), 15);
+ connRef247->setDestEndpoint(dstPt247);
+ connRef247->setRoutingType((ConnType)2);
+
+ ConnRef *connRef248 = new ConnRef(router, 248);
+ ConnEnd srcPt248(Point(410, 583), 15);
+ connRef248->setSourceEndpoint(srcPt248);
+ ConnEnd dstPt248(Point(371, 554), 15);
+ connRef248->setDestEndpoint(dstPt248);
+ connRef248->setRoutingType((ConnType)2);
+
+ ConnRef *connRef249 = new ConnRef(router, 249);
+ ConnEnd srcPt249(Point(410, 583), 15);
+ connRef249->setSourceEndpoint(srcPt249);
+ ConnEnd dstPt249(Point(456, 590), 15);
+ connRef249->setDestEndpoint(dstPt249);
+ connRef249->setRoutingType((ConnType)2);
+
+ ConnRef *connRef250 = new ConnRef(router, 250);
+ ConnEnd srcPt250(Point(411, 519), 15);
+ connRef250->setSourceEndpoint(srcPt250);
+ ConnEnd dstPt250(Point(371, 554), 15);
+ connRef250->setDestEndpoint(dstPt250);
+ connRef250->setRoutingType((ConnType)2);
+
+ ConnRef *connRef251 = new ConnRef(router, 251);
+ ConnEnd srcPt251(Point(456, 446), 15);
+ connRef251->setSourceEndpoint(srcPt251);
+ ConnEnd dstPt251(Point(555, 522), 15);
+ connRef251->setDestEndpoint(dstPt251);
+ connRef251->setRoutingType((ConnType)2);
+
+ ConnRef *connRef252 = new ConnRef(router, 252);
+ ConnEnd srcPt252(Point(456, 446), 15);
+ connRef252->setSourceEndpoint(srcPt252);
+ ConnEnd dstPt252(Point(528, 541), 15);
+ connRef252->setDestEndpoint(dstPt252);
+ connRef252->setRoutingType((ConnType)2);
+
+ ConnRef *connRef253 = new ConnRef(router, 253);
+ ConnEnd srcPt253(Point(456, 446), 15);
+ connRef253->setSourceEndpoint(srcPt253);
+ ConnEnd dstPt253(Point(505, 522), 15);
+ connRef253->setDestEndpoint(dstPt253);
+ connRef253->setRoutingType((ConnType)2);
+
+ ConnRef *connRef254 = new ConnRef(router, 254);
+ ConnEnd srcPt254(Point(262, 990), 15);
+ connRef254->setSourceEndpoint(srcPt254);
+ ConnEnd dstPt254(Point(262, 940), 15);
+ connRef254->setDestEndpoint(dstPt254);
+ connRef254->setRoutingType((ConnType)2);
+
+ ConnRef *connRef255 = new ConnRef(router, 255);
+ ConnEnd srcPt255(Point(57, 908), 15);
+ connRef255->setSourceEndpoint(srcPt255);
+ ConnEnd dstPt255(Point(119, 908), 15);
+ connRef255->setDestEndpoint(dstPt255);
+ connRef255->setRoutingType((ConnType)2);
+
+ ConnRef *connRef256 = new ConnRef(router, 256);
+ ConnEnd srcPt256(Point(262, 1011), 15);
+ connRef256->setSourceEndpoint(srcPt256);
+ ConnEnd dstPt256(Point(262, 961), 15);
+ connRef256->setDestEndpoint(dstPt256);
+ connRef256->setRoutingType((ConnType)2);
+
+ ConnRef *connRef257 = new ConnRef(router, 257);
+ ConnEnd srcPt257(Point(289, 909), 15);
+ connRef257->setSourceEndpoint(srcPt257);
+ ConnEnd dstPt257(Point(351, 909), 15);
+ connRef257->setDestEndpoint(dstPt257);
+ connRef257->setRoutingType((ConnType)2);
+
+ ConnRef *connRef258 = new ConnRef(router, 258);
+ ConnEnd srcPt258(Point(460, 890), 15);
+ connRef258->setSourceEndpoint(srcPt258);
+ ConnEnd dstPt258(Point(460, 940), 15);
+ connRef258->setDestEndpoint(dstPt258);
+ connRef258->setRoutingType((ConnType)2);
+
+ ConnRef *connRef259 = new ConnRef(router, 259);
+ ConnEnd srcPt259(Point(412, 990), 15);
+ connRef259->setSourceEndpoint(srcPt259);
+ ConnEnd dstPt259(Point(412, 940), 15);
+ connRef259->setDestEndpoint(dstPt259);
+ connRef259->setRoutingType((ConnType)2);
+
+ ConnRef *connRef260 = new ConnRef(router, 260);
+ ConnEnd srcPt260(Point(342, 871), 15);
+ connRef260->setSourceEndpoint(srcPt260);
+ ConnEnd dstPt260(Point(404, 871), 15);
+ connRef260->setDestEndpoint(dstPt260);
+ connRef260->setRoutingType((ConnType)2);
+
+ ConnRef *connRef261 = new ConnRef(router, 261);
+ ConnEnd srcPt261(Point(466, 850), 15);
+ connRef261->setSourceEndpoint(srcPt261);
+ ConnEnd dstPt261(Point(404, 850), 15);
+ connRef261->setDestEndpoint(dstPt261);
+ connRef261->setRoutingType((ConnType)2);
+
+ ConnRef *connRef262 = new ConnRef(router, 262);
+ ConnEnd srcPt262(Point(230, 862), 15);
+ connRef262->setSourceEndpoint(srcPt262);
+ ConnEnd dstPt262(Point(292, 862), 15);
+ connRef262->setDestEndpoint(dstPt262);
+ connRef262->setRoutingType((ConnType)2);
+
+ ConnRef *connRef263 = new ConnRef(router, 263);
+ ConnEnd srcPt263(Point(183, 812), 15);
+ connRef263->setSourceEndpoint(srcPt263);
+ ConnEnd dstPt263(Point(183, 862), 15);
+ connRef263->setDestEndpoint(dstPt263);
+ connRef263->setRoutingType((ConnType)2);
+
+ ConnRef *connRef264 = new ConnRef(router, 264);
+ ConnEnd srcPt264(Point(531, 811), 15);
+ connRef264->setSourceEndpoint(srcPt264);
+ ConnEnd dstPt264(Point(531, 861), 15);
+ connRef264->setDestEndpoint(dstPt264);
+ connRef264->setRoutingType((ConnType)2);
+
+ ConnRef *connRef265 = new ConnRef(router, 265);
+ ConnEnd srcPt265(Point(518, 767), 15);
+ connRef265->setSourceEndpoint(srcPt265);
+ ConnEnd dstPt265(Point(456, 767), 15);
+ connRef265->setDestEndpoint(dstPt265);
+ connRef265->setRoutingType((ConnType)2);
+
+ ConnRef *connRef266 = new ConnRef(router, 266);
+ ConnEnd srcPt266(Point(394, 698), 15);
+ connRef266->setSourceEndpoint(srcPt266);
+ ConnEnd dstPt266(Point(456, 698), 15);
+ connRef266->setDestEndpoint(dstPt266);
+ connRef266->setRoutingType((ConnType)2);
+
+ ConnRef *connRef267 = new ConnRef(router, 267);
+ ConnEnd srcPt267(Point(395, 626), 15);
+ connRef267->setSourceEndpoint(srcPt267);
+ ConnEnd dstPt267(Point(457, 626), 15);
+ connRef267->setDestEndpoint(dstPt267);
+ connRef267->setRoutingType((ConnType)2);
+
+ ConnRef *connRef268 = new ConnRef(router, 268);
+ ConnEnd srcPt268(Point(369, 481), 15);
+ connRef268->setSourceEndpoint(srcPt268);
+ ConnEnd dstPt268(Point(431, 481), 15);
+ connRef268->setDestEndpoint(dstPt268);
+ connRef268->setRoutingType((ConnType)2);
+
+ ConnRef *connRef269 = new ConnRef(router, 269);
+ ConnEnd srcPt269(Point(376, 397), 15);
+ connRef269->setSourceEndpoint(srcPt269);
+ ConnEnd dstPt269(Point(376, 447), 15);
+ connRef269->setDestEndpoint(dstPt269);
+ connRef269->setRoutingType((ConnType)2);
+
+ ConnRef *connRef270 = new ConnRef(router, 270);
+ ConnEnd srcPt270(Point(518, 401), 15);
+ connRef270->setSourceEndpoint(srcPt270);
+ ConnEnd dstPt270(Point(456, 401), 15);
+ connRef270->setDestEndpoint(dstPt270);
+ connRef270->setRoutingType((ConnType)2);
+
+ ConnRef *connRef271 = new ConnRef(router, 271);
+ ConnEnd srcPt271(Point(518, 335), 15);
+ connRef271->setSourceEndpoint(srcPt271);
+ ConnEnd dstPt271(Point(456, 335), 15);
+ connRef271->setDestEndpoint(dstPt271);
+ connRef271->setRoutingType((ConnType)2);
+
+ ConnRef *connRef272 = new ConnRef(router, 272);
+ ConnEnd srcPt272(Point(403, 385), 15);
+ connRef272->setSourceEndpoint(srcPt272);
+ ConnEnd dstPt272(Point(403, 335), 15);
+ connRef272->setDestEndpoint(dstPt272);
+ connRef272->setRoutingType((ConnType)2);
+
+ ConnRef *connRef273 = new ConnRef(router, 273);
+ ConnEnd srcPt273(Point(525, 142), 15);
+ connRef273->setSourceEndpoint(srcPt273);
+ ConnEnd dstPt273(Point(525, 192), 15);
+ connRef273->setDestEndpoint(dstPt273);
+ connRef273->setRoutingType((ConnType)2);
+
+ ConnRef *connRef274 = new ConnRef(router, 274);
+ ConnEnd srcPt274(Point(518, 265), 15);
+ connRef274->setSourceEndpoint(srcPt274);
+ ConnEnd dstPt274(Point(456, 265), 15);
+ connRef274->setDestEndpoint(dstPt274);
+ connRef274->setRoutingType((ConnType)2);
+
+ ConnRef *connRef275 = new ConnRef(router, 275);
+ ConnEnd srcPt275(Point(394, 170), 15);
+ connRef275->setSourceEndpoint(srcPt275);
+ ConnEnd dstPt275(Point(456, 170), 15);
+ connRef275->setDestEndpoint(dstPt275);
+ connRef275->setRoutingType((ConnType)2);
+
+ ConnRef *connRef276 = new ConnRef(router, 276);
+ ConnEnd srcPt276(Point(376, 249), 15);
+ connRef276->setSourceEndpoint(srcPt276);
+ ConnEnd dstPt276(Point(376, 299), 15);
+ connRef276->setDestEndpoint(dstPt276);
+ connRef276->setRoutingType((ConnType)2);
+
+ ConnRef *connRef277 = new ConnRef(router, 277);
+ ConnEnd srcPt277(Point(221, 230), 15);
+ connRef277->setSourceEndpoint(srcPt277);
+ ConnEnd dstPt277(Point(221, 280), 15);
+ connRef277->setDestEndpoint(dstPt277);
+ connRef277->setRoutingType((ConnType)2);
+
+ ConnRef *connRef278 = new ConnRef(router, 278);
+ ConnEnd srcPt278(Point(221, 249), 15);
+ connRef278->setSourceEndpoint(srcPt278);
+ ConnEnd dstPt278(Point(221, 299), 15);
+ connRef278->setDestEndpoint(dstPt278);
+ connRef278->setRoutingType((ConnType)2);
+
+ ConnRef *connRef279 = new ConnRef(router, 279);
+ ConnEnd srcPt279(Point(392, 266), 15);
+ connRef279->setSourceEndpoint(srcPt279);
+ ConnEnd dstPt279(Point(330, 266), 15);
+ connRef279->setDestEndpoint(dstPt279);
+ connRef279->setRoutingType((ConnType)2);
+
+ ConnRef *connRef280 = new ConnRef(router, 280);
+ ConnEnd srcPt280(Point(218, 266), 15);
+ connRef280->setSourceEndpoint(srcPt280);
+ ConnEnd dstPt280(Point(280, 266), 15);
+ connRef280->setDestEndpoint(dstPt280);
+ connRef280->setRoutingType((ConnType)2);
+
+ ConnRef *connRef281 = new ConnRef(router, 281);
+ ConnEnd srcPt281(Point(92, 261), 15);
+ connRef281->setSourceEndpoint(srcPt281);
+ ConnEnd dstPt281(Point(154, 261), 15);
+ connRef281->setDestEndpoint(dstPt281);
+ connRef281->setRoutingType((ConnType)2);
+
+ ConnRef *connRef282 = new ConnRef(router, 282);
+ ConnEnd srcPt282(Point(221, 174), 15);
+ connRef282->setSourceEndpoint(srcPt282);
+ ConnEnd dstPt282(Point(221, 224), 15);
+ connRef282->setDestEndpoint(dstPt282);
+ connRef282->setRoutingType((ConnType)2);
+
+ ConnRef *connRef283 = new ConnRef(router, 283);
+ ConnEnd srcPt283(Point(221, 155), 15);
+ connRef283->setSourceEndpoint(srcPt283);
+ ConnEnd dstPt283(Point(221, 205), 15);
+ connRef283->setDestEndpoint(dstPt283);
+ connRef283->setRoutingType((ConnType)2);
+
+ ConnRef *connRef284 = new ConnRef(router, 284);
+ ConnEnd srcPt284(Point(289, 233), 15);
+ connRef284->setSourceEndpoint(srcPt284);
+ ConnEnd dstPt284(Point(289, 183), 15);
+ connRef284->setDestEndpoint(dstPt284);
+ connRef284->setRoutingType((ConnType)2);
+
+ ConnRef *connRef285 = new ConnRef(router, 285);
+ ConnEnd srcPt285(Point(316, 101), 15);
+ connRef285->setSourceEndpoint(srcPt285);
+ ConnEnd dstPt285(Point(316, 151), 15);
+ connRef285->setDestEndpoint(dstPt285);
+ connRef285->setRoutingType((ConnType)2);
+
+ ConnRef *connRef286 = new ConnRef(router, 286);
+ ConnEnd srcPt286(Point(316, 180), 15);
+ connRef286->setSourceEndpoint(srcPt286);
+ ConnEnd dstPt286(Point(316, 130), 15);
+ connRef286->setDestEndpoint(dstPt286);
+ connRef286->setRoutingType((ConnType)2);
+
+ ConnRef *connRef287 = new ConnRef(router, 287);
+ ConnEnd srcPt287(Point(235, 855), 15);
+ connRef287->setSourceEndpoint(srcPt287);
+ ConnEnd dstPt287(Point(235, 905), 15);
+ connRef287->setDestEndpoint(dstPt287);
+ connRef287->setRoutingType((ConnType)2);
+
+ ConnRef *connRef288 = new ConnRef(router, 288);
+ ConnEnd srcPt288(Point(394, 553), 15);
+ connRef288->setSourceEndpoint(srcPt288);
+ ConnEnd dstPt288(Point(456, 553), 15);
+ connRef288->setDestEndpoint(dstPt288);
+ connRef288->setRoutingType((ConnType)2);
+
+ ConnRef *connRef289 = new ConnRef(router, 289);
+ ConnEnd srcPt289(Point(221, 193), 15);
+ connRef289->setSourceEndpoint(srcPt289);
+ ConnEnd dstPt289(Point(221, 243), 15);
+ connRef289->setDestEndpoint(dstPt289);
+ connRef289->setRoutingType((ConnType)2);
+
+ ConnRef *connRef290 = new ConnRef(router, 290);
+ ConnEnd srcPt290(Point(221, 268), 15);
+ connRef290->setSourceEndpoint(srcPt290);
+ ConnEnd dstPt290(Point(221, 318), 15);
+ connRef290->setDestEndpoint(dstPt290);
+ connRef290->setRoutingType((ConnType)2);
+
+ ConnRef *connRef291 = new ConnRef(router, 291);
+ ConnEnd srcPt291(Point(154, 307), 15);
+ connRef291->setSourceEndpoint(srcPt291);
+ ConnEnd dstPt291(Point(154, 357), 15);
+ connRef291->setDestEndpoint(dstPt291);
+ connRef291->setRoutingType((ConnType)2);
+
+ ConnRef *connRef292 = new ConnRef(router, 292);
+ ConnEnd srcPt292(Point(154, 433), 15);
+ connRef292->setSourceEndpoint(srcPt292);
+ ConnEnd dstPt292(Point(154, 383), 15);
+ connRef292->setDestEndpoint(dstPt292);
+ connRef292->setRoutingType((ConnType)2);
+
+ ConnRef *connRef293 = new ConnRef(router, 293);
+ ConnEnd srcPt293(Point(264, 306), 15);
+ connRef293->setSourceEndpoint(srcPt293);
+ ConnEnd dstPt293(Point(264, 356), 15);
+ connRef293->setDestEndpoint(dstPt293);
+ connRef293->setRoutingType((ConnType)2);
+
+ ConnRef *connRef294 = new ConnRef(router, 294);
+ ConnEnd srcPt294(Point(264, 432), 15);
+ connRef294->setSourceEndpoint(srcPt294);
+ ConnEnd dstPt294(Point(264, 382), 15);
+ connRef294->setDestEndpoint(dstPt294);
+ connRef294->setRoutingType((ConnType)2);
+
+ ConnRef *connRef295 = new ConnRef(router, 295);
+ ConnEnd srcPt295(Point(177, 673), 15);
+ connRef295->setSourceEndpoint(srcPt295);
+ ConnEnd dstPt295(Point(177, 723), 15);
+ connRef295->setDestEndpoint(dstPt295);
+ connRef295->setRoutingType((ConnType)2);
+
+ ConnRef *connRef296 = new ConnRef(router, 296);
+ ConnEnd srcPt296(Point(412, 911), 15);
+ connRef296->setSourceEndpoint(srcPt296);
+ ConnEnd dstPt296(Point(412, 961), 15);
+ connRef296->setDestEndpoint(dstPt296);
+ connRef296->setRoutingType((ConnType)2);
+
+ ConnRef *connRef297 = new ConnRef(router, 297);
+ ConnEnd srcPt297(Point(177, 694), 15);
+ connRef297->setSourceEndpoint(srcPt297);
+ ConnEnd dstPt297(Point(177, 744), 15);
+ connRef297->setDestEndpoint(dstPt297);
+ connRef297->setRoutingType((ConnType)2);
+
+ ConnRef *connRef298 = new ConnRef(router, 298);
+ ConnEnd srcPt298(Point(460, 1011), 15);
+ connRef298->setSourceEndpoint(srcPt298);
+ ConnEnd dstPt298(Point(460, 961), 15);
+ connRef298->setDestEndpoint(dstPt298);
+ connRef298->setRoutingType((ConnType)2);
+
+ ConnRef *connRef299 = new ConnRef(router, 299);
+ ConnEnd srcPt299(Point(543, 481), 15);
+ connRef299->setSourceEndpoint(srcPt299);
+ ConnEnd dstPt299(Point(481, 481), 15);
+ connRef299->setDestEndpoint(dstPt299);
+ connRef299->setRoutingType((ConnType)2);
+
+ ConnRef *connRef300 = new ConnRef(router, 300);
+ ConnEnd srcPt300(Point(555, 472), 15);
+ connRef300->setSourceEndpoint(srcPt300);
+ ConnEnd dstPt300(Point(555, 522), 15);
+ connRef300->setDestEndpoint(dstPt300);
+ connRef300->setRoutingType((ConnType)2);
+
+ ConnRef *connRef301 = new ConnRef(router, 301);
+ ConnEnd srcPt301(Point(528, 591), 15);
+ connRef301->setSourceEndpoint(srcPt301);
+ ConnEnd dstPt301(Point(528, 541), 15);
+ connRef301->setDestEndpoint(dstPt301);
+ connRef301->setRoutingType((ConnType)2);
+
+ ConnRef *connRef302 = new ConnRef(router, 302);
+ ConnEnd srcPt302(Point(262, 742), 15);
+ connRef302->setSourceEndpoint(srcPt302);
+ ConnEnd dstPt302(Point(262, 792), 15);
+ connRef302->setDestEndpoint(dstPt302);
+ connRef302->setRoutingType((ConnType)2);
+
+ ConnRef *connRef303 = new ConnRef(router, 303);
+ ConnEnd srcPt303(Point(567, 522), 15);
+ connRef303->setSourceEndpoint(srcPt303);
+ ConnEnd dstPt303(Point(505, 522), 15);
+ connRef303->setDestEndpoint(dstPt303);
+ connRef303->setRoutingType((ConnType)2);
+
+ ConnRef *connRef304 = new ConnRef(router, 304);
+ ConnEnd srcPt304(Point(410, 633), 15);
+ connRef304->setSourceEndpoint(srcPt304);
+ ConnEnd dstPt304(Point(410, 583), 15);
+ connRef304->setDestEndpoint(dstPt304);
+ connRef304->setRoutingType((ConnType)2);
+
+ ConnRef *connRef305 = new ConnRef(router, 305);
+ ConnEnd srcPt305(Point(411, 469), 15);
+ connRef305->setSourceEndpoint(srcPt305);
+ ConnEnd dstPt305(Point(411, 519), 15);
+ connRef305->setDestEndpoint(dstPt305);
+ connRef305->setRoutingType((ConnType)2);
+
+ ConnRef *connRef306 = new ConnRef(router, 306);
+ ConnEnd srcPt306(Point(456, 861), 15);
+ connRef306->setSourceEndpoint(srcPt306);
+ ConnEnd dstPt306(Point(404, 871), 15);
+ connRef306->setDestEndpoint(dstPt306);
+ connRef306->setRoutingType((ConnType)2);
+
+ ConnRef *connRef307 = new ConnRef(router, 307);
+ ConnEnd srcPt307(Point(456, 861), 15);
+ connRef307->setSourceEndpoint(srcPt307);
+ ConnEnd dstPt307(Point(404, 850), 15);
+ connRef307->setDestEndpoint(dstPt307);
+ connRef307->setRoutingType((ConnType)2);
+
+ ConnRef *connRef308 = new ConnRef(router, 308);
+ ConnEnd srcPt308(Point(287, 904), 15);
+ connRef308->setSourceEndpoint(srcPt308);
+ ConnEnd dstPt308(Point(292, 862), 15);
+ connRef308->setDestEndpoint(dstPt308);
+ connRef308->setRoutingType((ConnType)2);
+
+ ConnRef *connRef309 = new ConnRef(router, 309);
+ ConnEnd srcPt309(Point(351, 861), 15);
+ connRef309->setSourceEndpoint(srcPt309);
+ ConnEnd dstPt309(Point(292, 862), 15);
+ connRef309->setDestEndpoint(dstPt309);
+ connRef309->setRoutingType((ConnType)2);
+
+ ConnRef *connRef310 = new ConnRef(router, 310);
+ ConnEnd srcPt310(Point(456, 734), 15);
+ connRef310->setSourceEndpoint(srcPt310);
+ ConnEnd dstPt310(Point(456, 767), 15);
+ connRef310->setDestEndpoint(dstPt310);
+ connRef310->setRoutingType((ConnType)2);
+
+ ConnRef *connRef311 = new ConnRef(router, 311);
+ ConnEnd srcPt311(Point(456, 301), 15);
+ connRef311->setSourceEndpoint(srcPt311);
+ ConnEnd dstPt311(Point(456, 335), 15);
+ connRef311->setDestEndpoint(dstPt311);
+ connRef311->setRoutingType((ConnType)2);
+
+ ConnRef *connRef312 = new ConnRef(router, 312);
+ ConnEnd srcPt312(Point(154, 226), 15);
+ connRef312->setSourceEndpoint(srcPt312);
+ ConnEnd dstPt312(Point(221, 224), 15);
+ connRef312->setDestEndpoint(dstPt312);
+ connRef312->setRoutingType((ConnType)2);
+
+ ConnRef *connRef313 = new ConnRef(router, 313);
+ ConnEnd srcPt313(Point(154, 226), 15);
+ connRef313->setSourceEndpoint(srcPt313);
+ ConnEnd dstPt313(Point(221, 205), 15);
+ connRef313->setDestEndpoint(dstPt313);
+ connRef313->setRoutingType((ConnType)2);
+
+ ConnRef *connRef314 = new ConnRef(router, 314);
+ ConnEnd srcPt314(Point(456, 141), 15);
+ connRef314->setSourceEndpoint(srcPt314);
+ ConnEnd dstPt314(Point(316, 151), 15);
+ connRef314->setDestEndpoint(dstPt314);
+ connRef314->setRoutingType((ConnType)2);
+
+ ConnRef *connRef315 = new ConnRef(router, 315);
+ ConnEnd srcPt315(Point(456, 141), 15);
+ connRef315->setSourceEndpoint(srcPt315);
+ ConnEnd dstPt315(Point(316, 130), 15);
+ connRef315->setDestEndpoint(dstPt315);
+ connRef315->setRoutingType((ConnType)2);
+
+ router->processTransaction();
+ router->outputDiagram("output/vertlineassertion");
+ delete router;
+ return 0;
+};
diff --git a/src/3rdparty/adaptagrams/libavoid/timer.cpp b/src/3rdparty/adaptagrams/libavoid/timer.cpp
new file mode 100644
index 0000000..142c4ad
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/timer.cpp
@@ -0,0 +1,188 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2013 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <cstdio>
+#include <cstdlib>
+#include <climits>
+
+#include "libavoid/timer.h"
+#include "libavoid/debug.h"
+#include "libavoid/assertions.h"
+
+namespace Avoid {
+
+#ifdef AVOID_PROFILE
+
+Timer::Timer()
+{
+ reset();
+}
+
+
+void Timer::reset(void)
+{
+ for (size_t i = 0; i < tmCount; ++i)
+ {
+ m_total_time[i] = 0;
+ m_tally[i] = 0;
+ m_max_time[i] = 0;
+ for (size_t j = 0; j < TIMER_VARIABLES_COUNT; ++j)
+ {
+ m_variables[i][j] = 0;
+ }
+ }
+ m_is_running = false;
+ m_type = m_last_type = tmCount;
+}
+
+
+void Timer::initialise(const TimerIndex t)
+{
+ COLA_ASSERT(t != tmCount);
+ COLA_ASSERT(m_type == tmCount);
+
+ m_type = t;
+}
+
+void Timer::start(void)
+{
+ COLA_ASSERT(!m_is_running);
+ m_start_time[m_type] = clock(); // CPU time
+ m_is_running = true;
+}
+
+
+void Timer::stop(void)
+{
+ COLA_ASSERT(m_is_running);
+ clock_t stopTime = clock(); // CPU time
+ m_is_running = false;
+
+ bigclock_t timeDiff;
+ if (stopTime < m_start_time[m_type])
+ {
+ // Uh-oh, the clock value has wrapped around.
+ //
+ bigclock_t realStopTime = ((bigclock_t) stopTime) + ULONG_MAX + 1;
+ timeDiff = realStopTime - m_start_time[m_type];
+ }
+ else
+ {
+ timeDiff = stopTime - m_start_time[m_type];
+ }
+
+ COLA_ASSERT(timeDiff < LONG_MAX);
+
+ m_total_time[m_type] += timeDiff;
+ m_tally[m_type]++;
+ if (((clock_t) timeDiff) > m_max_time[m_type])
+ {
+ m_max_time[m_type] = (clock_t) timeDiff;
+ }
+ m_last_type = m_type;
+
+ m_type = tmCount;
+}
+
+static const char* timerNames[] =
+{
+ "Adds",
+ "Dels",
+ "Movs",
+ "Pths",
+ "OrthogGraph",
+ "OrthogRoute",
+ "OrthogCentre",
+ "OrthogNudge",
+ "HyperedgeForest",
+ "HyperedgeMTST",
+ "HyperedgeImprove",
+ "HyperedgeAlt"
+};
+
+
+void Timer::printAll(FILE *fp)
+{
+ for (unsigned int i = 0; i < tmCount; i++)
+ {
+ fprintf(fp, "%s: ", timerNames[i]);
+ print((TimerIndex) i, fp);
+ }
+ fprintf(fp, "\n");
+}
+
+#define toMsec(tot) ((bigclock_t) ((tot) / (((double) CLOCKS_PER_SEC) / 1000)))
+#define toAvg(tot, cnt) ((((cnt) > 0) ? ((long double) (tot)) / (cnt) : 0))
+
+void Timer::printHyperedgePaper(FILE *fp)
+{
+ fprintf(fp, "%5lld & %5lld & %5lld & %5lld\n\n",
+ toMsec(m_total_time[tmOrthogGraph]),
+ toMsec(m_total_time[tmHyperedgeForest] + m_total_time[tmHyperedgeMTST]),
+ toMsec(m_total_time[tmHyperedgeAlt]),
+ toMsec(m_total_time[tmHyperedgeImprove]));
+}
+
+void Timer::print(const TimerIndex t, FILE *fp)
+{
+ bigclock_t avg = toMsec(toAvg(m_total_time[t], m_tally[t]));
+ clock_t max = toMsec(m_max_time[t]);
+ fprintf(fp, "%lld %d %lld %ld",
+ toMsec(m_total_time[t]), m_tally[t], avg, max);
+
+ for (size_t j = 0; j < TIMER_VARIABLES_COUNT; ++j)
+ {
+ if (m_variables[t][j] > 0)
+ {
+ fprintf(fp, ", %lu: %u", j, m_variables[t][j]);
+ }
+ }
+ fprintf(fp, "\n");
+}
+
+void Timer::varIncrement(size_t i, unsigned int val)
+{
+ COLA_ASSERT(i < TIMER_VARIABLES_COUNT);
+
+ if (m_is_running)
+ {
+ m_variables[m_type][i] += val;
+ }
+}
+
+void Timer::varMax(size_t i, unsigned int val)
+{
+ COLA_ASSERT(i < TIMER_VARIABLES_COUNT);
+
+ if (m_is_running)
+ {
+ m_variables[m_type][i] = std::max(m_variables[m_type][i], val);
+ }
+}
+
+#endif
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/timer.h b/src/3rdparty/adaptagrams/libavoid/timer.h
new file mode 100644
index 0000000..17a07d5
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/timer.h
@@ -0,0 +1,104 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2013 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_TIMER_H
+#define AVOID_TIMER_H
+
+#include <ctime>
+
+namespace Avoid {
+
+//#define AVOID_PROFILE
+
+#ifndef AVOID_PROFILE
+
+ #define TIMER_START(r, t) do {} while(0)
+ #define TIMER_STOP(r) do {} while(0)
+ #define TIMER_VAR_ADD(r, n, v) do {} while(0)
+ #define TIMER_VAR_MAX(r, n, v) do {} while(0)
+
+#else
+
+ #define TIMER_START(r, t) r->timers.initialise(t); r->timers.start()
+ #define TIMER_STOP(r) r->timers.stop()
+ #define TIMER_VAR_ADD(r, n, v) r->timers.varIncrement(n, v);
+ #define TIMER_VAR_MAX(r, n, v) r->timers.varMax(n, v)
+
+typedef unsigned long long int bigclock_t;
+
+enum TimerIndex
+{
+ tmAdd,
+ tmDel,
+ tmMov,
+ tmPth,
+ tmOrthogGraph,
+ tmOrthogRoute,
+ tmOrthogCentre,
+ tmOrthogNudge,
+ tmHyperedgeForest,
+ tmHyperedgeMTST,
+ tmHyperedgeImprove,
+ tmHyperedgeAlt,
+ tmCount
+};
+
+static const bool timerStart = true;
+static const bool timerDelay = false;
+
+static const size_t TIMER_VARIABLES_COUNT = 2;
+
+class Timer
+{
+ public:
+ Timer();
+ void initialise(const TimerIndex t);
+ void start(void);
+ void stop(void);
+ void reset(void);
+ void varIncrement(size_t i, unsigned int val);
+ void varMax(size_t i, unsigned int val);
+
+ void print(TimerIndex, FILE *fp);
+ void printAll(FILE *fp);
+ void printHyperedgePaper(FILE *fp);
+
+ private:
+ clock_t m_start_time[tmCount];
+ bigclock_t m_total_time[tmCount];
+ int m_tally[tmCount];
+ clock_t m_max_time[tmCount];
+ unsigned int m_variables[tmCount][TIMER_VARIABLES_COUNT];
+
+ bool m_is_running;
+ TimerIndex m_type;
+ TimerIndex m_last_type;
+};
+
+#endif
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/vertices.cpp b/src/3rdparty/adaptagrams/libavoid/vertices.cpp
new file mode 100644
index 0000000..6034e0a
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/vertices.cpp
@@ -0,0 +1,739 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2009 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <iostream>
+#include <cstdlib>
+
+#include "libavoid/vertices.h"
+#include "libavoid/geometry.h"
+#include "libavoid/graph.h" // For alertConns
+#include "libavoid/debug.h"
+#include "libavoid/router.h"
+#include "libavoid/assertions.h"
+#include "libavoid/connend.h"
+
+using std::ostream;
+
+
+namespace Avoid {
+
+
+VertID::VertID()
+{
+}
+
+
+VertID::VertID(unsigned int id, unsigned short n, VertIDProps p)
+ : objID(id),
+ vn(n),
+ props(p)
+{
+}
+
+
+VertID::VertID(const VertID& other)
+ : objID(other.objID),
+ vn(other.vn),
+ props(other.props)
+{
+}
+
+
+VertID& VertID::operator= (const VertID& rhs)
+{
+ // Gracefully handle self assignment
+ //if (this == &rhs) return *this;
+
+ objID = rhs.objID;
+ vn = rhs.vn;
+ props = rhs.props;
+
+ return *this;
+}
+
+
+bool VertID::operator==(const VertID& rhs) const
+{
+ if ((objID != rhs.objID) || (vn != rhs.vn))
+ {
+ return false;
+ }
+ return true;
+}
+
+
+bool VertID::operator!=(const VertID& rhs) const
+{
+ if ((objID != rhs.objID) || (vn != rhs.vn))
+ {
+ return true;
+ }
+ return false;
+}
+
+
+bool VertID::operator<(const VertID& rhs) const
+{
+ if ((objID < rhs.objID) ||
+ ((objID == rhs.objID) && (vn < rhs.vn)))
+ {
+ return true;
+ }
+ return false;
+}
+
+
+VertID VertID::operator+(const int& rhs) const
+{
+ return VertID(objID, vn + rhs, props);
+}
+
+
+VertID VertID::operator-(const int& rhs) const
+{
+ return VertID(objID, vn - rhs, props);
+}
+
+
+VertID& VertID::operator++(int)
+{
+ vn += 1;
+ return *this;
+}
+
+
+void VertID::print(FILE *file) const
+{
+ fprintf(file, "[%u,%d, p=%u]", objID, vn, (unsigned int) props);
+}
+
+void VertID::db_print(void) const
+{
+ db_printf("[%u,%d, p=%u]", objID, vn, (unsigned int) props);
+}
+
+
+const unsigned short VertID::src = 1;
+const unsigned short VertID::tar = 2;
+
+// Property flags:
+const unsigned short VertID::PROP_ConnPoint = 1;
+const unsigned short VertID::PROP_OrthShapeEdge = 2;
+const unsigned short VertID::PROP_ConnectionPin = 4;
+const unsigned short VertID::PROP_ConnCheckpoint = 8;
+const unsigned short VertID::PROP_DummyPinHelper = 16;
+
+
+ostream& operator<<(ostream& os, const VertID& vID)
+{
+ return os << '[' << vID.objID << ',' << vID.vn << ']';
+}
+
+
+
+VertInf::VertInf(Router *router, const VertID& vid, const Point& vpoint,
+ const bool addToRouter)
+ : _router(router),
+ id(vid),
+ point(vpoint),
+ lstPrev(nullptr),
+ lstNext(nullptr),
+ shPrev(nullptr),
+ shNext(nullptr),
+ visListSize(0),
+ orthogVisListSize(0),
+ invisListSize(0),
+ pathNext(nullptr),
+ m_orthogonalPartner(nullptr),
+ m_treeRoot(nullptr),
+ visDirections(ConnDirNone),
+ orthogVisPropFlags(0)
+{
+ point.id = vid.objID;
+ point.vn = vid.vn;
+
+ if (addToRouter)
+ {
+ _router->vertices.addVertex(this);
+ }
+}
+
+
+VertInf::~VertInf()
+{
+ COLA_ASSERT(orphaned());
+}
+
+
+EdgeInf *VertInf::hasNeighbour(VertInf *target, bool orthogonal) const
+{
+ const EdgeInfList& visEdgeList = (orthogonal) ? orthogVisList : visList;
+ EdgeInfList::const_iterator finish = visEdgeList.end();
+ for (EdgeInfList::const_iterator edge = visEdgeList.begin(); edge != finish; ++edge)
+ {
+ if ((*edge)->otherVert(this) == target)
+ {
+ return *edge;
+ }
+ }
+ return nullptr;
+}
+
+void VertInf::Reset(const VertID& vid, const Point& vpoint)
+{
+ id = vid;
+ point = vpoint;
+ point.id = id.objID;
+ point.vn = id.vn;
+}
+
+
+void VertInf::Reset(const Point& vpoint)
+{
+ point = vpoint;
+ point.id = id.objID;
+ point.vn = id.vn;
+}
+
+
+// Returns true if this vertex is not involved in any (in)visibility graphs.
+bool VertInf::orphaned(void)
+{
+ return (visList.empty() && invisList.empty() && orthogVisList.empty());
+}
+
+
+void VertInf::removeFromGraph(const bool isConnVert)
+{
+ if (isConnVert)
+ {
+ COLA_ASSERT(id.isConnPt());
+ }
+
+ // For each vertex.
+ EdgeInfList::const_iterator finish = visList.end();
+ EdgeInfList::const_iterator edge;
+ while ((edge = visList.begin()) != finish)
+ {
+ // Remove each visibility edge
+ (*edge)->alertConns();
+ delete (*edge);
+ }
+
+ finish = orthogVisList.end();
+ while ((edge = orthogVisList.begin()) != finish)
+ {
+ // Remove each orthogonal visibility edge.
+ (*edge)->alertConns();
+ delete (*edge);
+ }
+
+ finish = invisList.end();
+ while ((edge = invisList.begin()) != finish)
+ {
+ // Remove each invisibility edge
+ delete (*edge);
+ }
+}
+
+
+void VertInf::orphan(void)
+{
+ // For each vertex.
+ EdgeInfList::const_iterator finish = visList.end();
+ EdgeInfList::const_iterator edge;
+ while ((edge = visList.begin()) != finish)
+ {
+ // Remove each visibility edge
+ (*edge)->makeInactive();
+ }
+
+ finish = orthogVisList.end();
+ while ((edge = orthogVisList.begin()) != finish)
+ {
+ // Remove each orthogonal visibility edge.
+ (*edge)->makeInactive();
+ }
+
+ finish = invisList.end();
+ while ((edge = invisList.begin()) != finish)
+ {
+ // Remove each invisibility edge
+ (*edge)->makeInactive();
+ }
+}
+
+// Returns the direction of this vertex relative to the other specified vertex.
+//
+ConnDirFlags VertInf::directionFrom(const VertInf *other) const
+{
+ double epsilon = 0.000001;
+ Point thisPoint = point;
+ Point otherPoint = other->point;
+ Point diff = thisPoint - otherPoint;
+
+ ConnDirFlags directions = ConnDirNone;
+ if (diff.y > epsilon)
+ {
+ directions |= ConnDirUp;
+ }
+ if (diff.y < -epsilon)
+ {
+ directions |= ConnDirDown;
+ }
+ if (diff.x > epsilon)
+ {
+ directions |= ConnDirRight;
+ }
+ if (diff.x < -epsilon)
+ {
+ directions |= ConnDirLeft;
+ }
+ return directions;
+}
+
+// Given a set of directions, mark visibility edges in all other directions
+// as being invalid so they get ignored during the search.
+//
+void VertInf::setVisibleDirections(const ConnDirFlags directions)
+{
+ for (EdgeInfList::const_iterator edge = visList.begin();
+ edge != visList.end(); ++edge)
+ {
+ if (directions == ConnDirAll)
+ {
+ (*edge)->setDisabled(false);
+ }
+ else
+ {
+ VertInf *otherVert = (*edge)->otherVert(this);
+ ConnDirFlags direction = otherVert->directionFrom(this);
+ bool visible = (direction & directions);
+ (*edge)->setDisabled(!visible);
+ }
+ }
+
+ for (EdgeInfList::const_iterator edge = orthogVisList.begin();
+ edge != orthogVisList.end(); ++edge)
+ {
+ if (directions == ConnDirAll)
+ {
+ (*edge)->setDisabled(false);
+ }
+ else
+ {
+ VertInf *otherVert = (*edge)->otherVert(this);
+ ConnDirFlags direction = otherVert->directionFrom(this);
+ bool visible = (direction & directions);
+ (*edge)->setDisabled(!visible);
+ }
+ }
+}
+
+// Number of points in path from end back to start, or zero if no path exists.
+//
+unsigned int VertInf::pathLeadsBackTo(const VertInf *start) const
+{
+ unsigned int pathlen = 1;
+ for (const VertInf *i = this; i != start; i = i->pathNext)
+ {
+ if ((pathlen > 1) && (i == this))
+ {
+ // We have a circular path, so path not found.
+ return 0;
+ }
+
+ pathlen++;
+ if (i == nullptr)
+ {
+ // Path not found.
+ return 0;
+ }
+
+ // Check we don't have an apparent infinite connector path.
+ COLA_ASSERT(pathlen < 20000);
+ }
+ return pathlen;
+}
+
+VertInf **VertInf::makeTreeRootPointer(VertInf *root)
+{
+ m_treeRoot = (VertInf **) malloc(sizeof(VertInf *));
+ *m_treeRoot = root;
+ return m_treeRoot;
+}
+
+VertInf *VertInf::treeRoot(void) const
+{
+ return (m_treeRoot) ? *m_treeRoot : nullptr;
+}
+
+VertInf **VertInf::treeRootPointer(void) const
+{
+ return m_treeRoot;
+}
+
+void VertInf::clearTreeRootPointer(void)
+{
+ m_treeRoot = nullptr;
+}
+
+void VertInf::setTreeRootPointer(VertInf **pointer)
+{
+ m_treeRoot = pointer;
+}
+
+void VertInf::setSPTFRoot(VertInf *root)
+{
+ // Use the m_treeRoot instance var, but as just a normal VertInf pointer.
+ m_treeRoot = (VertInf **) root;
+}
+
+
+VertInf *VertInf::sptfRoot(void) const
+{
+ // Use the m_treeRoot instance var, but as just a normal VertInf pointer.
+ return (VertInf *) m_treeRoot;
+}
+
+
+bool directVis(VertInf *src, VertInf *dst)
+{
+ ShapeSet ss = ShapeSet();
+
+ Point& p = src->point;
+ Point& q = dst->point;
+
+ VertID& pID = src->id;
+ VertID& qID = dst->id;
+
+ // We better be part of the same instance of libavoid.
+ Router *router = src->_router;
+ COLA_ASSERT(router == dst->_router);
+
+ ContainsMap& contains = router->contains;
+ if (pID.isConnPt())
+ {
+ ss.insert(contains[pID].begin(), contains[pID].end());
+ }
+ if (qID.isConnPt())
+ {
+ ss.insert(contains[qID].begin(), contains[qID].end());
+ }
+
+ // The "beginning" should be the first shape vertex, rather
+ // than an endpoint, which are also stored in "vertices".
+ VertInf *endVert = router->vertices.end();
+ for (VertInf *k = router->vertices.shapesBegin(); k != endVert;
+ k = k->lstNext)
+ {
+ if ((ss.find(k->id.objID) == ss.end()))
+ {
+ if (segmentIntersect(p, q, k->point, k->shNext->point))
+ {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+
+VertInfList::VertInfList()
+ : _firstShapeVert(nullptr),
+ _firstConnVert(nullptr),
+ _lastShapeVert(nullptr),
+ _lastConnVert(nullptr),
+ _shapeVertices(0),
+ _connVertices(0)
+{
+}
+
+
+#define checkVertInfListConditions() \
+ do { \
+ COLA_ASSERT((!_firstConnVert && (_connVertices == 0)) || \
+ ((_firstConnVert->lstPrev == nullptr) && (_connVertices > 0))); \
+ COLA_ASSERT((!_firstShapeVert && (_shapeVertices == 0)) || \
+ ((_firstShapeVert->lstPrev == nullptr) && (_shapeVertices > 0))); \
+ COLA_ASSERT(!_lastShapeVert || (_lastShapeVert->lstNext == nullptr)); \
+ COLA_ASSERT(!_lastConnVert || (_lastConnVert->lstNext == _firstShapeVert)); \
+ COLA_ASSERT((!_firstConnVert && !_lastConnVert) || \
+ (_firstConnVert && _lastConnVert) ); \
+ COLA_ASSERT((!_firstShapeVert && !_lastShapeVert) || \
+ (_firstShapeVert && _lastShapeVert) ); \
+ COLA_ASSERT(!_firstShapeVert || !(_firstShapeVert->id.isConnPt())); \
+ COLA_ASSERT(!_lastShapeVert || !(_lastShapeVert->id.isConnPt())); \
+ COLA_ASSERT(!_firstConnVert || _firstConnVert->id.isConnPt()); \
+ COLA_ASSERT(!_lastConnVert || _lastConnVert->id.isConnPt()); \
+ } while(0)
+
+
+void VertInfList::addVertex(VertInf *vert)
+{
+ checkVertInfListConditions();
+ COLA_ASSERT(vert->lstPrev == nullptr);
+ COLA_ASSERT(vert->lstNext == nullptr);
+
+ if (vert->id.isConnPt())
+ {
+ // A Connector vertex
+ if (_firstConnVert)
+ {
+ // Join with previous front
+ vert->lstNext = _firstConnVert;
+ _firstConnVert->lstPrev = vert;
+
+ // Make front
+ _firstConnVert = vert;
+ }
+ else
+ {
+ // Make front and back
+ _firstConnVert = vert;
+ _lastConnVert = vert;
+
+ // Link to front of shapes list
+ vert->lstNext = _firstShapeVert;
+ }
+ _connVertices++;
+ }
+ else // if (vert->id.shape > 0)
+ {
+ // A Shape vertex
+ if (_lastShapeVert)
+ {
+ // Join with previous back
+ vert->lstPrev = _lastShapeVert;
+ _lastShapeVert->lstNext = vert;
+
+ // Make back
+ _lastShapeVert = vert;
+ }
+ else
+ {
+ // Make first and last
+ _firstShapeVert = vert;
+ _lastShapeVert = vert;
+
+ // Join with conns list
+ if (_lastConnVert)
+ {
+ COLA_ASSERT(_lastConnVert->lstNext == nullptr);
+
+ _lastConnVert->lstNext = vert;
+ }
+ }
+ _shapeVertices++;
+ }
+ checkVertInfListConditions();
+}
+
+
+// Removes a vertex from the list and returns a pointer to the vertex
+// following the removed one.
+VertInf *VertInfList::removeVertex(VertInf *vert)
+{
+ if (vert == nullptr)
+ {
+ return nullptr;
+ }
+ // Conditions for correct data structure
+ checkVertInfListConditions();
+
+ VertInf *following = vert->lstNext;
+
+ if (vert->id.isConnPt())
+ {
+ // A Connector vertex
+ if (vert == _firstConnVert)
+ {
+
+ if (vert == _lastConnVert)
+ {
+ _firstConnVert = nullptr;
+ _lastConnVert = nullptr;
+ }
+ else
+ {
+ // Set new first
+ _firstConnVert = _firstConnVert->lstNext;
+
+ if (_firstConnVert)
+ {
+ // Set previous
+ _firstConnVert->lstPrev = nullptr;
+ }
+ }
+ }
+ else if (vert == _lastConnVert)
+ {
+ // Set new last
+ _lastConnVert = _lastConnVert->lstPrev;
+
+ // Make last point to shapes list
+ _lastConnVert->lstNext = _firstShapeVert;
+ }
+ else
+ {
+ vert->lstNext->lstPrev = vert->lstPrev;
+ vert->lstPrev->lstNext = vert->lstNext;
+ }
+ _connVertices--;
+ }
+ else // if (vert->id.shape > 0)
+ {
+ // A Shape vertex
+ if (vert == _lastShapeVert)
+ {
+ // Set new last
+ _lastShapeVert = _lastShapeVert->lstPrev;
+
+ if (vert == _firstShapeVert)
+ {
+ _firstShapeVert = nullptr;
+ if (_lastConnVert)
+ {
+ _lastConnVert->lstNext = nullptr;
+ }
+ }
+
+ if (_lastShapeVert)
+ {
+ _lastShapeVert->lstNext = nullptr;
+ }
+ }
+ else if (vert == _firstShapeVert)
+ {
+ // Set new first
+ _firstShapeVert = _firstShapeVert->lstNext;
+
+ // Correct the last conn vertex
+ if (_lastConnVert)
+ {
+ _lastConnVert->lstNext = _firstShapeVert;
+ }
+
+ if (_firstShapeVert)
+ {
+ _firstShapeVert->lstPrev = nullptr;
+ }
+ }
+ else
+ {
+ vert->lstNext->lstPrev = vert->lstPrev;
+ vert->lstPrev->lstNext = vert->lstNext;
+ }
+ _shapeVertices--;
+ }
+ vert->lstPrev = nullptr;
+ vert->lstNext = nullptr;
+
+ checkVertInfListConditions();
+
+ return following;
+}
+
+
+VertInf *VertInfList::getVertexByID(const VertID& id)
+{
+ VertID searchID = id;
+ if (searchID.vn == kUnassignedVertexNumber)
+ {
+ unsigned int topbit = ((unsigned int) 1) << 31;
+ if (searchID.objID & topbit)
+ {
+ searchID.objID = searchID.objID & ~topbit;
+ searchID.vn = VertID::src;
+ }
+ else
+ {
+ searchID.vn = VertID::tar;
+ }
+ }
+ VertInf *last = end();
+ for (VertInf *curr = connsBegin(); curr != last; curr = curr->lstNext)
+ {
+ if (curr->id == searchID)
+ {
+ return curr;
+ }
+ }
+ return nullptr;
+}
+
+
+VertInf *VertInfList::getVertexByPos(const Point& p)
+{
+ VertInf *last = end();
+ for (VertInf *curr = shapesBegin(); curr != last; curr = curr->lstNext)
+ {
+ if (curr->point == p)
+ {
+ return curr;
+ }
+ }
+ return nullptr;
+}
+
+
+VertInf *VertInfList::shapesBegin(void)
+{
+ return _firstShapeVert;
+}
+
+
+VertInf *VertInfList::connsBegin(void)
+{
+ if (_firstConnVert)
+ {
+ return _firstConnVert;
+ }
+ // No connector vertices
+ return _firstShapeVert;
+}
+
+
+VertInf *VertInfList::end(void)
+{
+ return nullptr;
+}
+
+
+unsigned int VertInfList::connsSize(void) const
+{
+ return _connVertices;
+}
+
+
+unsigned int VertInfList::shapesSize(void) const
+{
+ return _shapeVertices;
+}
+
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/vertices.h b/src/3rdparty/adaptagrams/libavoid/vertices.h
new file mode 100644
index 0000000..aac43bb
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/vertices.h
@@ -0,0 +1,226 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2013 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_VERTICES_H
+#define AVOID_VERTICES_H
+
+#include <list>
+#include <set>
+#include <map>
+#include <iostream>
+#include <cstdio>
+#include <utility>
+
+#include "libavoid/geomtypes.h"
+
+namespace Avoid {
+
+class EdgeInf;
+class VertInf;
+class Router;
+
+typedef std::list<EdgeInf *> EdgeInfList;
+typedef std::pair<VertInf *, VertInf *> VertexPair;
+
+typedef unsigned int ConnDirFlags;
+typedef unsigned short VertIDProps;
+
+
+class VertID
+{
+ public:
+ unsigned int objID;
+ unsigned short vn;
+ // Properties:
+ VertIDProps props;
+
+ static const unsigned short src;
+ static const unsigned short tar;
+
+ static const VertIDProps PROP_ConnPoint;
+ static const VertIDProps PROP_OrthShapeEdge;
+ static const VertIDProps PROP_ConnectionPin;
+ static const VertIDProps PROP_ConnCheckpoint;
+ static const VertIDProps PROP_DummyPinHelper;
+
+ VertID();
+ VertID(unsigned int id, unsigned short n, VertIDProps p = 0);
+ VertID(const VertID& other);
+ VertID& operator= (const VertID& rhs);
+ bool operator==(const VertID& rhs) const;
+ bool operator!=(const VertID& rhs) const;
+ bool operator<(const VertID& rhs) const;
+ VertID operator+(const int& rhs) const;
+ VertID operator-(const int& rhs) const;
+ VertID& operator++(int);
+ void print(FILE *file = stdout) const;
+ void db_print(void) const;
+ friend std::ostream& operator<<(std::ostream& os, const VertID& vID);
+
+ // Property tests:
+ inline bool isOrthShapeEdge(void) const
+ {
+ return (props & PROP_OrthShapeEdge) ? true : false;
+ }
+ inline bool isConnPt(void) const
+ {
+ return (props & PROP_ConnPoint) ? true : false;
+ }
+ inline bool isConnectionPin(void) const
+ {
+ return (props & PROP_ConnectionPin) ? true : false;
+ }
+ inline bool isConnCheckpoint(void) const
+ {
+ return (props & PROP_ConnCheckpoint) ? true : false;
+ }
+ inline bool isDummyPinHelper(void) const
+ {
+ return (props & PROP_DummyPinHelper) ? true : false;
+ }
+};
+
+
+// An ID given to all dummy vertices inserted to allow creation of the
+// orthogonal visibility graph since the vertices in the orthogonal graph
+// mostly do not correspond to shape corners or connector endpoints.
+//
+static const VertID dummyOrthogID(0, 0);
+static const VertID dummyOrthogShapeID(0, 0, VertID::PROP_OrthShapeEdge);
+
+class ANode;
+
+class VertInf
+{
+ public:
+ VertInf(Router *router, const VertID& vid, const Point& vpoint,
+ const bool addToRouter = true);
+ ~VertInf();
+ void Reset(const VertID& vid, const Point& vpoint);
+ void Reset(const Point& vpoint);
+ void removeFromGraph(const bool isConnVert = true);
+ bool orphaned(void);
+
+ unsigned int pathLeadsBackTo(const VertInf *start) const;
+ void setVisibleDirections(const ConnDirFlags directions);
+ ConnDirFlags directionFrom(const VertInf *other) const;
+ // Checks if this vertex has the target as a visibility neighbour.
+ EdgeInf *hasNeighbour(VertInf *target, bool orthogonal) const;
+ void orphan(void);
+
+ VertInf **makeTreeRootPointer(VertInf *root);
+ VertInf *treeRoot(void) const;
+ VertInf **treeRootPointer(void) const;
+ void setTreeRootPointer(VertInf **pointer);
+ void clearTreeRootPointer(void);
+
+ void setSPTFRoot(VertInf *root);
+ VertInf *sptfRoot(void) const;
+
+ Router *_router;
+ VertID id;
+ Point point;
+ VertInf *lstPrev;
+ VertInf *lstNext;
+ VertInf *shPrev;
+ VertInf *shNext;
+ EdgeInfList visList;
+ unsigned int visListSize;
+ EdgeInfList orthogVisList;
+ unsigned int orthogVisListSize;
+ EdgeInfList invisList;
+ unsigned int invisListSize;
+ VertInf *pathNext;
+
+ // The tree root and distance value used when computing MTSTs.
+ // XXX: Maybe these should be allocated as a separate struct
+ // and referenced via a pointer. This would be slower due
+ // to memory allocation, but would save 2 x 8 = 24 bytes per
+ // VertInf on 64-bit machines.
+ VertInf *m_orthogonalPartner;
+ VertInf **m_treeRoot;
+ double sptfDist;
+
+ ConnDirFlags visDirections;
+ std::list<ANode *> aStarDoneNodes;
+ std::list<ANode *> aStarPendingNodes;
+ // Flags for orthogonal visibility properties, i.e., whether the
+ // line points to a shape edge, connection point or an obstacle.
+ unsigned int orthogVisPropFlags;
+};
+
+
+// Orthogonal visibility property flags
+static const unsigned int XL_EDGE = 1;
+static const unsigned int XL_CONN = 2;
+static const unsigned int XH_EDGE = 4;
+static const unsigned int XH_CONN = 8;
+static const unsigned int YL_EDGE = 16;
+static const unsigned int YL_CONN = 32;
+static const unsigned int YH_EDGE = 64;
+static const unsigned int YH_CONN = 128;
+
+
+bool directVis(VertInf *src, VertInf *dst);
+
+
+// A linked list of all the vertices in the router instance. All the
+// connector endpoints are listed first, then all the shape vertices.
+// Dummy vertices inserted for orthogonal routing are classed as shape
+// vertices but have VertID(0, 0).
+//
+class VertInfList
+{
+ public:
+ VertInfList();
+ void addVertex(VertInf *vert);
+ VertInf *removeVertex(VertInf *vert);
+ VertInf *getVertexByID(const VertID& id);
+ VertInf *getVertexByPos(const Point& p);
+ VertInf *shapesBegin(void);
+ VertInf *connsBegin(void);
+ VertInf *end(void);
+ unsigned int connsSize(void) const;
+ unsigned int shapesSize(void) const;
+ private:
+ VertInf *_firstShapeVert;
+ VertInf *_firstConnVert;
+ VertInf *_lastShapeVert;
+ VertInf *_lastConnVert;
+ unsigned int _shapeVertices;
+ unsigned int _connVertices;
+};
+
+
+typedef std::set<unsigned int> ShapeSet;
+typedef std::map<VertID, ShapeSet> ContainsMap;
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/viscluster.cpp b/src/3rdparty/adaptagrams/libavoid/viscluster.cpp
new file mode 100644
index 0000000..ebc0c50
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/viscluster.cpp
@@ -0,0 +1,116 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2008 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+#include <cstdlib>
+
+#include "libavoid/viscluster.h"
+#include "libavoid/router.h"
+#include "libavoid/assertions.h"
+#include "libavoid/debug.h"
+
+
+namespace Avoid {
+
+
+ClusterRef::ClusterRef(Router *router, Polygon& polygon, const unsigned int id)
+ : m_router(router),
+ m_polygon(polygon, router),
+ m_rectangular_polygon(m_polygon.boundingRectPolygon()),
+ m_active(false)
+{
+ COLA_ASSERT(m_router != nullptr);
+ m_id = m_router->assignId(id);
+
+ m_router->addCluster(this);
+}
+
+
+ClusterRef::~ClusterRef()
+{
+ if (m_router->m_currently_calling_destructors == false)
+ {
+ err_printf("ERROR: ClusterRef::~ClusterRef() shouldn't be called directly.\n");
+ err_printf(" It is owned by the router. Call Router::deleteCluster() instead.\n");
+ abort();
+ }
+}
+
+
+void ClusterRef::makeActive(void)
+{
+ COLA_ASSERT(!m_active);
+
+ // Add to clusterRefs list.
+ m_clusterrefs_pos = m_router->clusterRefs.insert(
+ m_router->clusterRefs.begin(), this);
+
+ m_active = true;
+}
+
+
+void ClusterRef::makeInactive(void)
+{
+ COLA_ASSERT(m_active);
+
+ // Remove from clusterRefs list.
+ m_router->clusterRefs.erase(m_clusterrefs_pos);
+
+ m_active = false;
+}
+
+
+void ClusterRef::setNewPoly(Polygon& poly)
+{
+ m_polygon = ReferencingPolygon(poly, m_router);
+ m_rectangular_polygon = m_polygon.boundingRectPolygon();
+}
+
+
+unsigned int ClusterRef::id(void) const
+{
+ return m_id;
+}
+
+
+ReferencingPolygon& ClusterRef::polygon(void)
+{
+ return m_polygon;
+}
+
+
+Polygon& ClusterRef::rectangularPolygon(void)
+{
+ return m_rectangular_polygon;
+}
+
+
+Router *ClusterRef::router(void) const
+{
+ return m_router;
+}
+
+
+}
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/viscluster.h b/src/3rdparty/adaptagrams/libavoid/viscluster.h
new file mode 100644
index 0000000..f5ddadc
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/viscluster.h
@@ -0,0 +1,136 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2008 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+//! @file viscluster.h
+//! @brief Contains the interface for the ClusterRef class.
+
+#ifndef AVOID_CLUSTER_H
+#define AVOID_CLUSTER_H
+
+#include <list>
+
+#include "libavoid/geometry.h"
+#include "libavoid/dllexport.h"
+
+namespace Avoid {
+
+class Router;
+class ClusterRef;
+typedef std::list<ClusterRef *> ClusterRefList;
+
+
+//! @brief The ClusterRef class represents a cluster object.
+//!
+//! Cluster are boundaries around groups of shape objects. Ideally, only
+//! connectors with one endpoint inside the cluster and one endpoint outside
+//! the cluster will cross the cluster boundary. Connectors that begin and
+//! end inside a cluster will not route outside it, and connectors that begin
+//! and end outside the cluster will not enter the cluster.
+//!
+//! @note While the functionality of this class works, it is currently
+//! experimental you will likely suffer a large performance hit
+//! when using it.
+//!
+class AVOID_EXPORT ClusterRef
+{
+ public:
+ //! @brief Cluster reference constructor.
+ //!
+ //! Creates a cluster object reference, but does not yet place it
+ //! into the Router scene. You can add or remove the cluster to/from
+ //! the scene with Router::addCluster() and Router::delCluster(). The
+ //! cluster can effectively be moved with ClusterRef::setNewPoly()
+ //! method.
+ //!
+ //! The poly argument should be used to specify a polygon boundary.
+ //! The rectangular boundary will be automatically generated from this.
+ //! The polygon boundary could be a convex hull consisting of points
+ //! from the boundaries of shapes.
+ //!
+ //! @note Regarding IDs:
+ //! You can let libavoid manually handle IDs by not specifying
+ //! them. Alternatively, you can specify all IDs yourself, but
+ //! you must be careful to makes sure that each object in the
+ //! scene (shape, connector, cluster, etc) is given a unique,
+ //! positive ID. This uniqueness is checked if assertions are
+ //! enabled, but if not and there are clashes then strange
+ //! things can happen.
+ //!
+ //! @param[in] router The router scene to place the cluster into.
+ //! @param[in] poly A Polygon representing the boundary of the
+ //! cluster.
+ //! @param[in] id Optionally, a positive integer ID unique
+ //! among all objects.
+ //!
+ ClusterRef(Router *router, Polygon& poly, const unsigned int id = 0);
+
+// To prevent C++ objects from being destroyed in garbage collected languages
+// when the libraries are called from SWIG, we hide the declarations of the
+// destructors and prevent generation of default destructors.
+#ifndef SWIG
+ //! @brief Cluster reference destructor.
+ ~ClusterRef();
+#endif
+ //! @brief Update the polygon boundary for this cluster.
+ //!
+ //! You should specify a polygon boundary. The rectangular one will
+ //! be generated automatically from this.
+ //!
+ //! @param[in] poly A Polygon representing the boundary of the
+ //! cluster.
+ void setNewPoly(Polygon& poly);
+ //! @brief Returns the ID of this cluster.
+ //! @returns The ID of the cluster.
+ unsigned int id(void) const;
+ //! @brief Returns a reference to the polygon boundary of this
+ //! cluster.
+ //! @returns A reference to the polygon boundary of the cluster.
+ ReferencingPolygon& polygon(void);
+ //! @brief Returns a reference to the rectangular boundary of this
+ //! cluster.
+ //! @returns A reference to the rectangular boundary of the cluster.
+ Polygon& rectangularPolygon(void);
+ //! @brief Returns a pointer to the router scene this cluster is in.
+ //! @returns A pointer to the router scene for this cluster.
+ Router *router(void) const;
+
+ void makeActive(void);
+ void makeInactive(void);
+
+ private:
+ Router *m_router;
+ unsigned int m_id;
+ ReferencingPolygon m_polygon;
+ Polygon m_rectangular_polygon;
+ bool m_active;
+ ClusterRefList::iterator m_clusterrefs_pos;
+};
+
+
+}
+
+
+#endif
+
+
diff --git a/src/3rdparty/adaptagrams/libavoid/visibility.cpp b/src/3rdparty/adaptagrams/libavoid/visibility.cpp
new file mode 100644
index 0000000..3adadd4
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/visibility.cpp
@@ -0,0 +1,676 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2009 Monash University
+ *
+ * --------------------------------------------------------------------
+ * The Visibility Sweep technique is based upon the method described
+ * in Section 5.2 of:
+ * Lee, D.-T. (1978). Proximity and reachability in the plane.,
+ * PhD thesis, Department of Electrical Engineering,
+ * University of Illinois, Urbana, IL.
+ * --------------------------------------------------------------------
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#include <algorithm>
+#include <cfloat>
+
+#include "libavoid/shape.h"
+#include "libavoid/debug.h"
+#include "libavoid/visibility.h"
+#include "libavoid/vertices.h"
+#include "libavoid/graph.h"
+#include "libavoid/geometry.h"
+#include "libavoid/router.h"
+#include "libavoid/assertions.h"
+
+
+namespace Avoid {
+
+
+static void vertexSweep(VertInf *vert);
+
+void Obstacle::computeVisibilityNaive(void)
+{
+ if ( !(router()->InvisibilityGrph) )
+ {
+ // Clear shape from graph.
+ removeFromGraph();
+ }
+
+ VertInf *shapeBegin = firstVert();
+ VertInf *shapeEnd = lastVert()->lstNext;
+
+ VertInf *pointsBegin = router()->vertices.connsBegin();
+ for (VertInf *curr = shapeBegin; curr != shapeEnd; curr = curr->lstNext)
+ {
+ bool knownNew = true;
+
+ db_printf("-- CONSIDERING --\n");
+ curr->id.db_print();
+
+ db_printf("\tFirst Half:\n");
+ for (VertInf *j = pointsBegin ; j != curr; j = j->lstNext)
+ {
+ if (j->id == dummyOrthogID)
+ {
+ // Don't include orthogonal dummy vertices.
+ continue;
+ }
+ EdgeInf::checkEdgeVisibility(curr, j, knownNew);
+ }
+
+ db_printf("\tSecond Half:\n");
+ VertInf *pointsEnd = router()->vertices.end();
+ for (VertInf *k = shapeEnd; k != pointsEnd; k = k->lstNext)
+ {
+ if (k->id == dummyOrthogID)
+ {
+ // Don't include orthogonal dummy vertices.
+ continue;
+ }
+ EdgeInf::checkEdgeVisibility(curr, k, knownNew);
+ }
+ }
+}
+
+
+void Obstacle::computeVisibilitySweep(void)
+{
+ if ( !(router()->InvisibilityGrph) )
+ {
+ // Clear shape from graph.
+ removeFromGraph();
+ }
+
+ VertInf *startIter = firstVert();
+ VertInf *endIter = lastVert()->lstNext;
+
+ for (VertInf *i = startIter; i != endIter; i = i->lstNext)
+ {
+ vertexSweep(i);
+ }
+}
+
+
+void vertexVisibility(VertInf *point, VertInf *partner, bool knownNew,
+ const bool gen_contains)
+{
+ Router *router = point->_router;
+ const VertID& pID = point->id;
+
+ // Make sure we're only doing ptVis for endpoints.
+ COLA_ASSERT(pID.isConnPt());
+
+ if ( !(router->InvisibilityGrph) )
+ {
+ point->removeFromGraph();
+ }
+
+ if (gen_contains && pID.isConnPt())
+ {
+ router->generateContains(point);
+ }
+
+ if (router->UseLeesAlgorithm)
+ {
+ vertexSweep(point);
+ }
+ else
+ {
+ VertInf *shapesEnd = router->vertices.end();
+ for (VertInf *k = router->vertices.connsBegin(); k != shapesEnd;
+ k = k->lstNext)
+ {
+ if (k->id == dummyOrthogID)
+ {
+ // Don't include orthogonal dummy vertices.
+ continue;
+ }
+ else if (k->id.isConnPt() && !k->id.isConnectionPin() &&
+ !(k->id.isConnCheckpoint() && k->id.objID == pID.objID))
+ {
+ // Include connection pins, but not connectors.
+ // Also include checkpoints with same ID as sweep point.
+ continue;
+ }
+ EdgeInf::checkEdgeVisibility(point, k, knownNew);
+ }
+ if (partner)
+ {
+ EdgeInf::checkEdgeVisibility(point, partner, knownNew);
+ }
+ }
+}
+
+
+//============================================================================
+// SWEEP CODE
+//
+
+
+class PointPair
+{
+ public:
+ PointPair(const Point& centerPoint, VertInf *inf)
+ : vInf(inf),
+ centerPoint(centerPoint)
+ {
+ angle = rotationalAngle(vInf->point - centerPoint);
+ distance = euclideanDist(centerPoint, vInf->point);
+ }
+ bool operator<(const PointPair& rhs) const
+ {
+ // Firstly order by angle.
+ if (angle == rhs.angle)
+ {
+ // If the points are collinear, then order them in increasing
+ // distance from the point we are sweeping around.
+ if (distance == rhs.distance)
+ {
+ // XXX: Add this assertion back if we require that
+ // connector endpoints have unique IDs. For the
+ // moment it is okay for them to have the same ID.
+ //COLA_ASSERT(vInf->id != rhs.vInf->id);
+
+ // If comparing two points at the same physical
+ // position, then order them by their VertIDs.
+ return vInf->id < rhs.vInf->id;
+ }
+ return distance < rhs.distance;
+ }
+ return angle < rhs.angle;
+ }
+
+ VertInf *vInf;
+ double angle;
+ double distance;
+ Point centerPoint;
+};
+
+typedef std::set<PointPair > VertSet;
+
+
+class EdgePair
+{
+ public:
+ EdgePair()
+ : vInf1(nullptr),
+ vInf2(nullptr),
+ dist1(0.0),
+ dist2(0.0),
+ angle(0.0),
+ angleDist(0.0)
+ {
+ // The default constuctor should never be called.
+ // This is defined to appease the MSVC compiler.
+ COLA_ASSERT(false);
+ }
+ EdgePair(const PointPair& p1, VertInf *v)
+ : vInf1(p1.vInf),
+ vInf2(v),
+ dist1(p1.distance),
+ dist2(euclideanDist(vInf2->point, p1.centerPoint)),
+ angle(p1.angle),
+ angleDist(p1.distance),
+ centerPoint(p1.centerPoint)
+ {
+ }
+ bool operator<(const EdgePair& rhs) const
+ {
+ COLA_ASSERT(angle == rhs.angle);
+ if (angleDist == rhs.angleDist)
+ {
+ return (dist2 < rhs.dist2);
+ }
+ return (angleDist < rhs.angleDist);
+ }
+ bool operator==(const EdgePair& rhs) const
+ {
+ if (((vInf1->id == rhs.vInf1->id) &&
+ (vInf2->id == rhs.vInf2->id)) ||
+ ((vInf1->id == rhs.vInf2->id) &&
+ (vInf2->id == rhs.vInf1->id)))
+ {
+ return true;
+ }
+ return false;
+ }
+ bool operator!=(const EdgePair& rhs) const
+ {
+ if (((vInf1->id == rhs.vInf1->id) &&
+ (vInf2->id == rhs.vInf2->id)) ||
+ ((vInf1->id == rhs.vInf2->id) &&
+ (vInf2->id == rhs.vInf1->id)))
+ {
+ return false;
+ }
+ return true;
+ }
+ void setNegativeAngle(void)
+ {
+ angle = -1.0;
+ }
+ double setCurrAngle(const PointPair& p)
+ {
+ if (p.vInf->point == vInf1->point)
+ {
+ angleDist = dist1;
+ angle = p.angle;
+ }
+ else if (p.vInf->point == vInf2->point)
+ {
+ angleDist = dist2;
+ angle = p.angle;
+ }
+ else if (p.angle != angle)
+ {
+ COLA_ASSERT(p.angle > angle);
+ angle = p.angle;
+ Point pp;
+ int result = rayIntersectPoint(vInf1->point, vInf2->point,
+ centerPoint, p.vInf->point, &(pp.x), &(pp.y));
+ if (result != DO_INTERSECT)
+ {
+ // This can happen with points that appear to have the
+ // same angle but at are at slightly different positions
+ angleDist = std::min(dist1, dist2);
+ }
+ else
+ {
+ angleDist = euclideanDist(pp, centerPoint);
+ }
+ }
+
+ return angleDist;
+ }
+
+ VertInf *vInf1;
+ VertInf *vInf2;
+ double dist1;
+ double dist2;
+ double angle;
+ double angleDist;
+ Point centerPoint;
+};
+
+typedef std::list<EdgePair> SweepEdgeList;
+
+
+#define AHEAD 1
+#define BEHIND -1
+
+class isBoundingShape
+{
+ public:
+ // Class instance remembers the ShapeSet.
+ isBoundingShape(ShapeSet& set) :
+ ss(set)
+ { }
+ // The following is an overloading of the function call operator.
+ bool operator () (const PointPair& pp)
+ {
+ if (!(pp.vInf->id.isConnPt()) &&
+ (ss.find(pp.vInf->id.objID) != ss.end()))
+ {
+ return true;
+ }
+ return false;
+ }
+ private:
+ // MSVC wants to generate the assignment operator and the default
+ // constructor, but fails. Therefore we declare them private and
+ // don't implement them.
+ isBoundingShape & operator=(isBoundingShape const &);
+ isBoundingShape();
+
+ ShapeSet& ss;
+};
+
+
+static bool sweepVisible(SweepEdgeList& T, const PointPair& point,
+ std::set<unsigned int>& onBorderIDs, int *blocker)
+{
+ if (T.empty())
+ {
+ // No blocking edges.
+ return true;
+ }
+
+ Router *router = point.vInf->_router;
+ bool visible = true;
+
+ SweepEdgeList::const_iterator closestIt = T.begin();
+ SweepEdgeList::const_iterator end = T.end();
+ while (closestIt != end)
+ {
+ if ((point.vInf->point == closestIt->vInf1->point) ||
+ (point.vInf->point == closestIt->vInf2->point))
+ {
+ // If the ray intersects just the endpoint of a
+ // blocking edge then ignore that edge.
+ ++closestIt;
+ continue;
+ }
+ break;
+ }
+ if (closestIt == end)
+ {
+ return true;
+ }
+
+ if (point.vInf->id.isConnPt())
+ {
+ // It's a connector endpoint, so we have to ignore
+ // edges of containing shapes for determining visibility.
+ ShapeSet& rss = router->contains[point.vInf->id];
+ while (closestIt != end)
+ {
+ if (rss.find(closestIt->vInf1->id.objID) == rss.end())
+ {
+ // This is not a containing edge so do the normal
+ // test and then stop.
+ if (point.distance > closestIt->angleDist)
+ {
+ visible = false;
+ }
+ else if ((point.distance == closestIt->angleDist) &&
+ onBorderIDs.find(closestIt->vInf1->id.objID) !=
+ onBorderIDs.end())
+ {
+ // Touching, but centerPoint is on another edge of
+ // shape shape, so count as blocking.
+ visible = false;
+ }
+ break;
+ }
+ // This was a containing edge, so consider the next along.
+ ++closestIt;
+ }
+ }
+ else
+ {
+ // Just test to see if this point is closer than the closest
+ // edge blocking this ray.
+ if (point.distance > closestIt->angleDist)
+ {
+ visible = false;
+ }
+ else if ((point.distance == closestIt->angleDist) &&
+ onBorderIDs.find(closestIt->vInf1->id.objID) !=
+ onBorderIDs.end())
+ {
+ // Touching, but centerPoint is on another edge of
+ // shape shape, so count as blocking.
+ visible = false;
+ }
+ }
+
+ if (!visible)
+ {
+ *blocker = (*closestIt).vInf1->id.objID;
+ }
+ return visible;
+}
+
+
+static void vertexSweep(VertInf *vert)
+{
+ Router *router = vert->_router;
+ VertID& pID = vert->id;
+ Point& pPoint = vert->point;
+
+ VertInf *centerInf = vert;
+ VertID centerID = pID;
+ Point centerPoint = pPoint;
+
+ // List of shape (and maybe endpt) vertices, except p
+ // Sort list, around
+ VertSet v;
+
+ // Initialise the vertex list
+ ShapeSet& ss = router->contains[centerID];
+ VertInf *beginVert = router->vertices.connsBegin();
+ VertInf *endVert = router->vertices.end();
+ for (VertInf *inf = beginVert; inf != endVert; inf = inf->lstNext)
+ {
+ if (inf == centerInf)
+ {
+ // Don't include the center point itself.
+ continue;
+ }
+ else if (inf->id == dummyOrthogID)
+ {
+ // Don't include orthogonal dummy vertices.
+ continue;
+ }
+
+ if (centerID.isConnPt() && (ss.find(inf->id.objID) != ss.end()) &&
+ !inf->id.isConnPt())
+ {
+ // Don't include edge points of containing shapes.
+ unsigned int shapeID = inf->id.objID;
+ db_printf("Center is inside shape %u so ignore shape edges.\n",
+ shapeID);
+ continue;
+ }
+
+ if (inf->id.isConnPt())
+ {
+ // Add connector endpoint.
+ if (centerID.isConnPt())
+ {
+ if (inf->id.isConnectionPin())
+ {
+ v.insert(PointPair(centerPoint, inf));
+ }
+ else if (centerID.isConnectionPin())
+ {
+ // Connection pins have visibility to everything.
+ v.insert(PointPair(centerPoint, inf));
+ }
+ else if (inf->id.objID == centerID.objID)
+ {
+ // Center is an endpoint, so only include the other
+ // endpoints or checkpoints from the matching connector.
+ v.insert(PointPair(centerPoint, inf));
+ }
+ }
+ else
+ {
+ // Center is a shape vertex, so add all endpoint vertices.
+ v.insert(PointPair(centerPoint, inf));
+ }
+ }
+ else
+ {
+ // Add shape vertex.
+ v.insert(PointPair(centerPoint, inf));
+ }
+ }
+ std::set<unsigned int> onBorderIDs;
+
+ // Add edges to T that intersect the initial ray.
+ SweepEdgeList e;
+ VertSet::const_iterator vbegin = v.begin();
+ VertSet::const_iterator vend = v.end();
+ const Point xaxis(DBL_MAX, centerInf->point.y);
+ for (VertSet::const_iterator t = vbegin; t != vend; ++t)
+ {
+ VertInf *k = t->vInf;
+
+ COLA_ASSERT(centerInf != k);
+
+ VertInf *kPrev = k->shPrev;
+ VertInf *kNext = k->shNext;
+ if (kPrev && (kPrev != centerInf) &&
+ (vecDir(centerInf->point, xaxis, kPrev->point) == AHEAD))
+ {
+ if (segmentIntersect(centerInf->point, xaxis, kPrev->point,
+ k->point))
+ {
+ EdgePair intPair = EdgePair(*t, kPrev);
+ e.push_back(intPair);
+ }
+ if (pointOnLine(kPrev->point, k->point, centerInf->point))
+ {
+ // Record that centerPoint is on an obstacle line.
+ onBorderIDs.insert(k->id.objID);
+ }
+ }
+ else if (kNext && (kNext != centerInf) &&
+ (vecDir(centerInf->point, xaxis, kNext->point) == AHEAD))
+ {
+ if (segmentIntersect(centerInf->point, xaxis, kNext->point,
+ k->point))
+ {
+ EdgePair intPair = EdgePair(*t, kNext);
+ e.push_back(intPair);
+ }
+ if (pointOnLine(kNext->point, k->point, centerInf->point))
+ {
+ // Record that centerPoint is on an obstacle line.
+ onBorderIDs.insert(k->id.objID);
+ }
+ }
+ }
+ for (SweepEdgeList::iterator c = e.begin(); c != e.end(); ++c)
+ {
+ (*c).setNegativeAngle();
+ }
+
+
+ // Start the actual sweep.
+ db_printf("SWEEP: "); centerID.db_print(); db_printf("\n");
+
+ isBoundingShape isBounding(ss);
+ for (VertSet::const_iterator t = vbegin; t != vend; ++t)
+ {
+ VertInf *currInf = (*t).vInf;
+ VertID& currID = currInf->id;
+ Point& currPt = currInf->point;
+
+ const double& currDist = (*t).distance;
+
+ EdgeInf *edge = EdgeInf::existingEdge(centerInf, currInf);
+ if (edge == nullptr)
+ {
+ edge = new EdgeInf(centerInf, currInf);
+ }
+
+ for (SweepEdgeList::iterator c = e.begin(); c != e.end(); ++c)
+ {
+ (*c).setCurrAngle(*t);
+ }
+ e.sort();
+
+ // Check visibility.
+ int blocker = 0;
+ bool currVisible = sweepVisible(e, *t, onBorderIDs, &blocker);
+
+ bool cone1 = true, cone2 = true;
+ if (!(centerID.isConnPt()))
+ {
+ cone1 = inValidRegion(router->IgnoreRegions,
+ centerInf->shPrev->point, centerPoint,
+ centerInf->shNext->point, currInf->point);
+ }
+ if (!(currInf->id.isConnPt()))
+ {
+ cone2 = inValidRegion(router->IgnoreRegions,
+ currInf->shPrev->point, currInf->point,
+ currInf->shNext->point, centerPoint);
+ }
+
+ if (!cone1 || !cone2)
+ {
+ if (router->InvisibilityGrph)
+ {
+ db_printf("\tSetting invisibility edge... \n\t\t");
+ edge->addBlocker(0);
+ edge->db_print();
+ }
+ }
+ else
+ {
+ if (currVisible)
+ {
+ db_printf("\tSetting visibility edge... \n\t\t");
+ edge->setDist(currDist);
+ edge->db_print();
+ }
+ else if (router->InvisibilityGrph)
+ {
+ db_printf("\tSetting invisibility edge... \n\t\t");
+ edge->addBlocker(blocker);
+ edge->db_print();
+ }
+ }
+
+ if (!(edge->added()) && !(router->InvisibilityGrph))
+ {
+ delete edge;
+ edge = nullptr;
+ }
+
+ if (!(currID.isConnPt()))
+ {
+ // This is a shape edge
+
+ if (currInf->shPrev != centerInf)
+ {
+ Point& prevPt = currInf->shPrev->point;
+ int prevDir = vecDir(centerPoint, currPt, prevPt);
+ EdgePair prevPair = EdgePair(*t, currInf->shPrev);
+
+ if (prevDir == BEHIND)
+ {
+ e.remove(prevPair);
+ }
+ else if (prevDir == AHEAD)
+ {
+ e.push_front(prevPair);
+ }
+ }
+
+ if (currInf->shNext != centerInf)
+ {
+ Point& nextPt = currInf->shNext->point;
+ int nextDir = vecDir(centerPoint, currPt, nextPt);
+ EdgePair nextPair = EdgePair(*t, currInf->shNext);
+
+ if (nextDir == BEHIND)
+ {
+ e.remove(nextPair);
+ }
+ else if (nextDir == AHEAD)
+ {
+ e.push_front(nextPair);
+ }
+ }
+ }
+ }
+}
+
+
+}
+
diff --git a/src/3rdparty/adaptagrams/libavoid/visibility.h b/src/3rdparty/adaptagrams/libavoid/visibility.h
new file mode 100644
index 0000000..771d5f5
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/visibility.h
@@ -0,0 +1,41 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2004-2008 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Michael Wybrow
+*/
+
+
+#ifndef AVOID_VISIBILITY_H
+#define AVOID_VISIBILITY_H
+
+
+namespace Avoid {
+
+class VertInf;
+
+extern void vertexVisibility(VertInf *point, VertInf *partner, bool knownNew,
+ const bool gen_contains = false);
+
+}
+
+
+#endif
+
diff --git a/src/3rdparty/adaptagrams/libavoid/vpsc.cpp b/src/3rdparty/adaptagrams/libavoid/vpsc.cpp
new file mode 100644
index 0000000..0a8efb0
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/vpsc.cpp
@@ -0,0 +1,1500 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2005-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Tim Dwyer
+ * Michael Wybrow
+ *
+ * --------------
+ *
+ * This file contains a slightly modified version of IncSolver() from libvpsc:
+ * A solver for the problem of Variable Placement with Separation Constraints.
+ * It has the following changes from the Adaptagrams VPSC version:
+ * - The required VPSC code has been consolidated into a single file.
+ * - Unnecessary code, like the Solver() class, has been removed.
+ * - The PairingHeap code has been replaced by a STL priority_queue.
+ *
+ * Modifications: Michael Wybrow
+ *
+*/
+
+#include "libavoid/vpsc.h"
+
+#ifndef USELIBVPSC
+
+#include <iostream>
+#include <cmath>
+#include <sstream>
+#include <map>
+#include <cfloat>
+#include <cstdio>
+
+#include "libavoid/assertions.h"
+#include "libavoid/debug.h"
+
+
+using namespace std;
+
+namespace Avoid {
+
+static const double ZERO_UPPERBOUND=-1e-10;
+static const double LAGRANGIAN_TOLERANCE=-1e-4;
+
+
+IncSolver::IncSolver(Variables const &vs, Constraints const &cs)
+ : m(cs.size()),
+ cs(cs),
+ n(vs.size()),
+ vs(vs),
+ needsScaling(false)
+{
+ for(unsigned i=0;i<n;++i) {
+ vs[i]->in.clear();
+ vs[i]->out.clear();
+
+ // Set needsScaling if any variables have a scale other than 1.
+ needsScaling |= (vs[i]->scale != 1);
+ }
+ for(unsigned i=0;i<m;++i) {
+ Constraint *c=cs[i];
+ c->left->out.push_back(c);
+ c->right->in.push_back(c);
+ c->needsScaling = needsScaling;
+ }
+ bs=new Blocks(vs);
+#ifdef LIBVPSC_LOGGING
+ printBlocks();
+ //COLA_ASSERT(!constraintGraphIsCyclic(n,vs));
+#endif
+
+ inactive=cs;
+ for(Constraints::iterator i=inactive.begin();i!=inactive.end();++i) {
+ (*i)->active=false;
+ }
+}
+IncSolver::~IncSolver() {
+ delete bs;
+}
+
+void IncSolver::addConstraint(Constraint *c)
+{
+ ++m;
+ c->active = false;
+ inactive.push_back(c);
+ c->left->out.push_back(c);
+ c->right->in.push_back(c);
+ c->needsScaling = needsScaling;
+}
+
+// useful in debugging
+void IncSolver::printBlocks() {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ for(set<Block*>::iterator i=bs->begin();i!=bs->end();++i) {
+ Block *b=*i;
+ f<<" "<<*b<<endl;
+ }
+ for(unsigned i=0;i<m;i++) {
+ f<<" "<<*cs[i]<<endl;
+ }
+#endif
+}
+
+/*
+ * Stores the relative positions of the variables in their finalPosition
+ * field.
+ */
+void IncSolver::copyResult() {
+ for(Variables::const_iterator i=vs.begin();i!=vs.end();++i) {
+ Variable* v=*i;
+ v->finalPosition=v->position();
+ COLA_ASSERT(v->finalPosition==v->finalPosition);
+ }
+}
+
+struct node {
+ set<node*> in;
+ set<node*> out;
+};
+// useful in debugging - cycles would be BAD
+bool IncSolver::constraintGraphIsCyclic(const unsigned n, Variable* const vs[]) {
+ map<Variable*, node*> varmap;
+ vector<node*> graph;
+ for(unsigned i=0;i<n;i++) {
+ node *u=new node;
+ graph.push_back(u);
+ varmap[vs[i]]=u;
+ }
+ for(unsigned i=0;i<n;i++) {
+ for(vector<Constraint*>::iterator c=vs[i]->in.begin();c!=vs[i]->in.end();++c) {
+ Variable *l=(*c)->left;
+ varmap[vs[i]]->in.insert(varmap[l]);
+ }
+
+ for(vector<Constraint*>::iterator c=vs[i]->out.begin();c!=vs[i]->out.end();++c) {
+ Variable *r=(*c)->right;
+ varmap[vs[i]]->out.insert(varmap[r]);
+ }
+ }
+ while(graph.size()>0) {
+ node *u=nullptr;
+ vector<node*>::iterator i=graph.begin();
+ for(;i!=graph.end();++i) {
+ u=*i;
+ if(u->in.size()==0) {
+ break;
+ }
+ }
+ if(i==graph.end() && graph.size()>0) {
+ //cycle found!
+ return true;
+ } else {
+ graph.erase(i);
+ for(set<node*>::iterator j=u->out.begin();j!=u->out.end();++j) {
+ node *v=*j;
+ v->in.erase(u);
+ }
+ delete u;
+ }
+ }
+ for(unsigned i=0; i<graph.size(); ++i) {
+ delete graph[i];
+ }
+ return false;
+}
+
+// useful in debugging - cycles would be BAD
+bool IncSolver::blockGraphIsCyclic() {
+ map<Block*, node*> bmap;
+ vector<node*> graph;
+ size_t length = bs->size();
+ for (size_t i = 0; i < length; ++i)
+ {
+ Block *b = bs->at(i);
+ node *u=new node;
+ graph.push_back(u);
+ bmap[b]=u;
+ }
+ for (size_t i = 0; i < length; ++i)
+ {
+ Block *b = bs->at(i);
+ b->setUpInConstraints();
+ Constraint *c=b->findMinInConstraint();
+ while(c!=nullptr) {
+ Block *l=c->left->block;
+ bmap[b]->in.insert(bmap[l]);
+ b->deleteMinInConstraint();
+ c=b->findMinInConstraint();
+ }
+
+ b->setUpOutConstraints();
+ c=b->findMinOutConstraint();
+ while(c!=nullptr) {
+ Block *r=c->right->block;
+ bmap[b]->out.insert(bmap[r]);
+ b->deleteMinOutConstraint();
+ c=b->findMinOutConstraint();
+ }
+ }
+ while(graph.size()>0) {
+ node *u=nullptr;
+ vector<node*>::iterator i=graph.begin();
+ for(;i!=graph.end();++i) {
+ u=*i;
+ if(u->in.size()==0) {
+ break;
+ }
+ }
+ if(i==graph.end() && graph.size()>0) {
+ //cycle found!
+ return true;
+ } else {
+ graph.erase(i);
+ for(set<node*>::iterator j=u->out.begin();j!=u->out.end();++j) {
+ node *v=*j;
+ v->in.erase(u);
+ }
+ delete u;
+ }
+ }
+ for(unsigned i=0; i<graph.size(); i++) {
+ delete graph[i];
+ }
+ return false;
+}
+
+bool IncSolver::solve() {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"solve_inc()..."<<endl;
+#endif
+ satisfy();
+ double lastcost = DBL_MAX, cost = bs->cost();
+ while(fabs(lastcost-cost)>0.0001) {
+ satisfy();
+ lastcost=cost;
+ cost = bs->cost();
+#ifdef LIBVPSC_LOGGING
+ f<<" bs->size="<<bs->size()<<", cost="<<cost<<endl;
+#endif
+ }
+ copyResult();
+ return bs->size()!=n;
+}
+/*
+ * incremental version of satisfy that allows refinement after blocks are
+ * moved.
+ *
+ * - move blocks to new positions
+ * - repeatedly merge across most violated constraint until no more
+ * violated constraints exist
+ *
+ * Note: there is a special case to handle when the most violated constraint
+ * is between two variables in the same block. Then, we must split the block
+ * over an active constraint between the two variables. We choose the
+ * constraint with the most negative lagrangian multiplier.
+ */
+bool IncSolver::satisfy() {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"satisfy_inc()..."<<endl;
+#endif
+ splitBlocks();
+ //long splitCtr = 0;
+ Constraint* v = nullptr;
+ //CBuffer buffer(inactive);
+ while ( (v = mostViolated(inactive)) &&
+ (v->equality || ((v->slack() < ZERO_UPPERBOUND) && !v->active)) )
+ {
+ COLA_ASSERT(!v->active);
+ Block *lb = v->left->block, *rb = v->right->block;
+ if(lb != rb) {
+ lb->merge(rb,v);
+ } else {
+ if(lb->isActiveDirectedPathBetween(v->right,v->left)) {
+ // cycle found, relax the violated, cyclic constraint
+ v->unsatisfiable=true;
+ continue;
+ //UnsatisfiableException e;
+ //lb->getActiveDirectedPathBetween(e.path,v->right,v->left);
+ //e.path.push_back(v);
+ //throw e;
+ }
+ //if(splitCtr++>10000) {
+ //throw "Cycle Error!";
+ //}
+ // constraint is within block, need to split first
+ try {
+ Constraint* splitConstraint
+ =lb->splitBetween(v->left,v->right,lb,rb);
+ if(splitConstraint!=nullptr) {
+ COLA_ASSERT(!splitConstraint->active);
+ inactive.push_back(splitConstraint);
+ } else {
+ v->unsatisfiable=true;
+ continue;
+ }
+ } catch(UnsatisfiableException e) {
+ e.path.push_back(v);
+ /*
+ std::cerr << "Unsatisfiable:" << std::endl;
+ for(std::vector<Constraint*>::iterator r=e.path.begin();
+ r!=e.path.end();++r)
+ {
+ std::cerr << **r <<std::endl;
+ }
+ */
+ v->unsatisfiable=true;
+ continue;
+ }
+ if(v->slack()>=0) {
+ COLA_ASSERT(!v->active);
+ // v was satisfied by the above split!
+ inactive.push_back(v);
+ bs->insert(lb);
+ bs->insert(rb);
+ } else {
+ bs->insert(lb->merge(rb,v));
+ delete ((lb->deleted) ? lb : rb);
+ }
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<"...remaining blocks="<<bs->size()<<", cost="<<bs->cost()<<endl;
+#endif
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<" finished merges."<<endl;
+#endif
+ bs->cleanup();
+ bool activeConstraints=false;
+ for(unsigned i=0;i<m;i++) {
+ v=cs[i];
+ if(v->active) activeConstraints=true;
+ if(v->slack() < ZERO_UPPERBOUND) {
+ ostringstream s;
+ s<<"Unsatisfied constraint: "<<*v;
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<s.str()<<endl;
+#endif
+ throw s.str().c_str();
+ }
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<" finished cleanup."<<endl;
+ printBlocks();
+#endif
+ copyResult();
+ return activeConstraints;
+}
+void IncSolver::moveBlocks() {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"moveBlocks()..."<<endl;
+#endif
+ size_t length = bs->size();
+ for (size_t i = 0; i < length; ++i)
+ {
+ Block *b = bs->at(i);
+ b->updateWeightedPosition();
+ //b->posn = b->wposn / b->weight;
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<" moved blocks."<<endl;
+#endif
+}
+void IncSolver::splitBlocks() {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+#endif
+ moveBlocks();
+ splitCnt=0;
+ // Split each block if necessary on min LM
+ size_t length = bs->size();
+ for (size_t i = 0; i < length; ++i)
+ {
+ Block *b = bs->at(i);
+ Constraint* v=b->findMinLM();
+ if(v!=nullptr && v->lm < LAGRANGIAN_TOLERANCE) {
+ COLA_ASSERT(!v->equality);
+#ifdef LIBVPSC_LOGGING
+ f<<" found split point: "<<*v<<" lm="<<v->lm<<endl;
+#endif
+ splitCnt++;
+ Block *b = v->left->block, *l=nullptr, *r=nullptr;
+ COLA_ASSERT(v->left->block == v->right->block);
+ //double pos = b->posn;
+ b->split(l,r,v);
+ //l->posn=r->posn=pos;
+ //l->wposn = l->posn * l->weight;
+ //r->wposn = r->posn * r->weight;
+ l->updateWeightedPosition();
+ r->updateWeightedPosition();
+ bs->insert(l);
+ bs->insert(r);
+ b->deleted=true;
+ COLA_ASSERT(!v->active);
+ inactive.push_back(v);
+#ifdef LIBVPSC_LOGGING
+ f<<" new blocks: "<<*l<<" and "<<*r<<endl;
+#endif
+ }
+ }
+ //if(splitCnt>0) { std::cout<<" splits: "<<splitCnt<<endl; }
+#ifdef LIBVPSC_LOGGING
+ f<<" finished splits."<<endl;
+#endif
+ bs->cleanup();
+}
+
+/*
+ * Scan constraint list for the most violated constraint, or the first equality
+ * constraint
+ */
+Constraint* IncSolver::mostViolated(Constraints &l)
+{
+ double slackForMostViolated = DBL_MAX;
+ Constraint* mostViolated = nullptr;
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f << "Looking for most violated..." << endl;
+#endif
+ size_t lSize = l.size();
+ size_t deleteIndex = lSize;
+ Constraint *constraint = nullptr;
+ double slack = 0;
+ for (size_t index = 0; index < lSize; ++index)
+ {
+ constraint = l[index];
+ slack = constraint->slack();
+ if (constraint->equality || slack < slackForMostViolated)
+ {
+ slackForMostViolated = slack;
+ mostViolated = constraint;
+ deleteIndex = index;
+ if (constraint->equality)
+ {
+ break;
+ }
+ }
+ }
+ // Because the constraint list is not order dependent we just
+ // move the last element over the deletePoint and resize
+ // downwards. There is always at least 1 element in the
+ // vector because of search.
+ if ( (deleteIndex < lSize) &&
+ (((slackForMostViolated < ZERO_UPPERBOUND) && !mostViolated->active) ||
+ mostViolated->equality) )
+ {
+ l[deleteIndex] = l[lSize-1];
+ l.resize(lSize-1);
+ }
+#ifdef LIBVPSC_LOGGING
+ if (mostViolated)
+ {
+ f << " most violated is: " << *mostViolated << endl;
+ }
+ else
+ {
+ f << " non found." << endl;
+ }
+#endif
+ return mostViolated;
+}
+
+
+using std::set;
+using std::vector;
+using std::iterator;
+using std::list;
+using std::copy;
+#define __NOTNAN(p) (p)==(p)
+
+
+Blocks::Blocks(vector<Variable*> const &vs) : vs(vs),nvs(vs.size()) {
+ blockTimeCtr=0;
+ m_blocks.resize(nvs);
+ for(size_t i=0;i<nvs;i++) {
+ m_blocks[i] = new Block(this, vs[i]);
+ }
+}
+Blocks::~Blocks(void)
+{
+ blockTimeCtr=0;
+ size_t length = m_blocks.size();
+ for (size_t i = 0; i < length; ++i)
+ {
+ delete m_blocks[i];
+ }
+ m_blocks.clear();
+}
+
+/*
+ * returns a list of variables with total ordering determined by the constraint
+ * DAG
+ */
+list<Variable*> *Blocks::totalOrder() {
+ list<Variable*> *order = new list<Variable*>;
+ for(size_t i=0;i<nvs;i++) {
+ vs[i]->visited=false;
+ }
+ for(size_t i=0;i<nvs;i++) {
+ if(vs[i]->in.size()==0) {
+ dfsVisit(vs[i],order);
+ }
+ }
+ return order;
+}
+// Recursive depth first search giving total order by pushing nodes in the DAG
+// onto the front of the list when we finish searching them
+void Blocks::dfsVisit(Variable *v, list<Variable*> *order) {
+ v->visited=true;
+ vector<Constraint*>::iterator it=v->out.begin();
+ for(;it!=v->out.end();++it) {
+ Constraint *c=*it;
+ if(!c->right->visited) {
+ dfsVisit(c->right, order);
+ }
+ }
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" order="<<*v<<endl;
+#endif
+ order->push_front(v);
+}
+/*
+ * Processes incoming constraints, most violated to least, merging with the
+ * neighbouring (left) block until no more violated constraints are found
+ */
+void Blocks::mergeLeft(Block *r) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"mergeLeft called on "<<*r<<endl;
+#endif
+ r->timeStamp=++blockTimeCtr;
+ r->setUpInConstraints();
+ Constraint *c=r->findMinInConstraint();
+ while (c != nullptr && c->slack()<0) {
+#ifdef LIBVPSC_LOGGING
+ f<<"mergeLeft on constraint: "<<*c<<endl;
+#endif
+ r->deleteMinInConstraint();
+ Block *l = c->left->block;
+ if (l->in==nullptr) l->setUpInConstraints();
+ double dist = c->right->offset - c->left->offset - c->gap;
+ if (r->vars->size() < l->vars->size()) {
+ dist=-dist;
+ std::swap(l, r);
+ }
+ blockTimeCtr++;
+ r->merge(l, c, dist);
+ r->mergeIn(l);
+ r->timeStamp=blockTimeCtr;
+ removeBlock(l);
+ c=r->findMinInConstraint();
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<"merged "<<*r<<endl;
+#endif
+}
+/*
+ * Symmetrical to mergeLeft
+ */
+void Blocks::mergeRight(Block *l) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"mergeRight called on "<<*l<<endl;
+#endif
+ l->setUpOutConstraints();
+ Constraint *c = l->findMinOutConstraint();
+ while (c != nullptr && c->slack()<0) {
+#ifdef LIBVPSC_LOGGING
+ f<<"mergeRight on constraint: "<<*c<<endl;
+#endif
+ l->deleteMinOutConstraint();
+ Block *r = c->right->block;
+ r->setUpOutConstraints();
+ double dist = c->left->offset + c->gap - c->right->offset;
+ if (l->vars->size() > r->vars->size()) {
+ dist=-dist;
+ std::swap(l, r);
+ }
+ l->merge(r, c, dist);
+ l->mergeOut(r);
+ removeBlock(r);
+ c=l->findMinOutConstraint();
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<"merged "<<*l<<endl;
+#endif
+}
+void Blocks::removeBlock(Block *doomed) {
+ doomed->deleted=true;
+ //erase(doomed);
+}
+
+// Clears up deleted blocks from the blocks list.
+void Blocks::cleanup(void)
+{
+ // We handle removal of items in-place by doing a single linear pass over
+ // the vector. We use two indexes, j to refer to elements we've checked
+ // from the original list and i to refer to the current position we are
+ // writing in the updated list.
+ size_t i = 0;
+
+ // For all items in the current blocks list...
+ size_t length = m_blocks.size();
+ for (size_t j = 0; j < length; )
+ {
+ if (m_blocks[j]->deleted)
+ {
+ // The element is deleted, so free it and increment j.
+ delete m_blocks[j];
+ ++j;
+ }
+ else
+ {
+ // The current element is still valid.
+ if (j > i)
+ {
+ // If we've not looking at same element, then copy from j to i.
+ m_blocks[i] = m_blocks[j];
+ }
+ // Increment both indexes.
+ ++i;
+ ++j;
+ }
+ }
+ m_blocks.resize(i);
+}
+/*
+ * Splits block b across constraint c into two new blocks, l and r (c's left
+ * and right sides respectively)
+ */
+void Blocks::split(Block *b, Block *&l, Block *&r, Constraint *c) {
+ b->split(l,r,c);
+ m_blocks.push_back(l);
+ m_blocks.push_back(r);
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"Split left: "<<*l<<endl;
+ f<<"Split right: "<<*r<<endl;
+#endif
+ r->posn = b->posn;
+ //COLA_ASSERT(r->weight!=0);
+ //r->wposn = r->posn * r->weight;
+ mergeLeft(l);
+ // r may have been merged!
+ r = c->right->block;
+ r->updateWeightedPosition();
+ //r->posn = r->wposn / r->weight;
+ mergeRight(r);
+ removeBlock(b);
+
+ COLA_ASSERT(__NOTNAN(l->posn));
+ COLA_ASSERT(__NOTNAN(r->posn));
+}
+/*
+ * returns the cost total squared distance of variables from their desired
+ * positions
+ */
+double Blocks::cost() {
+ double c = 0;
+ size_t length = m_blocks.size();
+ for (size_t i = 0; i < length; ++i)
+ {
+ c += m_blocks[i]->cost();
+ }
+ return c;
+}
+
+void PositionStats::addVariable(Variable* v) {
+ double ai=scale/v->scale;
+ double bi=v->offset/v->scale;
+ double wi=v->weight;
+ AB+=wi*ai*bi;
+ AD+=wi*ai*v->desiredPosition;
+ A2+=wi*ai*ai;
+ /*
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f << "adding v[" << v->id << "], blockscale=" << scale << ", despos="
+ << v->desiredPosition << ", ai=" << ai << ", bi=" << bi
+ << ", AB=" << AB << ", AD=" << AD << ", A2=" << A2;
+#endif
+*/
+}
+void Block::addVariable(Variable* v) {
+ v->block=this;
+ vars->push_back(v);
+ if(ps.A2==0) ps.scale=v->scale;
+ //weight+= v->weight;
+ //wposn += v->weight * (v->desiredPosition - v->offset);
+ //posn=wposn/weight;
+ ps.addVariable(v);
+ posn=(ps.AD - ps.AB) / ps.A2;
+ COLA_ASSERT(__NOTNAN(posn));
+ /*
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f << ", posn=" << posn << endl;
+#endif
+*/
+}
+Block::Block(Blocks *blocks, Variable* const v)
+ : vars(new vector<Variable*>)
+ , posn(0)
+ //, weight(0)
+ //, wposn(0)
+ , deleted(false)
+ , timeStamp(0)
+ , in(nullptr)
+ , out(nullptr)
+ , blocks(blocks)
+{
+ if(v!=nullptr) {
+ v->offset=0;
+ addVariable(v);
+ }
+}
+
+void Block::updateWeightedPosition() {
+ //wposn=0;
+ ps.AB=ps.AD=ps.A2=0;
+ for (Vit v=vars->begin();v!=vars->end();++v) {
+ //wposn += ((*v)->desiredPosition - (*v)->offset) * (*v)->weight;
+ ps.addVariable(*v);
+ }
+ posn=(ps.AD - ps.AB) / ps.A2;
+ COLA_ASSERT(__NOTNAN(posn));
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f << ", posn=" << posn << endl;
+#endif
+}
+Block::~Block(void)
+{
+ delete vars;
+ delete in;
+ delete out;
+}
+void Block::setUpInConstraints() {
+ setUpConstraintHeap(in,true);
+}
+void Block::setUpOutConstraints() {
+ setUpConstraintHeap(out,false);
+}
+void Block::setUpConstraintHeap(Heap* &h,bool in) {
+ delete h;
+ h = new Heap();
+ for (Vit i=vars->begin();i!=vars->end();++i) {
+ Variable *v=*i;
+ vector<Constraint*> *cs=in?&(v->in):&(v->out);
+ for (Cit j=cs->begin();j!=cs->end();++j) {
+ Constraint *c=*j;
+ c->timeStamp=blocks->blockTimeCtr;
+ if ( ((c->left->block != this) && in) ||
+ ((c->right->block != this) && !in) )
+ {
+ h->push(c);
+ }
+ }
+ }
+}
+Block* Block::merge(Block* b, Constraint* c) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" merging on: "<<*c<<",c->left->offset="<<c->left->offset<<",c->right->offset="<<c->right->offset<<endl;
+#endif
+ double dist = c->right->offset - c->left->offset - c->gap;
+ Block *l=c->left->block;
+ Block *r=c->right->block;
+ if (l->vars->size() < r->vars->size()) {
+ r->merge(l,c,dist);
+ } else {
+ l->merge(r,c,-dist);
+ }
+ Block* mergeBlock=b->deleted?this:b;
+#ifdef LIBVPSC_LOGGING
+ f<<" merged block="<<*mergeBlock<<endl;
+#endif
+ return mergeBlock;
+}
+/*
+ * Merges b into this block across c. Can be either a
+ * right merge or a left merge
+ * @param b block to merge into this
+ * @param c constraint being merged
+ * @param distance separation required to satisfy c
+ */
+void Block::merge(Block *b, Constraint *c, double dist) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" merging: "<<*b<<"dist="<<dist<<endl;
+#endif
+ c->active=true;
+ //wposn+=b->wposn-dist*b->weight;
+ //weight+=b->weight;
+ for(Vit i=b->vars->begin();i!=b->vars->end();++i) {
+ Variable *v=*i;
+ //v->block=this;
+ //vars->push_back(v);
+ v->offset+=dist;
+ addVariable(v);
+ }
+#ifdef LIBVPSC_LOGGING
+ for(Vit i=vars->begin();i!=vars->end();++i) {
+ Variable *v=*i;
+ f<<" v["<<v->id<<"]: d="<<v->desiredPosition
+ <<" a="<<v->scale<<" o="<<v->offset
+ <<endl;
+ }
+ f<<" AD="<<ps.AD<<" AB="<<ps.AB<<" A2="<<ps.A2<<endl;
+#endif
+ //posn=wposn/weight;
+ //COLA_ASSERT(wposn==ps.AD - ps.AB);
+ posn=(ps.AD - ps.AB) / ps.A2;
+ COLA_ASSERT(__NOTNAN(posn));
+ b->deleted=true;
+}
+
+void Block::mergeIn(Block *b) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" merging constraint heaps... "<<endl;
+#endif
+ // We check the top of the heaps to remove possible internal constraints
+ findMinInConstraint();
+ b->findMinInConstraint();
+ while (!b->in->empty())
+ {
+ in->push(b->in->top());
+ b->in->pop();
+ }
+#ifdef LIBVPSC_LOGGING
+ f<<" merged heap: "<<*in<<endl;
+#endif
+}
+void Block::mergeOut(Block *b) {
+ findMinOutConstraint();
+ b->findMinOutConstraint();
+ while (!b->out->empty())
+ {
+ out->push(b->out->top());
+ b->out->pop();
+ }
+}
+Constraint *Block::findMinInConstraint() {
+ Constraint *v = nullptr;
+ vector<Constraint*> outOfDate;
+ while (!in->empty()) {
+ v = in->top();
+ Block *lb=v->left->block;
+ Block *rb=v->right->block;
+ // rb may not be this if called between merge and mergeIn
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" checking constraint ... "<<*v;
+ f<<" timestamps: left="<<lb->timeStamp<<" right="<<rb->timeStamp<<" constraint="<<v->timeStamp<<endl;
+#endif
+ if(lb == rb) {
+ // constraint has been merged into the same block
+#ifdef LIBVPSC_LOGGING
+ if(v->slack()<0) {
+ f<<" violated internal constraint found! "<<*v<<endl;
+ f<<" lb="<<*lb<<endl;
+ f<<" rb="<<*rb<<endl;
+ }
+#endif
+ in->pop();
+#ifdef LIBVPSC_LOGGING
+ f<<" ... skipping internal constraint"<<endl;
+#endif
+ } else if(v->timeStamp < lb->timeStamp) {
+ // block at other end of constraint has been moved since this
+ in->pop();
+ outOfDate.push_back(v);
+#ifdef LIBVPSC_LOGGING
+ f<<" reinserting out of date (reinsert later)"<<endl;
+#endif
+ } else {
+ break;
+ }
+ }
+ for(Cit i=outOfDate.begin();i!=outOfDate.end();++i) {
+ v=*i;
+ v->timeStamp=blocks->blockTimeCtr;
+ in->push(v);
+ }
+ if(in->empty()) {
+ v=nullptr;
+ } else {
+ v=in->top();
+ }
+ return v;
+}
+Constraint *Block::findMinOutConstraint() {
+ if(out->empty()) return nullptr;
+ Constraint *v = out->top();
+ while (v->left->block == v->right->block) {
+ out->pop();
+ if(out->empty()) return nullptr;
+ v = out->top();
+ }
+ return v;
+}
+void Block::deleteMinInConstraint() {
+ in->pop();
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<"deleteMinInConstraint... "<<endl;
+ f<<" result: "<<*in<<endl;
+#endif
+}
+void Block::deleteMinOutConstraint() {
+ out->pop();
+}
+inline bool Block::canFollowLeft(Constraint const* c, Variable const* last) const {
+ return c->left->block==this && c->active && last!=c->left;
+}
+inline bool Block::canFollowRight(Constraint const* c, Variable const* last) const {
+ return c->right->block==this && c->active && last!=c->right;
+}
+
+// computes the derivative of v and the lagrange multipliers
+// of v's out constraints (as the recursive sum of those below.
+// Does not backtrack over u.
+// also records the constraint with minimum lagrange multiplier
+// in min_lm
+double Block::compute_dfdv(Variable* const v, Variable* const u,
+ Constraint *&min_lm) {
+ double dfdv=v->dfdv();
+ for(Cit it=v->out.begin();it!=v->out.end();++it) {
+ Constraint *c=*it;
+ if(canFollowRight(c,u)) {
+ c->lm=compute_dfdv(c->right,v,min_lm);
+ dfdv+=c->lm*c->left->scale;
+ if(!c->equality&&(min_lm==nullptr||c->lm<min_lm->lm)) min_lm=c;
+ }
+ }
+ for(Cit it=v->in.begin();it!=v->in.end();++it) {
+ Constraint *c=*it;
+ if(canFollowLeft(c,u)) {
+ c->lm=-compute_dfdv(c->left,v,min_lm);
+ dfdv-=c->lm*c->right->scale;
+ if(!c->equality&&(min_lm==nullptr||c->lm<min_lm->lm)) min_lm=c;
+ }
+ }
+ return dfdv/v->scale;
+}
+double Block::compute_dfdv(Variable* const v, Variable* const u) {
+ double dfdv = v->dfdv();
+ for(Cit it = v->out.begin(); it != v->out.end(); ++it) {
+ Constraint *c = *it;
+ if(canFollowRight(c,u)) {
+ c->lm = compute_dfdv(c->right,v);
+ dfdv += c->lm * c->left->scale;
+ }
+ }
+ for(Cit it=v->in.begin();it!=v->in.end();++it) {
+ Constraint *c = *it;
+ if(canFollowLeft(c,u)) {
+ c->lm = - compute_dfdv(c->left,v);
+ dfdv -= c->lm * c->right->scale;
+ }
+ }
+ return dfdv/v->scale;
+}
+
+// The top level v and r are variables between which we want to find the
+// constraint with the smallest lm.
+// Similarly, m is initially nullptr and is only assigned a value if the next
+// variable to be visited is r or if a possible min constraint is returned from
+// a nested call (rather than nullptr).
+// Then, the search for the m with minimum lm occurs as we return from
+// the recursion (checking only constraints traversed left-to-right
+// in order to avoid creating any new violations).
+// We also do not consider equality constraints as potential split points
+bool Block::split_path(
+ Variable* r,
+ Variable* const v,
+ Variable* const u,
+ Constraint* &m,
+ bool desperation=false
+ )
+{
+ for(Cit it(v->in.begin());it!=v->in.end();++it) {
+ Constraint *c=*it;
+ if(canFollowLeft(c,u)) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" left split path: "<<*c<<endl;
+#endif
+ if(c->left==r) {
+ if(desperation&&!c->equality) m=c;
+ return true;
+ } else {
+ if(split_path(r,c->left,v,m)) {
+ if(desperation && !c->equality && (!m||c->lm<m->lm)) {
+ m=c;
+ }
+ return true;
+ }
+ }
+ }
+ }
+ for(Cit it(v->out.begin());it!=v->out.end();++it) {
+ Constraint *c=*it;
+ if(canFollowRight(c,u)) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" right split path: "<<*c<<endl;
+#endif
+ if(c->right==r) {
+ if(!c->equality) m=c;
+ return true;
+ } else {
+ if(split_path(r,c->right,v,m)) {
+ if(!c->equality && (!m||c->lm<m->lm))
+ m=c;
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+}
+/*
+Block::Pair Block::compute_dfdv_between(
+ Variable* r, Variable* const v, Variable* const u,
+ const Direction dir = NONE, bool changedDirection = false) {
+ double dfdv=v->weight*(v->position() - v->desiredPosition);
+ Constraint *m=nullptr;
+ for(Cit it(v->in.begin());it!=v->in.end();++it) {
+ Constraint *c=*it;
+ if(canFollowLeft(c,u)) {
+ if(dir==RIGHT) {
+ changedDirection = true;
+ }
+ if(c->left==r) {
+ r=nullptr;
+ if(!c->equality) m=c;
+ }
+ Pair p=compute_dfdv_between(r,c->left,v,
+ LEFT,changedDirection);
+ dfdv -= c->lm = -p.first;
+ if(r && p.second)
+ m = p.second;
+ }
+ }
+ for(Cit it(v->out.begin());it!=v->out.end();++it) {
+ Constraint *c=*it;
+ if(canFollowRight(c,u)) {
+ if(dir==LEFT) {
+ changedDirection = true;
+ }
+ if(c->right==r) {
+ r=nullptr;
+ if(!c->equality) m=c;
+ }
+ Pair p=compute_dfdv_between(r,c->right,v,
+ RIGHT,changedDirection);
+ dfdv += c->lm = p.first;
+ if(r && p.second)
+ m = changedDirection && !c->equality && c->lm < p.second->lm
+ ? c
+ : p.second;
+ }
+ }
+ return Pair(dfdv,m);
+}
+*/
+
+// resets LMs for all active constraints to 0 by
+// traversing active constraint tree starting from v,
+// not back tracking over u
+void Block::reset_active_lm(Variable* const v, Variable* const u) {
+ for(Cit it=v->out.begin();it!=v->out.end();++it) {
+ Constraint *c=*it;
+ if(canFollowRight(c,u)) {
+ c->lm=0;
+ reset_active_lm(c->right,v);
+ }
+ }
+ for(Cit it=v->in.begin();it!=v->in.end();++it) {
+ Constraint *c=*it;
+ if(canFollowLeft(c,u)) {
+ c->lm=0;
+ reset_active_lm(c->left,v);
+ }
+ }
+}
+void Block::list_active(Variable* const v, Variable* const u) {
+ for(Cit it=v->out.begin();it!=v->out.end();++it) {
+ Constraint *c=*it;
+ if(canFollowRight(c,u)) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" "<<*c<<endl;
+#endif
+ list_active(c->right,v);
+ }
+ }
+ for(Cit it=v->in.begin();it!=v->in.end();++it) {
+ Constraint *c=*it;
+ if(canFollowLeft(c,u)) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" "<<*c<<endl;
+#endif
+ list_active(c->left,v);
+ }
+ }
+}
+/*
+ * finds the constraint with the minimum lagrange multiplier, that is, the constraint
+ * that most wants to split
+ */
+Constraint *Block::findMinLM() {
+ Constraint *min_lm=nullptr;
+ reset_active_lm(vars->front(),nullptr);
+ compute_dfdv(vars->front(),nullptr,min_lm);
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" langrangians: "<<endl;
+ list_active(vars->front(),nullptr);
+#endif
+ return min_lm;
+}
+Constraint *Block::findMinLMBetween(Variable* const lv, Variable* const rv) {
+ reset_active_lm(vars->front(),nullptr);
+ compute_dfdv(vars->front(),nullptr);
+ Constraint *min_lm=nullptr;
+ split_path(rv,lv,nullptr,min_lm);
+#if 0
+ if(min_lm==nullptr) {
+ split_path(rv,lv,nullptr,min_lm,true);
+ }
+#else
+ if(min_lm==nullptr) {
+ //err_printf("Couldn't find split point!\n");
+ UnsatisfiableException e;
+ getActivePathBetween(e.path,lv,rv,nullptr);
+ throw e;
+ }
+ COLA_ASSERT(min_lm!=nullptr);
+#endif
+ return min_lm;
+}
+
+// populates block b by traversing the active constraint tree adding variables as they're
+// visited. Starts from variable v and does not backtrack over variable u.
+void Block::populateSplitBlock(Block *b, Variable* v, Variable const* u) {
+ b->addVariable(v);
+ for (Cit c=v->in.begin();c!=v->in.end();++c) {
+ if (canFollowLeft(*c,u))
+ populateSplitBlock(b, (*c)->left, v);
+ }
+ for (Cit c=v->out.begin();c!=v->out.end();++c) {
+ if (canFollowRight(*c,u))
+ populateSplitBlock(b, (*c)->right, v);
+ }
+}
+/*
+ * Returns the active path between variables u and v... not back tracking over w
+ */
+bool Block::getActivePathBetween(Constraints& path, Variable const* u,
+ Variable const* v, Variable const *w) const {
+ if(u==v) return true;
+ for (Cit_const c=u->in.begin();c!=u->in.end();++c) {
+ if (canFollowLeft(*c,w)) {
+ if(getActivePathBetween(path, (*c)->left, v, u)) {
+ path.push_back(*c);
+ return true;
+ }
+ }
+ }
+ for (Cit_const c=u->out.begin();c!=u->out.end();++c) {
+ if (canFollowRight(*c,w)) {
+ if(getActivePathBetween(path, (*c)->right, v, u)) {
+ path.push_back(*c);
+ return true;
+ }
+ }
+ }
+ return false;
+}
+// Search active constraint tree from u to see if there is a directed path to v.
+// Returns true if path is found with all constraints in path having their visited flag
+// set true.
+bool Block::isActiveDirectedPathBetween(Variable const* u, Variable const* v) const {
+ if(u==v) return true;
+ for (Cit_const c=u->out.begin();c!=u->out.end();++c) {
+ if(canFollowRight(*c,nullptr)) {
+ if(isActiveDirectedPathBetween((*c)->right,v)) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+bool Block::getActiveDirectedPathBetween(
+ Constraints& path, Variable const* u, Variable const* v) const {
+ if(u==v) return true;
+ for (Cit_const c=u->out.begin();c!=u->out.end();++c) {
+ if(canFollowRight(*c,nullptr)) {
+ if(getActiveDirectedPathBetween(path,(*c)->right,v)) {
+ path.push_back(*c);
+ return true;
+ }
+ }
+ }
+ return false;
+}
+/*
+ * Block needs to be split because of a violated constraint between vl and vr.
+ * We need to search the active constraint tree between l and r and find the constraint
+ * with min lagrangrian multiplier and split at that point.
+ * Returns the split constraint
+ */
+Constraint* Block::splitBetween(Variable* const vl, Variable* const vr,
+ Block* &lb, Block* &rb) {
+#ifdef LIBVPSC_LOGGING
+ ofstream f(LOGFILE,ios::app);
+ f<<" need to split between: "<<*vl<<" and "<<*vr<<endl;
+#endif
+ Constraint *c=findMinLMBetween(vl, vr);
+#ifdef LIBVPSC_LOGGING
+ f<<" going to split on: "<<*c<<endl;
+#endif
+ if(c!=nullptr) {
+ split(lb,rb,c);
+ deleted = true;
+ }
+ return c;
+}
+
+/*
+ * Creates two new blocks, l and r, and splits this block across constraint c,
+ * placing the left subtree of constraints (and associated variables) into l
+ * and the right into r.
+ */
+void Block::split(Block* &l, Block* &r, Constraint* c) {
+ c->active=false;
+ l=new Block(blocks);
+ populateSplitBlock(l,c->left,c->right);
+ //COLA_ASSERT(l->weight>0);
+ r=new Block(blocks);
+ populateSplitBlock(r,c->right,c->left);
+ //COLA_ASSERT(r->weight>0);
+}
+
+/*
+ * Computes the cost (squared euclidean distance from desired positions) of the
+ * current positions for variables in this block
+ */
+double Block::cost() {
+ double c = 0;
+ for (Vit v=vars->begin();v!=vars->end();++v) {
+ double diff = (*v)->position() - (*v)->desiredPosition;
+ c += (*v)->weight * diff * diff;
+ }
+ return c;
+}
+ostream& operator <<(ostream &os, const Block& b)
+{
+ os<<"Block(posn="<<b.posn<<"):";
+ for(Block::Vit v=b.vars->begin();v!=b.vars->end();++v) {
+ os<<" "<<**v;
+ }
+ if(b.deleted) {
+ os<<" Deleted!";
+ }
+ return os;
+}
+
+Constraint::Constraint(Variable *left, Variable *right, double gap, bool equality)
+: left(left),
+ right(right),
+ gap(gap),
+ timeStamp(0),
+ active(false),
+ equality(equality),
+ unsatisfiable(false),
+ needsScaling(true),
+ creator(nullptr)
+{
+ // In hindsight I think it's probably better to build the constraint DAG
+ // (by creating variable in/out lists) when needed, rather than in advance
+ //left->out.push_back(this);
+ //right->in.push_back(this);
+}
+Constraint::~Constraint() {
+ // see constructor: the following is just way too slow.
+ // Better to create a
+ // new DAG on demand than maintain the lists dynamically.
+ //Constraints::iterator i;
+ //for(i=left->out.begin(); i!=left->out.end(); i++) {
+ //if(*i==this) break;
+ //}
+ //left->out.erase(i);
+ //for(i=right->in.begin(); i!=right->in.end(); i++) {
+ //if(*i==this) break;
+ //}
+ //right->in.erase(i);
+}
+std::string Constraint::toString(void) const
+{
+ std::stringstream stream;
+ stream << "Constraint: var(" << left->id << ") ";
+ if (gap < 0)
+ {
+ stream << "- " << -gap << " ";
+ }
+ else
+ {
+ stream << "+ " << gap << " ";
+ }
+ stream << ((equality) ? "==" : "<=");
+ stream << " var(" << right->id << ") ";
+ return stream.str();
+}
+
+std::ostream& operator <<(std::ostream &os, const Constraint &c)
+{
+ const char *type = c.equality ? "=" : "<=";
+ std::ostringstream lscale, rscale;
+ if (c.left->scale != 1)
+ {
+ lscale << c.left->scale << "*";
+ }
+ if (c.right->scale != 1)
+ {
+ rscale << c.right->scale << "*";
+ }
+ os << lscale.str() << *c.left << "+" << c.gap << type <<
+ rscale.str() << *c.right;
+ if (c.left->block && c.right->block)
+ {
+ os << "(" << c.slack() << ")" << (c.active ? "-active" : "") <<
+ "(lm=" << c.lm << ")";
+ }
+ else
+ {
+ os << "(vars have no position)";
+ }
+ return os;
+}
+
+bool CompareConstraints::operator() (
+ Constraint *const &l, Constraint *const &r
+) const {
+ double const sl =
+ l->left->block->timeStamp > l->timeStamp
+ ||l->left->block==l->right->block
+ ?-DBL_MAX:l->slack();
+ double const sr =
+ r->left->block->timeStamp > r->timeStamp
+ ||r->left->block==r->right->block
+ ?-DBL_MAX:r->slack();
+ if(sl==sr) {
+ // arbitrary choice based on id
+ if(l->left->id==r->left->id) {
+ if(l->right->id<r->right->id) return true;
+ return false;
+ }
+ if(l->left->id<r->left->id) return true;
+ return false;
+ }
+ return sl > sr;
+}
+
+std::ostream& operator <<(std::ostream &os, const Variable &v) {
+ if(v.block)
+ os << "(" << v.id << "=" << v.position() << ")";
+ else
+ os << "(" << v.id << "=" << v.desiredPosition << ")";
+ return os;
+}
+
+typedef std::list<std::map<Variable *, double> > VarOffsetMapList;
+
+class EqualityConstraintSet
+{
+ public:
+ EqualityConstraintSet(Variables vs)
+ {
+ for (size_t i = 0; i < vs.size(); ++i)
+ {
+ std::map<Variable *, double> varSet;
+ varSet[vs[i]] = 0;
+ variableGroups.push_back(varSet);
+ }
+ }
+ bool isRedundant(Variable *lhs, Variable *rhs, double sep)
+ {
+ VarOffsetMapList::iterator lhsSet = setForVar(lhs);
+ VarOffsetMapList::iterator rhsSet = setForVar(rhs);
+ if (lhsSet == rhsSet)
+ {
+ // Check if this is a redundant constraint.
+ if (fabs(((*lhsSet)[lhs] + sep) - (*rhsSet)[rhs]) < 0.0001)
+ {
+ // If so, return true.
+ return true;
+ }
+ }
+ return false;
+ }
+ void mergeSets(Variable *lhs, Variable *rhs, double sep)
+ {
+ VarOffsetMapList::iterator lhsSet = setForVar(lhs);
+ VarOffsetMapList::iterator rhsSet = setForVar(rhs);
+ if (lhsSet == rhsSet)
+ {
+ return;
+ }
+
+ double rhsOldOffset = (*rhsSet)[rhs];
+ double rhsNewOffset = (*lhsSet)[lhs] + sep;
+ double offset = rhsNewOffset - rhsOldOffset;
+
+ // Update offsets
+ for (std::map<Variable *, double>::iterator it = rhsSet->begin();
+ it != rhsSet->end(); ++it)
+ {
+ it->second += offset;
+ }
+
+ // Merge rhsSet into lhsSet
+ lhsSet->insert(rhsSet->begin(), rhsSet->end());
+ variableGroups.erase(rhsSet);
+ }
+
+ private:
+ VarOffsetMapList::iterator setForVar(Variable *var)
+ {
+ for (VarOffsetMapList::iterator it = variableGroups.begin();
+ it != variableGroups.end(); ++it)
+ {
+ if (it->find(var) != it->end())
+ {
+ return it;
+ }
+ }
+ return variableGroups.end();
+ }
+
+ VarOffsetMapList variableGroups;
+};
+
+Constraints constraintsRemovingRedundantEqualities(Variables const &vars,
+ Constraints const &constraints)
+{
+ EqualityConstraintSet equalitySets(vars);
+ Constraints cs = Constraints(constraints.size());
+ int csSize = 0;
+
+ for (unsigned i = 0; i < constraints.size(); ++i)
+ {
+ Constraint *c = constraints[i];
+ if (c->equality)
+ {
+ if (!equalitySets.isRedundant(c->left, c->right, c->gap))
+ {
+ // Only add non-redundant equalities
+ equalitySets.mergeSets(c->left, c->right, c->gap);
+ cs[csSize++] = c;
+ }
+ }
+ else
+ {
+ // Add all non-equalities
+ cs[csSize++] = c;
+ }
+ }
+ cs.resize(csSize);
+ return cs;
+}
+
+
+}
+
+#endif
diff --git a/src/3rdparty/adaptagrams/libavoid/vpsc.h b/src/3rdparty/adaptagrams/libavoid/vpsc.h
new file mode 100644
index 0000000..947cb90
--- /dev/null
+++ b/src/3rdparty/adaptagrams/libavoid/vpsc.h
@@ -0,0 +1,341 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ *
+ * Copyright (C) 2005-2014 Monash University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * See the file LICENSE.LGPL distributed with the library.
+ *
+ * Licensees holding a valid commercial license may use this file in
+ * accordance with the commercial license agreement provided with the
+ * library.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Author(s): Tim Dwyer
+ * Michael Wybrow
+ *
+ * --------------
+ *
+ * This file contains a slightly modified version of IncSolver() from libvpsc:
+ * A solver for the problem of Variable Placement with Separation Constraints.
+ * It has the following changes from the Adaptagrams VPSC version:
+ * - The required VPSC code has been consolidated into a single file.
+ * - Unnecessary code (like Solver) has been removed.
+ * - The PairingHeap code has been replaced by a STL priority_queue.
+ *
+ * Modifications: Michael Wybrow
+ *
+*/
+
+#ifndef LIBAVOID_VPSC_H
+#define LIBAVOID_VPSC_H
+
+
+#ifdef USELIBVPSC
+
+// By default, libavoid will use it's own version of VPSC defined in this file.
+//
+// Alternatively, you can directly use IncSolver from libvpsc. This
+// introduces a dependency on libvpsc but it can be preferable in cases
+// where you are building all of Adaptagrams together and want to work
+// with a set of CompoundConstraints or other classes built upon the
+// base libvpsc Constraint classes.
+
+// Include necessary headers from libvpsc.
+#include "libvpsc/variable.h"
+#include "libvpsc/constraint.h"
+#include "libvpsc/rectangle.h"
+#include "libvpsc/solve_VPSC.h"
+
+// Use the libvpsc versions of things needed by libavoid.
+using vpsc::Variable;
+using vpsc::Variables;
+using vpsc::Constraint;
+using vpsc::Constraints;
+using vpsc::IncSolver;
+using vpsc::delete_object;
+
+#else
+
+#include <vector>
+#include <list>
+#include <set>
+#include <queue>
+#include <iostream>
+#include <cfloat>
+
+#include "libavoid/assertions.h"
+
+namespace Avoid {
+
+class Variable;
+class Constraint;
+class Blocks;
+typedef std::vector<Variable*> Variables;
+typedef std::vector<Constraint*> Constraints;
+class CompareConstraints {
+public:
+ bool operator() (Constraint *const &l, Constraint *const &r) const;
+};
+struct PositionStats {
+ PositionStats() : scale(0), AB(0), AD(0), A2(0) {}
+ void addVariable(Variable* const v);
+ double scale;
+ double AB;
+ double AD;
+ double A2;
+};
+
+typedef std::priority_queue<Constraint*,std::vector<Constraint*>,
+ CompareConstraints> Heap;
+
+class Block
+{
+ typedef Variables::iterator Vit;
+ typedef Constraints::iterator Cit;
+ typedef Constraints::const_iterator Cit_const;
+
+ friend std::ostream& operator <<(std::ostream &os,const Block &b);
+public:
+ Variables *vars;
+ double posn;
+ //double weight;
+ //double wposn;
+ PositionStats ps;
+ Block(Blocks *blocks, Variable* const v=nullptr);
+ ~Block(void);
+ Constraint* findMinLM();
+ Constraint* findMinLMBetween(Variable* const lv, Variable* const rv);
+ Constraint* findMinInConstraint();
+ Constraint* findMinOutConstraint();
+ void deleteMinInConstraint();
+ void deleteMinOutConstraint();
+ void updateWeightedPosition();
+ void merge(Block *b, Constraint *c, double dist);
+ Block* merge(Block *b, Constraint *c);
+ void mergeIn(Block *b);
+ void mergeOut(Block *b);
+ void split(Block *&l, Block *&r, Constraint *c);
+ Constraint* splitBetween(Variable* vl, Variable* vr, Block* &lb, Block* &rb);
+ void setUpInConstraints();
+ void setUpOutConstraints();
+ double cost();
+ bool deleted;
+ long timeStamp;
+ Heap *in;
+ Heap *out;
+ bool getActivePathBetween(Constraints& path, Variable const* u,
+ Variable const* v, Variable const *w) const;
+ bool isActiveDirectedPathBetween(
+ Variable const* u, Variable const* v) const;
+ bool getActiveDirectedPathBetween(Constraints& path, Variable const * u, Variable const * v) const;
+private:
+ typedef enum {NONE, LEFT, RIGHT} Direction;
+ typedef std::pair<double, Constraint*> Pair;
+ void reset_active_lm(Variable* const v, Variable* const u);
+ void list_active(Variable* const v, Variable* const u);
+ double compute_dfdv(Variable* const v, Variable* const u);
+ double compute_dfdv(Variable* const v, Variable* const u, Constraint *&min_lm);
+ bool split_path(Variable*, Variable* const, Variable* const,
+ Constraint* &min_lm, bool desperation);
+ bool canFollowLeft(Constraint const* c, Variable const* last) const;
+ bool canFollowRight(Constraint const* c, Variable const* last) const;
+ void populateSplitBlock(Block *b, Variable* v, Variable const* u);
+ void addVariable(Variable* v);
+ void setUpConstraintHeap(Heap* &h,bool in);
+
+ // Parent container, that holds the blockTimeCtr.
+ Blocks *blocks;
+};
+
+
+class Constraint;
+typedef std::vector<Constraint*> Constraints;
+class Variable
+{
+ friend std::ostream& operator <<(std::ostream &os, const Variable &v);
+ friend class Block;
+ friend class Constraint;
+ friend class IncSolver;
+public:
+ int id; // useful in log files
+ double desiredPosition;
+ double finalPosition;
+ double weight; // how much the variable wants to
+ // be at it's desired position
+ double scale; // translates variable to another space
+ double offset;
+ Block *block;
+ bool visited;
+ bool fixedDesiredPosition;
+ Constraints in;
+ Constraints out;
+ inline Variable(const int id, const double desiredPos=-1.0,
+ const double weight=1.0, const double scale=1.0)
+ : id(id)
+ , desiredPosition(desiredPos)
+ , weight(weight)
+ , scale(scale)
+ , offset(0)
+ , block(nullptr)
+ , visited(false)
+ , fixedDesiredPosition(false)
+ {
+ }
+ double dfdv(void) const {
+ return 2. * weight * ( position() - desiredPosition );
+ }
+private:
+ inline double position(void) const {
+ return (block->ps.scale*block->posn+offset)/scale;
+ }
+ inline double unscaledPosition(void) const {
+ COLA_ASSERT(block->ps.scale == 1);
+ COLA_ASSERT(scale == 1);
+ return block->posn + offset;
+ }
+};
+
+
+class Constraint
+{
+public:
+ Constraint(Variable *left, Variable *right, double gap, bool equality=false);
+ ~Constraint();
+ inline double slack(void) const
+ {
+ if (unsatisfiable)
+ {
+ return DBL_MAX;
+ }
+ if (needsScaling)
+ {
+ return right->scale * right->position() - gap -
+ left->scale * left->position();
+ }
+ COLA_ASSERT(left->scale == 1);
+ COLA_ASSERT(right->scale == 1);
+ return right->unscaledPosition() - gap - left->unscaledPosition();
+ }
+ std::string toString(void) const;
+
+ friend std::ostream& operator <<(std::ostream &os,const Constraint &c);
+ Variable *left;
+ Variable *right;
+ double gap;
+ double lm;
+ long timeStamp;
+ bool active;
+ const bool equality;
+ bool unsatisfiable;
+ bool needsScaling;
+ void *creator;
+};
+/*
+ * A block structure defined over the variables such that each block contains
+ * 1 or more variables, with the invariant that all constraints inside a block
+ * are satisfied by keeping the variables fixed relative to one another
+ */
+class Blocks
+{
+public:
+ Blocks(Variables const &vs);
+ ~Blocks(void);
+ void mergeLeft(Block *r);
+ void mergeRight(Block *l);
+ void split(Block *b, Block *&l, Block *&r, Constraint *c);
+ std::list<Variable*> *totalOrder();
+ void cleanup();
+ double cost();
+
+ size_t size() const;
+ Block *at(size_t index) const;
+ void insert(Block *block);
+
+ long blockTimeCtr;
+private:
+ void dfsVisit(Variable *v, std::list<Variable*> *order);
+ void removeBlock(Block *doomed);
+
+ std::vector<Block *> m_blocks;
+ Variables const &vs;
+ size_t nvs;
+};
+
+inline size_t Blocks::size() const
+{
+ return m_blocks.size();
+}
+
+inline Block *Blocks::at(size_t index) const
+{
+ return m_blocks[index];
+}
+
+inline void Blocks::insert(Block *block)
+{
+ m_blocks.push_back(block);
+}
+
+struct UnsatisfiableException {
+ Constraints path;
+};
+struct UnsatisfiedConstraint {
+ UnsatisfiedConstraint(Constraint& c):c(c) {}
+ Constraint& c;
+};
+/*
+ * Variable Placement with Separation Constraints problem instance
+ */
+class IncSolver {
+public:
+ unsigned splitCnt;
+ bool satisfy();
+ bool solve();
+ void moveBlocks();
+ void splitBlocks();
+ IncSolver(Variables const &vs, Constraints const &cs);
+
+ ~IncSolver();
+ void addConstraint(Constraint *constraint);
+ Variables const & getVariables() { return vs; }
+protected:
+ Blocks *bs;
+ size_t m;
+ Constraints const &cs;
+ size_t n;
+ Variables const &vs;
+ bool needsScaling;
+
+ void printBlocks();
+ void copyResult();
+private:
+ bool constraintGraphIsCyclic(const unsigned n, Variable* const vs[]);
+ bool blockGraphIsCyclic();
+ Constraints inactive;
+ Constraints violated;
+ Constraint* mostViolated(Constraints &l);
+};
+
+struct delete_object
+{
+ template <typename T>
+ void operator()(T *ptr){ delete ptr;}
+};
+
+extern Constraints constraintsRemovingRedundantEqualities(
+ Variables const &vars, Constraints const &constraints);
+
+}
+
+#endif // ! USELIBVPSC
+
+#endif // AVOID_VPSC_H