Commit 4a15b358 authored by Brian Sidebotham's avatar Brian Sidebotham

Merge in changes

parents d5a029ff 1c5a997f
......@@ -190,9 +190,11 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
set( TO_LINKER -Wl )
endif()
# Thou shalt not link vaporware and tell us it's a valid DSO:
# Thou shalt not link vaporware and tell us it's a valid DSO (apple ld doesn't support it)
if( NOT APPLE )
set( CMAKE_SHARED_LINKER_FLAGS "${TO_LINKER},--no-undefined" )
set( CMAKE_MODULE_LINKER_FLAGS "${TO_LINKER},--no-undefined" )
endif()
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" )
endif()
......@@ -361,6 +363,9 @@ add_custom_target( lib-wxpython )
if( KICAD_BUILD_STATIC )
message(STATUS "KICAD_BUILD_STATIC set")
if( KICAD_SCRIPTING OR KICAD_SCRIPTING_WXPYTHON OR KICAD_SCRIPTING_MODULES )
message(FATAL_ERROR "KICAD_SCRIPTING* is not supported with KICAD_BUILD_STATIC, please select KICAD_BUILD_DYNAMIC" )
endif()
endif()
if( KICAD_BUILD_DYNAMIC )
......@@ -374,6 +379,9 @@ add_custom_target( lib-wxpython )
include( download_libpng )
if( KICAD_SCRIPTING OR KICAD_SCRIPTING_WXPYTHON OR KICAD_SCRIPTING_MODULES )
message(STATUS "Scripting ENABLED")
set( SWIG_EXECUTABLE ${SWIG_ROOT}/bin/swig )
set( SWIG_INCLUDE ${SWIG_ROOT}/include )
set( PYTHON_DEST ${LIBWXPYTHON_ROOT}/wxPython/lib/python2.6/site-packages )
......@@ -505,18 +513,24 @@ set( INC_AFTER
# Find Python and other scripting resources
if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
if( NOT APPLE )
set( PythonInterp_FIND_VERSION )
else()
if( APPLE )
set( PYTHON_LIBRARY /System/Library/Frameworks/Python.framework/Versions/2.6/Python )
set( PYTHON_INCLUDE_DIR /System/Library/Frameworks/Python.framework/Versions//2.6/include/python2.6 )
set( PythonInterp_FIND_VERSION 2.6 )
set( PythonLibs_FIND_VERSION 2.6 )
endif()
# force a python version < 3.0
set( PythonInterp_FIND_VERSION 2.6)
set( PythonLibs_FIND_VERSION 2.6 )
find_package( PythonInterp )
check_find_package_result( PYTHONINTERP_FOUND "Python Interpreter" )
if( NOT PYTHON_VERSION_MAJOR EQUAL 2 )
message( FATAL_ERROR "Python 2.x is required." )
endif()
# Get the correct Python site package install path from the Python interpreter found by
# FindPythonInterp unless the user specifically defined a custom path.
if( NOT PYTHON_SITE_PACKAGE_PATH )
......@@ -534,7 +548,7 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
mark_as_advanced( PYTHON_DEST )
message( STATUS "Python module install path: ${PYTHON_DEST}" )
find_package( PythonLibs )
find_package( PythonLibs 2.6 )
#message( STATUS "PYTHON_INCLUDE_DIRS:${PYTHON_INCLUDE_DIRS}" )
......
......@@ -138,9 +138,17 @@ bzr branch lp:kicad/stable kicad_src
Components and Footprints libraries
all (schematic libs, 3D shapes ...) but new footprints libraries (use Download zip tool)
https://github.com/KiCad/kicad-library/
New footprints libraries (use Download zip tool for each lib you want)
https://github.com/KiCad/ for footprint libs (*.pretty folders)
A mirror of github is available, using bzr:
(schematic libs, 3D shapes ... all but new footprints libraries)
bzr checkout lp:~kicad-product-committers/kicad/library
Old legacy libraries:
bzr checkout lp:~dickelbeck/kicad/library-read-only
Note also Kicad is able to read on github.com/KiCad/ the *.pretty folders
without download, using github plugin.
(however the time to read them can be long)
......
......@@ -8,84 +8,96 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x04, 0xbb, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x4b, 0x6c, 0x1b,
0x55, 0x14, 0x86, 0xbf, 0x7b, 0x67, 0xfc, 0x4a, 0x1c, 0xdb, 0x72, 0xd3, 0x34, 0x4a, 0xe3, 0x28,
0xa5, 0xb1, 0xe2, 0x3a, 0x21, 0x88, 0x22, 0x0a, 0x34, 0x52, 0xda, 0xaa, 0xa2, 0x5d, 0x20, 0xd2,
0xec, 0x40, 0xa2, 0x11, 0x0b, 0x58, 0x50, 0x56, 0xac, 0x91, 0x8a, 0x58, 0x21, 0x58, 0x74, 0xd3,
0x15, 0xad, 0x94, 0x45, 0x57, 0x45, 0x42, 0x42, 0x65, 0x55, 0xb1, 0xa0, 0x40, 0xc5, 0x06, 0xa5,
0x4f, 0x35, 0xcd, 0x4b, 0x4e, 0x1f, 0x4e, 0x5b, 0x8b, 0x46, 0x69, 0x1c, 0xb7, 0x71, 0x33, 0x9e,
0xc7, 0x61, 0x41, 0xc6, 0xb2, 0x63, 0x07, 0xe8, 0x86, 0x2b, 0xfd, 0x9a, 0x3b, 0x9a, 0x3b, 0xf7,
0x3f, 0xff, 0x39, 0x67, 0xfe, 0x3b, 0x4a, 0x44, 0xf8, 0x3f, 0x86, 0x09, 0x70, 0xf6, 0xec, 0xd9,
0xf3, 0x4a, 0xa9, 0xf7, 0x4d, 0xd3, 0xc4, 0x30, 0x0c, 0x44, 0x04, 0xc7, 0x71, 0x70, 0x5d, 0x17,
0xc7, 0x71, 0xaa, 0x78, 0xd1, 0x7b, 0xad, 0xf5, 0xb7, 0x13, 0x13, 0x13, 0x27, 0x00, 0x38, 0x7d,
0xfa, 0x74, 0xec, 0xcc, 0x99, 0x33, 0x15, 0xdb, 0xb6, 0xc5, 0x75, 0xdd, 0xa6, 0x70, 0x1c, 0xa7,
0x0a, 0xdb, 0xb6, 0xeb, 0x50, 0xa9, 0x54, 0xaa, 0xb0, 0x2c, 0xab, 0x8a, 0x52, 0xa9, 0x24, 0xe3,
0xe3, 0xe3, 0x9e, 0x88, 0x20, 0x22, 0x98, 0xae, 0xeb, 0x6a, 0xad, 0xb5, 0xa7, 0x94, 0x22, 0x9f,
0xcf, 0xa3, 0x94, 0x02, 0x40, 0x29, 0x55, 0x37, 0x6f, 0x76, 0xdd, 0x6a, 0x68, 0xad, 0x49, 0x24,
0x12, 0x88, 0x88, 0xaa, 0x4b, 0x9d, 0xe7, 0x79, 0x4d, 0x37, 0x6f, 0x36, 0xff, 0x2f, 0x44, 0xcd,
0x9e, 0x9b, 0x00, 0xae, 0xeb, 0x02, 0x50, 0x2a, 0x95, 0x58, 0x59, 0x59, 0xa1, 0xa7, 0xa7, 0x07,
0xad, 0x35, 0x0b, 0x0b, 0x0b, 0x6c, 0x6e, 0x96, 0x7f, 0x22, 0x11, 0x11, 0xfa, 0xfb, 0xfb, 0xab,
0x6b, 0x6a, 0xdf, 0x6d, 0x50, 0xd4, 0xd7, 0xd7, 0x47, 0x28, 0x14, 0xa2, 0x5c, 0x2e, 0x93, 0x4e,
0xa7, 0x5f, 0x28, 0x7d, 0x22, 0x82, 0xd6, 0x1a, 0xad, 0x75, 0x23, 0xd1, 0xea, 0xea, 0x2a, 0x89,
0x44, 0x02, 0x80, 0x44, 0x22, 0x81, 0x52, 0x0a, 0xcb, 0xb2, 0x50, 0x4a, 0x91, 0xcb, 0xe5, 0xea,
0x16, 0x6f, 0xde, 0x5c, 0x44, 0x18, 0x18, 0x18, 0xd8, 0x32, 0x75, 0x0d, 0x8a, 0x5c, 0xd7, 0x45,
0x44, 0x50, 0x4a, 0x55, 0x1f, 0x2a, 0xa5, 0x48, 0xa7, 0xd3, 0xd5, 0xe8, 0x9a, 0x35, 0x87, 0xaf,
0x60, 0x33, 0xb9, 0xbf, 0xb6, 0x81, 0xc8, 0x71, 0x9c, 0xa6, 0x11, 0xfd, 0x9b, 0xa2, 0x66, 0x0a,
0xb3, 0xd9, 0x6c, 0xf5, 0xde, 0x2f, 0x49, 0x43, 0x33, 0xf8, 0x91, 0xf8, 0x1b, 0xf8, 0x85, 0xad,
0x55, 0x92, 0xcb, 0xe5, 0xb0, 0x6d, 0x9b, 0xb6, 0xb6, 0x36, 0x4c, 0xd3, 0xa4, 0x58, 0x2c, 0xb2,
0xbe, 0xbe, 0x4e, 0x36, 0x9b, 0x25, 0x14, 0x0a, 0xd5, 0x29, 0x6c, 0x20, 0xb2, 0x6d, 0xbb, 0x4e,
0xb2, 0xbf, 0xf1, 0xfc, 0xfc, 0x7c, 0x55, 0x91, 0x65, 0x59, 0x88, 0x08, 0x83, 0x43, 0xaf, 0xf0,
0xd3, 0xd5, 0x87, 0x4c, 0xdd, 0x5c, 0xc2, 0x71, 0x3c, 0xd2, 0xdd, 0x09, 0xde, 0x79, 0xa3, 0x8f,
0xc5, 0xc5, 0xfb, 0x14, 0x0a, 0x05, 0x46, 0x46, 0x46, 0x30, 0x0c, 0xa3, 0x91, 0xa8, 0x58, 0x2c,
0x12, 0x8b, 0xc5, 0xea, 0xd2, 0xb1, 0x59, 0x91, 0xe7, 0x79, 0xcc, 0xcc, 0xcc, 0xd0, 0xb2, 0xbd,
0x97, 0x93, 0xe7, 0xae, 0x71, 0x6c, 0x64, 0x0f, 0x1f, 0x0e, 0xec, 0xc2, 0xb2, 0x3d, 0xee, 0x14,
0x56, 0xf9, 0xea, 0xbb, 0x9b, 0x1c, 0x7d, 0xb5, 0x93, 0x3d, 0xe9, 0x34, 0x4b, 0x4b, 0x4b, 0x74,
0x76, 0x76, 0x36, 0x57, 0xe4, 0x38, 0x4e, 0xc3, 0x47, 0x09, 0x30, 0x37, 0x37, 0x87, 0x88, 0xf0,
0xf8, 0xf1, 0x63, 0x5e, 0x7f, 0x73, 0x98, 0x2f, 0xce, 0x5d, 0xe5, 0xb3, 0xf7, 0xf6, 0xd1, 0xb5,
0x2d, 0x8a, 0xe3, 0x7a, 0x94, 0x2d, 0x9b, 0x4c, 0x77, 0x8c, 0x64, 0x6c, 0x88, 0xef, 0x7f, 0xbe,
0x4d, 0x3a, 0xd5, 0xcf, 0xfd, 0x85, 0x5b, 0x74, 0x74, 0x74, 0x6c, 0x5d, 0xa3, 0x66, 0xa9, 0xcb,
0x64, 0x32, 0x68, 0xad, 0xb1, 0x2c, 0x8b, 0x1f, 0x7e, 0xbf, 0xcb, 0xdb, 0x6f, 0xf5, 0x13, 0x8f,
0x46, 0x70, 0x3c, 0x01, 0xa5, 0x09, 0x06, 0x02, 0x78, 0x68, 0x44, 0x2a, 0xbc, 0x36, 0xd8, 0xc3,
0xc4, 0xc5, 0x69, 0x4e, 0x1c, 0xdd, 0xc5, 0xf2, 0xf2, 0x32, 0x91, 0x48, 0xa4, 0xb9, 0xa2, 0x66,
0x63, 0x7e, 0x7e, 0x1e, 0xdb, 0xb6, 0x31, 0x4d, 0x93, 0x85, 0x47, 0x25, 0x76, 0xf7, 0xec, 0xe0,
0xe9, 0xb3, 0x32, 0xeb, 0xa6, 0x42, 0x21, 0xb8, 0xae, 0xc7, 0xda, 0xba, 0xcd, 0x83, 0x47, 0x4b,
0xd8, 0x15, 0xe1, 0xb9, 0xe5, 0x10, 0x0e, 0x87, 0x29, 0x14, 0x0a, 0x74, 0x77, 0x77, 0xd7, 0xfb,
0x5f, 0xb1, 0x58, 0xac, 0x76, 0xdd, 0xe6, 0x3a, 0x65, 0x32, 0x19, 0x32, 0x99, 0x0c, 0x86, 0x61,
0x60, 0x1a, 0x0a, 0xcc, 0x20, 0xda, 0x0c, 0x12, 0x0c, 0x86, 0x88, 0x44, 0x22, 0x44, 0x5a, 0x5a,
0xc0, 0x0c, 0x93, 0xda, 0xd9, 0x49, 0x57, 0xe7, 0x76, 0x42, 0xc1, 0x00, 0x96, 0x65, 0xe1, 0x79,
0x5e, 0x43, 0x19, 0xaa, 0x8a, 0x6a, 0x53, 0xe7, 0x8f, 0xd9, 0xd9, 0x59, 0x3c, 0xcf, 0x63, 0x6d,
0x6d, 0x8d, 0xc1, 0xde, 0x76, 0xae, 0xdc, 0xbe, 0xc7, 0xb3, 0xd5, 0x36, 0xa2, 0x21, 0x8d, 0x16,
0x07, 0x25, 0x36, 0xcf, 0x6d, 0xc5, 0xba, 0xa3, 0x58, 0x29, 0x7b, 0x84, 0x03, 0x42, 0xb9, 0x5c,
0x26, 0x99, 0x4c, 0x36, 0x3a, 0xba, 0xdf, 0xde, 0x00, 0x4f, 0x9e, 0x3c, 0x61, 0x7a, 0x7a, 0x1a,
0xcb, 0xb2, 0xaa, 0x35, 0x1a, 0x1c, 0x1c, 0x44, 0x6b, 0xcd, 0xb1, 0xfd, 0xbb, 0x78, 0xf8, 0xe7,
0x53, 0x08, 0x44, 0x69, 0x8d, 0x6f, 0x63, 0xfb, 0x8e, 0x9d, 0x74, 0xa5, 0x76, 0xd3, 0xd3, 0xd3,
0x4b, 0x47, 0x67, 0x17, 0x33, 0xf9, 0xa7, 0x7c, 0x3a, 0x3a, 0xc4, 0xf5, 0xeb, 0xd7, 0x49, 0xa5,
0x52, 0xcd, 0xdd, 0xdb, 0xaf, 0x91, 0x61, 0x18, 0xa4, 0xd3, 0x69, 0x5a, 0x5b, 0x5b, 0xa9, 0x54,
0x2a, 0xcc, 0xce, 0xce, 0x22, 0x22, 0x84, 0xc3, 0x61, 0x2e, 0x5f, 0xfe, 0x8d, 0x93, 0xe3, 0x07,
0xf8, 0xe6, 0xfc, 0x24, 0xd1, 0x48, 0x80, 0x9d, 0xed, 0x61, 0xa2, 0xad, 0x11, 0xd6, 0x2a, 0x26,
0x53, 0xb9, 0x02, 0x9f, 0xbc, 0x3b, 0x40, 0x40, 0x39, 0x58, 0x96, 0xc5, 0xe4, 0xe4, 0x24, 0xc3,
0xc3, 0xc3, 0xf5, 0x44, 0xc5, 0x62, 0x91, 0x78, 0x3c, 0x8e, 0x88, 0x10, 0x8f, 0xc7, 0xd1, 0x5a,
0x57, 0x15, 0xf6, 0xf7, 0xf7, 0x63, 0x18, 0x06, 0x4a, 0x29, 0x8a, 0xc5, 0x22, 0xd7, 0xfe, 0xb8,
0xcc, 0x97, 0xe3, 0xc3, 0xdc, 0x5b, 0x5a, 0xe7, 0xd6, 0x9d, 0x65, 0xca, 0x65, 0x9b, 0x97, 0x5f,
0x4a, 0xf0, 0xc1, 0x81, 0x7d, 0x5c, 0xbd, 0x32, 0x89, 0x93, 0x48, 0x10, 0x0a, 0x85, 0xc8, 0xe7,
0xf3, 0x2c, 0x2e, 0x2e, 0x36, 0xa6, 0xae, 0xb6, 0xeb, 0x6a, 0xbd, 0xad, 0xd6, 0x50, 0x93, 0xc9,
0x24, 0x87, 0x0f, 0x1f, 0x26, 0x97, 0xcb, 0xf1, 0x60, 0xee, 0x0a, 0xa9, 0xd0, 0x12, 0x43, 0x1d,
0xcf, 0x59, 0xbe, 0x7b, 0x8d, 0x5f, 0x7f, 0xb9, 0x44, 0xa9, 0x54, 0x22, 0x9f, 0xcf, 0xfb, 0x27,
0x2b, 0x22, 0x42, 0x7b, 0x7b, 0x3b, 0xa3, 0xa3, 0xa3, 0x2d, 0x00, 0x66, 0x20, 0x10, 0x10, 0xcb,
0xb2, 0xb4, 0xaf, 0xa8, 0xd6, 0xa7, 0x6a, 0x7d, 0xcb, 0x0f, 0x60, 0xef, 0xde, 0xbd, 0x78, 0x9e,
0x87, 0xeb, 0xba, 0xd8, 0xb6, 0x5d, 0xb5, 0x1b, 0xa5, 0x14, 0x97, 0x2e, 0xfd, 0x4d, 0xd8, 0xd6,
0xd6, 0x46, 0xa5, 0x52, 0xe1, 0xe0, 0xc1, 0x83, 0x4c, 0x4d, 0x4d, 0xcd, 0x1f, 0x39, 0x72, 0x64,
0x9f, 0x02, 0x92, 0x63, 0x63, 0x63, 0x3f, 0x2a, 0xa5, 0xf6, 0xfb, 0x2f, 0xd5, 0xda, 0xbd, 0x3f,
0xf7, 0x3c, 0xaf, 0xee, 0xea, 0xc3, 0x3f, 0x0e, 0x6a, 0x8f, 0x86, 0x43, 0x87, 0x0e, 0xe9, 0xde,
0xde, 0x5e, 0x5a, 0x5a, 0x5a, 0x48, 0xa5, 0x52, 0x9c, 0x3a, 0x75, 0xea, 0xa2, 0x09, 0x78, 0x17,
0x2e, 0x5c, 0xf8, 0x38, 0x16, 0x8b, 0xf5, 0x2a, 0xa5, 0xa2, 0x7e, 0x83, 0x00, 0x0a, 0x10, 0x40,
0x89, 0x88, 0x29, 0x22, 0x06, 0x60, 0x88, 0x88, 0x21, 0x22, 0xda, 0x9f, 0x6f, 0xa4, 0x5f, 0x01,
0x9e, 0x52, 0xca, 0x03, 0xec, 0x1b, 0x37, 0x6e, 0xc4, 0x8e, 0x1f, 0x3f, 0xfe, 0xf9, 0xd8, 0xd8,
0x58, 0x3c, 0x1a, 0x8d, 0x12, 0x0c, 0x06, 0x5d, 0xb5, 0x11, 0x8d, 0x06, 0xc2, 0x1b, 0x08, 0x6e,
0xf5, 0x73, 0xb3, 0x11, 0x84, 0xb1, 0x01, 0x5d, 0x43, 0xc2, 0x46, 0x50, 0x02, 0xb8, 0xc0, 0x7a,
0x2a, 0x95, 0xf2, 0xb2, 0xd9, 0xec, 0x47, 0xf1, 0x78, 0x3c, 0xb9, 0xbc, 0xbc, 0xfc, 0xf5, 0x5f,
0x8c, 0x86, 0xc8, 0x61, 0x09, 0x89, 0x45, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
0xae, 0x42, 0x60, 0x82,
0xce, 0x00, 0x00, 0x05, 0x7d, 0x49, 0x44, 0x41, 0x54, 0x48, 0x4b, 0xbd, 0x95, 0xd9, 0x4f, 0x54,
0x67, 0x18, 0xc6, 0x69, 0xaf, 0x9a, 0x36, 0x05, 0xda, 0x9b, 0x36, 0xbd, 0xed, 0x45, 0xfb, 0x87,
0x34, 0xe9, 0x0d, 0x91, 0x75, 0x2c, 0xbb, 0x06, 0x4c, 0x34, 0x46, 0x22, 0x2d, 0x09, 0x04, 0x90,
0xcd, 0x85, 0x04, 0x8b, 0x28, 0x16, 0x94, 0x4d, 0x36, 0x45, 0x10, 0x18, 0x86, 0x75, 0x70, 0x1a,
0xa2, 0xec, 0xc8, 0x80, 0xc8, 0x3e, 0x08, 0x38, 0x1b, 0x30, 0x2c, 0xb3, 0x00, 0x0e, 0xe8, 0x08,
0xd2, 0xa7, 0xdf, 0xfb, 0xea, 0x39, 0x72, 0xac, 0x4d, 0xd3, 0x34, 0xe9, 0x24, 0xcf, 0xcc, 0x9c,
0x93, 0x73, 0xbe, 0xdf, 0xf7, 0xbc, 0xdb, 0xe7, 0x05, 0xc0, 0xeb, 0xff, 0x10, 0x7f, 0x15, 0x17,
0x17, 0xd7, 0x96, 0x94, 0x94, 0xa0, 0xbc, 0xbc, 0x1c, 0x55, 0x55, 0x55, 0xa8, 0xac, 0xac, 0x44,
0x59, 0x59, 0x19, 0xc4, 0x7d, 0x14, 0x16, 0x16, 0x22, 0x3f, 0x3f, 0x1f, 0x57, 0xae, 0x5c, 0xc1,
0xe5, 0xcb, 0x97, 0x91, 0x9d, 0x9d, 0x8d, 0xf3, 0xe7, 0xcf, 0x23, 0x3d, 0x3d, 0x1d, 0xa9, 0xa9,
0xa9, 0x48, 0x4a, 0x4a, 0x42, 0x42, 0x42, 0x02, 0xce, 0x9e, 0x3d, 0x8b, 0x33, 0x67, 0xce, 0xe0,
0xd4, 0xa9, 0x53, 0x38, 0x71, 0xe2, 0x04, 0x8e, 0x1f, 0x3f, 0x8e, 0x98, 0x98, 0x98, 0x9b, 0x32,
0xe8, 0xfa, 0xf5, 0xeb, 0xde, 0x62, 0xc1, 0xbd, 0xfd, 0xfd, 0x7d, 0x1c, 0x1c, 0x1c, 0x7c, 0x50,
0xaf, 0x5f, 0xbf, 0x96, 0x45, 0xcf, 0x1d, 0xd6, 0xde, 0xde, 0x9e, 0xac, 0x57, 0xaf, 0x5e, 0xc9,
0x7a, 0xfe, 0xfc, 0x39, 0xa2, 0xa2, 0xa2, 0xfe, 0x90, 0x41, 0x57, 0xaf, 0x5e, 0xf5, 0x2d, 0x2d,
0x2d, 0xf5, 0xd0, 0x22, 0x26, 0x93, 0x09, 0x66, 0xb3, 0x99, 0x65, 0xb1, 0x58, 0x60, 0xb5, 0x5a,
0x59, 0x4b, 0x4b, 0x4b, 0x18, 0x1e, 0x1e, 0x46, 0x7b, 0x7b, 0x3b, 0x6e, 0xdf, 0xbe, 0xcd, 0xce,
0x6b, 0x6b, 0x6b, 0xa1, 0xd3, 0xe9, 0x30, 0x3d, 0x3d, 0x8d, 0x95, 0x95, 0x15, 0x85, 0x56, 0x57,
0x57, 0xf1, 0xf2, 0xe5, 0x4b, 0x44, 0x46, 0x46, 0x42, 0x01, 0x12, 0x8e, 0x18, 0x24, 0x01, 0x24,
0x08, 0x01, 0xe6, 0xe7, 0xe7, 0x51, 0x53, 0x53, 0x83, 0xb1, 0xb1, 0x31, 0x38, 0x1c, 0x0e, 0x6c,
0x6f, 0x6f, 0xc3, 0xe1, 0xda, 0xc4, 0xd6, 0xd6, 0x16, 0xd6, 0xd6, 0xd6, 0xa0, 0x56, 0xab, 0x79,
0x03, 0xf4, 0xac, 0xcd, 0x66, 0x63, 0xd1, 0xfd, 0x0f, 0x82, 0x6e, 0xdc, 0xb8, 0xc1, 0xa0, 0xc9,
0xc9, 0x49, 0xf4, 0xf4, 0xf4, 0xb0, 0x33, 0x82, 0x69, 0xb5, 0x5a, 0xdc, 0xbd, 0x7b, 0x17, 0x9b,
0x9b, 0x9b, 0x68, 0xed, 0x99, 0x46, 0x58, 0x66, 0x33, 0x82, 0x52, 0x9b, 0xa0, 0x4a, 0xd7, 0x20,
0xe4, 0x5c, 0x13, 0x7e, 0xc9, 0xd7, 0xc1, 0xb6, 0xe1, 0xe2, 0xcd, 0x88, 0x35, 0xd0, 0xd5, 0xd5,
0xc5, 0x8e, 0xd6, 0xd7, 0xd7, 0x19, 0x14, 0x11, 0x11, 0xa1, 0x04, 0x15, 0x14, 0x14, 0x30, 0x68,
0x6a, 0x6a, 0x8a, 0x1f, 0xa4, 0x9d, 0x93, 0x3b, 0x2a, 0x0c, 0x72, 0x10, 0x2f, 0x16, 0x8c, 0xc9,
0xe9, 0x84, 0x76, 0xc4, 0x8a, 0x09, 0xa3, 0x13, 0xa6, 0x75, 0x37, 0x9e, 0x2e, 0x6f, 0xa1, 0xee,
0xe1, 0x02, 0x02, 0x52, 0xd4, 0xe8, 0x7d, 0xbc, 0x88, 0xd9, 0xd9, 0x59, 0xb4, 0xb4, 0xb4, 0x30,
0xc4, 0x6e, 0xb7, 0x33, 0x28, 0x3c, 0x3c, 0xfc, 0x1d, 0x28, 0x33, 0x33, 0xd3, 0xf7, 0xda, 0xb5,
0x6b, 0x0c, 0x92, 0xec, 0x13, 0x4c, 0xa3, 0xd1, 0xc0, 0x68, 0x34, 0xa2, 0xac, 0x59, 0x8f, 0x58,
0x01, 0x69, 0x1b, 0x5a, 0xc4, 0xe3, 0xf9, 0x35, 0xcc, 0x5a, 0x1c, 0x30, 0xad, 0x8a, 0xb0, 0xb9,
0x76, 0x61, 0x73, 0xb8, 0xd1, 0x33, 0xb5, 0x0a, 0xff, 0x64, 0x35, 0xec, 0xae, 0x6d, 0x34, 0x34,
0x34, 0x70, 0x54, 0x68, 0xa3, 0x04, 0x0a, 0x0b, 0x0b, 0x53, 0x82, 0x44, 0xe9, 0x7a, 0xa8, 0x82,
0x96, 0x97, 0x97, 0xe5, 0x84, 0x8a, 0xfb, 0x70, 0x8a, 0x5c, 0xd0, 0x22, 0x45, 0x5a, 0x03, 0x3a,
0x47, 0x97, 0xd8, 0xcd, 0x9c, 0x70, 0x62, 0x5a, 0x73, 0x63, 0xc9, 0xbe, 0xc3, 0x32, 0x0b, 0x77,
0x85, 0x2d, 0x93, 0xb8, 0x54, 0xd9, 0x83, 0xb9, 0xb9, 0x39, 0xb4, 0xb6, 0xb6, 0xc2, 0xe9, 0x74,
0xc2, 0xe3, 0xf1, 0x20, 0x34, 0x34, 0x54, 0x09, 0xca, 0xc9, 0xc9, 0x51, 0x80, 0x9e, 0x3d, 0x7b,
0xc6, 0xa0, 0xc1, 0x27, 0x0b, 0x88, 0xbe, 0xd8, 0x86, 0x5f, 0xef, 0xe9, 0x51, 0xdc, 0x36, 0x8e,
0xc1, 0x99, 0x15, 0x8c, 0x0a, 0x57, 0x93, 0x46, 0x3b, 0x66, 0xcd, 0x76, 0x18, 0x2c, 0x76, 0xcc,
0x98, 0xd6, 0xd1, 0x31, 0x60, 0x40, 0x44, 0x96, 0x86, 0x0b, 0xe8, 0xd6, 0xad, 0x5b, 0x32, 0xe8,
0xe8, 0xd1, 0xa3, 0x4a, 0x90, 0x68, 0x42, 0x06, 0x11, 0x84, 0x42, 0xd7, 0xdb, 0xdb, 0x8b, 0xdc,
0xdc, 0x5c, 0xdc, 0xd1, 0x8e, 0x22, 0xee, 0xb7, 0x07, 0x28, 0xee, 0x9c, 0x63, 0xb5, 0xe9, 0xad,
0x18, 0x59, 0xb0, 0x63, 0x5c, 0x38, 0x9b, 0xb5, 0x8a, 0x22, 0x58, 0xd9, 0xc2, 0xa2, 0xd0, 0xe3,
0xf9, 0x75, 0x84, 0x65, 0x68, 0x38, 0xf4, 0xa2, 0x2f, 0xe1, 0x72, 0xb9, 0x18, 0x14, 0x12, 0x12,
0xa2, 0x04, 0x65, 0x65, 0x65, 0x79, 0xa8, 0xe1, 0x08, 0x42, 0x3d, 0x40, 0x89, 0x8d, 0x8b, 0x8b,
0xc3, 0x83, 0x47, 0xd3, 0x88, 0xbc, 0xd0, 0x82, 0xdc, 0xfa, 0x11, 0x59, 0xd5, 0xbf, 0xcf, 0xe0,
0xe1, 0x13, 0x33, 0x06, 0xa6, 0x2c, 0x18, 0x9e, 0xb6, 0x60, 0x64, 0xc6, 0x8c, 0xd6, 0xee, 0x31,
0x44, 0xbe, 0x75, 0x54, 0x54, 0x54, 0xc4, 0xa5, 0x4f, 0xa0, 0xa0, 0xa0, 0xa0, 0x77, 0xa0, 0xf8,
0xf8, 0x78, 0x5f, 0x31, 0x4e, 0x64, 0x10, 0xf5, 0x00, 0x55, 0x0e, 0x55, 0x8c, 0x75, 0x69, 0x19,
0x7e, 0x49, 0x0d, 0xec, 0xa6, 0xe4, 0xfe, 0x53, 0x59, 0x77, 0x1e, 0x2c, 0xa2, 0x5d, 0x6f, 0x41,
0xef, 0xe4, 0x0a, 0x1e, 0x19, 0x6c, 0xa8, 0xd2, 0x4d, 0xe1, 0x62, 0xf9, 0x43, 0xce, 0x51, 0x63,
0x63, 0xa3, 0x0c, 0x0a, 0x08, 0x08, 0x50, 0x82, 0x52, 0x52, 0x52, 0x38, 0x74, 0xe4, 0x46, 0x02,
0xd1, 0x2c, 0x1b, 0x1a, 0x1a, 0x42, 0x91, 0xfa, 0x91, 0xa8, 0x3a, 0xad, 0xc2, 0x55, 0xbe, 0x5a,
0x8f, 0xa2, 0xe6, 0x61, 0x54, 0xb4, 0x0d, 0xa3, 0xe6, 0xfe, 0x08, 0x54, 0x69, 0x1a, 0xac, 0x6e,
0x38, 0x51, 0x5f, 0x5f, 0x8f, 0xf1, 0xf1, 0x71, 0x6e, 0x09, 0x02, 0x1d, 0x39, 0x72, 0x44, 0x09,
0x12, 0x83, 0x91, 0x1d, 0x49, 0x90, 0x8d, 0x8d, 0x0d, 0x18, 0x0c, 0x06, 0x1c, 0x3b, 0x76, 0x8c,
0x9b, 0x35, 0x2e, 0x4f, 0x8b, 0xa8, 0x4b, 0x5a, 0xdc, 0xd4, 0xce, 0xa1, 0x54, 0x37, 0x8f, 0x8a,
0xae, 0x05, 0xdc, 0xeb, 0x33, 0xa2, 0x40, 0x54, 0x1b, 0x35, 0x70, 0xff, 0xb8, 0x91, 0x1b, 0x5c,
0xb4, 0x09, 0xfa, 0xfb, 0xfb, 0x79, 0xce, 0x51, 0x79, 0xfb, 0xf9, 0xf9, 0x29, 0x41, 0x62, 0xfa,
0xfe, 0x05, 0x44, 0xbf, 0x34, 0xb9, 0xd3, 0xd2, 0xd2, 0xde, 0x4c, 0x86, 0xde, 0x19, 0xa8, 0xce,
0xa9, 0x45, 0xb9, 0x37, 0x20, 0x38, 0x55, 0xcd, 0xfa, 0x39, 0xff, 0x3e, 0xd6, 0x1c, 0x5b, 0xfc,
0xbc, 0x5e, 0xaf, 0xe7, 0x86, 0xad, 0xae, 0xae, 0xe6, 0x89, 0xf2, 0xe2, 0xc5, 0x0b, 0x25, 0x48,
0x8c, 0x73, 0x5f, 0x01, 0x53, 0x80, 0xa8, 0xb3, 0xe9, 0x65, 0x6a, 0xbc, 0xe6, 0xe6, 0x66, 0x9e,
0x59, 0xb4, 0x53, 0x8a, 0xbd, 0x7b, 0x67, 0x87, 0x9b, 0x73, 0x77, 0x77, 0x97, 0x9f, 0xa3, 0xbe,
0xa1, 0xbc, 0xd0, 0xa0, 0xcd, 0xc8, 0xc8, 0xe0, 0x69, 0x42, 0x21, 0x24, 0xf9, 0xfb, 0xfb, 0x2b,
0x41, 0xe2, 0x1c, 0xf1, 0xd0, 0x68, 0x97, 0xdc, 0x48, 0x20, 0x5a, 0x9c, 0x4a, 0xbd, 0xb3, 0xb3,
0x13, 0x89, 0x89, 0x89, 0x5c, 0x20, 0xd1, 0xd1, 0xd1, 0x7c, 0xf6, 0x9c, 0x3c, 0x79, 0x12, 0xc9,
0xc9, 0xc9, 0xa8, 0xab, 0xab, 0x63, 0xe7, 0x4d, 0x4d, 0x4d, 0x5c, 0x71, 0x14, 0x01, 0x3a, 0xc7,
0xe8, 0x9a, 0x7a, 0x51, 0x9c, 0x61, 0xdf, 0xc8, 0x20, 0xf1, 0x12, 0x83, 0x28, 0x2f, 0xdd, 0xdd,
0xdd, 0xdc, 0xb8, 0x92, 0x23, 0xea, 0x09, 0x0a, 0x1d, 0xb9, 0xa1, 0x24, 0x93, 0x6b, 0x2a, 0x7f,
0xba, 0xa6, 0xf0, 0x50, 0x2e, 0xe8, 0x3f, 0x0d, 0x5f, 0x1a, 0x41, 0x15, 0x15, 0x15, 0x5c, 0x48,
0xd4, 0x4f, 0x14, 0x4a, 0x31, 0x75, 0x6c, 0x02, 0xf6, 0x3d, 0x83, 0x62, 0x63, 0x63, 0x19, 0x44,
0x53, 0x98, 0x9a, 0x96, 0x5e, 0x94, 0x1c, 0xf5, 0xf5, 0xf5, 0xc9, 0xa2, 0xeb, 0x81, 0x81, 0x01,
0xd6, 0xe0, 0xe0, 0x20, 0x9f, 0x45, 0x54, 0x5d, 0x14, 0x76, 0x02, 0xd2, 0x71, 0x41, 0x47, 0x0a,
0x41, 0xc9, 0x0d, 0x9d, 0xd4, 0xa3, 0xa3, 0xa3, 0xe4, 0x4a, 0xe7, 0x25, 0x6a, 0xdd, 0x57, 0x54,
0x97, 0x87, 0x5e, 0x90, 0xf2, 0x23, 0x85, 0x8e, 0x7e, 0xdf, 0x77, 0x44, 0x15, 0xb5, 0x23, 0xf2,
0x44, 0x39, 0x22, 0x47, 0xf4, 0x9e, 0x74, 0xaa, 0xd2, 0x7f, 0xda, 0x10, 0xe5, 0x8b, 0xf2, 0x46,
0x7d, 0x45, 0xbd, 0x99, 0x97, 0x97, 0xe7, 0x64, 0x90, 0x38, 0x37, 0x64, 0xd0, 0xe1, 0x1c, 0xd1,
0xcc, 0x22, 0xd0, 0x61, 0x88, 0xdb, 0xed, 0x56, 0x80, 0xc8, 0xc9, 0x61, 0xd1, 0xbd, 0x89, 0x89,
0x09, 0xce, 0x17, 0xb9, 0xee, 0xe8, 0xe8, 0x20, 0x47, 0x85, 0x5e, 0x2a, 0x95, 0xca, 0x47, 0xcc,
0xa4, 0x3d, 0x7a, 0x88, 0x60, 0x92, 0xa4, 0xdd, 0x4a, 0x7a, 0x7f, 0xc1, 0x7f, 0x12, 0x39, 0x39,
0x7d, 0xfa, 0x34, 0x41, 0x02, 0x85, 0x3e, 0xf2, 0x12, 0x9f, 0x2f, 0x85, 0xab, 0xbe, 0xc0, 0xc0,
0xc0, 0x03, 0x01, 0x94, 0x15, 0x1c, 0x1c, 0xac, 0xb8, 0xfe, 0x3b, 0x89, 0x8d, 0x2a, 0x24, 0xdd,
0x17, 0x53, 0x81, 0xd4, 0x26, 0xd6, 0xff, 0x9c, 0xab, 0x4e, 0x7c, 0x7c, 0x85, 0xbe, 0xf3, 0xf6,
0xf6, 0xfe, 0xd1, 0xc7, 0xc7, 0x27, 0x58, 0xe8, 0xa7, 0xb7, 0x0a, 0x3d, 0xf4, 0xff, 0xdf, 0x48,
0xe5, 0xf3, 0x66, 0x9d, 0x1f, 0xc4, 0xba, 0xdf, 0x0a, 0x7d, 0xc6, 0xa0, 0xb7, 0xb4, 0x8f, 0x85,
0x3e, 0x25, 0x77, 0x42, 0x5f, 0xff, 0x47, 0x7d, 0x25, 0xf4, 0x85, 0xd0, 0x27, 0x52, 0xb3, 0x92,
0xfe, 0x04, 0xe6, 0x65, 0xc3, 0xbb, 0x89, 0x46, 0xb5, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE find_xpm[1] = {{ png, sizeof( png ), "find_xpm" }};
......
......@@ -8,85 +8,52 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x04, 0xd4, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0x49, 0x4f, 0x5d,
0x75, 0x18, 0x87, 0x31, 0x6a, 0xe2, 0xc2, 0x98, 0xe8, 0x86, 0x8d, 0x89, 0x71, 0xa3, 0x18, 0x1a,
0x59, 0x6a, 0x5c, 0xba, 0xe0, 0xdb, 0x98, 0x7e, 0x08, 0x16, 0x5d, 0xb0, 0x64, 0x86, 0x96, 0x05,
0x94, 0x36, 0x1d, 0x80, 0x96, 0x99, 0x36, 0x05, 0x0a, 0x65, 0x86, 0x32, 0xcf, 0x73, 0x69, 0x65,
0x86, 0x0b, 0x1c, 0xc6, 0x0b, 0xbc, 0xfe, 0x9e, 0x57, 0xcf, 0xe5, 0x5c, 0x5b, 0x63, 0x62, 0xe2,
0x49, 0xde, 0x1c, 0xee, 0xff, 0x9c, 0xfb, 0x7b, 0xde, 0xf9, 0x92, 0x92, 0x92, 0x92, 0xf2, 0x45,
0x5a, 0x5a, 0xda, 0x77, 0x19, 0x19, 0x19, 0x37, 0xfe, 0x0f, 0x4b, 0x4f, 0x4f, 0xff, 0x41, 0x8c,
0x2f, 0x65, 0x29, 0xe9, 0xbf, 0xaf, 0xad, 0xc5, 0x36, 0xb7, 0xb6, 0x6c, 0x6b, 0x7b, 0xdb, 0xb6,
0x77, 0x76, 0x6c, 0x71, 0x69, 0xc9, 0x76, 0xf7, 0xf6, 0x6c, 0x2f, 0x16, 0xb3, 0x2d, 0x9d, 0x2f,
0x2e, 0x2e, 0x5a, 0x6c, 0x7f, 0x3f, 0x61, 0x73, 0xf3, 0xf3, 0x76, 0x70, 0x78, 0xe8, 0xb6, 0xba,
0xba, 0x6a, 0x87, 0x41, 0x60, 0x83, 0xaf, 0x5f, 0x5b, 0x4d, 0x6d, 0xad, 0xad, 0xbe, 0x7d, 0xeb,
0x9f, 0x03, 0x99, 0xdf, 0x8f, 0x8e, 0xe2, 0x62, 0xfc, 0x04, 0xe8, 0xc7, 0xb5, 0xb5, 0xb5, 0x60,
0x71, 0x69, 0xd9, 0xd6, 0x37, 0x36, 0xdd, 0x9e, 0x3c, 0x7d, 0x6a, 0x23, 0xa3, 0xa3, 0x0e, 0xdd,
0xd8, 0xd4, 0xe7, 0x27, 0x4f, 0x6c, 0x6a, 0x7a, 0xda, 0xc1, 0x38, 0xc0, 0xf3, 0xf5, 0xf5, 0x75,
0xdb, 0x17, 0xf4, 0xa9, 0xfe, 0xde, 0x3f, 0x38, 0xb0, 0x87, 0x0f, 0x1f, 0x5a, 0x5e, 0x5e, 0x9e,
0x03, 0x43, 0x27, 0x30, 0x81, 0x2e, 0xc5, 0xf8, 0xc5, 0x41, 0xeb, 0x1b, 0x1b, 0xc1, 0xca, 0x9b,
0x37, 0xb6, 0xb4, 0xbc, 0x6c, 0x43, 0xc3, 0xc3, 0x46, 0x74, 0x2e, 0x3e, 0x35, 0xe5, 0xc2, 0x3b,
0xbb, 0xbb, 0x56, 0x5f, 0x5f, 0xef, 0x91, 0x22, 0xfe, 0xa2, 0xa5, 0xc5, 0xe4, 0x9c, 0x0b, 0xd5,
0xd4, 0xd4, 0xd8, 0xa1, 0xee, 0x8f, 0x1e, 0x3d, 0xb2, 0xfc, 0xfc, 0x7c, 0x1b, 0x1a, 0x1a, 0xf2,
0x68, 0x42, 0x3b, 0x8a, 0x82, 0x36, 0x04, 0xea, 0xed, 0xeb, 0xb3, 0xb1, 0xf1, 0x71, 0x2b, 0x2c,
0x2c, 0x74, 0x20, 0x69, 0xc4, 0xf3, 0xb9, 0xb9, 0x39, 0x4f, 0x17, 0x11, 0x8e, 0xca, 0x10, 0x6f,
0x6d, 0x6d, 0x55, 0xe4, 0x1b, 0x2e, 0x54, 0x5b, 0x57, 0x87, 0x98, 0x3d, 0x7e, 0xfc, 0xd8, 0x0a,
0x0a, 0x0a, 0x6c, 0x58, 0x8e, 0x1e, 0x1d, 0x1f, 0x27, 0xec, 0xf8, 0xe4, 0xe4, 0x1a, 0xb4, 0xb9,
0xb9, 0x19, 0x90, 0xa6, 0x49, 0x45, 0x90, 0x93, 0x93, 0x63, 0xe5, 0x77, 0xef, 0x7a, 0x54, 0x6f,
0xdf, 0xbd, 0x73, 0xef, 0x0f, 0x94, 0x9a, 0xd1, 0xb1, 0x31, 0x1b, 0x93, 0x21, 0xde, 0xda, 0xd6,
0x66, 0x72, 0xce, 0x85, 0xea, 0x04, 0x3a, 0xd6, 0xbd, 0xb2, 0xb2, 0xd2, 0x9d, 0x1c, 0x19, 0x19,
0xb1, 0x93, 0x93, 0x93, 0xa8, 0x45, 0x40, 0x5b, 0x5b, 0x01, 0x29, 0xa3, 0x0e, 0x39, 0xb9, 0xb9,
0x96, 0x2b, 0x7b, 0xf9, 0xf2, 0xa5, 0xa9, 0x49, 0xac, 0x45, 0xde, 0x53, 0x54, 0x20, 0xe3, 0x8a,
0x18, 0x71, 0x9e, 0xe1, 0x08, 0x42, 0xa4, 0xf4, 0xf4, 0xf4, 0xd4, 0xaa, 0xaa, 0xaa, 0xac, 0xa8,
0xa8, 0xc8, 0xa3, 0x3e, 0x3d, 0x3b, 0xb3, 0x33, 0x19, 0x77, 0x3d, 0xbb, 0x06, 0xa9, 0xb3, 0x02,
0xea, 0x30, 0x2d, 0x10, 0x90, 0x5c, 0x15, 0x15, 0x31, 0x0a, 0x4e, 0x9a, 0x54, 0x50, 0x1b, 0x9f,
0x98, 0xb0, 0x09, 0x19, 0xe2, 0xed, 0xed, 0xed, 0xb6, 0xad, 0xd4, 0x02, 0x68, 0x6c, 0x6c, 0x74,
0xd1, 0xea, 0xea, 0x6a, 0x2b, 0x2e, 0x2e, 0x76, 0x67, 0xce, 0xcf, 0xcf, 0xa3, 0x16, 0x01, 0x6d,
0x6f, 0x07, 0x0b, 0x6a, 0xe1, 0xe9, 0x99, 0x19, 0x87, 0xe4, 0xa9, 0xa8, 0x80, 0x48, 0x4f, 0x9b,
0xd2, 0x44, 0x6a, 0x26, 0x27, 0x27, 0xdd, 0x10, 0xef, 0xe8, 0xe8, 0xb0, 0x1d, 0xa5, 0x1a, 0x21,
0x40, 0xdc, 0x01, 0x95, 0x94, 0x94, 0xb8, 0x33, 0xf1, 0x78, 0x3c, 0x61, 0x49, 0x20, 0xd5, 0x27,
0x98, 0x90, 0x08, 0x20, 0x20, 0x74, 0x4f, 0xc7, 0xab, 0x57, 0x0e, 0x02, 0x48, 0x14, 0x74, 0x20,
0x11, 0xe3, 0xfd, 0x2b, 0x3d, 0xdb, 0x55, 0x06, 0x10, 0x6a, 0x6a, 0x6a, 0xf2, 0x7b, 0x43, 0x43,
0x43, 0x12, 0xe8, 0xe2, 0xe2, 0xe2, 0x7d, 0x90, 0xbc, 0x0b, 0x68, 0xe3, 0x59, 0x75, 0x18, 0x90,
0x7c, 0x75, 0x4f, 0x67, 0x57, 0x97, 0xd7, 0x81, 0x88, 0x88, 0x82, 0x68, 0x00, 0xe1, 0x3d, 0x11,
0xed, 0xe9, 0x7d, 0x84, 0x88, 0x08, 0x51, 0x3a, 0x2f, 0x04, 0xf1, 0x39, 0x34, 0xbd, 0x93, 0x0c,
0x1a, 0x18, 0x18, 0xf0, 0x89, 0x07, 0x42, 0x9b, 0x76, 0x75, 0x77, 0x5b, 0xbf, 0xce, 0x00, 0x13,
0x05, 0x83, 0x49, 0xe1, 0x11, 0xe7, 0x79, 0xd8, 0x81, 0xb7, 0x6e, 0xdd, 0xf2, 0xe8, 0x2e, 0x2f,
0x2f, 0xed, 0xf6, 0xed, 0xdb, 0xee, 0x10, 0x7f, 0x87, 0x26, 0xd8, 0x35, 0x48, 0x2f, 0x06, 0x0c,
0xdd, 0xbc, 0x40, 0x88, 0x14, 0xa8, 0x4d, 0x7b, 0x7a, 0x7a, 0x6c, 0x60, 0x70, 0xd0, 0xca, 0xcb,
0xcb, 0x3d, 0x8a, 0xe6, 0xe6, 0x66, 0x7b, 0xfe, 0xfc, 0xb9, 0x83, 0x2a, 0x2a, 0x2a, 0xbc, 0xbb,
0x18, 0x5e, 0xc4, 0x19, 0xde, 0x10, 0x44, 0x8a, 0xaf, 0xae, 0xae, 0x12, 0xf6, 0x1e, 0x68, 0x76,
0x76, 0xd6, 0x16, 0x16, 0x16, 0x1c, 0xc4, 0x3c, 0xf4, 0xf6, 0xf6, 0xba, 0xa7, 0x9c, 0x21, 0x8e,
0x18, 0x5d, 0x48, 0x3a, 0x38, 0x63, 0xb6, 0x10, 0x47, 0x98, 0xe7, 0x88, 0xfe, 0x3b, 0x68, 0x6f,
0x2f, 0x60, 0x66, 0x58, 0x9e, 0x40, 0x98, 0x87, 0x3e, 0x6d, 0x0a, 0x22, 0x09, 0xbb, 0x27, 0xcc,
0x79, 0x34, 0x2d, 0x51, 0x41, 0xae, 0x3b, 0x77, 0xee, 0x78, 0x1d, 0xa3, 0xe7, 0x7a, 0xef, 0x1a,
0xa4, 0xc2, 0x06, 0x74, 0x18, 0xbb, 0x0c, 0x08, 0x46, 0xcd, 0xfe, 0x09, 0xf2, 0x77, 0x00, 0x17,
0xe7, 0xd1, 0xae, 0x0b, 0x9d, 0x4c, 0xea, 0x3a, 0x40, 0xaf, 0xb5, 0x75, 0x89, 0x08, 0x08, 0x83,
0x37, 0xa8, 0xfa, 0xd0, 0x04, 0xd4, 0x01, 0x08, 0xb3, 0x44, 0x9b, 0x23, 0x4e, 0x13, 0x20, 0xcc,
0x15, 0xd3, 0x46, 0x47, 0x90, 0x77, 0xc9, 0x06, 0xbb, 0x2e, 0xba, 0x54, 0xf5, 0xbd, 0x64, 0x90,
0x96, 0x9f, 0x2d, 0x6b, 0x99, 0x86, 0x20, 0xc0, 0xec, 0xad, 0x07, 0x0f, 0x1e, 0x38, 0xa8, 0x45,
0x3b, 0x8f, 0x99, 0x02, 0xc4, 0xd9, 0x8c, 0x66, 0x8e, 0x06, 0xe2, 0x5d, 0xea, 0xc7, 0xdf, 0x6c,
0x15, 0x52, 0xce, 0x30, 0x87, 0x26, 0x47, 0x2f, 0xc4, 0xf8, 0xf9, 0x4f, 0x50, 0x2c, 0x16, 0xd0,
0x96, 0x51, 0x10, 0xeb, 0x1e, 0x18, 0xe9, 0xc0, 0x7b, 0x06, 0x92, 0x99, 0x01, 0x54, 0x5a, 0x5a,
0xea, 0x9e, 0x13, 0x4d, 0x76, 0x76, 0xb6, 0xd7, 0x05, 0xd1, 0xce, 0xce, 0x4e, 0xdf, 0xf6, 0x2b,
0x2b, 0x2b, 0x6e, 0x4b, 0x2a, 0x85, 0x96, 0xed, 0x0b, 0x31, 0xbe, 0x71, 0x90, 0xbe, 0xe0, 0xed,
0xbd, 0xac, 0x87, 0x40, 0xe8, 0x1e, 0xa2, 0xa1, 0x6e, 0x00, 0x00, 0xf1, 0x19, 0xe3, 0xe2, 0x8c,
0x67, 0xa4, 0xb3, 0x5b, 0xf3, 0x46, 0x84, 0x6c, 0x88, 0x67, 0xcf, 0x9e, 0xf9, 0x1c, 0x01, 0x60,
0xe7, 0x49, 0xab, 0x49, 0xfa, 0xdf, 0xca, 0x3e, 0x4d, 0x80, 0xf8, 0x49, 0x7e, 0xa3, 0x1f, 0xbf,
0xb2, 0xb2, 0x32, 0x5f, 0x9a, 0xe4, 0x1c, 0x8f, 0xbb, 0xb4, 0x21, 0x00, 0x31, 0x63, 0x18, 0x17,
0x67, 0x2c, 0x55, 0x9c, 0x23, 0x12, 0xc4, 0xef, 0xdd, 0xbf, 0xef, 0xcf, 0x38, 0xc7, 0xa1, 0xac,
0xac, 0xac, 0x7b, 0x7f, 0x45, 0xf2, 0x89, 0x8e, 0x53, 0x12, 0x20, 0xc2, 0xa7, 0xd8, 0x14, 0x3f,
0xec, 0x36, 0xd2, 0xc3, 0x5c, 0x84, 0x20, 0xe6, 0x87, 0xd4, 0x21, 0xdc, 0xdf, 0xdf, 0xef, 0x8e,
0xe8, 0xb7, 0xcc, 0xcf, 0x59, 0x4b, 0x44, 0xa9, 0x26, 0xba, 0xba, 0x79, 0xf3, 0x66, 0xbe, 0x74,
0xbf, 0x0e, 0x21, 0x49, 0x20, 0x3a, 0x84, 0x28, 0x80, 0x91, 0x12, 0x06, 0x16, 0x50, 0xd8, 0xd2,
0x51, 0x10, 0xad, 0x4b, 0xd1, 0xf9, 0x09, 0x21, 0x0b, 0x44, 0x40, 0x5b, 0x2b, 0x8d, 0xf1, 0xcc,
0xcc, 0xcc, 0xdf, 0xa4, 0x99, 0x2a, 0xfb, 0x38, 0x84, 0x24, 0x81, 0x78, 0x19, 0x10, 0xf3, 0x43,
0x87, 0x11, 0x61, 0x74, 0x76, 0x58, 0x9a, 0x38, 0x10, 0x82, 0xf8, 0xcc, 0x08, 0xf0, 0xf3, 0xc0,
0xff, 0x0d, 0x5a, 0x51, 0xfb, 0xa9, 0xa9, 0xa9, 0xbf, 0x4a, 0xef, 0x73, 0xd9, 0x47, 0x51, 0x48,
0x08, 0xba, 0xa1, 0xf6, 0x5c, 0x93, 0x48, 0x5c, 0xd1, 0xc4, 0xb5, 0xa9, 0x13, 0x26, 0x70, 0x5c,
0xa2, 0x09, 0xe3, 0xe2, 0xce, 0x33, 0x65, 0x20, 0xae, 0x34, 0xc7, 0x55, 0x93, 0xb8, 0x20, 0xbd,
0xd2, 0xf9, 0x5e, 0xf6, 0xd9, 0x87, 0x20, 0x21, 0x88, 0x7f, 0xee, 0xd2, 0x65, 0x19, 0xff, 0xd1,
0xf8, 0xee, 0x57, 0xd1, 0x7a, 0x7c, 0xc8, 0xfe, 0x00, 0x0a, 0x0d, 0x10, 0x76, 0xc6, 0x00, 0x96,
0x87, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
0xce, 0x00, 0x00, 0x02, 0xbc, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0xb1, 0x6e, 0x1b,
0x47, 0x10, 0x86, 0xbf, 0x99, 0x3b, 0x16, 0x76, 0xc3, 0xe8, 0x00, 0x35, 0x24, 0x61, 0x50, 0x4f,
0xe2, 0x56, 0x2f, 0xa1, 0x57, 0x48, 0xa0, 0x52, 0x11, 0x54, 0x07, 0x10, 0x90, 0x56, 0xb0, 0xe1,
0xca, 0xae, 0xf8, 0x00, 0x2e, 0xd9, 0xa4, 0x15, 0x60, 0x40, 0x10, 0xd2, 0xa4, 0x10, 0xa1, 0x44,
0xe1, 0x11, 0x48, 0x63, 0x8b, 0x80, 0x62, 0x92, 0xb7, 0xb7, 0xeb, 0xc2, 0xdc, 0xe3, 0xde, 0xf2,
0x8e, 0xb4, 0x81, 0x64, 0x81, 0xc5, 0xce, 0x2d, 0xee, 0xf6, 0x9f, 0x6f, 0x66, 0x67, 0x70, 0x02,
0x0c, 0x81, 0x01, 0x90, 0xf2, 0xff, 0x0c, 0x03, 0xfc, 0x9d, 0x02, 0x2f, 0x3e, 0x7e, 0xfc, 0xf4,
0x9b, 0x31, 0x06, 0x51, 0x41, 0x64, 0x3d, 0x01, 0xc2, 0x55, 0x04, 0xe0, 0xeb, 0xf3, 0x7a, 0xaf,
0x7a, 0x16, 0x69, 0x55, 0x49, 0x92, 0x84, 0xe7, 0xcf, 0x9e, 0xbd, 0x4c, 0x01, 0x2d, 0x8a, 0x15,
0x77, 0x77, 0x13, 0x86, 0x47, 0x47, 0xa8, 0x2a, 0xaa, 0xeb, 0x43, 0x62, 0x51, 0xd9, 0xec, 0xe3,
0x1c, 0x02, 0xb8, 0xc0, 0xa6, 0x41, 0xd4, 0x59, 0x0b, 0xa0, 0x29, 0x80, 0x26, 0x09, 0xfd, 0x7e,
0x8f, 0x24, 0xd1, 0xcd, 0xe1, 0x91, 0xc0, 0x16, 0x61, 0xb8, 0xc6, 0x84, 0xc1, 0xf0, 0xce, 0xa9,
0xdf, 0xc8, 0xf3, 0xbc, 0x4e, 0x21, 0x82, 0xa8, 0xa2, 0xb1, 0xdd, 0xb4, 0xae, 0xed, 0xf0, 0xdd,
0x6a, 0xae, 0x85, 0x52, 0x1f, 0xc7, 0xfe, 0x60, 0x40, 0x92, 0x24, 0x88, 0xf7, 0xe2, 0x7b, 0xc8,
0x62, 0x3b, 0x18, 0xaa, 0x1a, 0x10, 0x39, 0x47, 0x3e, 0x9d, 0x7e, 0x7d, 0x7f, 0xed, 0x85, 0x36,
0x90, 0x35, 0x12, 0x89, 0x54, 0x44, 0xb2, 0x8f, 0x48, 0x54, 0xe9, 0xf7, 0xfb, 0xa8, 0x6a, 0x8d,
0xc2, 0xdb, 0x44, 0x7b, 0xec, 0x58, 0xd9, 0x9b, 0xa3, 0xd9, 0xac, 0x9e, 0xa3, 0x40, 0x54, 0x23,
0x42, 0xef, 0x50, 0xe8, 0xd8, 0x56, 0x7e, 0x83, 0x59, 0x11, 0xa9, 0x2a, 0xfd, 0x5e, 0xaf, 0x4e,
0x14, 0x51, 0xc5, 0x07, 0xee, 0xa2, 0x68, 0x1a, 0x7b, 0x6f, 0x5d, 0x9b, 0x97, 0xfb, 0x28, 0x9a,
0x89, 0x44, 0xb6, 0x73, 0xd4, 0x42, 0x16, 0xc7, 0xbe, 0xed, 0xb9, 0x91, 0xc8, 0x39, 0xc7, 0x74,
0x3a, 0xad, 0x2a, 0x3c, 0x14, 0xd1, 0x16, 0x82, 0x98, 0x26, 0x14, 0x6c, 0x25, 0x12, 0x55, 0x06,
0x83, 0xc1, 0x86, 0x68, 0x5d, 0xe1, 0x12, 0x79, 0xdb, 0x46, 0xf4, 0x2d, 0xb9, 0xaa, 0x72, 0x34,
0xf5, 0x75, 0xb4, 0x23, 0x17, 0x6d, 0x44, 0x6d, 0x74, 0xe1, 0x77, 0xb5, 0x1c, 0x35, 0x25, 0x7f,
0x5f, 0xcd, 0x78, 0xdb, 0x5a, 0x8b, 0x73, 0x0e, 0xe7, 0x1c, 0x3e, 0x1d, 0x5b, 0xa1, 0x73, 0xeb,
0x5b, 0xd7, 0xed, 0x76, 0x6b, 0x5d, 0xba, 0xc9, 0xb3, 0x78, 0xb5, 0xd6, 0x6e, 0x4d, 0x2f, 0x06,
0x90, 0xa6, 0x69, 0x9d, 0xa8, 0x17, 0xdc, 0xba, 0x7d, 0xb5, 0xe2, 0xf7, 0xca, 0xb2, 0xc4, 0x5a,
0x4b, 0x59, 0x96, 0x18, 0x63, 0xb6, 0xc4, 0x54, 0x95, 0xc5, 0x62, 0x61, 0x00, 0x57, 0x11, 0xcd,
0xf2, 0x9c, 0x1f, 0xba, 0xdd, 0xc6, 0xb0, 0x34, 0x89, 0xfa, 0x03, 0x8b, 0xa2, 0xc0, 0x18, 0xc3,
0x6a, 0xb5, 0x62, 0xb1, 0x58, 0xb0, 0x5c, 0x2e, 0x29, 0x8a, 0x82, 0x4e, 0xa7, 0x83, 0xb5, 0xd6,
0x5e, 0x5d, 0x5d, 0xbd, 0x03, 0xe6, 0x1b, 0xa2, 0xa8, 0x33, 0xec, 0x0a, 0x9d, 0x17, 0x31, 0xc6,
0x60, 0x8c, 0xe1, 0xe9, 0xe9, 0x89, 0x9b, 0x9b, 0x1b, 0x44, 0x84, 0x2c, 0xcb, 0xc8, 0xb2, 0x8c,
0xf9, 0x7c, 0xee, 0x2e, 0x2f, 0x2f, 0x5f, 0x8d, 0x46, 0xa3, 0xb7, 0xc0, 0x1f, 0x55, 0x1d, 0xe5,
0x79, 0x5e, 0x8b, 0xed, 0xae, 0xab, 0xeb, 0x9c, 0xa3, 0x2c, 0xcb, 0x2a, 0x64, 0x45, 0x51, 0x20,
0x22, 0x1c, 0x1f, 0x1f, 0x33, 0x1c, 0x0e, 0x79, 0x7c, 0x7c, 0x74, 0x17, 0x17, 0x17, 0xbf, 0x8e,
0x46, 0xa3, 0xd7, 0xc0, 0x2d, 0xf0, 0x39, 0xf5, 0x87, 0xf5, 0x7a, 0xbd, 0xbd, 0xf5, 0x20, 0x22,
0xd5, 0xcd, 0xf2, 0xb9, 0x29, 0xcb, 0x92, 0xe5, 0x6a, 0xc5, 0xc1, 0xc1, 0x01, 0xb3, 0xd9, 0x8c,
0x87, 0x87, 0x07, 0x7b, 0x7e, 0x7e, 0xfe, 0xcb, 0x78, 0x3c, 0x7e, 0x07, 0xfc, 0xe9, 0x9c, 0x5b,
0xd6, 0x3a, 0x43, 0x4c, 0xb4, 0x4b, 0xd4, 0x8b, 0x79, 0xb2, 0xe5, 0x62, 0xc1, 0xe1, 0xe1, 0x21,
0x93, 0xc9, 0xc4, 0x9c, 0x9e, 0x9e, 0xfe, 0x3c, 0x1e, 0x8f, 0xdf, 0x00, 0x13, 0x2f, 0xb2, 0xe9,
0x0c, 0xdf, 0x48, 0xe4, 0x45, 0x42, 0xb1, 0xb2, 0x2c, 0x49, 0x92, 0x84, 0xfb, 0xfb, 0xfb, 0xf9,
0xd9, 0xd9, 0xd9, 0x8f, 0xd7, 0xd7, 0xd7, 0xef, 0x81, 0x4f, 0xce, 0xb9, 0x32, 0xfc, 0x2e, 0x05,
0xac, 0x26, 0x09, 0x59, 0x96, 0xed, 0xec, 0x02, 0x71, 0x2f, 0x4b, 0xd3, 0x14, 0xe7, 0x1c, 0x69,
0xa7, 0x63, 0x6e, 0x6f, 0x6f, 0x3f, 0x9c, 0x9c, 0x9c, 0xfc, 0x54, 0x14, 0xc5, 0xef, 0xc0, 0xbf,
0xae, 0x21, 0xd9, 0xf2, 0x1f, 0xfc, 0x40, 0x16, 0xc0, 0x5f, 0xc0, 0x3f, 0x61, 0xa8, 0xe2, 0xf1,
0x05, 0x95, 0x9b, 0x4e, 0x78, 0x5f, 0x66, 0xb8, 0x85, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE new_pcb_xpm[1] = {{ png, sizeof( png ), "new_pcb_xpm" }};
......
......@@ -8,214 +8,88 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9,
0x87, 0x00, 0x00, 0x0c, 0xdb, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x99, 0x7b, 0x6c, 0x54,
0xd7, 0x9d, 0x80, 0xbf, 0xfb, 0xf0, 0xcc, 0xd8, 0x1e, 0x3f, 0xc6, 0x9e, 0xf1, 0x1b, 0x1b, 0x1c,
0x8c, 0xbd, 0xa6, 0x36, 0x09, 0x09, 0x10, 0x36, 0xae, 0x4b, 0x29, 0xc1, 0x09, 0x50, 0x85, 0x87,
0x01, 0xb5, 0x8e, 0x20, 0x51, 0xac, 0x88, 0x26, 0x80, 0xaa, 0xb6, 0xa4, 0x34, 0x8d, 0xd2, 0xa8,
0x5d, 0x56, 0x95, 0x1a, 0xd4, 0x55, 0x68, 0x57, 0x9b, 0x84, 0x50, 0x20, 0x9b, 0x22, 0x2d, 0x54,
0x21, 0x29, 0x24, 0x4d, 0xe4, 0x50, 0x20, 0x6e, 0x03, 0xd4, 0xa1, 0x6e, 0x30, 0x25, 0x25, 0x7e,
0xe1, 0x07, 0x7e, 0x8e, 0x3d, 0xf6, 0xd8, 0x33, 0x9e, 0xc7, 0xbd, 0x67, 0xff, 0xb0, 0xe7, 0xe2,
0xf1, 0x8c, 0x89, 0xcd, 0x2e, 0x2b, 0xed, 0x91, 0xae, 0xce, 0xb9, 0xe7, 0xde, 0x73, 0xce, 0xef,
0xfd, 0x3a, 0x92, 0x10, 0x82, 0xff, 0xcf, 0x4d, 0x0d, 0x0d, 0xb6, 0x6d, 0xdb, 0xf6, 0xb4, 0xd9,
0x6c, 0xce, 0x51, 0x55, 0x15, 0x59, 0x96, 0x51, 0x55, 0x95, 0xc9, 0xe3, 0xc9, 0xbd, 0xa2, 0x28,
0xa8, 0xea, 0xf8, 0xd2, 0xe9, 0xfe, 0x99, 0xfc, 0x08, 0x21, 0x3a, 0x9e, 0x7c, 0xf2, 0xc9, 0xd7,
0xee, 0x1a, 0x02, 0x4f, 0x3c, 0xf1, 0xc4, 0xee, 0x17, 0x5e, 0x78, 0xe1, 0xe5, 0xa4, 0xa4, 0xa4,
0x18, 0x00, 0x49, 0x92, 0x98, 0xda, 0x0b, 0x21, 0x90, 0x24, 0x29, 0x6c, 0x3c, 0xb5, 0x45, 0x9b,
0x13, 0x42, 0xa0, 0x69, 0x5a, 0xf0, 0xe8, 0xd1, 0xa3, 0xea, 0xb6, 0x6d, 0xdb, 0xfe, 0xfd, 0xae,
0x20, 0x60, 0x32, 0x99, 0x8a, 0x6d, 0x36, 0x5b, 0x8c, 0xae, 0xeb, 0xc6, 0xa1, 0x00, 0xa3, 0x17,
0x2f, 0x62, 0xca, 0xcd, 0x45, 0xcd, 0xc8, 0x08, 0x9b, 0x8f, 0xd6, 0x87, 0x9e, 0xa9, 0xef, 0x42,
0x08, 0x6c, 0x36, 0x9b, 0x6a, 0x32, 0x99, 0x0a, 0xef, 0x06, 0x07, 0xe4, 0xa9, 0x14, 0x94, 0x24,
0x09, 0x59, 0x96, 0xc1, 0xe3, 0xa1, 0xe3, 0xe9, 0xa7, 0x69, 0xdd, 0xb8, 0x11, 0xd7, 0xb1, 0x63,
0x48, 0x93, 0x38, 0x30, 0xdb, 0x27, 0x24, 0x6a, 0x77, 0x15, 0x81, 0xc9, 0xc0, 0x4f, 0x16, 0x85,
0xcc, 0xea, 0x6a, 0x06, 0x5e, 0x7d, 0x95, 0xb6, 0xed, 0xdb, 0x09, 0x34, 0x35, 0x85, 0xfd, 0x33,
0x1d, 0xb0, 0x93, 0xf7, 0x9b, 0x2a, 0x8e, 0x77, 0x95, 0x03, 0x53, 0x01, 0x03, 0xb0, 0x6f, 0xd8,
0xc0, 0xa2, 0x3f, 0xfe, 0x91, 0xb8, 0x79, 0xf3, 0x68, 0xdd, 0xba, 0x95, 0xfe, 0x5f, 0xfd, 0x0a,
0x02, 0x81, 0x19, 0x51, 0x7d, 0x72, 0xd3, 0x34, 0xed, 0xff, 0x86, 0x03, 0xd1, 0x80, 0x88, 0x49,
0x4d, 0xa5, 0xe0, 0xc0, 0x01, 0x0a, 0x0f, 0x1d, 0x62, 0xe4, 0xfd, 0xf7, 0x69, 0xad, 0xac, 0xc4,
0x7b, 0xf9, 0x72, 0x18, 0x75, 0xbf, 0x0c, 0x99, 0x60, 0x30, 0x78, 0xf7, 0xcc, 0x68, 0x34, 0x36,
0x47, 0xa3, 0x62, 0xf2, 0x8a, 0x15, 0x2c, 0xaa, 0xa9, 0xa1, 0x7d, 0xff, 0x7e, 0xda, 0xab, 0xab,
0x49, 0xda, 0xb0, 0x01, 0xc7, 0x77, 0xbf, 0x8b, 0x64, 0xb5, 0x46, 0xfd, 0xbf, 0xab, 0xab, 0x8b,
0x9a, 0x9a, 0x1a, 0x54, 0x55, 0xa5, 0xb7, 0xb7, 0x77, 0xe3, 0xc5, 0x8b, 0x17, 0x4b, 0x14, 0x45,
0x31, 0xcc, 0xad, 0xa2, 0x28, 0x86, 0x49, 0x9e, 0x3c, 0x3f, 0xd5, 0x64, 0x87, 0xbe, 0x4d, 0x7e,
0x00, 0xdd, 0xef, 0xf7, 0xbf, 0xa8, 0x4e, 0x06, 0x38, 0xd0, 0xd1, 0x41, 0xf7, 0xcb, 0x2f, 0x23,
0x34, 0x0d, 0x31, 0x41, 0x31, 0x11, 0x0c, 0xd2, 0x7d, 0xf8, 0x30, 0x3d, 0x47, 0x8e, 0x18, 0x80,
0x2d, 0x38, 0x78, 0x10, 0xfb, 0xfa, 0xf5, 0x34, 0xed, 0xd9, 0x43, 0xcb, 0x86, 0x0d, 0xa4, 0xed,
0xdd, 0x8b, 0xf5, 0x1b, 0xdf, 0x88, 0x40, 0xa0, 0xa6, 0xa6, 0x86, 0x67, 0x9e, 0x79, 0x26, 0xf4,
0x9a, 0x23, 0x49, 0x52, 0xce, 0x4c, 0xa8, 0x1a, 0x32, 0xd5, 0xd3, 0x35, 0x21, 0x04, 0xb2, 0x2c,
0x53, 0x5b, 0x5b, 0x3b, 0x5f, 0x9d, 0x3c, 0xa9, 0x58, 0xad, 0xc4, 0x16, 0x15, 0x81, 0x10, 0xe8,
0x3e, 0x1f, 0xee, 0x73, 0xe7, 0x40, 0x96, 0xb1, 0x6f, 0xdc, 0x88, 0x6d, 0xd5, 0x2a, 0x63, 0x03,
0x53, 0x7a, 0x3a, 0x52, 0x4c, 0x0c, 0x25, 0xa7, 0x4e, 0xd1, 0xf5, 0xfa, 0xeb, 0x74, 0xfc, 0xf8,
0xc7, 0xc4, 0x9f, 0x3e, 0x8d, 0x63, 0xef, 0x5e, 0x14, 0x87, 0xc3, 0xf8, 0x2f, 0x21, 0x21, 0x01,
0x80, 0xb1, 0xb1, 0xb1, 0xdb, 0x02, 0x33, 0x75, 0x7c, 0x3b, 0x93, 0x1c, 0x9a, 0x8b, 0x8b, 0x8b,
0x23, 0x29, 0x29, 0x49, 0x09, 0xe3, 0x40, 0x8c, 0xdd, 0x4e, 0xc6, 0xce, 0x9d, 0xe3, 0x4a, 0x37,
0x3c, 0x4c, 0xef, 0x6b, 0xaf, 0x21, 0xc9, 0x32, 0x6a, 0x62, 0x22, 0x6a, 0x62, 0x62, 0x24, 0xa5,
0x54, 0x95, 0xac, 0xef, 0x7c, 0x87, 0xd4, 0xb5, 0x6b, 0x69, 0xda, 0xbb, 0x97, 0xd6, 0x8d, 0x1b,
0xb1, 0xef, 0xde, 0x4d, 0xe2, 0xa6, 0x4d, 0x11, 0xd6, 0x28, 0x5a, 0xab, 0xaf, 0xaf, 0xe7, 0xcc,
0x99, 0x33, 0x51, 0xa9, 0x3d, 0xe1, 0x3f, 0xa8, 0xaa, 0xaa, 0x0a, 0x89, 0x4c, 0x04, 0xc2, 0x92,
0x24, 0xa1, 0x4e, 0xe7, 0x49, 0x67, 0x63, 0xf6, 0xcc, 0xb9, 0xb9, 0x14, 0xff, 0xf6, 0xb7, 0x74,
0xbd, 0xfe, 0x3a, 0x37, 0x7e, 0xf6, 0x33, 0xfa, 0x5f, 0x79, 0x05, 0xc9, 0x6c, 0x26, 0xb0, 0x6e,
0x9d, 0xb1, 0x57, 0xc7, 0x48, 0x07, 0xdb, 0xdf, 0xdf, 0x8e, 0x2e, 0x74, 0x1e, 0xce, 0x7b, 0x98,
0xe7, 0x97, 0x3d, 0xcf, 0xd1, 0xa3, 0x47, 0x71, 0x3a, 0x9d, 0xe4, 0xe6, 0xe6, 0xe2, 0x74, 0x3a,
0x51, 0x55, 0x95, 0x60, 0x30, 0x88, 0xa2, 0x28, 0xc4, 0xc6, 0xc6, 0x72, 0xe6, 0xcc, 0x19, 0x96,
0x2f, 0x5f, 0x0e, 0x0e, 0xd8, 0xf6, 0xc1, 0x36, 0x74, 0xa1, 0x53, 0x91, 0x5b, 0xc1, 0x8b, 0x4b,
0x5f, 0xbc, 0xe5, 0x5f, 0xa2, 0x21, 0x20, 0x49, 0x12, 0x42, 0x0e, 0xb3, 0xb0, 0x8c, 0xd4, 0xd7,
0xd3, 0xfe, 0x8b, 0x5f, 0xf0, 0x4f, 0x6f, 0xbd, 0x15, 0x15, 0x89, 0xfe, 0xb7, 0xdf, 0xa6, 0xf3,
0xd7, 0xbf, 0x26, 0xb6, 0xa4, 0x84, 0xc4, 0x4d, 0x9b, 0x50, 0xec, 0x76, 0xd4, 0x96, 0x16, 0x83,
0x03, 0xbd, 0x9e, 0x5e, 0xae, 0xf4, 0x5d, 0x01, 0x20, 0x3d, 0x2e, 0xdd, 0x38, 0x6b, 0xc9, 0x92,
0x25, 0xec, 0xda, 0xb5, 0x8b, 0x43, 0x87, 0x0e, 0xe1, 0xf3, 0xf9, 0x70, 0xb9, 0x5c, 0x94, 0x94,
0x94, 0xb0, 0x78, 0xf1, 0x62, 0x9e, 0x7a, 0xea, 0x29, 0x84, 0x10, 0x38, 0xbd, 0x4e, 0xda, 0xdd,
0xed, 0x00, 0x34, 0x0d, 0x35, 0x19, 0x6b, 0x85, 0x10, 0x84, 0x89, 0x90, 0xf0, 0x7a, 0x71, 0x7d,
0xf8, 0xe1, 0xb8, 0x12, 0x87, 0xe4, 0x56, 0x08, 0x9c, 0xef, 0xbe, 0x4b, 0xf7, 0x9b, 0x6f, 0xe2,
0xbd, 0x7e, 0x9d, 0x7f, 0x54, 0x57, 0x33, 0xf7, 0x27, 0x3f, 0xc1, 0x3c, 0x67, 0x0e, 0x00, 0xbe,
0x8e, 0x0e, 0x9a, 0x7f, 0xf4, 0x23, 0xdc, 0x75, 0x75, 0x38, 0x76, 0xef, 0x26, 0x79, 0xcb, 0x16,
0x84, 0x24, 0xa1, 0xeb, 0x3a, 0x72, 0x77, 0xb7, 0xe1, 0x5f, 0x2c, 0xaa, 0xe5, 0x16, 0xc7, 0x54,
0xb3, 0x21, 0x16, 0x21, 0x04, 0xcb, 0xca, 0xca, 0xf8, 0xe0, 0x83, 0x0f, 0xb0, 0x5a, 0xad, 0x2c,
0x5e, 0xbc, 0x38, 0x8c, 0x98, 0xf1, 0x31, 0xf1, 0xc6, 0xda, 0xc9, 0x63, 0x5d, 0xd7, 0xc3, 0x39,
0xe0, 0xbf, 0x79, 0x93, 0x9e, 0x43, 0x87, 0x40, 0x08, 0xc4, 0x84, 0xe3, 0xd1, 0xfd, 0x7e, 0xe2,
0x4b, 0x4b, 0x49, 0xa9, 0xa8, 0xa0, 0x6f, 0x68, 0x88, 0xf4, 0xc7, 0x1f, 0x47, 0xb5, 0xd9, 0x10,
0x9a, 0x46, 0xf7, 0x1b, 0x6f, 0xd0, 0xbe, 0x7f, 0x3f, 0xf1, 0x4b, 0x97, 0x92, 0x7f, 0xf2, 0x24,
0x6a, 0x7a, 0xfa, 0xb8, 0x8c, 0x4e, 0x0a, 0xf6, 0x42, 0x00, 0x96, 0xa6, 0x95, 0x72, 0xe5, 0xc9,
0x2b, 0x68, 0x42, 0x23, 0xc5, 0x92, 0x12, 0x21, 0xae, 0x45, 0x45, 0x45, 0x14, 0x16, 0x16, 0x1a,
0xca, 0xda, 0xd3, 0xd3, 0x63, 0x7c, 0xbf, 0x37, 0xed, 0x5e, 0x3e, 0xdf, 0xfe, 0x39, 0xba, 0xd0,
0xb1, 0x28, 0x16, 0x63, 0xcf, 0x08, 0x04, 0x62, 0x0b, 0x0a, 0x58, 0x78, 0xea, 0x14, 0x92, 0x24,
0xa1, 0x0d, 0x0f, 0xf3, 0x69, 0x69, 0x29, 0xb2, 0xd9, 0x8c, 0x65, 0xee, 0x5c, 0x52, 0x1e, 0x7d,
0x14, 0x49, 0x55, 0x49, 0x5e, 0xb1, 0x82, 0xd1, 0xab, 0x57, 0x69, 0xde, 0xb3, 0x07, 0x5f, 0x77,
0x37, 0xd9, 0xfb, 0xf6, 0x91, 0x58, 0x51, 0x81, 0xae, 0xeb, 0xd3, 0x9a, 0x3e, 0x49, 0x92, 0xd0,
0x84, 0xc6, 0x75, 0xd7, 0x75, 0x84, 0x10, 0xe4, 0x27, 0xe7, 0x93, 0x60, 0x4e, 0xf8, 0x52, 0x25,
0x0f, 0xb5, 0xb1, 0xe0, 0x18, 0x67, 0x3b, 0xce, 0xa2, 0xe9, 0x1a, 0x85, 0xb6, 0x42, 0x16, 0x24,
0x2f, 0x88, 0x2e, 0x42, 0xb7, 0x0b, 0x07, 0xcc, 0xd9, 0xd9, 0xa4, 0x6d, 0xdd, 0xca, 0x8d, 0x7d,
0xfb, 0xe8, 0x3e, 0x78, 0x10, 0xdb, 0xfa, 0xf5, 0xe4, 0xbd, 0xf1, 0x06, 0x72, 0x42, 0x82, 0x11,
0x5e, 0x47, 0x43, 0x20, 0xb4, 0xd7, 0xc5, 0xce, 0x8b, 0x6c, 0x7a, 0x7b, 0xdc, 0x3a, 0xad, 0x9a,
0xbb, 0x8a, 0x13, 0xeb, 0x4f, 0x44, 0x0d, 0xd7, 0xa3, 0xe9, 0xe3, 0x85, 0xee, 0x0b, 0xec, 0xf8,
0x68, 0x07, 0x00, 0x15, 0x79, 0x15, 0x1c, 0x5c, 0x75, 0xd0, 0x08, 0x4f, 0x66, 0x1c, 0x22, 0x0e,
0x7d, 0xfc, 0x31, 0xcd, 0x7b, 0xf7, 0x82, 0x2c, 0x93, 0xff, 0x9b, 0xdf, 0x10, 0xbf, 0x74, 0x69,
0x98, 0x6d, 0xbe, 0x9d, 0x53, 0x92, 0x24, 0x09, 0xa4, 0x70, 0x13, 0x19, 0x0d, 0x58, 0x31, 0x45,
0xf4, 0x8c, 0x5e, 0x9a, 0xde, 0x87, 0x84, 0x39, 0xb2, 0x68, 0x4e, 0x25, 0x38, 0x30, 0x40, 0xe3,
0x81, 0x03, 0x38, 0xdf, 0x79, 0x87, 0xb4, 0xea, 0x6a, 0xd2, 0x77, 0xee, 0x44, 0x32, 0x99, 0x22,
0x00, 0x9f, 0x8e, 0xfa, 0xa1, 0x7e, 0xbe, 0x6d, 0x3e, 0x95, 0x45, 0x95, 0x08, 0x21, 0x28, 0x9f,
0x53, 0x1e, 0xa1, 0x23, 0xb7, 0xdb, 0x67, 0x61, 0xea, 0x42, 0xb6, 0x17, 0x8f, 0x9b, 0xe0, 0x87,
0xb2, 0x1e, 0x32, 0xd6, 0x44, 0x70, 0x20, 0x1a, 0x02, 0xd7, 0xaa, 0xaa, 0x88, 0x2d, 0x28, 0xa0,
0xe8, 0xe4, 0x49, 0x2c, 0x45, 0x45, 0x51, 0x11, 0x9d, 0x09, 0x17, 0xb2, 0x12, 0xb2, 0x38, 0xbc,
0xee, 0x70, 0x54, 0x20, 0x6f, 0x97, 0xdd, 0x49, 0x92, 0x44, 0x46, 0x7c, 0x06, 0x3f, 0xff, 0xea,
0xcf, 0xa3, 0x7a, 0x64, 0x35, 0x1a, 0x5b, 0x84, 0x10, 0x48, 0xb1, 0xb1, 0x78, 0x1e, 0xab, 0xa2,
0xd7, 0x96, 0xcd, 0x40, 0xc6, 0x5c, 0x4c, 0x7f, 0xe9, 0x22, 0xa7, 0xcb, 0xc7, 0xc2, 0x85, 0xb9,
0xa4, 0xa6, 0x26, 0x7e, 0x29, 0xe0, 0x53, 0x3d, 0x66, 0xbb, 0xbb, 0x9d, 0x6f, 0x9d, 0xfc, 0x16,
0x9a, 0xd0, 0x58, 0x99, 0xb7, 0x92, 0x7d, 0x5f, 0xdb, 0x17, 0x15, 0x81, 0x68, 0x7b, 0xb6, 0x0e,
0xb7, 0xb2, 0xf9, 0xdd, 0xcd, 0xe8, 0xe8, 0x3c, 0x92, 0xf7, 0x08, 0x2f, 0x3d, 0xf8, 0x52, 0xb8,
0x19, 0x0d, 0x04, 0x02, 0x3d, 0x2d, 0x2d, 0x1d, 0x5a, 0x47, 0xc7, 0x90, 0xa2, 0x69, 0x3a, 0x20,
0xd1, 0xd8, 0xd8, 0x45, 0xdd, 0xa0, 0x8c, 0x32, 0xdc, 0x86, 0xdc, 0x7e, 0x63, 0x22, 0x24, 0x96,
0xf0, 0x7a, 0x55, 0xb6, 0x6c, 0x59, 0x8d, 0xd5, 0x1a, 0xcb, 0xb8, 0x70, 0x4e, 0x3e, 0x30, 0xfc,
0xbd, 0xbd, 0xdd, 0xc3, 0x99, 0x33, 0x9f, 0x01, 0x82, 0x96, 0xa1, 0x16, 0xfa, 0x1a, 0xc6, 0xf7,
0xfe, 0xac, 0xab, 0x93, 0xb3, 0xe2, 0x0a, 0x7e, 0x7f, 0x02, 0x4e, 0x27, 0x9c, 0x3b, 0xd7, 0x60,
0xac, 0x99, 0x3b, 0x37, 0x8d, 0xec, 0xec, 0x70, 0x33, 0xeb, 0xf4, 0x3a, 0x69, 0x73, 0xb7, 0x01,
0xd0, 0xe8, 0x6a, 0x8c, 0x74, 0x64, 0x57, 0xaf, 0x9a, 0x3f, 0x3f, 0x7f, 0xfe, 0xaa, 0xbc, 0x74,
0x69, 0x31, 0x8a, 0xa2, 0x20, 0x49, 0x32, 0x0e, 0x47, 0x12, 0x8b, 0x17, 0xcf, 0x27, 0x18, 0xd4,
0xd0, 0x75, 0x1d, 0x49, 0x92, 0x19, 0x5f, 0x17, 0xca, 0xd8, 0x24, 0x64, 0x39, 0x9a, 0xe5, 0xba,
0x35, 0x5e, 0xb3, 0x66, 0x9d, 0x31, 0x77, 0x7f, 0x8a, 0x9d, 0xe3, 0xf9, 0xbf, 0x0b, 0xfb, 0xfe,
0xfd, 0xef, 0x3f, 0x37, 0x21, 0xcb, 0x3a, 0x7e, 0xbf, 0x46, 0x20, 0x10, 0xa4, 0xb6, 0xb6, 0x15,
0x4d, 0xbb, 0xca, 0xca, 0x95, 0x05, 0x06, 0x77, 0xe2, 0xd4, 0x38, 0x03, 0x19, 0xab, 0xc9, 0x6a,
0x8c, 0x83, 0xc1, 0xe0, 0x38, 0x02, 0x79, 0x79, 0xe9, 0x7b, 0x2a, 0x2b, 0xbf, 0x2a, 0x99, 0xcd,
0x26, 0x23, 0x06, 0x1f, 0x1a, 0xf2, 0x30, 0x34, 0xe4, 0xc5, 0xe3, 0x19, 0xc3, 0xe7, 0x0b, 0x22,
0xcb, 0xca, 0x04, 0xc0, 0xe1, 0xbd, 0x2c, 0x2b, 0xf4, 0xf5, 0x75, 0x73, 0xfc, 0xf8, 0x9b, 0x98,
0x4c, 0x16, 0xb6, 0x6c, 0x79, 0x1c, 0xbf, 0xdf, 0x4f, 0x4f, 0x4f, 0x3b, 0x9a, 0xe6, 0x43, 0xd7,
0x75, 0x12, 0x13, 0xed, 0x64, 0x65, 0xcd, 0x23, 0x3d, 0x3d, 0x87, 0x9b, 0x3d, 0x9d, 0x38, 0x07,
0x9d, 0x48, 0x12, 0x84, 0x88, 0xac, 0xeb, 0xe0, 0xf5, 0xfa, 0xc8, 0x76, 0x14, 0x50, 0x5a, 0x5a,
0xc4, 0x47, 0x1f, 0x7d, 0xc2, 0xd8, 0x58, 0xc0, 0x00, 0xb4, 0xd8, 0x5e, 0x4c, 0xe3, 0x53, 0x8d,
0x68, 0xba, 0x86, 0x45, 0xb1, 0x44, 0x5a, 0xa1, 0x8c, 0x8c, 0xe4, 0x7c, 0xb7, 0x7b, 0x18, 0x49,
0x4a, 0x44, 0x51, 0x14, 0x84, 0x10, 0xf8, 0x7c, 0x7e, 0x46, 0x47, 0xbd, 0xb8, 0xdd, 0x1e, 0xc6,
0xc6, 0x42, 0x08, 0xc8, 0x11, 0xbd, 0xa2, 0x28, 0xbc, 0xf4, 0xaf, 0xff, 0x42, 0xfe, 0xe3, 0x47,
0xe9, 0x73, 0x7b, 0xd8, 0xff, 0xcb, 0x9d, 0xbc, 0xf2, 0x6f, 0xbf, 0x44, 0x92, 0x86, 0x39, 0x72,
0xe4, 0x08, 0x6b, 0xd6, 0xac, 0xe1, 0xeb, 0x5f, 0x7f, 0x90, 0x9e, 0x9e, 0x6e, 0xbe, 0xf8, 0xe2,
0x02, 0x0d, 0xed, 0x43, 0x54, 0x6d, 0xac, 0x20, 0xa0, 0x43, 0xe7, 0xa8, 0x42, 0x9f, 0x47, 0xc6,
0x35, 0x26, 0xe3, 0x72, 0xfb, 0xf0, 0x35, 0x5f, 0xc6, 0x6c, 0x76, 0x30, 0x32, 0x12, 0xc4, 0xed,
0xbe, 0x15, 0x82, 0x7b, 0x02, 0x1e, 0x8e, 0xfe, 0xfd, 0x28, 0x41, 0x3d, 0xc8, 0x22, 0xfb, 0x22,
0xca, 0xb2, 0xca, 0xc2, 0x75, 0xc0, 0xe7, 0x0b, 0xdc, 0x71, 0x79, 0x4e, 0x08, 0x9d, 0x2f, 0xba,
0xdc, 0x34, 0x34, 0xa6, 0xa0, 0x6b, 0xc9, 0x14, 0x0e, 0x04, 0xc8, 0xcd, 0xcd, 0xe5, 0x87, 0x3f,
0x7c, 0x8e, 0x13, 0x27, 0x4e, 0x50, 0x5f, 0x5f, 0xcf, 0xe6, 0xcd, 0x5b, 0x89, 0x8d, 0x8d, 0x23,
0x23, 0x23, 0x9b, 0x76, 0x57, 0x2d, 0xb5, 0x6d, 0xe0, 0x09, 0x2a, 0x13, 0xda, 0xa2, 0x03, 0x3a,
0x09, 0x8a, 0x17, 0x49, 0x92, 0x27, 0xf2, 0x07, 0x7f, 0xd8, 0x19, 0xd7, 0x06, 0xae, 0xf1, 0xd3,
0x4f, 0x7e, 0x0a, 0xc0, 0x8a, 0x9c, 0x15, 0x06, 0x02, 0x06, 0x07, 0xee, 0xb4, 0x62, 0xe0, 0xf1,
0xb8, 0xb9, 0x79, 0xb3, 0x81, 0x5d, 0x55, 0x0f, 0xf3, 0x1f, 0xa7, 0xab, 0x20, 0x38, 0xc6, 0x0f,
0x7e, 0x50, 0x05, 0xc0, 0xb3, 0xcf, 0x3e, 0x4b, 0x77, 0x77, 0x37, 0x3b, 0x76, 0xec, 0x30, 0x2c,
0x8b, 0xaa, 0xaa, 0x3c, 0xb8, 0x70, 0x2e, 0xcd, 0x2d, 0xe7, 0x19, 0x1b, 0x76, 0xd3, 0xd6, 0xd6,
0x41, 0x71, 0xf1, 0x72, 0x02, 0x01, 0x1d, 0x9f, 0x4f, 0xc3, 0x9e, 0x36, 0x0f, 0x97, 0x6b, 0x74,
0xc6, 0xe7, 0x47, 0xc4, 0x42, 0xb3, 0xa3, 0xbc, 0xa0, 0xa3, 0xa3, 0x81, 0xd5, 0xab, 0xd7, 0x60,
0xb1, 0x98, 0xf9, 0xf6, 0xb7, 0xdd, 0xc4, 0xc5, 0x99, 0xb1, 0xdb, 0x53, 0x01, 0x28, 0x2f, 0x2f,
0xe7, 0xfc, 0xf9, 0x8f, 0x11, 0x42, 0x27, 0x18, 0xd4, 0x8d, 0x75, 0x59, 0x59, 0x73, 0x70, 0x38,
0x32, 0x09, 0x04, 0x34, 0x3c, 0x9e, 0x11, 0x2e, 0x5c, 0xb8, 0xcc, 0x92, 0x25, 0x6b, 0x70, 0xb9,
0x46, 0x19, 0x1a, 0x1a, 0x35, 0x14, 0xb7, 0xbe, 0xbe, 0xde, 0x58, 0x53, 0x98, 0x52, 0xc8, 0x73,
0x4b, 0x9e, 0x43, 0xd3, 0x35, 0xee, 0x75, 0xdc, 0x1b, 0x89, 0xc0, 0x9d, 0x30, 0xa0, 0xa9, 0xe9,
0x33, 0x96, 0x2d, 0xfb, 0x67, 0x83, 0xed, 0xa9, 0xa9, 0xa9, 0x98, 0x4c, 0xca, 0xac, 0xf6, 0x88,
0x89, 0xb1, 0x90, 0x97, 0x97, 0x41, 0x6f, 0x6f, 0x3b, 0x26, 0x53, 0x4a, 0xd8, 0xb7, 0x63, 0xc7,
0x8e, 0x61, 0xb3, 0xd9, 0x70, 0x38, 0x1c, 0xc4, 0xab, 0xf1, 0x7c, 0xef, 0xfe, 0xef, 0x45, 0x38,
0xb2, 0x59, 0xc5, 0x42, 0x53, 0x45, 0x27, 0x3b, 0xdb, 0x81, 0xc5, 0x62, 0x8d, 0xfa, 0x3d, 0x10,
0xf0, 0xd3, 0xd6, 0xd6, 0xc6, 0xe0, 0xe0, 0x20, 0x00, 0x69, 0x69, 0xe9, 0x64, 0x66, 0x66, 0x45,
0xfd, 0x37, 0x3b, 0x3b, 0x97, 0xda, 0xda, 0xb3, 0x14, 0x14, 0xac, 0x0e, 0x9b, 0x3f, 0x7c, 0xf8,
0x30, 0xe9, 0xe9, 0x49, 0xd3, 0xe6, 0xca, 0xaa, 0xaa, 0x22, 0x84, 0x10, 0x77, 0x84, 0x40, 0x57,
0xd7, 0x75, 0x96, 0x2d, 0xfb, 0x5a, 0xd4, 0x6f, 0x9d, 0x9d, 0xed, 0xb4, 0xb5, 0xb5, 0xa1, 0xaa,
0x26, 0x86, 0x86, 0x46, 0x90, 0x24, 0x09, 0x9f, 0xcf, 0xcf, 0xa7, 0x9f, 0xd6, 0x51, 0x56, 0x56,
0x8e, 0xd9, 0x1c, 0x37, 0x45, 0x8e, 0xe1, 0xbe, 0xfb, 0x96, 0x50, 0x57, 0xf7, 0x09, 0xd9, 0xd9,
0xf7, 0x19, 0x22, 0xd4, 0xd3, 0xd3, 0x43, 0x30, 0x38, 0x12, 0x35, 0x4a, 0x08, 0x51, 0xbf, 0xa1,
0xa1, 0xa1, 0xff, 0x8e, 0x94, 0xd8, 0xe1, 0x70, 0xa0, 0xeb, 0x91, 0x86, 0xab, 0xb7, 0xb7, 0x9b,
0xc1, 0xc1, 0x41, 0x46, 0x47, 0x35, 0xac, 0x56, 0xab, 0x51, 0x95, 0xd0, 0xb4, 0x20, 0x16, 0x8b,
0x87, 0x0b, 0x17, 0xfe, 0x4c, 0x59, 0x59, 0xf9, 0xd4, 0x82, 0x20, 0xb1, 0xb1, 0x56, 0x02, 0x81,
0x81, 0x30, 0x8f, 0x7e, 0xe0, 0xc0, 0xab, 0xaf, 0xc8, 0xf2, 0x48, 0xff, 0xd4, 0xca, 0x21, 0x20,
0x64, 0x59, 0xd6, 0x15, 0x45, 0xf1, 0x0d, 0x0e, 0x0e, 0xbe, 0x35, 0x6b, 0x04, 0x7c, 0xbe, 0x31,
0x12, 0x13, 0x93, 0x22, 0xe6, 0x15, 0x45, 0xa2, 0xa3, 0xa3, 0x1d, 0xbf, 0x5f, 0x22, 0x3b, 0x7b,
0x1e, 0x03, 0x03, 0x7d, 0xfc, 0xfe, 0xf7, 0x27, 0x70, 0x38, 0x1c, 0xac, 0x5c, 0xb9, 0x0e, 0x9b,
0xad, 0x80, 0xae, 0xae, 0x26, 0xde, 0x7b, 0xef, 0x14, 0x6b, 0xd7, 0xae, 0x27, 0x10, 0xd0, 0xc2,
0x3c, 0xaa, 0xdd, 0x6e, 0x0b, 0xdb, 0xef, 0xf2, 0xe5, 0xab, 0x57, 0x9a, 0x9b, 0x2f, 0xb6, 0x47,
0x93, 0x50, 0xc0, 0x07, 0x0c, 0x44, 0x24, 0xf5, 0x33, 0x69, 0x2e, 0x57, 0x1f, 0x76, 0x7b, 0x5e,
0x64, 0x52, 0xdf, 0xdf, 0x4b, 0x7c, 0x7c, 0x3c, 0x99, 0x59, 0x59, 0x0c, 0x38, 0xfb, 0x78, 0xf4,
0xd1, 0x72, 0x02, 0x81, 0x71, 0x6f, 0xba, 0x60, 0xc1, 0x21, 0x4e, 0xbf, 0x77, 0x0e, 0xc1, 0x1c,
0x5c, 0xae, 0x7e, 0x14, 0x45, 0x9a, 0x22, 0x1a, 0x90, 0x94, 0x64, 0xc3, 0xe7, 0xf3, 0x13, 0x32,
0x2a, 0x56, 0x6b, 0x4a, 0x17, 0x10, 0x0d, 0x01, 0x6d, 0xe2, 0xf1, 0x00, 0x6e, 0xf9, 0x56, 0x10,
0x36, 0x53, 0x04, 0x7a, 0xb1, 0x58, 0x62, 0xa3, 0xcc, 0x0f, 0x10, 0x08, 0x6a, 0xd8, 0x52, 0x12,
0x79, 0xe7, 0xdd, 0xff, 0x32, 0x80, 0x07, 0xb8, 0x7e, 0xfd, 0x3a, 0x7f, 0xfb, 0xdb, 0x25, 0xb2,
0x73, 0xb2, 0x48, 0x48, 0x48, 0xa0, 0xb9, 0xb9, 0x29, 0x62, 0x7d, 0x52, 0x92, 0x0d, 0x97, 0xab,
0xc7, 0xd0, 0x81, 0xc2, 0xc2, 0xf2, 0x66, 0xe0, 0x5a, 0x94, 0xe7, 0xba, 0x10, 0xa2, 0x51, 0x08,
0x71, 0x53, 0x08, 0x31, 0x3a, 0x6b, 0x11, 0x92, 0x24, 0x99, 0x68, 0x51, 0x74, 0x28, 0x2d, 0xd4,
0x75, 0x1d, 0x6b, 0x7c, 0xa4, 0x75, 0x8a, 0xb7, 0x5a, 0x8d, 0xc0, 0x30, 0x74, 0x91, 0x32, 0xd5,
0xa3, 0x2b, 0x8a, 0x32, 0x49, 0x24, 0x55, 0x21, 0x66, 0x70, 0x81, 0x27, 0xcf, 0x56, 0x84, 0x92,
0x93, 0xd3, 0x18, 0x1b, 0x8b, 0xf4, 0x96, 0xa9, 0xa9, 0x76, 0x4c, 0x31, 0x31, 0x8c, 0x8c, 0xb8,
0xf9, 0xe6, 0x63, 0x9b, 0x48, 0x49, 0xb9, 0x65, 0xd7, 0x1f, 0x7a, 0xa8, 0x8c, 0xe2, 0xe2, 0x12,
0x7a, 0x7b, 0xbb, 0x71, 0xbb, 0xdd, 0xe4, 0xe7, 0xcf, 0x8f, 0x4c, 0x59, 0x87, 0x06, 0x49, 0x4a,
0x4a, 0x9f, 0x75, 0x61, 0x6d, 0xd6, 0x8e, 0xcc, 0x66, 0x73, 0xe0, 0x76, 0x0f, 0x61, 0xb1, 0x24,
0x4c, 0x41, 0xcc, 0x4e, 0x43, 0xc3, 0x15, 0xdc, 0x23, 0xa3, 0xe4, 0xcc, 0xc9, 0xe7, 0xec, 0xf9,
0x8b, 0xd4, 0x7c, 0xf8, 0x1e, 0x76, 0xbb, 0x83, 0x65, 0xcb, 0xcb, 0xf0, 0x7a, 0xbd, 0xf4, 0x76,
0x77, 0xe0, 0x74, 0x3a, 0xd1, 0xb4, 0xc8, 0x8c, 0x6c, 0x70, 0x70, 0x90, 0xa4, 0xa4, 0x7b, 0x66,
0x5c, 0xa9, 0x08, 0xe3, 0xc0, 0x6c, 0x44, 0x28, 0x26, 0xc6, 0xc4, 0xe8, 0xe8, 0x50, 0x94, 0x0b,
0x0c, 0x9d, 0xd2, 0xd2, 0x45, 0x20, 0x34, 0x6e, 0xb4, 0x7e, 0x81, 0xa6, 0x05, 0x58, 0xfd, 0xc8,
0x5a, 0x16, 0x3f, 0xb0, 0x14, 0x97, 0x6b, 0x80, 0x96, 0xa6, 0x6b, 0xb4, 0xb6, 0xb6, 0x50, 0x59,
0xb9, 0x35, 0x22, 0xeb, 0x8a, 0x89, 0x51, 0xe8, 0xef, 0x1f, 0xfe, 0x9f, 0x5d, 0xb3, 0xce, 0xa6,
0xf5, 0xf4, 0xf4, 0x93, 0x9f, 0x1f, 0x29, 0x9e, 0x29, 0x29, 0xe3, 0x71, 0xd0, 0x9f, 0xfe, 0x54,
0x8b, 0x84, 0x3e, 0xa1, 0x2f, 0x3a, 0x63, 0x63, 0x63, 0x34, 0x37, 0x37, 0xf3, 0xd8, 0x63, 0x1b,
0x89, 0x8d, 0x8d, 0x27, 0x10, 0x08, 0xbf, 0xec, 0x70, 0xbb, 0x5d, 0x58, 0xad, 0x19, 0x5f, 0x9a,
0x27, 0xff, 0xaf, 0xe8, 0xc0, 0x78, 0x02, 0xf4, 0x15, 0x9a, 0x9a, 0xfe, 0x1e, 0x71, 0x88, 0x10,
0xe3, 0x61, 0x43, 0x65, 0xe5, 0x66, 0x0a, 0x0b, 0x0b, 0xf1, 0x7a, 0x3d, 0xf8, 0x7c, 0x3e, 0x4a,
0x4b, 0x17, 0x51, 0x5d, 0xfd, 0x34, 0xc9, 0xc9, 0xb6, 0x48, 0x00, 0x64, 0xa8, 0xab, 0xfb, 0x0b,
0x05, 0x05, 0x0f, 0xcc, 0xa8, 0xa2, 0x7d, 0xdb, 0x1b, 0x9a, 0x99, 0x36, 0x93, 0xc9, 0x42, 0x5f,
0x9f, 0xce, 0xf0, 0xb0, 0x13, 0x87, 0x23, 0x23, 0x7a, 0x15, 0x22, 0x2b, 0x8b, 0xec, 0xec, 0x1c,
0x23, 0x1a, 0x0d, 0x06, 0xb5, 0x69, 0x82, 0xc2, 0x7f, 0x50, 0x52, 0xb2, 0x6a, 0x8a, 0x29, 0x9f,
0x39, 0x3c, 0x77, 0xc4, 0x01, 0x80, 0x39, 0x73, 0x0a, 0xb8, 0x74, 0xe9, 0x12, 0xc1, 0x60, 0xe0,
0x8e, 0xef, 0xb7, 0x3c, 0x1e, 0x37, 0xc3, 0xc3, 0x1a, 0xc9, 0xc9, 0xf6, 0x19, 0x5d, 0x9a, 0xdf,
0x06, 0x81, 0x3b, 0x4b, 0x68, 0xee, 0xb9, 0xe7, 0x7e, 0xfe, 0xf0, 0x87, 0xd3, 0xf4, 0xf5, 0xf5,
0xcc, 0x7a, 0xed, 0x8d, 0x1b, 0x8d, 0xd4, 0xd5, 0x7d, 0xc6, 0x92, 0x25, 0xab, 0xa2, 0x00, 0x3f,
0x7b, 0x1d, 0xb8, 0xa3, 0x94, 0xd2, 0x6c, 0xb6, 0x50, 0x5a, 0xba, 0x82, 0xbf, 0xfe, 0xf5, 0x73,
0x2e, 0x5d, 0xfa, 0xf3, 0x8c, 0xae, 0x52, 0xbd, 0x5e, 0x2f, 0x35, 0x35, 0x1f, 0xa2, 0xeb, 0xc9,
0x94, 0x97, 0xaf, 0x9f, 0xa6, 0xa8, 0x35, 0x73, 0x98, 0x54, 0x80, 0x96, 0x96, 0xde, 0xda, 0x91,
0x11, 0xcf, 0x37, 0x13, 0xa3, 0x5c, 0x23, 0xcd, 0x8c, 0x13, 0x5f, 0xc1, 0xeb, 0x1d, 0xe5, 0xf8,
0xf1, 0xdf, 0x91, 0x9e, 0x6e, 0x27, 0x27, 0x27, 0x8b, 0xcc, 0xcc, 0x4c, 0x1c, 0x8e, 0x34, 0x02,
0x01, 0x3f, 0x3d, 0x3d, 0xbd, 0x74, 0x76, 0x76, 0xd2, 0xd5, 0xd5, 0x8d, 0xdb, 0xed, 0x63, 0xd9,
0xb2, 0xb5, 0x98, 0xcd, 0x96, 0x69, 0x32, 0x3d, 0x70, 0xbb, 0x47, 0x9c, 0x92, 0x24, 0x35, 0xcf,
0x28, 0x32, 0x10, 0x42, 0x50, 0x51, 0xf1, 0xfc, 0x03, 0x99, 0x99, 0xc9, 0xff, 0xb9, 0x60, 0x41,
0x56, 0xa1, 0x10, 0xe3, 0xf5, 0x1e, 0xbf, 0x5f, 0xc3, 0xe7, 0x0b, 0x10, 0x0c, 0xea, 0x84, 0x8a,
0x5d, 0xe3, 0xd5, 0x88, 0x90, 0x85, 0x90, 0x8d, 0x8b, 0xf1, 0xd0, 0x9c, 0x2c, 0x2b, 0x13, 0x3e,
0xc1, 0x47, 0x30, 0x38, 0x8c, 0xaa, 0x8e, 0xa1, 0x69, 0x12, 0x8a, 0x92, 0x88, 0xc5, 0x62, 0x43,
0x55, 0xcd, 0x46, 0x5d, 0xe8, 0xd6, 0x75, 0xe9, 0x78, 0x8d, 0x33, 0x10, 0x18, 0xaf, 0x0b, 0xf5,
0xf5, 0x0d, 0xf4, 0x8d, 0x8c, 0x8c, 0xee, 0x39, 0x7c, 0x78, 0xd7, 0x91, 0x99, 0x20, 0xf0, 0xdf,
0xd1, 0x1d, 0xfc, 0xa3, 0x61, 0x31, 0x70, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
0xae, 0x42, 0x60, 0x82,
0x87, 0x00, 0x00, 0x05, 0x02, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xdd, 0x59, 0x5b, 0x6c, 0x14,
0x55, 0x18, 0x5e, 0xdd, 0x52, 0x15, 0xcb, 0x92, 0x72, 0x79, 0xe0, 0x09, 0xd2, 0x68, 0x2f, 0x5a,
0x7b, 0xd1, 0x07, 0x22, 0x18, 0x25, 0xb1, 0x69, 0x79, 0x81, 0x07, 0x4a, 0x94, 0x9a, 0x6a, 0xe8,
0x83, 0x49, 0x81, 0xc4, 0xc4, 0x07, 0x78, 0xb2, 0x17, 0x62, 0x4d, 0x78, 0xe0, 0x85, 0x47, 0x08,
0xf0, 0x80, 0xbd, 0x28, 0xb1, 0xb6, 0x15, 0xbc, 0xd4, 0x00, 0x2b, 0x6d, 0x43, 0xbb, 0x97, 0xd9,
0xad, 0xc4, 0xc6, 0xb4, 0x6b, 0x43, 0x8a, 0x10, 0xaa, 0xc1, 0x42, 0xd5, 0xa5, 0xed, 0x76, 0xb6,
0xbf, 0xff, 0x7f, 0x3a, 0x67, 0x33, 0x3b, 0x3d, 0xbb, 0x7b, 0x66, 0x76, 0x26, 0x05, 0x37, 0xf9,
0x32, 0xf3, 0xcd, 0xce, 0x9c, 0x39, 0xdf, 0x9c, 0xef, 0x3f, 0xff, 0x3f, 0x67, 0x5c, 0x00, 0xe0,
0x4a, 0x05, 0xfc, 0x3d, 0x8f, 0x28, 0x4b, 0x77, 0x8e, 0x15, 0xe0, 0xef, 0x29, 0xc4, 0x6b, 0xd4,
0x7e, 0xd6, 0x6d, 0x09, 0x1a, 0xcf, 0x41, 0x94, 0x22, 0xde, 0x47, 0x7c, 0x8a, 0x78, 0xcb, 0x6e,
0x01, 0xda, 0x7d, 0xde, 0xd6, 0xda, 0xa7, 0xfb, 0xbc, 0x8c, 0x70, 0x67, 0x25, 0x40, 0x6b, 0xe4,
0x00, 0xa2, 0x19, 0xf1, 0x99, 0x0e, 0x2f, 0x21, 0x36, 0x3b, 0x80, 0x57, 0x0c, 0xf7, 0x69, 0x42,
0xbc, 0x8b, 0x28, 0x36, 0xf9, 0x20, 0x5c, 0x79, 0x88, 0x06, 0x43, 0x63, 0xab, 0x8d, 0x7a, 0xc4,
0x73, 0xd2, 0x23, 0xa0, 0x79, 0x92, 0x6c, 0xf3, 0x1e, 0xa2, 0x65, 0x95, 0x46, 0xe0, 0x13, 0xc4,
0x3b, 0x88, 0xa2, 0x6c, 0x63, 0x60, 0x0d, 0x05, 0x2e, 0xe2, 0xa0, 0xe6, 0xd1, 0x37, 0x1d, 0x8a,
0x81, 0x2a, 0xc4, 0x71, 0xed, 0xa1, 0x95, 0x64, 0x1d, 0x03, 0x29, 0x6e, 0xe2, 0x41, 0xbc, 0xea,
0xd0, 0x2c, 0x54, 0x2e, 0x6b, 0x13, 0xcb, 0x02, 0x9e, 0x04, 0xfc, 0x2f, 0x04, 0xe4, 0x20, 0x0e,
0x20, 0xbc, 0x88, 0x87, 0xab, 0x8c, 0x07, 0x88, 0x1f, 0x11, 0xfb, 0x11, 0x6e, 0x81, 0xf5, 0x9e,
0x15, 0x09, 0x68, 0x08, 0x06, 0x83, 0xf0, 0xb8, 0x21, 0x16, 0x8b, 0x7d, 0x20, 0x10, 0x50, 0x27,
0x12, 0x10, 0xa6, 0x0b, 0xf4, 0x3f, 0x11, 0x1f, 0x9f, 0x1d, 0x87, 0xae, 0x5b, 0x5d, 0x70, 0x54,
0x39, 0xca, 0xf8, 0x86, 0x2f, 0x37, 0x80, 0xeb, 0x73, 0x17, 0x03, 0x71, 0xbe, 0x2f, 0xc3, 0x47,
0x02, 0x23, 0x70, 0x7a, 0xe2, 0x34, 0x3c, 0x52, 0x1f, 0xb1, 0xf6, 0x15, 0x45, 0x81, 0x78, 0x3c,
0x9e, 0xb8, 0x1f, 0x71, 0x55, 0x55, 0x07, 0x0d, 0x9d, 0x7f, 0x41, 0x9b, 0x6e, 0x0b, 0x8d, 0x02,
0x20, 0x9d, 0x80, 0xa9, 0x7f, 0xa7, 0x4c, 0x77, 0x30, 0x13, 0xbf, 0x11, 0xb8, 0xc1, 0xb6, 0x9b,
0x2e, 0x6e, 0x82, 0xa6, 0xd1, 0x26, 0xa1, 0x80, 0xa5, 0xa5, 0xa5, 0x87, 0x06, 0x01, 0xb5, 0x9a,
0x80, 0xfd, 0xa6, 0x04, 0xf4, 0xdc, 0xee, 0x71, 0x4c, 0x00, 0xc7, 0x70, 0x60, 0x18, 0xae, 0xdd,
0xbb, 0x96, 0x52, 0x00, 0xe5, 0x08, 0x2d, 0xd1, 0xf1, 0x84, 0xe7, 0x5e, 0x21, 0xe0, 0x71, 0x03,
0x8e, 0x88, 0x5e, 0x40, 0xb1, 0x21, 0x6b, 0x17, 0xaf, 0x10, 0x40, 0x43, 0xc8, 0xa1, 0xe7, 0xb5,
0x3f, 0xd5, 0x32, 0x9e, 0xdb, 0x9e, 0x9b, 0x40, 0xb6, 0x9c, 0x9e, 0xb8, 0x91, 0xe7, 0x75, 0xe4,
0x41, 0xc5, 0xe5, 0x0a, 0x88, 0xa9, 0x31, 0xd1, 0x08, 0xd4, 0x19, 0x04, 0xd4, 0x49, 0x5b, 0x68,
0xeb, 0xd7, 0x5b, 0x1d, 0xb7, 0x10, 0x71, 0x12, 0x42, 0xfb, 0xe7, 0x7f, 0x3b, 0x9f, 0x24, 0x80,
0xb2, 0xb5, 0x56, 0x72, 0xe8, 0x05, 0x1c, 0xe7, 0x59, 0x3c, 0xad, 0x80, 0x99, 0x85, 0x19, 0xe9,
0x0e, 0x6e, 0xf9, 0x6a, 0x0b, 0x54, 0x7e, 0x5b, 0x09, 0x05, 0x3d, 0x05, 0x59, 0x09, 0xa8, 0xb9,
0x5a, 0x63, 0x14, 0x40, 0x25, 0x47, 0x8d, 0xae, 0xf8, 0xab, 0x40, 0x54, 0xd3, 0xf1, 0x27, 0x22,
0x06, 0xa8, 0x6e, 0xd2, 0xb6, 0xf9, 0x9a, 0x80, 0xcd, 0x49, 0xc7, 0xd3, 0xc5, 0xc0, 0xa9, 0x5f,
0x4f, 0x25, 0x3c, 0xdc, 0x3a, 0xda, 0x0a, 0x91, 0xd9, 0xc8, 0x8a, 0x18, 0x91, 0xe5, 0x9e, 0x2e,
0x4f, 0xc6, 0x18, 0x48, 0xc4, 0x8c, 0x12, 0x14, 0x4d, 0xa3, 0x49, 0x02, 0xa4, 0x62, 0xa0, 0xf7,
0x76, 0x2f, 0x0c, 0xfd, 0x39, 0x04, 0x32, 0x89, 0x2e, 0x13, 0x6f, 0xf9, 0xb9, 0x45, 0xca, 0x42,
0xcc, 0x72, 0x76, 0x09, 0xb0, 0x93, 0x0f, 0xfc, 0x31, 0xe0, 0xac, 0x00, 0x0a, 0x1c, 0x0e, 0x27,
0x38, 0x75, 0x8a, 0x3a, 0x4a, 0x20, 0xce, 0xf7, 0x53, 0x71, 0x7d, 0x1e, 0x90, 0x12, 0x60, 0xd6,
0xd3, 0x46, 0x1e, 0x8d, 0x45, 0x61, 0x62, 0x76, 0x02, 0x06, 0xa6, 0x07, 0x18, 0xf7, 0xde, 0xf3,
0x26, 0x40, 0xbc, 0xed, 0x66, 0x9b, 0x74, 0x0c, 0xa4, 0x28, 0x25, 0xb2, 0xb7, 0xd0, 0xfd, 0xf9,
0xfb, 0xd0, 0x79, 0xab, 0x93, 0xf1, 0xc3, 0xbe, 0xc3, 0xb0, 0xc7, 0xbb, 0x87, 0x25, 0x1f, 0x3b,
0xf3, 0x40, 0x6e, 0x87, 0xcd, 0x02, 0xe6, 0xd4, 0x39, 0xc6, 0xab, 0xaf, 0x54, 0x43, 0x4e, 0x7b,
0x8e, 0xe3, 0x89, 0xac, 0xa8, 0xaf, 0xc8, 0x9a, 0x00, 0x91, 0x87, 0x03, 0x4a, 0x80, 0x0d, 0xaf,
0x8c, 0x67, 0xed, 0xe2, 0xbe, 0xa0, 0xcf, 0x9e, 0x18, 0xd8, 0x7d, 0x75, 0xb7, 0x6d, 0xb5, 0x8f,
0x6c, 0x2d, 0x44, 0xfb, 0x94, 0x6f, 0xb2, 0xb2, 0xd0, 0xf4, 0xdc, 0xb4, 0xed, 0xb5, 0x8f, 0x19,
0x0b, 0x75, 0x4f, 0x75, 0x5b, 0x17, 0x40, 0x7e, 0x2f, 0xf9, 0xa6, 0x64, 0x55, 0x05, 0x4c, 0xfe,
0x33, 0x69, 0x3d, 0x06, 0xfc, 0x41, 0xbf, 0x69, 0xcf, 0xf2, 0x18, 0x21, 0xef, 0xd2, 0xf5, 0x81,
0x60, 0x80, 0x71, 0xda, 0x72, 0xc8, 0xb6, 0x47, 0x6d, 0xf1, 0x18, 0x34, 0x1d, 0x03, 0x63, 0x0f,
0xc6, 0x60, 0x6d, 0xc7, 0x5a, 0x69, 0x4f, 0xef, 0xf3, 0xee, 0x63, 0x6f, 0x51, 0x6a, 0x5c, 0x95,
0xca, 0x13, 0x32, 0x31, 0xb0, 0xab, 0x7f, 0x17, 0x3b, 0xdf, 0xd2, 0x08, 0x1c, 0x0b, 0x1d, 0x33,
0x65, 0x09, 0xd9, 0x52, 0x22, 0xf2, 0x77, 0x44, 0xda, 0x42, 0x47, 0xfc, 0x47, 0xd2, 0xbd, 0x13,
0xa7, 0x17, 0x40, 0x75, 0xbc, 0x8c, 0x80, 0xd2, 0x4b, 0xa5, 0xa6, 0x04, 0x9c, 0xf8, 0xe5, 0x84,
0xb4, 0x80, 0x33, 0x91, 0x33, 0xd6, 0x05, 0x98, 0x9d, 0xa7, 0x65, 0x6b, 0x21, 0x5a, 0x42, 0x91,
0x6d, 0x9f, 0xea, 0x25, 0xcb, 0x31, 0x20, 0x3b, 0x8f, 0x9f, 0x8b, 0x9c, 0x93, 0xae, 0x95, 0xfa,
0xa6, 0xfa, 0xa4, 0xf3, 0xc0, 0xfa, 0xce, 0xf5, 0xac, 0x9e, 0xb2, 0x1c, 0x03, 0xb2, 0xd3, 0x60,
0xf3, 0x68, 0xb3, 0x94, 0x85, 0xee, 0x44, 0xef, 0xc0, 0xc6, 0x8b, 0x1b, 0xa5, 0xa7, 0xd1, 0xb2,
0x4b, 0x65, 0x99, 0xd6, 0x85, 0xec, 0x11, 0x50, 0x7e, 0xb9, 0x5c, 0x4a, 0xc0, 0xce, 0x1f, 0x76,
0x9a, 0xca, 0x03, 0xf5, 0x83, 0xf5, 0xd9, 0x09, 0x30, 0x5b, 0xbb, 0xa4, 0xf2, 0xbc, 0x99, 0x79,
0x5f, 0xcf, 0x29, 0x87, 0xe8, 0xdb, 0x73, 0x2c, 0x06, 0x38, 0xdf, 0xd6, 0xbd, 0x0d, 0x1a, 0x87,
0x1b, 0xe1, 0xe4, 0xd8, 0x49, 0xc6, 0x69, 0xfd, 0xa8, 0xb0, 0xb7, 0xd0, 0x72, 0x2d, 0xd4, 0xff,
0x7b, 0x7f, 0x22, 0x86, 0x0c, 0xab, 0x12, 0xf4, 0xf1, 0xf1, 0x0d, 0x44, 0x01, 0x5f, 0x1b, 0x45,
0xbc, 0x8e, 0xa8, 0x4c, 0x12, 0xe0, 0xf9, 0xc2, 0xe3, 0x58, 0xe9, 0x20, 0x63, 0xa1, 0xbb, 0xd1,
0xbb, 0x42, 0x0b, 0xd1, 0x92, 0xba, 0x60, 0x5d, 0xa8, 0x8d, 0xbe, 0x1e, 0x25, 0x09, 0xd8, 0xeb,
0xdd, 0x6b, 0x6b, 0x87, 0x29, 0x56, 0xaa, 0xae, 0x54, 0x49, 0xaf, 0x8d, 0xa6, 0x5b, 0xdc, 0x15,
0xac, 0xcc, 0x35, 0x08, 0x6b, 0x21, 0x6a, 0xc8, 0xae, 0xfa, 0x9e, 0xe7, 0x00, 0xab, 0x31, 0x95,
0x61, 0x6d, 0xb4, 0x62, 0x85, 0x00, 0x55, 0x55, 0xe1, 0xec, 0xf8, 0x59, 0x58, 0xd7, 0xb9, 0x8e,
0x71, 0xda, 0x72, 0x98, 0xe1, 0x3b, 0xbe, 0xdb, 0xb1, 0xfc, 0x8e, 0xbc, 0x10, 0x85, 0xfc, 0xae,
0x7c, 0xe1, 0xf9, 0xf4, 0xa0, 0xf4, 0x9c, 0x02, 0x38, 0x16, 0x8b, 0xb1, 0x3e, 0x10, 0x04, 0x23,
0xf0, 0xb4, 0x6e, 0x75, 0xba, 0x15, 0x91, 0x9b, 0xf2, 0x7d, 0xe0, 0x90, 0xef, 0x90, 0x25, 0xcb,
0xd0, 0xeb, 0x26, 0xad, 0xf5, 0x2f, 0xc4, 0x17, 0x18, 0x0f, 0xcf, 0x84, 0xa5, 0x63, 0x80, 0x66,
0x2e, 0x13, 0xdf, 0x07, 0xea, 0x8d, 0xb3, 0xd0, 0x98, 0x68, 0x1e, 0xdf, 0xfe, 0xfd, 0x76, 0x29,
0x01, 0xee, 0x76, 0xf7, 0xb2, 0x05, 0xfe, 0x52, 0x92, 0xae, 0xbf, 0x30, 0x79, 0x41, 0x5a, 0x00,
0x95, 0x10, 0x82, 0x2f, 0x34, 0x3e, 0x83, 0x80, 0x17, 0x35, 0x01, 0xe5, 0x46, 0x01, 0x8d, 0xec,
0x89, 0x85, 0xc3, 0x09, 0x70, 0xee, 0x57, 0xfc, 0x30, 0x1c, 0x5c, 0xae, 0xf7, 0x07, 0x03, 0x83,
0x70, 0xdd, 0x7f, 0x9d, 0x81, 0x9e, 0xd8, 0x50, 0x60, 0x08, 0x46, 0x94, 0x11, 0x08, 0x85, 0x42,
0x20, 0xba, 0x3e, 0x14, 0x0e, 0xb1, 0xff, 0xf8, 0xff, 0x7c, 0x3f, 0x15, 0x37, 0x5e, 0x8f, 0x96,
0xfa, 0x50, 0xf0, 0x8d, 0xec, 0x20, 0x5f, 0x13, 0xd5, 0x0b, 0x78, 0x66, 0x7e, 0x7e, 0xfe, 0xe3,
0xc5, 0xc5, 0xc5, 0x9b, 0xdc, 0x83, 0xab, 0x09, 0xec, 0x87, 0x82, 0xfd, 0xf9, 0x08, 0xfb, 0xb5,
0x46, 0x20, 0x20, 0xcf, 0x78, 0xec, 0x3f, 0x1b, 0x75, 0xce, 0x5d, 0xf3, 0xcf, 0xc0, 0x5f, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE icon_bitmap2component_xpm[1] = {{ png, sizeof( png ), "icon_bitmap2component_xpm" }};
......
......@@ -13,8 +13,8 @@
inkscape:export-ydpi="90.000000"
inkscape:export-xdpi="90.000000"
inkscape:export-filename="/home/steven/edit-find-48.png"
sodipodi:docname="find.svg.BASE"
inkscape:version="0.48.2 r9819"
sodipodi:docname="find.svg"
inkscape:version="0.48.3.1 r9886"
sodipodi:version="0.32"
id="svg249"
height="26"
......@@ -59,18 +59,6 @@
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:0.24761905;" />
</linearGradient>
<linearGradient
id="linearGradient4477"
inkscape:collect="always">
<stop
id="stop4479"
offset="0"
style="stop-color:#000000;stop-opacity:1;" />
<stop
id="stop4481"
offset="1"
style="stop-color:#000000;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2366">
<stop
......@@ -97,66 +85,6 @@
offset="1.0000000"
id="stop2850" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4477"
id="radialGradient1527"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.237968,0,28.93278)"
cx="24.130018"
cy="37.967922"
fx="24.130018"
fy="37.967922"
r="16.528622" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2846"
id="linearGradient1529"
gradientUnits="userSpaceOnUse"
x1="27.366341"
y1="26.580296"
x2="31.335964"
y2="30.557772" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4440"
id="linearGradient1531"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.334593,0,0,1.291292,-6.973842,-7.460658)"
x1="30.65625"
y1="34"
x2="33.21875"
y2="31.0625" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2366"
id="linearGradient1533"
gradientUnits="userSpaceOnUse"
x1="18.292673"
y1="13.602121"
x2="17.500893"
y2="25.743469" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4454"
id="radialGradient1537"
gradientUnits="userSpaceOnUse"
cx="18.240929"
cy="21.817987"
fx="18.240929"
fy="21.817987"
r="8.3085051" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4467"
id="radialGradient1539"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.592963,0,0,2.252104,-25.05975,-18.941)"
cx="15.414371"
cy="13.078408"
fx="15.414371"
fy="13.078408"
r="6.65625" />
<radialGradient
id="aigrd2-8"
cx="20.892099"
......@@ -338,18 +266,279 @@
fx="8.824419"
fy="3.7561285"
r="37.751713" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2846-1-5"
id="linearGradient2730-7"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,48.18409,0)"
x1="27.366341"
y1="26.580296"
x2="31.335964"
y2="30.557772" />
<linearGradient
id="linearGradient2846-1-5">
<stop
style="stop-color:#8a8a8a;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop2848-0-9" />
<stop
style="stop-color:#484848;stop-opacity:1.0000000;"
offset="1.0000000"
id="stop2850-4-6" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4440-1-1"
id="linearGradient2732-2"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.334593,0,0,1.291292,55.15793,-7.460658)"
x1="30.65625"
y1="34"
x2="33.21875"
y2="31.0625" />
<linearGradient
id="linearGradient4440-1-1">
<stop
id="stop4442-1-7"
offset="0"
style="stop-color:#7d7d7d;stop-opacity:1;" />
<stop
style="stop-color:#b1b1b1;stop-opacity:1.0000000;"
offset="0.50000000"
id="stop4448-8-8" />
<stop
id="stop4444-6-5"
offset="1.0000000"
style="stop-color:#686868;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2366-4-4"
id="linearGradient2734-7"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,44.17827,0)"
x1="18.292673"
y1="13.602121"
x2="17.500893"
y2="25.743469" />
<linearGradient
id="linearGradient2366-4-4">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop2368-3-1" />
<stop
id="stop2374-4-8"
offset="0.50000000"
style="stop-color:#ffffff;stop-opacity:0.21904762;" />
<stop
style="stop-color:#ffffff;stop-opacity:1.0000000;"
offset="1.0000000"
id="stop2370-7-5" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4454-7-7"
id="radialGradient2736-9"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,43.352,0)"
cx="18.240929"
cy="21.817987"
fx="18.240929"
fy="21.817987"
r="8.3085051" />
<linearGradient
id="linearGradient4454-7-7">
<stop
id="stop4456-0-5"
offset="0.0000000"
style="stop-color:#729fcf;stop-opacity:0.20784314;" />
<stop
id="stop4458-7-3"
offset="1.0000000"
style="stop-color:#729fcf;stop-opacity:0.67619050;" />
</linearGradient>
<radialGradient
r="6.65625"
fy="13.078408"
fx="15.414371"
cy="13.078408"
cx="15.414371"
gradientTransform="matrix(2.592963,0,0,2.252104,-25.05976,-18.941)"
gradientUnits="userSpaceOnUse"
id="radialGradient3411"
xlink:href="#linearGradient4467-4-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient4467-4-8">
<stop
id="stop4469-5-3"
offset="0"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
id="stop4471-3-1"
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:0.24761905;" />
</linearGradient>
<radialGradient
r="6.65625"
fy="13.078408"
fx="15.414371"
cy="13.078408"
cx="15.414371"
gradientTransform="matrix(2.592963,0,0,2.252104,-25.05976,-18.941)"
gradientUnits="userSpaceOnUse"
id="radialGradient3143"
xlink:href="#linearGradient4467-4-8"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2846-1-5"
id="linearGradient3953"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,48.18409,0)"
x1="27.366341"
y1="26.580296"
x2="31.335964"
y2="30.557772" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4440-1-1"
id="linearGradient3955"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.334593,0,0,1.291292,55.15793,-7.460658)"
x1="30.65625"
y1="34"
x2="33.21875"
y2="31.0625" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2366-4-4"
id="linearGradient3957"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,44.17827,0)"
x1="18.292673"
y1="13.602121"
x2="17.500893"
y2="25.743469" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4454-7-7"
id="radialGradient3959"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,43.352,0)"
cx="18.240929"
cy="21.817987"
fx="18.240929"
fy="21.817987"
r="8.3085051" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4467-4-8"
id="radialGradient3961"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.592963,0,0,2.252104,-25.05976,-18.941)"
cx="15.414371"
cy="13.078408"
fx="15.414371"
fy="13.078408"
r="6.65625" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4467-4-8"
id="radialGradient3964"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.1830991,0,0,1.0154904,7.797398,16.499809)"
cx="15.414371"
cy="13.078408"
fx="15.414371"
fy="13.078408"
r="6.65625" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4440-1-1"
id="linearGradient3970"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.60893882,0,0,0.58225314,4.761172,21.67638)"
x1="30.65625"
y1="34"
x2="33.21875"
y2="31.0625" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2846-1-5"
id="linearGradient3974"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.45627305,0,0,0.45090742,1.5791967,25.040446)"
x1="27.366341"
y1="26.580296"
x2="31.335964"
y2="30.557772" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2846-1-5"
id="linearGradient3985"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.45627305,0,0,0.45090742,1.5791967,25.040446)"
x1="27.366341"
y1="26.580296"
x2="31.335964"
y2="30.557772" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4440-1-1"
id="linearGradient3987"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.60893882,0,0,0.58225314,4.761172,21.67638)"
x1="30.65625"
y1="34"
x2="33.21875"
y2="31.0625" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2366-4-4"
id="linearGradient3989"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,44.17827,0)"
x1="18.292673"
y1="13.602121"
x2="17.500893"
y2="25.743469" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4454-7-7"
id="radialGradient3991"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,43.352,0)"
cx="18.240929"
cy="21.817987"
fx="18.240929"
fy="21.817987"
r="8.3085051" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4467-4-8"
id="radialGradient3993"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.1830991,0,0,1.0154904,7.797398,16.499809)"
cx="15.414371"
cy="13.078408"
fx="15.414371"
fy="13.078408"
r="6.65625" />
</defs>
<sodipodi:namedview
inkscape:window-y="26"
inkscape:window-y="29"
inkscape:window-x="0"
inkscape:window-height="969"
inkscape:window-width="1280"
inkscape:window-height="849"
inkscape:window-width="1600"
inkscape:document-units="px"
inkscape:grid-bbox="true"
showgrid="true"
inkscape:current-layer="layer5"
inkscape:cy="13.694933"
inkscape:cx="19.492108"
inkscape:cy="12.288442"
inkscape:cx="8.4435897"
inkscape:zoom="22.627416"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
......@@ -364,7 +553,7 @@
<inkscape:grid
type="xygrid"
id="grid2919"
empspacing="5"
empspacing="1"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
......@@ -611,66 +800,74 @@
id="rect15686-03"
style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
<g
id="g1772"
transform="matrix(0.39105747,0,0,0.37162201,7.9100602,31.393184)">
<path
sodipodi:type="arc"
style="opacity:0.17112301;color:#000000;fill:url(#radialGradient1527);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
id="path4475"
sodipodi:cx="24.130018"
sodipodi:cy="37.967922"
sodipodi:rx="16.528622"
sodipodi:ry="3.9332814"
d="m 40.65864,37.967922 c 0,2.172292 -7.400116,3.933282 -16.528622,3.933282 -9.128505,0 -16.5286214,-1.76099 -16.5286214,-3.933282 0,-2.172291 7.4001164,-3.933281 16.5286214,-3.933281 9.128506,0 16.528622,1.76099 16.528622,3.933281 z"
transform="matrix(1.446431,0,0,1.51999,-10.97453,-17.75168)" />
id="g3976"
transform="translate(25.279068,-0.44194166)">
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="csscccscccscczzzz"
id="path2844"
d="m 18.627569,3.1435548 c -8.13913,0 -14.7448008,6.6056711 -14.7448008,14.7448012 0,8.13913 6.6056708,14.744802 14.7448008,14.744802 3.479555,0 6.551001,-1.384393 9.073723,-3.402647 -0.205377,1.006881 -0.07803,2.035368 0.756144,2.759925 l 10.964084,9.52741 c 1.233416,1.071329 3.087462,0.93096 4.15879,-0.302457 1.071328,-1.233418 0.930959,-3.087462 -0.302457,-4.15879 L 32.313769,27.529188 c -0.671527,-0.583279 -1.492878,-0.755969 -2.306238,-0.642722 1.9867,-2.512422 3.364839,-5.548803 3.364839,-8.99811 0,-8.1391301 -6.605671,-14.7448012 -14.744801,-14.7448012 z m -0.07562,1.2261833 c 7.639459,0 13.291775,4.7889505 13.291775,13.2917749 0,8.675113 -5.81669,13.291775 -13.291775,13.291775 -7.302949,0 -13.2917734,-5.478092 -13.2917734,-13.291775 0,-7.9841069 5.8246384,-13.291775 13.2917734,-13.2917749 z"
style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1529);stroke-width:3.00581574;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
id="path2844-9-9"
d="m -11.906647,26.457898 c -3.713666,0 -6.727656,2.978546 -6.727656,6.64854 0,3.669995 3.01399,6.648541 6.727656,6.648541 1.587627,0 2.9890449,-0.624233 4.140095,-1.534279 -0.093708,0.45401 -0.035603,0.917763 0.3450081,1.244471 l 5.0026161,4.29598 c 0.5627744,0.48307 1.4087257,0.419777 1.89754376,-0.13638 0.4888181,-0.556158 0.42477151,-1.39216 -0.13800297,-1.87523 l -5.00261609,-4.29598 c -0.3063996,-0.263005 -0.68116,-0.340872 -1.0522742,-0.289808 0.9064777,-1.13287 1.5352853,-2.501996 1.5352853,-4.057315 0,-3.669994 -3.0139896,-6.64854 -6.727655,-6.64854 z m -0.0345,0.552895 c 3.4856796,0 6.0646791,2.159374 6.0646791,5.99336 0,3.911673 -2.6539989,5.99336 -6.0646791,5.99336 -3.332138,0 -6.064678,-2.470112 -6.064678,-5.99336 0,-3.600093 2.657626,-5.99336 6.064678,-5.99336 z"
style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3985);stroke-width:1.80999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path
inkscape:connector-curvature="0"
style="color:#000000;fill:#dcdcdc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000036;marker:none;visibility:visible;display:inline;overflow:visible"
d="m 18.602905,3.0803551 c -8.16544,0 -14.7924642,6.627024 -14.7924642,14.7924639 0,8.16544 6.6270242,14.792464 14.7924642,14.792464 3.490803,0 6.572177,-1.388867 9.103055,-3.413645 -0.206041,1.010136 -0.07829,2.041947 0.758587,2.768846 l 10.999526,9.558207 c 1.237403,1.074792 3.097442,0.93397 4.172233,-0.303435 1.074791,-1.237404 0.933968,-3.097442 -0.303435,-4.172233 L 32.333346,27.544815 c -0.673698,-0.585164 -1.497704,-0.758413 -2.313693,-0.644799 1.993122,-2.520544 3.375716,-5.56674 3.375716,-9.027197 0,-8.1654399 -6.627024,-14.7924639 -14.792464,-14.7924639 z m -0.07586,3.1860692 c 6.281108,2e-7 11.378818,5.0977107 11.378818,11.3788187 0,6.281108 -5.09771,11.378818 -11.378818,11.378818 -6.281108,0 -11.3788184,-5.09771 -11.3788184,-11.378818 2e-7,-6.281108 5.0977104,-11.3788187 11.3788184,-11.3788187 z"
id="path4430" />
d="m -11.917901,26.429401 c -3.72567,0 -6.749403,2.988174 -6.749403,6.670032 0,3.681857 3.023733,6.670031 6.749403,6.670031 1.59276,0 2.9987074,-0.62625 4.1534789,-1.539237 -0.094011,0.455477 -0.035722,0.920729 0.3461228,1.248493 l 5.0187873,4.309866 c 0.5645936,0.484632 1.41327926,0.421134 1.90367743,-0.136821 0.49039817,-0.557954 0.42614443,-1.396659 -0.13844921,-1.881291 L -5.6530706,37.460607 c -0.3073902,-0.263854 -0.683362,-0.341974 -1.0556758,-0.290744 0.9094079,-1.136532 1.5402483,-2.510085 1.5402483,-4.07043 0,-3.681858 -3.0237325,-6.670032 -6.7494029,-6.670032 z m -0.03461,1.436622 c 2.8659006,0 5.1918483,2.298596 5.1918483,5.130794 0,2.832198 -2.3259477,5.130793 -5.1918483,5.130793 -2.8659,0 -5.191848,-2.298595 -5.191848,-5.130793 0,-2.832198 2.325948,-5.130794 5.191848,-5.130794 z"
id="path4430-3-6"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path
style="color:#000000;fill:url(#linearGradient1531);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
d="m 39.507004,41.57769 c -0.478672,-2.273187 1.39733,-4.811422 3.584053,-4.788375 0,0 -10.760367,-9.258111 -10.760367,-9.258111 -2.944791,-0.05671 -4.269502,2.272616 -3.776814,4.599922 l 10.953128,9.446564 z"
id="path4438"
sodipodi:nodetypes="ccccc" />
inkscape:connector-curvature="0"
style="color:#000000;fill:url(#linearGradient3987);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
d="m -2.3799238,43.788135 c -0.2184051,-1.024997 0.637564,-2.169506 1.63530681,-2.159114 0,0 -4.90966551,-4.174551 -4.90966551,-4.174551 -1.3436287,-0.02557 -1.9480587,1.02474 -1.7232584,2.074139 l 4.9976171,4.259526 z"
id="path4438-0-4"
sodipodi:nodetypes="ccccc"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path
sodipodi:type="arc"
style="color:#000000;fill:none;stroke:url(#linearGradient1533);stroke-width:1.20643401;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
id="path4450"
style="color:#000000;fill:none;stroke:url(#linearGradient3989);stroke-width:1.24788225;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
id="path4450-2-3"
sodipodi:cx="17.500893"
sodipodi:cy="18.920233"
sodipodi:rx="11.048544"
sodipodi:ry="11.048544"
d="m 28.549437,18.920233 c 0,6.101942 -4.946602,11.048544 -11.048544,11.048544 -6.101943,0 -11.0485443,-4.946602 -11.0485443,-11.048544 0,-6.101943 4.9466013,-11.0485442 11.0485443,-11.0485442 6.101942,0 11.048544,4.9466012 11.048544,11.0485442 z"
transform="matrix(1.245743,0,0,1.245743,-3.425346,-6.177033)" />
transform="matrix(0.56839909,0,0,0.56171489,-21.968801,22.255175)"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<rect
style="opacity:0.43315507;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.50295389;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
id="rect4495"
width="19.048439"
height="4.4404783"
x="40.373337"
y="0.14086054"
rx="3.2112026"
ry="2.837393"
transform="matrix(0.752986,0.658037,-0.648902,0.760872,0,0)" />
style="opacity:0.43315507;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.70510882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
id="rect4495-7-3"
width="8.6471872"
height="2.0123112"
x="19.239033"
y="32.352734"
rx="1.5078329"
ry="1.3300102"
transform="matrix(0.75682702,0.65361522,-0.65333777,0.75706655,0,0)"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path
sodipodi:type="arc"
style="color:#000000;fill:url(#radialGradient1537);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.07456946;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible"
id="path4452"
style="color:#000000;fill:url(#radialGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:#3063a3;stroke-width:1.11148739;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible"
id="path4452-9-3"
sodipodi:cx="17.589281"
sodipodi:cy="18.478292"
sodipodi:rx="8.3085051"
sodipodi:ry="8.3085051"
d="m 25.897786,18.478292 c 0,4.588661 -3.719844,8.308506 -8.308505,8.308506 -4.588661,0 -8.308505,-3.719845 -8.308505,-8.308506 0,-4.58866 3.719844,-8.308505 8.308505,-8.308505 4.588661,0 8.308505,3.719845 8.308505,8.308505 z"
transform="matrix(1.398614,0,0,1.398614,-6.224338,-8.298958)" />
transform="matrix(0.63815043,0,0,0.63064598,-23.245907,21.298384)"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path
style="opacity:0.83422457;color:#000000;fill:url(#radialGradient1539);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
d="m 18.156915,7.3966938 c -5.20759,0 -9.4245469,4.2169572 -9.4245469,9.4245472 0,1.503975 0.4203072,2.887773 1.0471719,4.149903 1.25238,0.461613 2.582757,0.775683 3.994767,0.775683 6.170955,0 11.099282,-4.861637 11.480106,-10.937129 C 23.523449,8.7641668 21.044374,7.3966938 18.156915,7.3966938 z"
id="path4462" />
inkscape:connector-curvature="0"
style="opacity:0.83422457;color:#000000;fill:url(#radialGradient3993);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
d="m -11.921206,28.37567 c 2.3760829,0 4.3001667,1.901457 4.3001667,4.249598 0,0.678154 -0.1917749,1.302119 -0.4777963,1.871222 -0.5714273,0.208145 -1.1784425,0.349762 -1.8227046,0.349762 -2.8156408,0 -5.0643028,-2.192149 -5.2380628,-4.931633 0.789792,-0.922345 1.920927,-1.538949 3.238397,-1.538949 z"
id="path4462-9-8"
inkscape:r_cx="true"
inkscape:r_cy="true" />
</g>
</g>
</svg>
......@@ -5,14 +5,13 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32"
width="32"
height="48"
width="48"
version="1.1"
id="svg2"
inkscape:version="0.48.4 r9939"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="icon_bitmap2component.svg"
inkscape:export-filename="E:\kicad-launchpad\kicad-bzr\bitmaps_png\icon_bitmap2component.png"
inkscape:export-xdpi="90"
......@@ -25,7 +24,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -38,1901 +37,225 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
inkscape:window-width="1600"
inkscape:window-height="849"
id="namedview345"
showgrid="false"
inkscape:zoom="4.9166667"
inkscape:cx="24"
inkscape:cy="23.59322"
inkscape:window-x="-4"
inkscape:window-y="-4"
showgrid="true"
inkscape:zoom="18.178537"
inkscape:cx="11.963811"
inkscape:cy="27.182846"
inkscape:window-x="0"
inkscape:window-y="29"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
inkscape:current-layer="svg2"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false">
<inkscape:grid
type="xygrid"
id="grid3331"
empspacing="1"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
id="aw">
<stop
offset="0"
id="stop7" />
<stop
stop-opacity="0"
offset="1"
id="stop9" />
</linearGradient>
<linearGradient
id="au">
<stop
stop-color="#555753"
stop-opacity="0"
offset="0"
id="stop12" />
<stop
stop-color="#eeeeec"
offset="1"
id="stop14" />
</linearGradient>
<linearGradient
id="ay">
<stop
stop-color="#2e3436"
offset="0"
id="stop17" />
<stop
stop-color="#555753"
stop-opacity="0"
offset="1"
id="stop19" />
</linearGradient>
<linearGradient
id="az">
<stop
stop-color="#eeeeec"
offset="0"
id="stop22" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop24" />
</linearGradient>
<linearGradient
id="ax">
<stop
stop-color="#888a85"
offset="0"
id="stop27" />
<stop
stop-color="#fff"
offset="1"
id="stop29" />
</linearGradient>
<filter
id="ck"
height="1.6824"
width="1.6824"
color-interpolation-filters="sRGB"
y="-0.34118"
x="-0.34118">
<feGaussianBlur
stdDeviation="0.28648224"
id="feGaussianBlur32" />
</filter>
<linearGradient
id="at">
<stop
stop-color="#dee3e0"
offset="0"
id="stop35" />
<stop
stop-color="#dee3e0"
stop-opacity="0"
offset="1"
id="stop37" />
</linearGradient>
<radialGradient
id="ba"
xlink:href="#aw"
gradientUnits="userSpaceOnUse"
cy="486.64999"
cx="605.71002"
gradientTransform="matrix(-0.062854,0,0,0.020588,46.705,34.451)"
r="117.14" />
<linearGradient
id="av"
y2="609.51001"
gradientUnits="userSpaceOnUse"
x2="302.85999"
gradientTransform="matrix(0.062854,0,0,0.020588,1.2826,34.451)"
y1="366.64999"
x1="302.85999">
<stop
stop-opacity="0"
offset="0"
id="stop41" />
<stop
offset=".5"
id="stop43" />
<stop
stop-opacity="0"
offset="1"
id="stop45" />
</linearGradient>
<radialGradient
id="bb"
xlink:href="#aw"
gradientUnits="userSpaceOnUse"
cy="486.64999"
cx="605.71002"
gradientTransform="matrix(0.062854,0,0,0.020588,1.295,34.451)"
r="117.14" />
<radialGradient
id="bl"
gradientUnits="userSpaceOnUse"
cy="188.5"
cx="171.25"
gradientTransform="matrix(0.23274,0,0,0.23274,-13.152,-9.0643)"
r="19">
<stop
stop-color="#b100cb"
offset="0"
id="stop49" />
<stop
stop-color="#204a87"
stop-opacity="0"
offset="1"
id="stop51" />
</radialGradient>
<linearGradient
id="cl"
y2="53.914001"
gradientUnits="userSpaceOnUse"
x2="11.692"
gradientTransform="matrix(0.97498,0,0,0.9583,-0.89967,3.1462)"
y1="20.521"
x1="10.666">
<stop
stop-color="#fff"
offset="0"
id="stop54" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop56" />
</linearGradient>
<radialGradient
id="bm"
xlink:href="#at"
gradientUnits="userSpaceOnUse"
cy="12.007"
cx="14.739"
gradientTransform="matrix(-3.3976e-6,-2.2552,3.3832,-5.402e-6,-27.32,54.059)"
r="0.54688001" />
<radialGradient
id="bn"
gradientUnits="userSpaceOnUse"
cy="17.108999"
cx="9.2365999"
gradientTransform="matrix(1.2675,-4.6716e-7,1.8899e-7,0.44533,1.7922,12.443)"
r="2.961">
<stop
stop-color="#e9e9e9"
offset="0"
id="stop60" />
<stop
stop-color="#a7a7a7"
offset="0"
id="stop62" />
<stop
stop-color="#bebebe"
offset="0.529"
id="stop64" />
<stop
stop-color="#e7e7e7"
offset="1"
id="stop66" />
</radialGradient>
<radialGradient
id="bo"
xlink:href="#at"
gradientUnits="userSpaceOnUse"
cy="20.823"
cx="9.1190004"
gradientTransform="matrix(0,-0.60512,2.7541,0,-44.001,27.997)"
r="3.177" />
<linearGradient
id="bc"
y2="30.191"
gradientUnits="userSpaceOnUse"
x2="6.5595999"
gradientTransform="matrix(1.3054,0,0,0.96884,27.658,-4.2992)"
y1="28.781"
x1="6.5595999">
<stop
stop-color="#fff"
offset="0"
id="stop70" />
<stop
stop-color="#d7dbc7"
offset="1"
id="stop72" />
</linearGradient>
<linearGradient
id="bd"
y2="22.712999"
gradientUnits="userSpaceOnUse"
x2="8.5601997"
gradientTransform="matrix(1.1646,0,0,0.37791,27.782,13.975)"
y1="29.18"
x1="5.3347998">
<stop
stop-color="#eee"
offset="0"
id="stop75" />
<stop
stop-color="#a2a2a2"
offset="1"
id="stop77" />
</linearGradient>
<linearGradient
id="be"
y2="24.938"
xlink:href="#ax"
gradientUnits="userSpaceOnUse"
x2="24"
gradientTransform="matrix(0.67368,0,0,0.67368,6.6323,9.8582)"
y1="22.125"
x1="22.062" />
<linearGradient
id="bf"
y2="26.868"
xlink:href="#ax"
gradientUnits="userSpaceOnUse"
x2="24.082001"
gradientTransform="matrix(1.0732,0,0,1.0757,2.6528,-0.50307)"
y1="21.016001"
x1="21.568001" />
<radialGradient
id="bp"
gradientUnits="userSpaceOnUse"
cy="62.526001"
cx="442.29001"
gradientTransform="matrix(-1.3017e-5,-1.3896,0.25862,0,12.335,648.41)"
r="77.922997">
<stop
stop-color="#777"
stop-opacity="0"
offset="0"
id="stop82" />
<stop
stop-color="#2b2b2b"
offset="1"
id="stop84" />
</radialGradient>
<radialGradient
id="bq"
xlink:href="#az"
gradientUnits="userSpaceOnUse"
cy="183.64"
cx="258.76001"
gradientTransform="matrix(0.17369,-0.0023476,0.0017845,0.13208,-14.213,13.883)"
r="18.577999" />
<radialGradient
id="br"
gradientUnits="userSpaceOnUse"
cy="171.78999"
cx="251.69"
gradientTransform="matrix(0.040643,-0.16438,0.25253,0.063961,-21.612,69.314)"
r="21.531">
<stop
stop-color="#eeeeec"
offset="0"
id="stop88" />
<stop
stop-color="#090908"
stop-opacity=".96622"
offset="1"
id="stop90" />
</radialGradient>
<linearGradient
id="bg"
y2="179.03999"
xlink:href="#az"
gradientUnits="userSpaceOnUse"
x2="222.73"
gradientTransform="matrix(0.13883,0,0,0.13367,-4.9888,13.067)"
y1="171.62"
x1="236.75" />
<radialGradient
id="bs"
gradientUnits="userSpaceOnUse"
cy="111.3"
cx="439.04999"
gradientTransform="matrix(0.071034,-0.056703,0.11549,0.15363,-18.07,41.978)"
r="75.751999">
<stop
stop-color="#eeeeec"
offset="0"
id="stop94" />
<stop
stop-color="#babdb6"
offset="1"
id="stop96" />
</radialGradient>
<linearGradient
id="bh"
y2="114.23"
gradientUnits="userSpaceOnUse"
x2="457.20001"
gradientTransform="matrix(0.072459,0,0,0.10109,-4.6279,19.41)"
y1="289.78"
x1="457.20001">
<stop
stop-color="#2e3436"
offset="0"
id="stop99" />
<stop
stop-color="#fff"
offset="1"
id="stop101" />
</linearGradient>
<radialGradient
id="bt"
xlink:href="#ay"
gradientUnits="userSpaceOnUse"
cy="98.974998"
cx="434.13"
gradientTransform="matrix(-0.15022,0.15417,-0.1987,-0.20393,113.38,-16.437)"
r="74.907997" />
<radialGradient
id="bu"
gradientUnits="userSpaceOnUse"
cy="130.89"
cx="441.35999"
gradientTransform="matrix(-0.012867,-0.088952,0.29168,-0.044437,-3.9993,74.887)"
r="75.755997">
<stop
stop-color="#3a3a3a"
offset="0"
id="stop105" />
<stop
stop-color="#3a3a3a"
stop-opacity="0"
offset="1"
id="stop107" />
</radialGradient>
<radialGradient
id="bv"
xlink:href="#ay"
gradientUnits="userSpaceOnUse"
cy="131.83"
cx="469.91"
gradientTransform="matrix(-0.14051,-0.13746,0.12306,-0.13043,81.917,108.28)"
r="74.907997" />
<radialGradient
id="bw"
xlink:href="#au"
gradientUnits="userSpaceOnUse"
cy="218.66"
cx="344.26001"
gradientTransform="matrix(-0.013724,-0.24747,0.093642,-0.0055498,12.749,122.21)"
r="74.907997" />
<linearGradient
id="bi"
y2="225.83"
xlink:href="#au"
gradientUnits="userSpaceOnUse"
x2="280.01999"
gradientTransform="matrix(0.093448,0,0,0.13038,-14.224,11.368)"
y1="126.84"
x1="469.35999" />
<radialGradient
id="bx"
gradientUnits="userSpaceOnUse"
cy="95.382004"
cx="529.40002"
gradientTransform="matrix(0,0.10037,-0.10096,0,38.13,-18.815)"
r="74.907997">
<stop
stop-color="#2e3436"
stop-opacity="0"
offset="0"
id="stop113" />
<stop
stop-color="#2e3436"
stop-opacity="0"
offset=".47336"
id="stop115" />
<stop
stop-color="#0f1112"
offset="1"
id="stop117" />
</radialGradient>
<radialGradient
id="by"
gradientUnits="userSpaceOnUse"
cy="165.52"
cx="449.88"
gradientTransform="matrix(0,-0.096503,0.10561,0,11.021,76.299)"
r="74.907997">
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="0"
id="stop120" />
<stop
stop-color="#eeeeec"
stop-opacity=".49804"
offset=".86670"
id="stop122" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop124" />
</radialGradient>
<radialGradient
id="bz"
gradientUnits="userSpaceOnUse"
cy="170.41"
cx="459.45001"
gradientTransform="matrix(0.15094,-2.3254e-8,1.3013e-8,0.12469,-40.912,13.001)"
r="74.907997">
<stop
stop-color="#eeeeec"
stop-opacity=".95270"
offset="0"
id="stop127" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset=".47989"
id="stop129" />
<stop
stop-color="#eeeeec"
stop-opacity=".99324"
offset=".52296"
id="stop131" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset=".63154"
id="stop133" />
<stop
stop-color="#eeeeec"
stop-opacity=".23529"
offset=".73835"
id="stop135" />
<stop
stop-color="#fff"
stop-opacity=".71622"
offset=".83401"
id="stop137" />
<stop
stop-color="#f6f6f5"
stop-opacity=".27027"
offset=".90514"
id="stop139" />
<stop
stop-color="#f2f2f0"
stop-opacity=".27703"
offset=".90514"
id="stop141" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop143" />
</radialGradient>
<radialGradient
id="ca"
gradientUnits="userSpaceOnUse"
cy="217.46001"
cx="502.53"
gradientTransform="matrix(0.10492,-0.072831,0.035871,0.057009,-25.672,64.354)"
r="74.907997">
<stop
stop-color="#eeeeec"
offset="0"
id="stop146" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop148" />
</radialGradient>
<radialGradient
id="cb"
gradientUnits="userSpaceOnUse"
cy="33.605"
cx="427.79999"
gradientTransform="matrix(-0.44827,0.10225,-0.081708,-0.35819,230.04,-5.144)"
r="74.907997">
<stop
stop-color="#eeeeec"
offset="0"
id="stop151" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop153" />
</radialGradient>
<radialGradient
id="cc"
gradientUnits="userSpaceOnUse"
cy="127.25"
cx="399.88"
gradientTransform="matrix(0.942,-0.093118,0.12194,0.43761,-363.99,7.6542)"
r="2.0222001">
<stop
stop-color="#fff"
offset="0"
id="stop156" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop158" />
</radialGradient>
<radialGradient
id="cd"
gradientUnits="userSpaceOnUse"
cy="127.65"
cx="400.29999"
gradientTransform="matrix(1.0867,3.1905e-5,-1.4474e-5,0.51097,-406.97,-39.597)"
r="2.0222001">
<stop
stop-color="#fff"
offset="0"
id="stop161" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop163" />
</radialGradient>
<linearGradient
id="bj"
y2="496.34"
gradientUnits="userSpaceOnUse"
x2="700.40997"
gradientTransform="matrix(0.15392,0,0,0.1533,-88.254,-28.438)"
y1="327.78"
x1="697.90997">
<stop
stop-color="#f0f0f4"
offset="0"
id="stop166" />
<stop
stop-color="#eeeeec"
offset=".037441"
id="stop168" />
<stop
stop-color="#eeeeec"
stop-opacity=".69595"
offset=".39254"
id="stop170" />
<stop
stop-color="#a1a29f"
offset="0.908"
id="stop172" />
<stop
stop-color="#555753"
offset="1"
id="stop174" />
</linearGradient>
<radialGradient
id="ce"
gradientUnits="userSpaceOnUse"
cy="14.782"
cx="76.166"
gradientTransform="matrix(4.2066,1.9379e-8,0,0.1402,-297.74,19.928)"
r="21">
<stop
stop-color="#7a7c7c"
offset="0"
id="stop177" />
<stop
stop-color="#33393a"
offset="1"
id="stop179" />
</radialGradient>
<linearGradient
id="bk"
y2="45.818001"
gradientUnits="userSpaceOnUse"
x2="8.5625"
gradientTransform="translate(-53.5,9.8117)"
y1="4.6468"
x1="8.5625">
<stop
stop-color="#2f3537"
offset="0"
id="stop182" />
<stop
stop-color="#8a8e8e"
offset="0.3"
id="stop184" />
<stop
stop-color="#2f3537"
offset="1"
id="stop186" />
</linearGradient>
<radialGradient
id="cf"
gradientUnits="userSpaceOnUse"
cy="114.57"
cx="20.892"
gradientTransform="matrix(0.2297,0,0,0.2297,4.6135,3.9798)"
r="5.256">
<stop
stop-color="#f0f0f0"
offset="0"
id="stop189" />
<stop
stop-color="#9a9a9a"
offset="1"
id="stop191" />
</radialGradient>
<radialGradient
id="cg"
gradientUnits="userSpaceOnUse"
cy="64.568001"
cx="20.892"
gradientTransform="matrix(0.2297,0,0,0.2297,4.6135,3.9798)"
r="5.257">
<stop
stop-color="#f0f0f0"
offset="0"
id="stop194" />
<stop
stop-color="#9a9a9a"
offset="1"
id="stop196" />
</radialGradient>
<radialGradient
id="ch"
gradientUnits="userSpaceOnUse"
cy="7.2679"
cx="8.1436005"
gradientTransform="matrix(0.83037,0,0,0.95552,-34.846,-1.8031)"
r="38.159">
<stop
stop-color="#fff"
offset="0"
id="stop199" />
<stop
stop-color="#f8f8f8"
offset="1"
id="stop201" />
</radialGradient>
<radialGradient
id="ci"
gradientUnits="userSpaceOnUse"
cy="35.737"
cx="33.966999"
gradientTransform="matrix(0.8327,0,0,0.97109,-37.62,-2.5748)"
r="86.708">
<stop
stop-color="#fafafa"
offset="0"
id="stop204" />
<stop
stop-color="#bbb"
offset="1"
id="stop206" />
</radialGradient>
<radialGradient
id="cj"
gradientUnits="userSpaceOnUse"
cy="3.7560999"
cx="8.8243999"
gradientTransform="matrix(0.83945,0,0,0.96329,-34.713,-1.9718)"
r="37.751999">
<stop
stop-color="#a3a3a3"
offset="0"
id="stop209" />
<stop
stop-color="#4c4c4c"
offset="1"
id="stop211" />
</radialGradient>
<linearGradient
id="XMLID_13_"
y2="57.610001"
gradientUnits="userSpaceOnUse"
y1="57.610001"
x2="90.150002"
x1="44.450001"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#669"
offset="0"
id="stop5" />
<stop
stop-color="#336"
offset="1"
id="stop7-1" />
<midPointStop
stop-color="#666699"
offset="0"
id="midPointStop9" />
<midPointStop
stop-color="#666699"
offset="0.5"
id="midPointStop11" />
<midPointStop
stop-color="#333366"
offset="1"
id="midPointStop13" />
</linearGradient>
<linearGradient
id="XMLID_14_"
y2="54.25"
gradientUnits="userSpaceOnUse"
y1="50.119999"
x2="67.300003"
x1="67.300003"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#ccc"
offset="0"
id="stop18" />
<stop
stop-color="#666"
offset="1"
id="stop20" />
<midPointStop
stop-color="#CCCCCC"
offset="0"
id="midPointStop22" />
<midPointStop
stop-color="#CCCCCC"
offset="0.5"
id="midPointStop24" />
<midPointStop
stop-color="#666666"
offset="1"
id="midPointStop26" />
</linearGradient>
<linearGradient
id="XMLID_15_"
y2="27.200001"
gradientUnits="userSpaceOnUse"
y1="255.60001"
x2="23.24"
x1="251.60001"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#669"
offset="0"
id="stop31" />
<stop
stop-color="#336"
offset="1"
id="stop33" />
<midPointStop
stop-color="#666699"
offset="0"
id="midPointStop35" />
<midPointStop
stop-color="#666699"
offset="0.5"
id="midPointStop37" />
<midPointStop
stop-color="#333366"
offset="1"
id="midPointStop39" />
</linearGradient>
<linearGradient
id="XMLID_16_"
y2="132"
gradientUnits="userSpaceOnUse"
y1="132"
x2="237.8"
x1="18.23"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#dfdfdf"
offset="0"
id="stop44" />
<stop
stop-color="#ebebeb"
offset=".1067"
id="stop46" />
<stop
stop-color="#e9e9e9"
offset=".1096"
id="stop48" />
<stop
stop-color="#cacad6"
offset=".1519"
id="stop50" />
<stop
stop-color="#b8b8c9"
offset=".188"
id="stop52" />
<stop
stop-color="#b1b1c5"
offset=".2135"
id="stop54-7" />
<stop
stop-color="#e1e1ff"
offset=".8708"
id="stop56-4" />
<stop
stop-color="#99c"
offset="1"
id="stop58" />
<midPointStop
stop-color="#DFDFDF"
offset="0"
id="midPointStop60" />
<midPointStop
stop-color="#DFDFDF"
offset="0.5"
id="midPointStop62" />
<midPointStop
stop-color="#EBEBEB"
offset="0.1067"
id="midPointStop64" />
<midPointStop
stop-color="#EBEBEB"
offset="0.3684"
id="midPointStop66" />
<midPointStop
stop-color="#B1B1C5"
offset="0.2135"
id="midPointStop68" />
<midPointStop
stop-color="#B1B1C5"
offset="0.5"
id="midPointStop70" />
<midPointStop
stop-color="#E1E1FF"
offset="0.8708"
id="midPointStop72" />
<midPointStop
stop-color="#E1E1FF"
offset="0.5"
id="midPointStop74" />
<midPointStop
stop-color="#9999CC"
offset="1"
id="midPointStop76" />
</linearGradient>
<linearGradient
id="XMLID_17_"
y2="135.3"
gradientUnits="userSpaceOnUse"
y1="135.3"
x2="221.60001"
x1="86.980003"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#bdbdcf"
offset=".0056"
id="stop89" />
<stop
stop-color="#d8d8e3"
offset=".1263"
id="stop91" />
<stop
stop-color="#ededf2"
offset=".2572"
id="stop93" />
<stop
stop-color="#fbfbfc"
offset=".3838"
id="stop95" />
<stop
stop-color="#fff"
offset=".5"
id="stop97" />
<stop
stop-color="#f0f0f4"
offset=".6848"
id="stop99-0" />
<stop
stop-color="#cecedb"
offset="1"
id="stop101-9" />
<midPointStop
stop-color="#BDBDCF"
offset="0.0056"
id="midPointStop103" />
<midPointStop
stop-color="#BDBDCF"
offset="0.3103"
id="midPointStop105" />
<midPointStop
stop-color="#FFFFFF"
offset="0.5"
id="midPointStop107" />
<midPointStop
stop-color="#FFFFFF"
offset="0.5618"
id="midPointStop109" />
<midPointStop
stop-color="#CECEDB"
offset="1"
id="midPointStop111" />
</linearGradient>
<linearGradient
id="XMLID_18_"
y2="135.3"
gradientUnits="userSpaceOnUse"
y1="135.3"
x2="185.89999"
x1="122.7"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#d9d9d9"
offset="0"
id="stop122-4" />
<stop
stop-color="#bfbfbf"
offset="1"
id="stop124-8" />
<midPointStop
stop-color="#D9D9D9"
offset="0"
id="midPointStop126" />
<midPointStop
stop-color="#D9D9D9"
offset="0.5"
id="midPointStop128" />
<midPointStop
stop-color="#BFBFBF"
offset="1"
id="midPointStop130" />
</linearGradient>
<linearGradient
id="XMLID_19_"
y2="160.2"
gradientUnits="userSpaceOnUse"
y1="108"
x2="154.3"
x1="154.3"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#b1b1c5"
offset=".0056"
id="stop139-8" />
<stop
stop-color="#edeff6"
offset=".5"
id="stop141-2" />
<stop
stop-color="#d0d2d8"
offset="1"
id="stop143-4" />
<midPointStop
stop-color="#B1B1C5"
offset="0.0056"
id="midPointStop145" />
<midPointStop
stop-color="#B1B1C5"
offset="0.5"
id="midPointStop147" />
<midPointStop
stop-color="#EDEFF6"
offset="0.5"
id="midPointStop149" />
<midPointStop
stop-color="#EDEFF6"
offset="0.4944"
id="midPointStop151" />
<midPointStop
stop-color="#D0D2D8"
offset="1"
id="midPointStop153" />
</linearGradient>
<linearGradient
id="XMLID_20_"
y2="68.949997"
gradientUnits="userSpaceOnUse"
y1="80.129997"
x2="203.3"
x1="203.3"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#b0d9ff"
offset="0"
id="stop174-5" />
<stop
stop-color="#57adff"
offset="1"
id="stop176" />
<midPointStop
stop-color="#B0D9FF"
offset="0"
id="midPointStop178" />
<midPointStop
stop-color="#B0D9FF"
offset="0.5"
id="midPointStop180" />
<midPointStop
stop-color="#57ADFF"
offset="1"
id="midPointStop182" />
</linearGradient>
<linearGradient
id="XMLID_21_"
y2="75.699997"
gradientUnits="userSpaceOnUse"
y1="68.089996"
x2="203.3"
x1="203.3"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#fff"
offset="0"
id="stop187" />
<stop
stop-color="#d2dde9"
offset="1"
id="stop189-5" />
<midPointStop
stop-color="#FFFFFF"
offset="0"
id="midPointStop191" />
<midPointStop
stop-color="#FFFFFF"
offset="0.5"
id="midPointStop193" />
<midPointStop
stop-color="#D2DDE9"
offset="1"
id="midPointStop195" />
</linearGradient>
<linearGradient
id="XMLID_22_"
y2="76.739998"
gradientUnits="userSpaceOnUse"
y1="96.220001"
x2="123.9"
x1="122.5"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#94caff"
offset="0"
id="stop206-1" />
<stop
stop-color="#006dff"
offset="1"
id="stop208" />
<midPointStop
stop-color="#94CAFF"
offset="0"
id="midPointStop210" />
<midPointStop
stop-color="#94CAFF"
offset="0.5"
id="midPointStop212" />
<midPointStop
stop-color="#006DFF"
offset="1"
id="midPointStop214" />
</linearGradient>
<linearGradient
id="XMLID_23_"
y2="74.620003"
gradientUnits="userSpaceOnUse"
y1="69.040001"
x2="123.9"
x1="123.9"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#fff"
offset="0"
id="stop219" />
<stop
stop-color="#f8fbff"
offset=".0897"
id="stop221" />
<stop
stop-color="#e6f1ff"
offset=".2165"
id="stop223" />
<stop
stop-color="#c7dfff"
offset=".3656"
id="stop225" />
<stop
stop-color="#9dc7ff"
offset=".5315"
id="stop227" />
<stop
stop-color="#67a8ff"
offset=".7114"
id="stop229" />
<stop
stop-color="#2683ff"
offset=".9001"
id="stop231" />
<stop
stop-color="#006dff"
offset="1"
id="stop233" />
<midPointStop
stop-color="#FFFFFF"
offset="0"
id="midPointStop235" />
<midPointStop
stop-color="#FFFFFF"
offset="0.6328"
id="midPointStop237" />
<midPointStop
stop-color="#006DFF"
offset="1"
id="midPointStop239" />
</linearGradient>
<linearGradient
id="XMLID_24_"
y2="77.769997"
gradientUnits="userSpaceOnUse"
y1="69.730003"
x2="152.39999"
x1="152.39999"
gradientTransform="translate(0,-145.06667)">
<stop
stop-color="#fff"
offset="0"
id="stop244" />
<stop
offset="1"
id="stop246" />
<midPointStop
stop-color="#FFFFFF"
offset="0"
id="midPointStop248" />
<midPointStop
stop-color="#FFFFFF"
offset="0.5"
id="midPointStop250" />
<midPointStop
stop-color="#000000"
offset="1"
id="midPointStop252" />
</linearGradient>
<linearGradient
y2="77.769997"
x2="152.39999"
y1="69.730003"
x1="152.39999"
gradientTransform="translate(0,-145.06667)"
gradientUnits="userSpaceOnUse"
id="linearGradient3558"
xlink:href="#XMLID_24_"
inkscape:collect="always" />
<radialGradient
inkscape:collect="always"
xlink:href="#ch"
id="radialGradient3851"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.46630211,0,0,0.67196902,-1.5214922,-28.647751)"
cx="8.1436005"
cy="7.2679"
r="38.159" />
<radialGradient
inkscape:collect="always"
xlink:href="#ci"
id="radialGradient3854"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.46761055,0,0,0.68291862,-3.0792581,-29.190449)"
cx="33.966999"
cy="35.737"
r="86.708" />
<radialGradient
inkscape:collect="always"
xlink:href="#cj"
id="radialGradient3856"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.47140107,0,0,0.67743327,-1.4468048,-28.766389)"
cx="8.8243999"
cy="3.7560999"
r="37.751999" />
<linearGradient
id="aw-2-4">
<stop
offset="0"
id="stop7-4-5" />
<stop
stop-opacity="0"
offset="1"
id="stop9-1-4" />
</linearGradient>
<linearGradient
id="av-9-9"
y2="609.51001"
gradientUnits="userSpaceOnUse"
x2="302.85999"
gradientTransform="matrix(0.062854,0,0,0.020588,1.2826,34.451)"
y1="366.64999"
x1="302.85999">
<stop
stop-opacity="0"
offset="0"
id="stop41-8-1" />
<stop
offset=".5"
id="stop43-5-7" />
<stop
stop-opacity="0"
offset="1"
id="stop45-2" />
</linearGradient>
<linearGradient
id="linearGradient3654">
<stop
offset="0"
id="stop3656" />
<stop
stop-opacity="0"
offset="1"
id="stop3658" />
</linearGradient>
<radialGradient
id="ci-6"
gradientUnits="userSpaceOnUse"
cy="35.737"
cx="33.966999"
gradientTransform="matrix(0.8327,0,0,0.97109,-37.62,-2.5748)"
r="86.708">
<stop
stop-color="#fafafa"
offset="0"
id="stop204-6" />
<stop
stop-color="#bbb"
offset="1"
id="stop206-9" />
</radialGradient>
<radialGradient
id="cj-2"
gradientUnits="userSpaceOnUse"
cy="3.7560999"
cx="8.8243999"
gradientTransform="matrix(0.83945,0,0,0.96329,-34.713,-1.9718)"
r="37.751999">
<stop
stop-color="#a3a3a3"
offset="0"
id="stop209-4" />
<stop
stop-color="#4c4c4c"
offset="1"
id="stop211-6" />
</radialGradient>
<radialGradient
id="ch-3"
gradientUnits="userSpaceOnUse"
cy="7.2679"
cx="8.1436005"
gradientTransform="matrix(0.83037,0,0,0.95552,-34.846,-1.8031)"
r="38.159">
<stop
stop-color="#fff"
offset="0"
id="stop199-9" />
<stop
stop-color="#f8f8f8"
offset="1"
id="stop201-8" />
</radialGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#aw-2"
id="radialGradient4571"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.05743599,0,0,0.020588,47.105929,25.0673)"
cx="605.71002"
cy="486.64999"
r="117.14" />
<linearGradient
id="aw-2">
<stop
offset="0"
id="stop7-4" />
<stop
stop-opacity="0"
offset="1"
id="stop9-1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#av-9"
id="linearGradient4573"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.05743599,0,0,0.020588,5.5989399,25.0673)"
x1="302.85999"
y1="366.64999"
x2="302.85999"
y2="609.51001" />
<linearGradient
id="av-9"
y2="609.51001"
gradientUnits="userSpaceOnUse"
x2="302.85999"
gradientTransform="matrix(0.062854,0,0,0.020588,1.2826,34.451)"
y1="366.64999"
x1="302.85999">
<stop
stop-opacity="0"
offset="0"
id="stop41-8" />
<stop
offset=".5"
id="stop43-5" />
<stop
stop-opacity="0"
offset="1"
id="stop45-1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#aw-2"
id="radialGradient4575"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.05743599,0,0,0.020588,5.610271,25.0673)"
cx="605.71002"
cy="486.64999"
r="117.14" />
<linearGradient
id="linearGradient3682">
<stop
offset="0"
id="stop3684" />
<stop
stop-opacity="0"
offset="1"
id="stop3686" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#ci-7"
id="radialGradient4577"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8327,0,0,0.97109,-4.14966,-48.5748)"
cx="33.966999"
cy="35.737"
r="86.708" />
<radialGradient
id="ci-7"
gradientUnits="userSpaceOnUse"
cy="35.737"
cx="33.966999"
gradientTransform="matrix(0.8327,0,0,0.97109,-37.62,-2.5748)"
r="86.708">
<stop
stop-color="#fafafa"
offset="0"
id="stop204-4" />
<stop
stop-color="#bbb"
offset="1"
id="stop206-0" />
</radialGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#cj-9"
id="radialGradient4579"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.83945,0,0,0.96329,-1.24266,-47.9718)"
cx="8.8243999"
cy="3.7560999"
r="37.751999" />
<radialGradient
id="cj-9"
gradientUnits="userSpaceOnUse"
cy="3.7560999"
cx="8.8243999"
gradientTransform="matrix(0.83945,0,0,0.96329,-34.713,-1.9718)"
r="37.751999">
<stop
stop-color="#a3a3a3"
offset="0"
id="stop209-48" />
<stop
stop-color="#4c4c4c"
offset="1"
id="stop211-8" />
</radialGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#ch-2"
id="radialGradient4581"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.83037,0,0,0.95552,-1.37566,-47.8031)"
cx="8.1436005"
cy="7.2679"
r="38.159" />
<radialGradient
id="ch-2"
gradientUnits="userSpaceOnUse"
cy="7.2679"
cx="8.1436005"
gradientTransform="matrix(0.83037,0,0,0.95552,-34.846,-1.8031)"
r="38.159">
<stop
stop-color="#fff"
offset="0"
id="stop199-4" />
<stop
stop-color="#f8f8f8"
offset="1"
id="stop201-5" />
</radialGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#aw-2-4"
id="radialGradient3972"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.02420229,0,0,0.01062969,-1.2753827,18.176071)"
cx="605.71002"
cy="486.64999"
r="117.14" />
<linearGradient
inkscape:collect="always"
xlink:href="#av-9-9"
id="linearGradient3974"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.02420229,0,0,0.01062969,-18.765533,18.176071)"
x1="302.85999"
y1="366.64999"
x2="302.85999"
y2="609.51001" />
<radialGradient
inkscape:collect="always"
xlink:href="#aw-2-4"
id="radialGradient3976"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.02420229,0,0,0.01062969,-18.760757,18.176071)"
cx="605.71002"
cy="486.64999"
r="117.14" />
<radialGradient
inkscape:collect="always"
xlink:href="#ci-6"
id="radialGradient3978"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.42870087,0,0,0.4092114,3.8035692,0.65608316)"
cx="33.966999"
cy="35.737"
r="86.708" />
<radialGradient
inkscape:collect="always"
xlink:href="#cj-2"
id="radialGradient3980"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.43217599,0,0,0.40592453,5.3001863,0.91018424)"
cx="8.8243999"
cy="3.7560999"
r="37.751999" />
<radialGradient
inkscape:collect="always"
xlink:href="#ch-3"
id="radialGradient3982"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.4234664,0,0,0.4027024,5.3851975,0.98009383)"
cx="8.1436005"
cy="7.2679"
r="38.159" />
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mend"
style="overflow:visible;">
<path
id="path4630"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) rotate(180) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mstart"
style="overflow:visible">
<path
id="path4627"
style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mstart-1"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4627-3"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6,0.6)" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend-2"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4630-7"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6,-0.6)" />
</marker>
</defs>
<g
id="g4556"
transform="translate(22.517791,-2.369546)">
<g
transform="matrix(0.4256726,0,0,0.4725695,-24.2945,2.8664656)"
id="g3214">
<path
inkscape:connector-curvature="0"
style="opacity:0.3;fill:url(#radialGradient4571)"
id="path221"
d="M 12.491276,32.6163 V 37.616 C 9.5334885,37.625 5.3407,36.496 5.3407,35.116 c 0,-1.38 3.300737,-2.4995 7.150576,-2.4995 z" />
<rect
style="opacity:0.3;fill:url(#linearGradient4573)"
id="rect223"
x="12.491277"
y="32.616299"
width="27.733829"
height="5" />
<path
inkscape:connector-curvature="0"
style="opacity:0.3;fill:url(#radialGradient4575)"
id="path225"
d="m 40.225015,32.6163 v 4.9997 c 2.957879,0.0094 7.150576,-1.1202 7.150576,-2.5002 0,-1.38 -3.300645,-2.5 -7.150485,-2.5 z" />
<rect
id="rect229"
height="38.167999"
x="1.5753396"
y="-45.173618"
width="30.235001"
ry="1.0718"
transform="matrix(0,1,-1,0,0,0)"
display="block"
style="color:#000000;fill:url(#radialGradient4577);stroke:url(#radialGradient4579);stroke-width:0.89924002;stroke-linecap:round;stroke-linejoin:round;display:block" />
<rect
id="rect231"
x="2.3223393"
y="-44.160198"
width="28.108"
height="36.033001"
ry="0.13789999"
rx="0.12782"
display="block"
transform="matrix(0,1,-1,0,0,0)"
style="color:#000000;fill:none;stroke:url(#radialGradient4581);stroke-width:0.89074999;stroke-linecap:round;stroke-linejoin:round;display:block" />
</g>
<path
style="fill:#fafafa;fill-opacity:1;stroke:#c21818;stroke-width:0.80347371;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -17.489051,5.0647573 0,11.5188727 9.0418542,-5.759436 z"
id="path3921-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:#f0f0f0;fill-opacity:1;stroke:#c21818;stroke-width:0.64277905;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -16.182892,8.7957484 2.465961,0"
id="path3923-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3925-5"
d="m -16.182892,12.228884 2.465961,0"
style="fill:#f0f0f0;fill-opacity:1;stroke:#c21818;stroke-width:0.64277905;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#f0f0f0;fill-opacity:1;stroke:#c21818;stroke-width:0.80347371;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -8.4471968,10.824194 1.9179689,0"
id="path3927-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#f0f0f0;fill-opacity:1;stroke:#c21818;stroke-width:0.80347371;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -17.489051,8.9781446 -2.191965,0"
id="path3929-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#f0f0f0;fill-opacity:1;stroke:#c21818;stroke-width:0.80347371;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -17.489051,12.517681 -2.191965,0"
id="path3931-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:#f0f0f0;fill-opacity:1;stroke:#c21818;stroke-width:0.64277905;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -15.01373,11.050817 0,2.356133"
id="path3933-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="rect3302"
width="38.947025"
height="38.947029"
x="-2.5209514e-08"
y="9.0529709"
ry="2.8881564"
rx="2.9705353" />
<g
id="g4496"
transform="translate(33.817613,-0.94914509)">
<path
d="m -15.861251,22.07366 v 2.581371 c -1.246347,0.0047 -3.013099,-0.578262 -3.013099,-1.290764 0,-0.7125 1.39086,-1.290504 3.013099,-1.290504 z"
id="path4045-6"
style="opacity:0.3;fill:url(#radialGradient3972)"
inkscape:connector-curvature="0" />
<rect
height="2.5815265"
width="11.686437"
y="22.073664"
x="-15.861252"
id="rect4047-6"
style="opacity:0.3;fill:url(#linearGradient3974)" />
transform="scale(0.97123869,1.029613)"
style="font-size:61.97896957px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#00a300;fill-opacity:1;stroke:none;font-family:Sans"
id="text3327">
<path
d="m -4.1748507,22.07366 v 2.581371 c 1.2463863,0.0048 3.0130976,-0.578364 3.0130976,-1.290866 0,-0.712502 -1.3908207,-1.290763 -3.0130601,-1.290763 z"
id="path4049-4"
style="opacity:0.3;fill:url(#radialGradient3976)"
inkscape:connector-curvature="0" />
<g
id="g4419">
<rect
id="rect4051-9"
height="16.083763"
x="6.7509832"
y="2.0893245"
width="15.565955"
ry="0.45165002"
transform="matrix(0,1,-1,0,0,0)"
display="block"
style="color:#000000;fill:url(#radialGradient3978);stroke:url(#radialGradient3980);stroke-width:0.41884434;stroke-linecap:round;stroke-linejoin:round;display:block" />
<rect
id="rect4053-4"
x="7.2710781"
y="2.5153897"
width="14.334325"
height="15.186052"
ry="0.058117732"
rx="0.065184765"
display="block"
transform="matrix(0,1,-1,0,0,0)"
style="color:#000000;fill:none;stroke:url(#radialGradient3982);stroke-width:0.41295403;stroke-linecap:round;stroke-linejoin:round;display:block" />
<rect
transform="matrix(0,1,-1,0,0,0)"
style="fill:none;stroke:#333333;stroke-width:0.90630001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3926-8-8"
width="11.527025"
height="5.1003475"
x="8.9767256"
y="7.4484797" />
<path
style="fill:none;stroke:#333333;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m -9.1746553,9.1397989 0,1.2296861 -1.3648637,0 0,-1.2296861"
id="path3928-3-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<g
id="g4383">
<rect
ry="0.24663413"
rx="0.24516506"
y="4.0092244"
x="9.0259676"
height="1.973073"
width="1.9613205"
id="rect3820-0-6"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
<rect
ry="0.24663413"
rx="0.24516506"
y="3.9999254"
x="17.979628"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-5"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
<rect
ry="0.24663413"
rx="0.24516506"
y="3.9999259"
x="15.023851"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-7"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
<rect
ry="0.24663413"
rx="0.24516506"
y="4.0224891"
x="12.045513"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-4"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
</g>
<g
transform="translate(-9.9908792,0.0402033)"
id="g4383-4">
<rect
ry="0.24663413"
rx="0.24516506"
y="4.0092244"
x="9.0259676"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-50"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
<rect
ry="0.24663413"
rx="0.24516506"
y="3.9999254"
x="17.979628"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-5-5"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
<rect
ry="0.24663413"
rx="0.24516506"
y="3.9999259"
x="15.023851"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-7-3"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
<rect
ry="0.24663413"
rx="0.24516506"
y="4.0224891"
x="12.045513"
height="1.973073"
width="1.9613205"
id="rect3820-0-6-4-4"
style="fill:#008000;fill-opacity:1;stroke:none"
transform="matrix(0,1,-1,0,0,0)" />
</g>
</g>
d="m 20.91299,29.527713 c -2.703528,1.5e-5 -4.751333,0.423699 -6.143423,1.271053 -1.371944,0.827206 -2.057908,2.057907 -2.057896,3.692106 -1.2e-5,1.230712 0.403496,2.199132 1.210527,2.905265 0.827179,0.706147 1.957003,1.059217 3.389475,1.05921 2.21928,7e-6 4.075419,-0.665782 5.568423,-1.997369 1.492959,-1.351745 2.491642,-3.248235 2.996053,-5.689475 l 0.242106,-1.24079 -5.205265,0 m 16.917111,-4.085528 -3.782896,19.338165 -10.834214,0 0.907895,-5.023686 c -1.775461,2.017547 -3.651776,3.510529 -5.62895,4.478949 -1.977209,0.948245 -4.125892,1.422368 -6.446055,1.422369 -3.2079039,-10e-7 -5.7600952,-0.827194 -7.6565814,-2.48158 -1.8763184,-1.674559 -2.8144757,-3.924119 -2.8144747,-6.748687 -1e-6,-4.317533 1.6644716,-7.616215 4.9934229,-9.896056 3.3491146,-2.29998 8.1710412,-3.44998 14.4657942,-3.450001 l 6.385529,0 0.121053,-0.847369 c 0.0605,-0.282433 0.09076,-0.484188 0.09079,-0.605263 0.02015,-0.12103 0.03024,-0.231995 0.03026,-0.332895 -2.7e-5,-1.331555 -0.635553,-2.330238 -1.906579,-2.996054 -1.250902,-0.685938 -3.117129,-1.02892 -5.598686,-1.028948 -2.239492,2.8e-5 -4.408351,0.232045 -6.506582,0.696053 -2.098257,0.464062 -4.1258874,1.160114 -6.0828967,2.088159 l 1.6342112,-8.261845 c 2.2596385,-0.564879 4.5697255,-0.988563 6.9302655,-1.271053 2.380685,-0.302597 4.842087,-0.453913 7.384213,-0.453948 5.023658,3.5e-5 8.756112,0.867578 11.197373,2.602633 2.441192,1.714943 3.661805,4.337748 3.661843,7.868424 -3.8e-5,0.685988 -0.05048,1.442567 -0.151316,2.269737 -0.08074,0.807039 -0.211879,1.68467 -0.393421,2.632896"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00a300;font-family:Sans;-inkscape-font-specification:Sans Bold Italic"
id="path3302" />
</g>
<g
id="g3239"
transform="matrix(0.10793971,0,0,0.1099907,-0.73540191,25.027104)">
<path
style="fill:url(#XMLID_13_)"
inkscape:connector-curvature="0"
id="path15"
d="m 44.45,-87.456667 c 0,6.24 9.82,10.95 22.85,10.95 13.02,0 22.84,-4.71 22.84,-10.95 0,-6.24 -9.82,-10.94 -22.84,-10.94 -13.03,0 -22.85,4.7 -22.85,10.94 z" />
<path
style="fill:url(#XMLID_14_)"
inkscape:connector-curvature="0"
id="path28"
d="m 48.89,-89.006667 c 0,1.53 6.33,5.95 18.41,5.95 12.08,0 18.41,-4.42 18.41,-5.95 0,-1.52 -6.33,-5.94 -18.41,-5.94 -12.08,0 -18.41,4.42 -18.41,5.94 z" />
<path
style="fill:url(#XMLID_15_)"
inkscape:connector-curvature="0"
id="path41"
d="m 26.8,-90.476667 c -7.35,0 -13.32,5.97 -13.32,13.32 v 128.1 c 0,7.4 5.97,13.3 13.32,13.3 h 202.4 c 7.3,0 13.3,-5.9 13.3,-13.3 v -128.1 c 0,-7.35 -6,-13.32 -13.3,-13.32 H 26.8 z" />
id="g4585"
transform="matrix(1.011705,0,0,1,-0.00570879,0)"
style="stroke:#cccccc">
<path
style="fill:url(#XMLID_16_)"
inkscape:connector-curvature="0"
id="path78"
d="m 237.8,50.933333 c 0,4.7 -3.9,8.6 -8.6,8.6 H 26.8 c -4.73,0 -8.57,-3.9 -8.57,-8.6 v -128.1 c 0,-4.73 3.84,-8.57 8.57,-8.57 h 202.4 c 4.7,0 8.6,3.84 8.6,8.57 v 128.1 z" />
id="path3333-6"
d="m 0.98772317,30.533269 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#bfbfbf"
inkscape:connector-curvature="0"
id="path80"
d="m 21.09,50.933333 v -128.1 c 0,-4.73 3.83,-8.57 8.57,-8.57 H 26.8 c -4.73,0 -8.57,3.84 -8.57,8.57 v 128.1 c 0,4.7 3.84,8.6 8.57,8.6 h 2.86 c -4.74,0 -8.57,-3.9 -8.57,-8.6 z" />
id="path3333-33"
d="m 0.98772317,34.538333 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="opacity:0.7;fill:#ffffff"
inkscape:connector-curvature="0"
id="path82"
d="M 229.2,-85.726667 H 26.8 c -4.73,0 -8.57,3.84 -8.57,8.57 v 5 c 0,-4.56 3.84,-8.26 8.57,-8.26 h 202.4 c 4.7,0 8.6,3.7 8.6,8.26 v -5 c 0,-4.73 -3.9,-8.57 -8.6,-8.57 z" />
id="path3333-7"
d="m 0.98772317,38.543396 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#616161"
inkscape:connector-curvature="0"
id="path84"
d="m 83.65,-9.7666667 c 0,38.9999997 31.65,70.6999997 70.65,70.6999997 39,0 70.7,-31.7 70.7,-70.6999997 0,-38.9200003 -31.7,-70.6200003 -70.7,-70.6200003 -39,0 -70.65,31.7 -70.65,70.6200003 z" />
<circle
transform="translate(0,-145.06667)"
style="fill:#999999"
sodipodi:ry="68.760002"
sodipodi:rx="68.760002"
sodipodi:cy="135.3"
sodipodi:cx="154.3"
id="circle86"
r="68.760002"
cx="154.3"
cy="135.3"
d="m 223.06001,135.3 c 0,37.9751 -30.78491,68.76001 -68.76001,68.76001 -37.9751,0 -68.759999,-30.78491 -68.759999,-68.76001 0,-37.975098 30.784899,-68.759999 68.759999,-68.759999 37.9751,0 68.76001,30.784901 68.76001,68.759999 z" />
id="path3333-79"
d="m 0.98772317,42.548457 36.59759383,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:url(#XMLID_17_)"
inkscape:connector-curvature="0"
id="path113"
d="m 86.98,-9.7666667 c 0,37.1999997 30.22,67.3999997 67.32,67.3999997 37.1,0 67.3,-30.2 67.3,-67.3999997 0,-37.0900003 -30.2,-67.2900003 -67.3,-67.2900003 -37.1,0 -67.32,30.2 -67.32,67.2900003 z" />
id="path3333-31-7"
d="m 0.98772317,10.507956 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#f7f7f7"
inkscape:connector-curvature="0"
id="path115"
d="m 118.4,-9.7666667 c 0,19.7999997 16.1,35.8999997 35.9,35.8999997 19.8,0 35.9,-16.1 35.9,-35.8999997 0,-19.8000003 -16.1,-35.8700003 -35.9,-35.8700003 -19.8,0 -35.9,16.07 -35.9,35.8700003 z" />
id="path3333-8-1"
d="m 0.98772317,14.513019 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#666666"
inkscape:connector-curvature="0"
id="path117"
d="m 121.3,-9.7666667 c 0,18.3 14.8,33.0999997 33,33.0999997 18.2,0 33.1,-14.7999997 33.1,-33.0999997 0,-18.2000003 -14.9,-33.0000003 -33.1,-33.0000003 -18.2,0 -33,14.8 -33,33.0000003 z" />
id="path3333-33-0"
d="m 0.98772317,18.518083 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#666666"
inkscape:connector-curvature="0"
id="path119"
d="m 123.7,-8.5666667 c 0,17.6 14.3,31.8999997 31.8,31.8999997 17.6,0 31.9,-14.2999997 31.9,-31.8999997 0,-17.5000003 -14.3,-31.8000003 -31.9,-31.8000003 -17.5,0 -31.8,14.3 -31.8,31.8000003 z" />
id="path3333-32-1"
d="m 0.98772317,22.523144 36.59759383,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:url(#XMLID_18_)"
inkscape:connector-curvature="0"
id="path132"
d="m 122.7,-9.7666667 c 0,17.5 14.2,31.6999997 31.6,31.6999997 17.4,0 31.6,-14.1999997 31.6,-31.6999997 0,-17.4000003 -14.2,-31.6000003 -31.6,-31.6000003 -17.4,0 -31.6,14.2 -31.6,31.6000003 z" />
id="path3333-4-6"
d="m 0.98772317,26.528205 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
id="path134"
d="m 123.6,-9.2666667 c 0,-17.2000003 14,-31.1000003 31.2,-31.1000003 17.1,0 31,13.8 31.1,30.9000003 v -0.3 c 0,-17.4000003 -14.2,-31.6000003 -31.6,-31.6000003 -17.4,0 -31.6,14.2 -31.6,31.6000003 0,17.5 14.2,31.6999997 31.6,31.6999997 h 0.2 c -17,-0.2 -30.9,-14.0999997 -30.9,-31.1999997 z" />
<path
style="fill:#999999"
inkscape:connector-curvature="0"
id="path136"
d="m 127,-9.7666667 c 0,15.1 12.2,27.3999997 27.3,27.3999997 15.1,0 27.3,-12.2999997 27.3,-27.3999997 0,-15.0000003 -12.2,-27.3000003 -27.3,-27.3000003 -15.1,0 -27.3,12.3 -27.3,27.3000003 z" />
<path
style="fill:url(#XMLID_19_)"
inkscape:connector-curvature="0"
id="path155"
d="m 128.4,-9.7666667 c 0,14.3 11.6,25.8999997 25.9,25.8999997 14.3,0 25.9,-11.5999997 25.9,-25.8999997 0,-14.2000003 -11.6,-25.9000003 -25.9,-25.9000003 -14.3,0 -25.9,11.7 -25.9,25.9000003 z" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
id="path157"
d="m 138.4,-9.7666667 c 0,8.80000003 7.1,15.9 15.9,15.9 8.8,0 15.9,-7.09999997 15.9,-15.9 0,-8.7000003 -7.1,-15.9000003 -15.9,-15.9000003 -8.8,0 -15.9,7.2 -15.9,15.9000003 z" />
id="path3333-79-6"
d="m 0.98772317,46.553519 36.59759283,0 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
id="g4563"
transform="matrix(1,0,0,0.99268819,-0.08251488,0.07386002)"
style="stroke:#cccccc">
<path
inkscape:connector-curvature="0"
id="path159"
d="m 138.4,-9.7666667 c 0,8.80000003 7.1,15.9 15.9,15.9 8.8,0 15.9,-7.09999997 15.9,-15.9 0,-8.7000003 -7.1,-15.9000003 -15.9,-15.9000003 -8.8,0 -15.9,7.2 -15.9,15.9000003 z" />
id="path3333-79-6-7"
d="m 9.5832994,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="opacity:0.6;fill:#ffffff"
inkscape:connector-curvature="0"
id="path161"
d="m 154.3,-77.056667 c -0.2,0 -0.3,0.01 -0.5,0.01 36.4,0.27 65.9,30.36 65.9,67.2800003 0,36.9999997 -29.5,67.0999997 -65.9,67.3999997 h 0.5 c 37.1,0 67.3,-30.2 67.3,-67.3999997 0,-37.0900003 -30.2,-67.2900003 -67.3,-67.2900003 z" />
id="path3333-79-6-7-4"
d="m 5.5802244,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="opacity:0.8;fill:#ffffff"
inkscape:connector-curvature="0"
id="path163"
d="m 88.42,-9.7666667 c 0,-36.9700003 29.68,-67.0800003 66.28,-67.2800003 -0.2,0 -0.3,-0.01 -0.4,-0.01 -37.1,0 -67.32,30.2 -67.32,67.2900003 0,37.1999997 30.22,67.3999997 67.32,67.3999997 h 0.4 c -36.6,-0.2 -66.28,-30.4 -66.28,-67.3999997 z" />
id="path3333-79-6-7-7"
d="m 1.5771496,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#999999"
inkscape:connector-curvature="0"
id="path165"
d="m 179.4,-73.746667 v 9.78 c 0,1.68 1.4,3.05 3,3.05 h 17.8 c -6.1,-5.44 -13.1,-9.8 -20.8,-12.83 z" />
id="path3333-79-6-7-6"
d="m 17.589451,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
id="path167"
d="m 179.4,-72.196667 v 8.23 c 0,1.68 1.4,3.05 3,3.05 H 198 c -5.5,-4.7 -11.8,-8.53 -18.6,-11.28 z" />
id="path3333-79-6-7-46"
d="m 21.592522,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#4d4d4d"
inkscape:connector-curvature="0"
id="path169"
d="m 182.3,-64.936667 c 0,1.58 1.3,2.86 2.8,2.86 h 36.3 c 1.6,0 2.9,-1.28 2.9,-2.86 v -11.18 c 0,-1.57 -1.3,-2.85 -2.9,-2.85 h -36.3 c -1.5,0 -2.8,1.28 -2.8,2.85 v 11.18 z" />
id="path3333-79-6-7-9"
d="m 25.595599,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#9db3d0"
inkscape:connector-curvature="0"
id="path171"
d="m 185.1,-77.536667 c -0.8,0 -1.4,0.64 -1.4,1.42 v 11.18 c 0,0.79 0.6,1.43 1.4,1.43 h 36.3 c 0.8,0 1.4,-0.64 1.4,-1.43 v -11.18 c 0,-0.78 -0.6,-1.42 -1.4,-1.42 h -36.3 z" />
<rect
style="fill:url(#XMLID_20_)"
id="rect184"
x="185.10001"
y="-76.116669"
width="36.259998"
height="11.18" />
id="path3333-79-6-7-5"
d="m 29.598674,10.60147 0,36.617178 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:url(#XMLID_21_)"
inkscape:connector-curvature="0"
id="path197"
d="m 185.1,-77.536667 v 9.77 c 12.5,-2.16 23.8,-7.14 36.3,-6.93 v -2.85 c 0,0.01 -36.3,0.01 -36.3,0.01 z" />
<circle
transform="translate(0,-145.06667)"
sodipodi:ry="12.06"
sodipodi:rx="12.06"
sodipodi:cy="76.709999"
sodipodi:cx="123.9"
id="circle199"
r="12.06"
cx="123.9"
cy="76.709999"
d="m 135.96,76.709999 c 0,6.660554 -5.39944,12.060001 -12.06,12.060001 -6.66055,0 -12.06,-5.399447 -12.06,-12.060001 0,-6.660554 5.39945,-12.06 12.06,-12.06 6.66056,0 12.06,5.399446 12.06,12.06 z" />
id="path3333-79-6-7-8"
d="m 33.60175,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
id="path201"
d="m 148.5,-75.356667 c -3.1,1.63 -5.2,4.88 -5.2,8.61 0,5.37 4.3,9.74 9.7,9.74 5.4,0 9.7,-4.37 9.7,-9.74 0,-3.9 -2.3,-7.25 -5.6,-8.81 -0.9,-0.04 -1.8,-0.07 -2.8,-0.07 -2,0 -3.9,0.1 -5.8,0.27 z" />
id="path3333-79-6-7-66"
d="m 37.604823,10.60147 0,36.617178 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path203"
d="m 144.2,-66.926667 c 0,4.57 3.7,8.29 8.3,8.29 4.5,0 8.2,-3.72 8.2,-8.29 0,-4.57 -3.7,-8.28 -8.2,-8.28 -4.6,0 -8.3,3.71 -8.3,8.28 z" />
id="path3333-79-6-7-56"
d="m 13.586375,10.601471 0,36.617177 0,0"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<path
style="fill:url(#XMLID_22_)"
inkscape:connector-curvature="0"
id="path216"
d="m 116.1,-68.356667 c 0,4.29 3.5,7.78 7.8,7.78 4.3,0 7.8,-3.49 7.8,-7.78 0,-4.29 -3.5,-7.77 -7.8,-7.77 -4.3,0 -7.8,3.48 -7.8,7.77 z" />
style="fill:#b8b8b8;stroke:#333333;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;marker-start:url(#Arrow2Mstart);marker-mid:none;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none"
d="M 1.2102184,4.9822364 37.736811,5.0922563"
id="path4597"
inkscape:connector-curvature="0" />
<path
style="fill:url(#XMLID_23_)"
inkscape:connector-curvature="0"
id="path241-7"
d="m 123.9,-76.026667 c -2.5,0 -4.7,1.3 -5.7,3.18 0.3,2.54 2.7,4.52 5.7,4.52 3,0 5.4,-1.95 5.7,-4.47 -1,-1.9 -3.2,-3.23 -5.7,-3.23 z" />
style="fill:none;stroke:#000000;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker-start:url(#Arrow2Mstart-1);marker-end:url(#Arrow2Mend-2);opacity:0.52282158000000001;stroke-miterlimit:10.10000038;stroke-dasharray:none;marker-mid:none;fill-opacity:1"
d="m 2.2361273,3.4969686 34.4747737,0"
id="path5825"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient3558)"
inkscape:connector-curvature="0"
id="path254"
d="m 147.1,-68.946667 c 1,1.92 2.9,3.26 5.2,3.26 2.4,0 4.5,-1.48 5.4,-3.58 -0.9,-1.98 -2.9,-3.37 -5.2,-3.37 -2.5,0 -4.5,1.54 -5.4,3.69 z" />
</g>
style="fill:none;stroke:#000000;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Mstart-1);marker-end:url(#Arrow2Mend-2);opacity:0.52282158000000001;stroke-miterlimit:4;stroke-dasharray:none"
d="m 43.515145,11.302266 0,34.474774"
id="path5825-1"
inkscape:connector-curvature="0" />
</svg>
......@@ -8,12 +8,12 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="new_pcb.svg">
sodipodi:docname="new_sch.svg">
<metadata
id="metadata358">
<rdf:RDF>
......@@ -22,7 +22,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -39,22 +39,24 @@
inkscape:window-height="849"
id="namedview356"
showgrid="true"
inkscape:zoom="8.146395"
inkscape:cx="33.460702"
inkscape:cy="37.915782"
inkscape:zoom="22.961538"
inkscape:cx="13.043551"
inkscape:cy="13"
inkscape:window-x="0"
inkscape:window-y="29"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:snap-grids="false"
inkscape:snap-grids="true"
inkscape:snap-to-guides="false">
<inkscape:grid
type="xygrid"
id="grid2871"
empspacing="5"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
snapvisiblegridlinesonly="true"
spacingx="0.5px"
spacingy="0.5px" />
</sodipodi:namedview>
<defs
id="defs4">
......@@ -121,415 +123,610 @@
id="feGaussianBlur13" />
</filter>
<linearGradient
id="bn"
y2="172.44"
id="bd"
y2="99.254997"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="175.56"
x1="153">
x2="91.228996"
gradientTransform="matrix(0.21025443,0,0,0.20691162,-0.54460205,-0.4483919)"
y1="106.41"
x1="98.616997">
<stop
stop-color="#fff"
stop-color="#a2a2a2"
offset="0"
id="stop16-8" />
id="stop193" />
<stop
stop-color="#ddd"
stop-color="#fff"
offset="1"
id="stop18-7" />
id="stop195" />
</linearGradient>
<linearGradient
id="bo"
y2="172.89999"
inkscape:collect="always"
xlink:href="#bd"
id="linearGradient3327"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24753763,0,0,0.21380952,-2.8422203,-0.790758)"
x1="98.616997"
y1="106.41"
x2="91.228996"
y2="99.254997" />
<radialGradient
inkscape:collect="always"
xlink:href="#az"
id="radialGradient3371"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24753763,0,0,0.21373337,-2.8344078,-0.70812775)"
cx="102"
cy="112.3"
r="139.56" />
<linearGradient
inkscape:collect="always"
xlink:href="#aw-1"
id="linearGradient3296-3"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="175.10001"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop21-2" />
<stop
stop-color="#616161"
offset="1"
id="stop23-8" />
</linearGradient>
x1="153"
y1="79.556999"
x2="153"
y2="76.444" />
<linearGradient
id="bp"
y2="164.44"
id="aw-1"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="167.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop26-2" />
id="stop136-7" />
<stop
stop-color="#ddd"
offset="1"
id="stop28-9" />
id="stop138-4" />
</linearGradient>
<linearGradient
id="bq"
y2="164.89999"
id="ax-8"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="167.10001"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop31" />
id="stop141-0" />
<stop
stop-color="#616161"
offset="1"
id="stop33-9" />
id="stop143-8" />
</linearGradient>
<linearGradient
id="br"
y2="156.44"
inkscape:collect="always"
xlink:href="#ax-8"
id="linearGradient5814"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="159.56"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop36" />
<stop
stop-color="#ddd"
offset="1"
id="stop38-6" />
</linearGradient>
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-9"
id="linearGradient5814-8"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="bs"
y2="156.89999"
id="ax-8-9"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="159.10001"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop41" />
id="stop141-0-5" />
<stop
stop-color="#616161"
offset="1"
id="stop43-0" />
id="stop143-8-7" />
</linearGradient>
<linearGradient
id="bt"
y2="148.44"
id="aw-1-8"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="151.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop46" />
id="stop136-7-2" />
<stop
stop-color="#ddd"
offset="1"
id="stop48" />
id="stop138-4-7" />
</linearGradient>
<linearGradient
id="bu"
y2="148.89999"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836"
xlink:href="#aw-1-8"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-7"
id="linearGradient5814-1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-7"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="151.10001"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop51-2" />
id="stop141-0-57" />
<stop
stop-color="#616161"
offset="1"
id="stop53" />
id="stop143-8-5" />
</linearGradient>
<linearGradient
id="bv"
y2="140.44"
id="aw-1-9"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="143.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop56" />
id="stop136-7-4" />
<stop
stop-color="#ddd"
offset="1"
id="stop58" />
id="stop138-4-70" />
</linearGradient>
<linearGradient
id="bw"
y2="140.89999"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-4"
xlink:href="#aw-1-9"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-4"
id="linearGradient5814-86"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-4"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="143.10001"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop61" />
id="stop141-0-8" />
<stop
stop-color="#616161"
offset="1"
id="stop63" />
id="stop143-8-77" />
</linearGradient>
<linearGradient
id="bx"
y2="132.44"
id="aw-1-95"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="135.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop66" />
id="stop136-7-0" />
<stop
stop-color="#ddd"
offset="1"
id="stop68" />
id="stop138-4-4" />
</linearGradient>
<linearGradient
id="by"
y2="132.89999"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-43"
xlink:href="#aw-1-95"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-75"
id="linearGradient5814-0"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-75"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="135.10001"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop71" />
id="stop141-0-3" />
<stop
stop-color="#616161"
offset="1"
id="stop73" />
id="stop143-8-4" />
</linearGradient>
<linearGradient
id="bz"
y2="124.44"
id="aw-1-0"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="127.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop76" />
id="stop136-7-08" />
<stop
stop-color="#ddd"
offset="1"
id="stop78" />
id="stop138-4-9" />
</linearGradient>
<linearGradient
id="ca"
y2="124.9"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-47"
xlink:href="#aw-1-0"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-42"
id="linearGradient5814-861"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-42"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="127.1"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop81" />
id="stop141-0-1" />
<stop
stop-color="#616161"
offset="1"
id="stop83" />
id="stop143-8-3" />
</linearGradient>
<linearGradient
id="cb"
y2="116.44"
id="aw-1-92"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="119.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
id="stop136-7-6" />
<stop
stop-color="#ddd"
offset="1"
id="stop88" />
id="stop138-4-1" />
</linearGradient>
<linearGradient
id="cc"
y2="116.9"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-8"
xlink:href="#aw-1-92"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-0"
id="linearGradient5814-7"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-0"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="119.1"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop91" />
id="stop141-0-9" />
<stop
stop-color="#616161"
offset="1"
id="stop93" />
id="stop143-8-2" />
</linearGradient>
<linearGradient
id="cd"
y2="108.44"
id="aw-1-1"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="111.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop96" />
id="stop136-7-5" />
<stop
stop-color="#ddd"
offset="1"
id="stop98" />
id="stop138-4-6" />
</linearGradient>
<linearGradient
id="ce"
y2="108.9"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-9"
xlink:href="#aw-1-1"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-3"
id="linearGradient5814-78"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-3"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="111.1"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop101" />
id="stop141-0-54" />
<stop
stop-color="#616161"
offset="1"
id="stop103" />
id="stop143-8-6" />
</linearGradient>
<linearGradient
id="cf"
y2="100.44"
id="aw-1-7"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="103.56"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop106" />
id="stop136-7-7" />
<stop
stop-color="#ddd"
offset="1"
id="stop108" />
id="stop138-4-8" />
</linearGradient>
<linearGradient
id="cg"
y2="100.9"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-89"
xlink:href="#aw-1-7"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-02"
id="linearGradient5814-08"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-02"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="103.1"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop111" />
id="stop141-0-50" />
<stop
stop-color="#616161"
offset="1"
id="stop113" />
id="stop143-8-1" />
</linearGradient>
<linearGradient
id="ch"
y2="92.444"
id="aw-1-72"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="95.556999"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop116" />
id="stop136-7-53" />
<stop
stop-color="#ddd"
offset="1"
id="stop118" />
id="stop138-4-41" />
</linearGradient>
<linearGradient
id="at"
y2="92.900002"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-6"
xlink:href="#aw-1-72"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-71"
id="linearGradient5814-06"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-71"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="95.100998"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop121" />
id="stop141-0-548" />
<stop
stop-color="#616161"
offset="1"
id="stop123" />
id="stop143-8-54" />
</linearGradient>
<linearGradient
id="au"
y2="84.444"
id="aw-1-6"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)"
y1="87.556999"
y1="79.556999"
x1="153">
<stop
stop-color="#fff"
offset="0"
id="stop126" />
id="stop136-7-02" />
<stop
stop-color="#ddd"
offset="1"
id="stop128" />
id="stop138-4-5" />
</linearGradient>
<linearGradient
id="av"
y2="84.900002"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
gradientUnits="userSpaceOnUse"
id="linearGradient5836-0"
xlink:href="#aw-1-6"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax-8-027"
id="linearGradient5814-72"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient
id="ax-8-027"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)"
y1="87.100998"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop131" />
id="stop141-0-36" />
<stop
stop-color="#616161"
offset="1"
id="stop133" />
id="stop143-8-11" />
</linearGradient>
<linearGradient
id="aw"
id="aw-1-2"
y2="76.444"
gradientUnits="userSpaceOnUse"
x2="153"
......@@ -539,810 +736,318 @@
<stop
stop-color="#fff"
offset="0"
id="stop136" />
id="stop136-7-1" />
<stop
stop-color="#ddd"
offset="1"
id="stop138" />
id="stop138-4-61" />
</linearGradient>
<linearGradient
id="ax"
y2="76.900002"
gradientUnits="userSpaceOnUse"
x2="151.89999"
y2="76.444"
x2="153"
y1="79.556999"
x1="153"
gradientTransform="translate(-143,-64)"
y1="79.100998"
x1="154.10001">
<stop
stop-color="#bbb"
offset="0"
id="stop141" />
<stop
stop-color="#616161"
offset="1"
id="stop143" />
</linearGradient>
<linearGradient
id="bd"
y2="99.254997"
gradientUnits="userSpaceOnUse"
x2="91.228996"
gradientTransform="matrix(0.21025443,0,0,0.20691162,-0.54460205,-0.4483919)"
y1="106.41"
x1="98.616997">
<stop
stop-color="#a2a2a2"
offset="0"
id="stop193" />
<stop
stop-color="#fff"
offset="1"
id="stop195" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#bd"
id="linearGradient3373"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.45698973,0,0,0.39472284,-5.1395578,-1.3667406)"
x1="98.616997"
y1="106.41"
x2="91.228996"
y2="99.254997" />
<radialGradient
inkscape:collect="always"
xlink:href="#az"
id="radialGradient3436"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.45698973,0,0,0.39458226,-5.1395578,-1.365636)"
cx="102"
cy="112.3"
r="139.56" />
<linearGradient
inkscape:collect="always"
xlink:href="#bn"
id="linearGradient3441"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="175.56"
x2="153"
y2="172.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#bo"
id="linearGradient3443"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="175.10001"
x2="151.89999"
y2="172.89999" />
<linearGradient
inkscape:collect="always"
xlink:href="#bp"
id="linearGradient3445"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="167.56"
x2="153"
y2="164.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#bq"
id="linearGradient3447"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="167.10001"
x2="151.89999"
y2="164.89999" />
<linearGradient
inkscape:collect="always"
xlink:href="#br"
id="linearGradient3449"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="159.56"
x2="153"
y2="156.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#bs"
id="linearGradient3451"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="159.10001"
x2="151.89999"
y2="156.89999" />
<linearGradient
inkscape:collect="always"
xlink:href="#bt"
id="linearGradient3453"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="151.56"
x2="153"
y2="148.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#bu"
id="linearGradient3455"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="151.10001"
x2="151.89999"
y2="148.89999" />
<linearGradient
inkscape:collect="always"
xlink:href="#bv"
id="linearGradient3457"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="143.56"
x2="153"
y2="140.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#bw"
id="linearGradient3459"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="143.10001"
x2="151.89999"
y2="140.89999" />
<linearGradient
inkscape:collect="always"
xlink:href="#bx"
id="linearGradient3461"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="135.56"
x2="153"
y2="132.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#by"
id="linearGradient3463"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="135.10001"
x2="151.89999"
y2="132.89999" />
<linearGradient
inkscape:collect="always"
xlink:href="#bz"
id="linearGradient3465"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="127.56"
x2="153"
y2="124.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#ca"
id="linearGradient3467"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="127.1"
x2="151.89999"
y2="124.9" />
<linearGradient
inkscape:collect="always"
xlink:href="#cb"
id="linearGradient3469"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="119.56"
x2="153"
y2="116.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#cc"
id="linearGradient3471"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="119.1"
x2="151.89999"
y2="116.9" />
<linearGradient
inkscape:collect="always"
xlink:href="#cd"
id="linearGradient3473"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="111.56"
x2="153"
y2="108.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#ce"
id="linearGradient3475"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="111.1"
x2="151.89999"
y2="108.9" />
<linearGradient
inkscape:collect="always"
xlink:href="#cf"
id="linearGradient3477"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="103.56"
x2="153"
y2="100.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#cg"
id="linearGradient3479"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="103.1"
x2="151.89999"
y2="100.9" />
<linearGradient
inkscape:collect="always"
xlink:href="#ch"
id="linearGradient3481"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="95.556999"
x2="153"
y2="92.444" />
<linearGradient
inkscape:collect="always"
xlink:href="#at"
id="linearGradient3483"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="95.100998"
x2="151.89999"
y2="92.900002" />
<linearGradient
inkscape:collect="always"
xlink:href="#au"
id="linearGradient3485"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="87.556999"
x2="153"
y2="84.444" />
<linearGradient
inkscape:collect="always"
xlink:href="#av"
id="linearGradient3487"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="87.100998"
x2="151.89999"
y2="84.900002" />
<linearGradient
inkscape:collect="always"
xlink:href="#aw"
id="linearGradient3489"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="79.556999"
x2="153"
y2="76.444" />
<linearGradient
inkscape:collect="always"
xlink:href="#ax"
id="linearGradient3491"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
id="linearGradient5836-2"
xlink:href="#aw-1-2"
inkscape:collect="always" />
</defs>
<path
d="m 16,8 v 112 h 63.187 c 3e-6,0 11.906,-9.9062 17.406,-15.406 C 102.09,99.106 112,87.2 112,87.2 V 8.012 H 16 z"
transform="matrix(0.47602464,0,0,0.40529685,-6.3581392,-1.8460354)"
d="m 15.521878,7.062026 0,113.875944 63.991121,0 c 3e-6,0 10.012999,-8.16531 15.512999,-13.66511 5.497002,-5.488 17.452122,-18.220151 17.452122,-18.220151 l 0,-81.990683 -96.956242,0 z"
transform="matrix(0.25784827,0,0,0.21953714,-3.5022893,-1.050377)"
id="path217"
inkscape:connector-curvature="0"
style="opacity:0.5;filter:url(#bb)" />
style="opacity:0.5;filter:url(#bb)"
sodipodi:nodetypes="cccccccc" />
<path
d="m 2.172256,1.7910019 0,44.2089991 28.856805,0 15.013428,-12.967974 0,-31.2410251 -43.870233,0 z"
d="M 1,1 1,25 16.5,25 25,17.5 25,1 z"
id="path219"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
style="fill:#ffffff"
sodipodi:nodetypes="cccccc" />
<path
d="m 3.0861921,2.1856446 c -0.2517981,0 -0.4569897,0.177167 -0.4569897,0.3945822 l 0,42.6153662 c 0,0.217807 0.2051922,0.394583 0.4569897,0.394583 l 27.0410679,0 c 0.120195,0 1.262458,0.04662 1.347503,-0.02715 L 45.451399,33.40543 c 0.08546,-0.07379 0.133888,-1.059711 0.133888,-1.163542 l 0,-29.6614603 c 0,-0.217415 -0.204722,-0.3945824 -0.456991,-0.3945824 l -42.0425697,0 z"
d="m 1.4470301,1.2154944 c -0.136392,0 -0.247538,0.095966 -0.247538,0.2137333 l 0,23.0834653 c 0,0.117979 0.111146,0.213734 0.247538,0.213734 l 14.8215389,0 c 0.06511,0 0.683835,0.02525 0.729902,-0.01471 l 7.527173,-6.672507 c 0.04629,-0.03997 0.246724,-0.486911 0.246724,-0.543154 l 0,-16.0667225 c 0,-0.1177671 -0.11089,-0.2137337 -0.247537,-0.2137337 l -23.0780569,0 z"
id="path221"
inkscape:connector-curvature="0"
style="fill:url(#radialGradient3436)" />
<path
d="M 41.88,115.98 66.19,91.67 c 0,0 -9.3531,2.9131 -19.603,2.9131 0,10.25 -4.7065,21.396 -4.7065,21.396 z"
clip-path="url(#ba)"
transform="matrix(0.45698973,0,0,0.39472284,13.139705,-1.3667406)"
id="path223"
inkscape:connector-curvature="0"
style="opacity:0.4;filter:url(#bc)" />
<g
transform="matrix(0.45698973,0,0,0.39472284,-52.666726,12.843402)"
id="g225">
<g
transform="translate(116,-32)"
id="g227">
style="fill:url(#radialGradient3371)"
sodipodi:nodetypes="cssssccssscc" />
<circle
cy="110"
cx="10"
r="2"
id="circle229"
d="m 12,110 c 0,1.10457 -0.895431,2 -2,2 -1.1045695,0 -2,-0.89543 -2,-2 0,-1.10457 0.8954305,-2 2,-2 1.104569,0 2,0.89543 2,2 z"
sodipodi:cx="10"
sodipodi:cy="110"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3441)" />
<circle
cy="110"
cx="10"
r="1.556"
id="circle231"
d="m 11.556,110 c 0,0.85936 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.69664 -1.556,-1.556 0,-0.85936 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.69664 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="110"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3443)" />
</g>
<g
transform="translate(116,-32)"
id="g233">
<circle
cy="102"
cx="10"
r="2"
id="circle235"
d="m 12,102 c 0,1.10457 -0.895431,2 -2,2 -1.1045695,0 -2,-0.89543 -2,-2 0,-1.10457 0.8954305,-2 2,-2 1.104569,0 2,0.89543 2,2 z"
sodipodi:cx="10"
sodipodi:cy="102"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3445)" />
<circle
cy="102"
cx="10"
r="1.556"
id="circle237"
d="m 11.556,102 c 0,0.85936 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.69664 -1.556,-1.556 0,-0.85936 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.69664 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="102"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3447)" />
</g>
<g
transform="translate(116,-32)"
id="g239">
<circle
cy="94"
transform="matrix(0.35,0,0,0.35,-1,-1.8999998)"
cy="14"
cx="10"
r="2"
id="circle241"
d="m 12,94 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="94"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3449)" />
style="fill:url(#linearGradient3296-3)" />
<circle
cy="94"
cy="14"
cx="10"
r="1.556"
id="circle243"
d="m 11.556,94 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="94"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3451)" />
</g>
<g
transform="translate(116,-32)"
id="g245">
style="fill:url(#linearGradient5814)"
transform="matrix(0.32133677,0,0,0.32133677,-0.71336771,-1.4987146)" />
<path
d="M 41.88,115.98 66.19,91.67 c 0,0 -9.721301,0.892567 -19.971201,0.892567 0,10.250003 -4.338299,23.416533 -4.338299,23.416533 z"
clip-path="url(#ba)"
transform="matrix(0.24753763,0,0,0.21380952,7.059108,-0.790758)"
id="path223"
inkscape:connector-curvature="0"
style="opacity:0.4;filter:url(#bc)"
sodipodi:nodetypes="ccccc" />
<path
d="M 21.066503,21.570418 C 22.427954,20.394487 23.5,19.5 25,17.5 c 0,0 -3.521599,2.234695 -6.059062,2.234695 C 18.940938,21.926206 16.5,25 16.5,25 c 1.975298,-0.664697 3.293464,-2.322889 4.566503,-3.429582 z"
id="path345"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3327)"
sodipodi:nodetypes="ccccc" />
<circle
cy="86"
transform="matrix(0.35,0,0,0.35,-1,0.10000022)"
cy="14"
cx="10"
r="2"
id="circle247"
d="m 12,86 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-3"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="86"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3453)" />
style="fill:url(#linearGradient5836)" />
<circle
cy="86"
cy="14"
cx="10"
r="1.556"
id="circle249"
d="m 11.556,86 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-6"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="86"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3455)" />
</g>
<g
transform="translate(116,-32)"
id="g251">
style="fill:url(#linearGradient5814-8)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,0.50128542)" />
<circle
cy="78"
transform="matrix(0.35,0,0,0.35,-1,2.1000002)"
cy="14"
cx="10"
r="2"
id="circle253"
d="m 12,78 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-0"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="78"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3457)" />
style="fill:url(#linearGradient5836-4)" />
<circle
cy="78"
cy="14"
cx="10"
r="1.556"
id="circle255"
d="m 11.556,78 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-5"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="78"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3459)" />
</g>
<g
transform="translate(116,-32)"
id="g257">
style="fill:url(#linearGradient5814-1)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,2.5012854)" />
<circle
cy="70"
transform="matrix(0.35,0,0,0.35,-1,4.1000002)"
cy="14"
cx="10"
r="2"
id="circle259"
d="m 12,70 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-2"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="70"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3461)" />
style="fill:url(#linearGradient5836-43)" />
<circle
cy="70"
cy="14"
cx="10"
r="1.556"
id="circle261"
d="m 11.556,70 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-9"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="70"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3463)" />
</g>
<g
transform="translate(116,-32)"
id="g263">
style="fill:url(#linearGradient5814-86)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,4.5012854)" />
<circle
cy="62"
transform="matrix(0.35,0,0,0.35,-1,6.1000002)"
cy="14"
cx="10"
r="2"
id="circle265"
d="m 12,62 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-1"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="62"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3465)" />
style="fill:url(#linearGradient5836-47)" />
<circle
cy="62"
cy="14"
cx="10"
r="1.556"
id="circle267"
d="m 11.556,62 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-0"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="62"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3467)" />
</g>
<g
transform="translate(116,-32)"
id="g269">
style="fill:url(#linearGradient5814-0)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,6.5012854)" />
<circle
cy="54"
transform="matrix(0.35,0,0,0.35,-1,8.1000002)"
cy="14"
cx="10"
r="2"
id="circle271"
d="m 12,54 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-16"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="54"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3469)" />
style="fill:url(#linearGradient5836-8)" />
<circle
cy="54"
cy="14"
cx="10"
r="1.556"
id="circle273"
d="m 11.556,54 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-02"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="54"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3471)" />
</g>
<g
transform="translate(116,-32)"
id="g275">
style="fill:url(#linearGradient5814-861)"
transform="matrix(0.32133677,0,0,0.32133677,-0.71336771,8.5012854)" />
<circle
cy="46"
transform="matrix(0.35,0,0,0.35,-1,10.1)"
cy="14"
cx="10"
r="2"
id="circle277"
d="m 12,46 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-4"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="46"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3473)" />
style="fill:url(#linearGradient5836-9)" />
<circle
cy="46"
cy="14"
cx="10"
r="1.556"
id="circle279"
d="m 11.556,46 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-2"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="46"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3475)" />
</g>
<g
transform="translate(116,-32)"
id="g281">
style="fill:url(#linearGradient5814-7)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,10.501285)" />
<circle
cy="38"
transform="matrix(0.35,0,0,0.35,-1,12.1)"
cy="14"
cx="10"
r="2"
id="circle283"
d="m 12,38 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-7"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="38"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3477)" />
style="fill:url(#linearGradient5836-89)" />
<circle
cy="38"
cy="14"
cx="10"
r="1.556"
id="circle285"
d="m 11.556,38 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-08"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="38"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3479)" />
</g>
<g
transform="translate(116,-32)"
id="g287">
style="fill:url(#linearGradient5814-78)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,12.501285)" />
<circle
cy="30"
transform="matrix(0.35,0,0,0.35,-1,14.1)"
cy="14"
cx="10"
r="2"
id="circle289"
d="m 12,30 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-39"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="30"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3481)" />
style="fill:url(#linearGradient5836-6)" />
<circle
cy="30"
cy="14"
cx="10"
r="1.556"
id="circle291"
d="m 11.556,30 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-1"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="30"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3483)" />
</g>
<g
transform="translate(116,-32)"
id="g293">
style="fill:url(#linearGradient5814-08)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,14.501285)" />
<circle
cy="22"
transform="matrix(0.35,0,0,0.35,-1,16.1)"
cy="14"
cx="10"
r="2"
id="circle295"
d="m 12,22 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
id="circle301-6"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="22"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3485)" />
style="fill:url(#linearGradient5836-0)" />
<circle
cy="22"
cy="14"
cx="10"
r="1.556"
id="circle297"
d="m 11.556,22 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
id="circle303-03"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="22"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3487)" />
</g>
<g
transform="translate(116,-32)"
id="g299">
style="fill:url(#linearGradient5814-06)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,16.501285)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,18.1)"
cy="14"
cx="10"
r="2"
id="circle301"
id="circle301-37"
d="m 12,14 c 0,1.104569 -0.895431,2 -2,2 -1.1045695,0 -2,-0.895431 -2,-2 0,-1.104569 0.8954305,-2 2,-2 1.104569,0 2,0.895431 2,2 z"
sodipodi:cx="10"
sodipodi:cy="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3489)" />
style="fill:url(#linearGradient5836-2)" />
<circle
cy="14"
cx="10"
r="1.556"
id="circle303"
id="circle303-3"
d="m 11.556,14 c 0,0.859355 -0.696645,1.556 -1.556,1.556 -0.8593551,0 -1.556,-0.696645 -1.556,-1.556 0,-0.859355 0.6966449,-1.556 1.556,-1.556 0.859355,0 1.556,0.696645 1.556,1.556 z"
sodipodi:cx="10"
sodipodi:cy="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3491)" />
</g>
</g>
<g
id="g3626"
transform="translate(53.381977,1.5623993)">
<path
sodipodi:nodetypes="ccc"
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -43.917838,1.83041 5.707635,5.8490743 0,12.0551737"
id="path307-5"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -33.078034,19.734658 0,-14.4662085 -3.849127,-3.6165522"
id="path309-3"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -27.945864,19.734658 0,-16.8772433 -1.283043,-1.2055174"
id="path311-3"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -22.813695,19.734658 0,-18.0827607"
id="path313-8"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -38.210203,19.734658 0,2.411035"
display="block"
id="path315-3"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -33.078034,19.734658 0,2.411035"
display="block"
id="path317-7"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -27.945864,19.734658 0,2.411035"
display="block"
id="path319-9"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -22.813695,19.734658 0,2.411035"
display="block"
id="path321-3"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -22.813695,30.584315 0,2.411035"
display="block"
id="path323-7"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -27.945864,30.584315 0,2.411035"
display="block"
id="path325-8"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -33.078034,30.584315 0,2.411035"
display="block"
id="path327-7"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:2.48735189;stroke-linecap:round;stroke-linejoin:round;display:block"
d="m -38.210203,30.584315 0,2.411035"
display="block"
id="path329-4"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -38.210203,32.99535 0,4.822069 -3.849127,3.616552 -3.449655,0.05704"
id="path331-1"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -33.078034,32.99535 0,8.438621"
id="path333-9"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -27.945864,32.99535 0,4.822069 3.849126,3.616552 4.920655,-0.0868"
id="path335-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="opacity:0.38462004;color:#000000;fill:none;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -22.813695,32.99535 2.566084,2.411035 3.849127,0"
id="path337-9"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccccc"
style="opacity:0.38462004;color:#000000;stroke:#000000;stroke-width:0.91618013;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -46,5 c 0.88131,1.2365615 1.7396,2.4339998 4.026829,4.9614612 L -42.059971,35 -45,37 l -1,0 c 0,-9 0,-22 0,-32 z"
id="path339-8"
inkscape:connector-curvature="0" />
<path
style="opacity:0.38462004;color:#000000;stroke:#000000;stroke-width:1.24367595;stroke-linecap:round;stroke-linejoin:round;display:block"
display="block"
d="m -16.398484,31.789832 -1.283042,0 0,-14.466209 -1.283042,-1.205517 0,-14.4662087 2.566084,0 0,30.1379347 z"
id="path341-8"
inkscape:connector-curvature="0" />
</g>
<path
d="m 31.041414,45.999398 c 0,0 5.444505,-3.913287 7.957939,-6.084222 2.513432,-2.170936 7.044003,-6.873608 7.044003,-6.873608 0,0 -6.283582,3.484602 -10.9681,3.484602 0,4.04584 -4.034277,9.473228 -4.034277,9.473228 z"
id="path345"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3373)" />
style="fill:url(#linearGradient5814-72)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,18.501285)" />
</svg>
......@@ -623,18 +623,10 @@ void GRLineArray( EDA_RECT* aClipBox, wxDC* aDC, std::vector<wxPoint>& aLines,
aClipBox->Inflate(-aWidth/2);
}
// Draw the outline of a thick segment wih rounded ends
void GRCSegm( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
int width, int aPenSize, EDA_COLOR_T Color )
{
long radius;
int dwx, dwy;
long dx, dy, dwx2, dwy2;
long sx1, sy1, ex1, ey1;
long sx2, sy2, ex2, ey2;
bool swap_ends = false;
GRLastMoveToX = x2;
GRLastMoveToY = y2;
......@@ -658,114 +650,63 @@ void GRCSegm( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
GRSetColorPen( DC, Color, aPenSize );
GRSetBrush( DC, Color, false );
radius = (width + 1) >> 1;
dx = x2 - x1;
dy = y2 - y1;
if( dx == 0 ) /* segment vertical */
{
dwx = radius;
if( dy >= 0 )
dwx = -dwx;
sx1 = x1 - dwx;
sy1 = y1;
ex1 = x2 - dwx;
ey1 = y2;
DC->DrawLine( sx1, sy1, ex1, ey1 );
sx2 = x1 + dwx;
sy2 = y1;
ex2 = x2 + dwx;
ey2 = y2;
DC->DrawLine( sx2, sy2, ex2, ey2 );
}
else if( dy == 0 ) /* segment horizontal */
{
dwy = radius;
if( dx < 0 )
dwy = -dwy;
sx1 = x1;
sy1 = y1 - dwy;
ex1 = x2;
ey1 = y2 - dwy;
DC->DrawLine( sx1, sy1, ex1, ey1 );
sx2 = x1;
sy2 = y1 + dwy;
ex2 = x2;
ey2 = y2 + dwy;
DC->DrawLine( sx2, sy2, ex2, ey2 );
}
int radius = (width + 1) >> 1;
int dx = x2 - x1;
int dy = y2 - y1;
double angle = -ArcTangente( dy, dx );
wxPoint start;
wxPoint end;
wxPoint org( x1, y1);
int len = (int) hypot( dx, dy );
// We know if the DC is mirrored, to draw arcs
int slx = DC->DeviceToLogicalX( 1 ) - DC->DeviceToLogicalX( 0 );
int sly = DC->DeviceToLogicalY( 1 ) - DC->DeviceToLogicalY( 0 );
bool mirrored = (slx > 0 && sly < 0) || (slx < 0 && sly > 0);
// first edge
start.x = 0;
start.y = radius;
end.x = len;
end.y = radius;
RotatePoint( &start, angle);
RotatePoint( &end, angle);
start += org;
end += org;
DC->DrawLine( start, end );
// first rounded end
end.x = 0;
end.y = -radius;
RotatePoint( &end, angle);
end += org;
if( !mirrored )
DC->DrawArc( end, start, org );
else
{
if( std::abs( dx ) == std::abs( dy ) ) // segment 45 degrees
{
dwx = dwy = ( (width * 5) + 4 ) / 7; // = width / 2 * 0.707
if( dy < 0 )
{
if( dx <= 0 )
{
dwx = -dwx; swap_ends = true;
}
}
else // dy >= 0
{
if( dx > 0 )
{
dwy = -dwy; swap_ends = true;
}
else
swap_ends = true;
}
}
else
{
double delta_angle = ArcTangente( dy, dx );
dwx = 0;
dwy = width;
RotatePoint( &dwx, &dwy, -delta_angle );
}
dwx2 = dwx >> 1;
dwy2 = dwy >> 1;
sx1 = x1 - dwx2;
sy1 = y1 - dwy2;
ex1 = x2 - dwx2;
ey1 = y2 - dwy2;
DC->DrawArc( start, end, org );
DC->DrawLine( sx1, sy1, ex1, ey1 );
sx2 = x1 + dwx2;
sy2 = y1 + dwy2;
// second edge
start.x = len;
start.y = -radius;
RotatePoint( &start, angle);
start += org;
ex2 = x2 + dwx2;
ey2 = y2 + dwy2;
DC->DrawLine( start, end );
DC->DrawLine( sx2, sy2, ex2, ey2 );
}
// second rounded end
end.x = len;
end.y = radius;
RotatePoint( &end, angle);
end += org;
if( swap_ends )
{
DC->DrawArc( sx2, sy2, sx1, sy1, x1, y1 );
DC->DrawArc( ex1, ey1, ex2, ey2, x2, y2 );
}
if( !mirrored )
DC->DrawArc( end.x, end.y, start.x, start.y, x2, y2 );
else
{
DC->DrawArc( sx1, sy1, sx2, sy2, x1, y1 );
DC->DrawArc( ex2, ey2, ex1, ey1, x2, y2 );
}
DC->DrawArc( start.x, start.y, end.x, end.y, x2, y2 );
}
......
......@@ -19,6 +19,8 @@ set( EESCHEMA_DLGS
dialogs/dialog_bom.cpp
dialogs/dialog_bom_base.cpp
dialogs/dialog_bom_cfg_keywords.cpp
dialogs/dialog_choose_component.cpp
dialogs/dialog_choose_component_base.cpp
dialogs/dialog_lib_edit_text.cpp
dialogs/dialog_lib_edit_text_base.cpp
dialogs/dialog_edit_component_in_lib.cpp
......@@ -88,6 +90,7 @@ set( EESCHEMA_SRCS
files-io.cpp
find.cpp
getpart.cpp
component_tree_search_container.cpp
hierarch.cpp
hotkeys.cpp
libarch.cpp
......
/* -*- c++ -*-
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2014 Henner Zeller <h.zeller@acm.org>
* Copyright (C) 2014 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <component_tree_search_container.h>
#include <algorithm>
#include <boost/foreach.hpp>
#include <set>
#include <wx/string.h>
#include <wx/tokenzr.h>
#include <wx/treectrl.h>
#include <wx/arrstr.h>
#include <class_library.h>
#include <macros.h>
// Each node gets this lowest score initially, without any matches applied. Matches
// will then increase this score depending on match quality.
// This way, an empty search string will result in all components being displayed as they
// have the minimum score. However, in that case, we avoid expanding all the nodes asd the
// result is very unspecific.
static const unsigned kLowestDefaultScore = 1;
struct COMPONENT_TREE_SEARCH_CONTAINER::TREE_NODE
{
TREE_NODE(TREE_NODE* aParent, CMP_LIBRARY* aOwningLib,
const wxString& aName, const wxString& aDisplayInfo,
const wxString& aSearchText,
bool aNormallyExpanded = false)
: Parent( aParent ),
Lib( aOwningLib ),
NormallyExpanded( aNormallyExpanded ),
Name( aName ),
DisplayInfo( aDisplayInfo ),
MatchName( aName.Lower() ),
SearchText( aSearchText.Lower() ),
MatchScore( 0 ), PreviousScore( 0 )
{
}
TREE_NODE* const Parent; ///< NULL if library, pointer to lib-node when component.
CMP_LIBRARY* const Lib; ///< Owning library of this component.
const bool NormallyExpanded; ///< If this is a parent node, should it be unfolded ?
const wxString Name; ///< Exact name as displayed to the user.
const wxString DisplayInfo; ///< Additional info displayed in the tree (description..)
const wxString MatchName; ///< Preprocessed: lowercased display name.
const wxString SearchText; ///< Other text (keywords, description..) to search in.
unsigned MatchScore; ///< Result-Score after UpdateSearchTerm()
unsigned PreviousScore; ///< Optimization: used to see if we need any tree update.
wxTreeItemId TreeId; ///< Tree-ID if stored in the tree (if MatchScore > 0).
};
// Sort tree nodes by reverse match-score (bigger is first), then alphabetically.
// Library nodes (i.e. the ones that don't have a parent) are always sorted before any
// leaf nodes.
bool COMPONENT_TREE_SEARCH_CONTAINER::scoreComparator( const TREE_NODE* a1, const TREE_NODE* a2 )
{
if ( a1->Parent == NULL && a2->Parent != NULL )
return true;
if ( a1->Parent != NULL && a2->Parent == NULL )
return false;
if ( a1->MatchScore != a2->MatchScore )
return a1->MatchScore > a2->MatchScore; // biggest first.
if (a1->Parent != a2->Parent)
return a1->Parent->MatchName.Cmp(a2->Parent->MatchName) < 0;
return a1->MatchName.Cmp( a2->MatchName ) < 0;
}
COMPONENT_TREE_SEARCH_CONTAINER::COMPONENT_TREE_SEARCH_CONTAINER()
: tree( NULL )
{
}
COMPONENT_TREE_SEARCH_CONTAINER::~COMPONENT_TREE_SEARCH_CONTAINER()
{
BOOST_FOREACH( TREE_NODE* node, nodes )
delete node;
nodes.clear();
}
void COMPONENT_TREE_SEARCH_CONTAINER::SetPreselectNode( const wxString& aComponentName )
{
preselect_node_name = aComponentName.Lower();
}
void COMPONENT_TREE_SEARCH_CONTAINER::SetTree( wxTreeCtrl* aTree )
{
tree = aTree;
UpdateSearchTerm( wxEmptyString );
}
void COMPONENT_TREE_SEARCH_CONTAINER::AddLibrary( CMP_LIBRARY& aLib )
{
wxArrayString all_comp;
aLib.GetEntryNames( all_comp );
AddComponentList( aLib.GetName(), all_comp, &aLib, false );
}
void COMPONENT_TREE_SEARCH_CONTAINER::AddComponentList( const wxString& aNodeName,
const wxArrayString& aComponentNameList,
CMP_LIBRARY* aOptionalLib,
bool aNormallyExpanded )
{
TREE_NODE* parent_node = new TREE_NODE( NULL, NULL, aNodeName, wxEmptyString, wxEmptyString,
aNormallyExpanded );
nodes.push_back( parent_node );
BOOST_FOREACH( const wxString& cName, aComponentNameList )
{
LIB_COMPONENT *c;
if (aOptionalLib)
c = aOptionalLib->FindComponent( cName );
else
c = CMP_LIBRARY::FindLibraryComponent( cName, wxEmptyString );
if (c == NULL)
continue;
wxString keywords, descriptions;
wxString display_info;
for ( size_t i = 0; i < c->GetAliasCount(); ++i )
{
LIB_ALIAS *a = c->GetAlias( i );
keywords += a->GetKeyWords();
descriptions += a->GetDescription();
if ( display_info.empty() && !a->GetDescription().empty() )
{
// Preformatting. Unfortunately, the tree widget doesn't have columns
display_info.Printf( wxT(" %s[ %s ]"),
( cName.length() <= 8 ) ? wxT("\t\t") : wxT("\t"),
GetChars( a->GetDescription() ) );
}
}
// If there are no keywords, we give a couple of characters whitespace penalty. We want
// a component with a search-term found in the keywords score slightly higher than another
// component without keywords, but that term in the descriptions.
wxString search_text = ( !keywords.empty() ) ? keywords : wxT(" ");
search_text += descriptions;
nodes.push_back( new TREE_NODE( parent_node, c->GetLibrary(),
cName, display_info, search_text ) );
}
}
LIB_COMPONENT* COMPONENT_TREE_SEARCH_CONTAINER::GetSelectedComponent()
{
const wxTreeItemId& select_id = tree->GetSelection();
BOOST_FOREACH( TREE_NODE* node, nodes )
{
if ( node->MatchScore > 0 && node->TreeId == select_id && node->Lib )
return node->Lib->FindComponent( node->Name );
}
return NULL;
}
// Creates a score depending on the position of a string match. If the position
// is 0 (= prefix match), this returns the maximum score. This degrades until
// pos == max, which returns a score of 0;
// Evertyhing else beyond that is just 0. Only values >= 0 allowed for position and max.
//
// @param aPosition is the position a string has been found in a substring.
// @param aMaximum is the maximum score this function returns.
// @return position dependent score.
static int matchPosScore(int aPosition, int aMaximum)
{
return ( aPosition < aMaximum ) ? aMaximum - aPosition : 0;
}
void COMPONENT_TREE_SEARCH_CONTAINER::UpdateSearchTerm( const wxString& aSearch )
{
if ( tree == NULL )
return;
// We score the list by going through it several time, essentially with a complexity
// of O(n). For the default library of 2000+ items, this typically takes less than 5ms
// on an i5. Good enough, no index needed.
// Initial AND condition: Leaf nodes are considered to match initially.
BOOST_FOREACH( TREE_NODE* node, nodes )
{
node->PreviousScore = node->MatchScore;
node->MatchScore = node->Parent ? kLowestDefaultScore : 0; // start-match for leafs.
}
// Create match scores for each node for all the terms, that come space-separated.
// Scoring adds up values for each term according to importance of the match. If a term does
// not match at all, the result is thrown out of the results (AND semantics).
// From high to low
// - Exact match for a ccmponent name gives the highest score, trumping all.
// - A positional score depending of where a term is found as substring; prefix-match: high.
// - substring-match in library name.
// - substring match in keywords and descriptions with positional score. Keywords come
// first so contribute more to the score.
//
// This is of course subject to tweaking.
wxStringTokenizer tokenizer( aSearch );
while ( tokenizer.HasMoreTokens() )
{
const wxString term = tokenizer.GetNextToken().Lower();
BOOST_FOREACH( TREE_NODE* node, nodes )
{
if ( node->Parent == NULL)
continue; // Library nodes are not scored here.
if ( node->MatchScore == 0)
continue; // Leaf node without score are out of the game.
// Keywords and description we only count if the match string is at
// least two characters long. That avoids spurious, low quality
// matches. Most abbreviations are at three characters long.
int found_pos;
if ( term == node->MatchName )
node->MatchScore += 1000; // exact match. High score :)
else if ( (found_pos = node->MatchName.Find( term ) ) != wxNOT_FOUND )
{
// Substring match. The earlier in the string the better. score += 20..40
node->MatchScore += matchPosScore( found_pos, 20 ) + 20;
}
else if ( node->Parent->MatchName.Find( term ) != wxNOT_FOUND )
node->MatchScore += 19; // parent name matches. score += 19
else if ( ( found_pos = node->SearchText.Find( term ) ) != wxNOT_FOUND )
{
// If we have a very short search term (like one or two letters), we don't want
// to accumulate scores if they just happen to be in keywords or description as
// almost any one or two-letter combination shows up in there.
// For longer terms, we add scores 1..18 for positional match (higher in the
// front, where the keywords are). score += 0..18
node->MatchScore += ( ( term.length() >= 2 )
? matchPosScore( found_pos, 17 ) + 1
: 0 );
}
else
node->MatchScore = 0; // No match. That's it for this item.
}
}
// Parent nodes have the maximum score seen in any of their children.
unsigned highest_score_seen = 0;
bool any_change = false;
BOOST_FOREACH( TREE_NODE* node, nodes )
{
if ( node->Parent == NULL )
continue;
any_change |= (node->PreviousScore != node->MatchScore);
node->Parent->MatchScore = std::max( node->Parent->MatchScore, node->MatchScore );
highest_score_seen = std::max( highest_score_seen, node->MatchScore );
}
// The tree update might be slow, so we want to bail out if there is no change.
if ( !any_change )
return;
// Now: sort all items according to match score, libraries first.
std::sort( nodes.begin(), nodes.end(), scoreComparator );
// Fill the tree with all items that have a match. Re-arranging, adding and removing changed
// items is pretty complex, so we just re-build the whole tree.
tree->Freeze();
tree->DeleteAllItems();
const wxTreeItemId root_id = tree->AddRoot( wxEmptyString );
const TREE_NODE* first_match = NULL;
const TREE_NODE* preselected_node = NULL;
BOOST_FOREACH( TREE_NODE* node, nodes )
{
if ( node->MatchScore == 0 )
continue;
// If we have nodes that go beyond the default score, suppress nodes that
// have the default score. That can happen if they have an honary += 0 score due to
// some one-letter match in the keyword or description. In this case, we prefer matches
// that just have higher scores. Improves relevancy and performance as the tree has to
// display less items.
if ( highest_score_seen > kLowestDefaultScore && node->MatchScore == kLowestDefaultScore )
continue;
const bool isLeaf = ( node->Parent != NULL );
wxString node_text;
#if 0
// Node text with scoring information for debugging
node_text.Printf( wxT("%s (s=%u)%s"), GetChars(node->Name),
node->MatchScore, GetChars(node->DisplayInfo));
#else
node_text = node->Name + node->DisplayInfo;
#endif
node->TreeId = tree->AppendItem( !isLeaf ? root_id : node->Parent->TreeId, node_text );
// If we are a leaf node, we might need to expand.
if ( isLeaf )
{
if ( node->MatchScore > kLowestDefaultScore )
{
tree->EnsureVisible( node->TreeId );
if ( first_match == NULL )
first_match = node; // The "I am feeling lucky" element.
}
if ( preselected_node == NULL && node->MatchName == preselect_node_name )
preselected_node = node;
}
if ( !isLeaf && node->NormallyExpanded )
tree->Expand( node->TreeId );
}
if ( first_match ) // Highest score search match pre-selected.
tree->SelectItem( first_match->TreeId );
else if ( preselected_node ) // No search, so history item preselected.
tree->SelectItem( preselected_node->TreeId );
tree->Thaw();
}
/* -*- c++ -*-
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2014 Henner Zeller <h.zeller@acm.org>
* Copyright (C) 2014 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http: *www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http: *www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <vector>
#include <wx/string.h>
class LIB_COMPONENT;
class CMP_LIBRARY;
class wxTreeCtrl;
class wxArrayString;
// class COMPONENT_TREE_SEARCH_CONTAINER
// A container for components that allows to search them matching their name, keywords
// and descripotions, updating a wxTreeCtrl with the results (toplevel nodes:
// libraries, leafs: components), scored by relevance.
//
// The scored result list is adpated on each update on the search-term: this allows
// to have a search-as-you-type experience.
class COMPONENT_TREE_SEARCH_CONTAINER
{
public:
COMPONENT_TREE_SEARCH_CONTAINER();
~COMPONENT_TREE_SEARCH_CONTAINER();
/** Function AddLibrary
* Add the components of this library to be searched.
* To be called in the setup phase to fill this container.
*
* @param aLib containting all the components to be added.
*/
void AddLibrary( CMP_LIBRARY& aLib );
/** Function AddComponentList
* Add the given list of components, given by name, to be searched.
* To be called in the setup phase to fill this container.
*
* @param aNodeName The parent node name the components will show up as leaf.
* @param aComponentNameList List of component names.
* @param aOptionalLib Library to look up the component names (if NULL: global lookup)
* @param aNormallyExpanded Should the node in the tree be expanded by default.
*/
void AddComponentList( const wxString& aNodeName, const wxArrayString& aComponentNameList,
CMP_LIBRARY* aOptionalLib, bool aNormallyExpanded );
/** Function SetPreselectNode
* Set the component name to be selected in absence of any search-result.
*
* @param aComponentName the component name to be selected.
*/
void SetPreselectNode( const wxString& aComponentName );
/** Function SetTree
* Set the tree to be manipulated.
* Each update of the search term will update the tree, with the most
* scoring component at the top and selected. If a preselect node is set, this
* is displayed. Does not take ownership of the tree.
*
* @param aTree that is to be modified on search updates.
*/
void SetTree( wxTreeCtrl* aTree );
/** Function UpdateSearchTerm
* Update the search string provided by the user and narrow down the result list.
*
* This string is a space-separated list of terms, each of which
* is applied to the components list to narrow it down. Results are scored by
* relevancy (e.g. exact match scores higher than prefix-match which in turn scores
* higher than substring match). This updates the search and tree on each call.
*
* @param aSearch is the user-provided search string.
*/
void UpdateSearchTerm( const wxString& aSearch );
/** Function GetSelectedComponent
*
* @return the selected component or NULL if there is none.
*/
LIB_COMPONENT* GetSelectedComponent();
private:
struct TREE_NODE;
static bool scoreComparator( const TREE_NODE* a1, const TREE_NODE* a2 );
std::vector<TREE_NODE*> nodes;
wxString preselect_node_name;
wxTreeCtrl* tree;
};
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2014 Henner Zeller <h.zeller@acm.org>
* Copyright (C) 2014 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <dialog_choose_component.h>
#include <set>
#include <boost/foreach.hpp>
#include <wx/tokenzr.h>
#include <class_library.h>
#include <component_tree_search_container.h>
#include <sch_base_frame.h>
// Tree navigation helpers.
static wxTreeItemId GetPrevItem( const wxTreeCtrl& tree, const wxTreeItemId& item );
static wxTreeItemId GetNextItem( const wxTreeCtrl& tree, const wxTreeItemId& item );
// Combine descriptions of all aliases from given component.
static wxString combineDescriptions( LIB_COMPONENT* aComponent )
{
std::set<wxString> descriptions;
for( size_t i = 0; i < aComponent->GetAliasCount(); ++i )
{
LIB_ALIAS* a = aComponent->GetAlias( i );
if ( !a->GetDescription().empty() )
descriptions.insert( a->GetDescription() );
}
wxString result;
BOOST_FOREACH( const wxString& s, descriptions )
result += s + wxT("\n");
return result;
}
// Combine keywords. Keywords come as a string, but are considered space-separated
// individual words. Return a string with a unique set of these.
static wxString combineKeywords( LIB_COMPONENT* aComponent )
{
std::set<wxString> keywords;
for( size_t i = 0; i < aComponent->GetAliasCount(); ++i )
{
LIB_ALIAS* a = aComponent->GetAlias( i );
wxStringTokenizer tokenizer( a->GetKeyWords() );
while ( tokenizer.HasMoreTokens() )
keywords.insert( tokenizer.GetNextToken() );
}
wxString result;
BOOST_FOREACH( const wxString& s, keywords )
result += s + wxT(" ");
return result;
}
DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT( wxWindow* aParent, const wxString& aTitle,
COMPONENT_TREE_SEARCH_CONTAINER* aContainer )
: DIALOG_CHOOSE_COMPONENT_BASE( aParent, wxID_ANY, aTitle ),
m_search_container( aContainer ),
m_selected_component( NULL ),
m_external_browser_requested( false ),
m_received_doubleclick_in_tree( false )
{
// TODO: restore last size user was choosing.
m_search_container->SetTree( m_libraryComponentTree );
m_searchBox->SetFocus();
m_componentDetails->SetEditable( false );
}
// After this dialog is done: return the component that has been selected, or an
// empty string if there is none.
wxString DIALOG_CHOOSE_COMPONENT::GetSelectedComponentName() const
{
if ( m_selected_component == NULL )
return wxEmptyString;
return m_selected_component->GetName();
}
void DIALOG_CHOOSE_COMPONENT::OnSearchBoxChange( wxCommandEvent& aEvent )
{
m_selected_component = NULL;
m_search_container->UpdateSearchTerm( m_searchBox->GetLineText(0) );
updateSelection();
}
void DIALOG_CHOOSE_COMPONENT::OnSearchBoxEnter( wxCommandEvent& aEvent )
{
EndModal( wxID_OK ); // We are done.
}
void DIALOG_CHOOSE_COMPONENT::SelectIfValid( const wxTreeItemId& aTreeId )
{
if ( aTreeId.IsOk() && aTreeId != m_libraryComponentTree->GetRootItem() )
m_libraryComponentTree->SelectItem( aTreeId );
}
void DIALOG_CHOOSE_COMPONENT::OnInterceptSearchBoxKey( wxKeyEvent& aKeyStroke )
{
// Cursor up/down are forwarded to the tree. This is done by intercepting some navigational
// keystrokes that normally would go to the text search box (which has the focus by default).
const wxTreeItemId sel = m_libraryComponentTree->GetSelection();
switch ( aKeyStroke.GetKeyCode() )
{
case WXK_UP:
SelectIfValid( GetPrevItem( *m_libraryComponentTree, sel ) );
break;
case WXK_DOWN:
SelectIfValid( GetNextItem( *m_libraryComponentTree, sel ) );
break;
default:
aKeyStroke.Skip(); // Pass on to search box.
break;
}
}
void DIALOG_CHOOSE_COMPONENT::OnTreeSelect( wxTreeEvent& aEvent )
{
updateSelection();
}
void DIALOG_CHOOSE_COMPONENT::OnDoubleClickTreeSelect( wxTreeEvent& aEvent )
{
updateSelection();
if ( m_selected_component == NULL )
return;
// Ok, got selection. We don't just end the modal dialog here, but
// wait for the MouseUp event to occur. Otherwise something (broken?)
// happens: the dialog will close and will deliver the 'MouseUp' event
// to the eeschema canvas, that will immediately place the component.
m_received_doubleclick_in_tree = true;
}
void DIALOG_CHOOSE_COMPONENT::OnTreeMouseUp( wxMouseEvent& aMouseEvent )
{
if ( m_received_doubleclick_in_tree )
EndModal( wxID_OK ); // We are done (see OnDoubleClickTreeSelect)
else
aMouseEvent.Skip(); // Let upstream handle it.
}
void DIALOG_CHOOSE_COMPONENT::OnStartComponentBrowser( wxMouseEvent& aEvent )
{
m_external_browser_requested = true;
EndModal( wxID_OK ); // We are done.
}
void DIALOG_CHOOSE_COMPONENT::updateSelection()
{
LIB_COMPONENT* selection = m_search_container->GetSelectedComponent();
if ( selection == m_selected_component )
return; // no change.
m_selected_component = selection;
m_componentDetails->Clear();
if ( m_selected_component == NULL )
return;
wxFont font_normal = m_componentDetails->GetFont();
wxFont font_bold = m_componentDetails->GetFont();
font_bold.SetWeight( wxFONTWEIGHT_BOLD );
wxTextAttr headline_attribute;
headline_attribute.SetFont(font_bold);
wxTextAttr text_attribute;
text_attribute.SetFont(font_normal);
const wxString description = combineDescriptions( selection );
if ( !description.empty() )
{
m_componentDetails->SetDefaultStyle( headline_attribute );
m_componentDetails->AppendText( _("Description\n") );
m_componentDetails->SetDefaultStyle( text_attribute );
m_componentDetails->AppendText( description );
m_componentDetails->AppendText( wxT("\n") );
}
const wxString keywords = combineKeywords( selection );
if ( !keywords.empty() )
{
m_componentDetails->SetDefaultStyle( headline_attribute );
m_componentDetails->AppendText( _("Keywords\n") );
m_componentDetails->SetDefaultStyle( text_attribute );
m_componentDetails->AppendText( keywords );
}
m_componentDetails->SetInsertionPoint( 0 ); // scroll up.
}
static wxTreeItemId GetPrevItem( const wxTreeCtrl& tree, const wxTreeItemId& item )
{
wxTreeItemId prevItem = tree.GetPrevSibling( item );
if ( !prevItem.IsOk() )
{
const wxTreeItemId parent = tree.GetItemParent( item );
prevItem = tree.GetLastChild( tree.GetPrevSibling( parent ) );
}
return prevItem;
}
static wxTreeItemId GetNextItem( const wxTreeCtrl& tree, const wxTreeItemId& item )
{
wxTreeItemId nextItem = tree.GetNextSibling( item );
if ( !nextItem.IsOk() )
{
const wxTreeItemId parent = tree.GetItemParent( item );
wxTreeItemIdValue dummy;
nextItem = tree.GetFirstChild( tree.GetNextSibling( parent ), dummy );
}
return nextItem;
}
/* -*- c++ -*-
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2014 Henner Zeller <h.zeller@acm.org>
* Copyright (C) 2014 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <dialog_choose_component_base.h>
class COMPONENT_TREE_SEARCH_CONTAINER;
class LIB_COMPONENT;
class wxTreeItemId;
class DIALOG_CHOOSE_COMPONENT : public DIALOG_CHOOSE_COMPONENT_BASE
{
public:
DIALOG_CHOOSE_COMPONENT( wxWindow* aParent, const wxString& aTitle,
COMPONENT_TREE_SEARCH_CONTAINER* aSearch_container );
/** Function GetSelectedComponentName
* To be called after this dialog returns from ShowModal().
*
* @return the component that has been selected, or an empty string if there is none.
*/
wxString GetSelectedComponentName() const;
/** Function IsExternalBrowserSelected
*
* @return true, iff the browser pressed the browsing button.
*/
bool IsExternalBrowserSelected() const { return m_external_browser_requested; }
protected:
virtual void OnSearchBoxChange( wxCommandEvent& aEvent );
virtual void OnSearchBoxEnter( wxCommandEvent& aEvent );
virtual void OnInterceptSearchBoxKey( wxKeyEvent& aEvent );
virtual void OnTreeSelect( wxTreeEvent& aEvent );
virtual void OnDoubleClickTreeSelect( wxTreeEvent& aEvent );
virtual void OnTreeMouseUp( wxMouseEvent& aMouseEvent );
virtual void OnStartComponentBrowser( wxMouseEvent& aEvent );
private:
void updateSelection();
void SelectIfValid( const wxTreeItemId& aTreeId );
COMPONENT_TREE_SEARCH_CONTAINER* const m_search_container;
LIB_COMPONENT* m_selected_component;
bool m_external_browser_requested;
bool m_received_doubleclick_in_tree;
};
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_choose_component_base.h"
///////////////////////////////////////////////////////////////////////////
DIALOG_CHOOSE_COMPONENT_BASE::DIALOG_CHOOSE_COMPONENT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxSize( 450,-1 ), wxDefaultSize );
wxBoxSizer* bSizer1;
bSizer1 = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSearchSizer;
bSearchSizer = new wxBoxSizer( wxHORIZONTAL );
m_searchLabel = new wxStaticText( this, wxID_ANY, wxT("Search"), wxDefaultPosition, wxDefaultSize, 0 );
m_searchLabel->Wrap( -1 );
bSearchSizer->Add( m_searchLabel, 0, wxALL, 5 );
m_searchBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
bSearchSizer->Add( m_searchBox, 1, wxALL, 5 );
bSizer1->Add( bSearchSizer, 0, wxEXPAND, 5 );
m_libraryComponentTree = new wxTreeCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT );
m_libraryComponentTree->SetMinSize( wxSize( -1,50 ) );
bSizer1->Add( m_libraryComponentTree, 2, wxALL|wxEXPAND, 5 );
wxBoxSizer* bSizer3;
bSizer3 = new wxBoxSizer( wxHORIZONTAL );
m_componentView = new wxStaticText( this, wxID_ANY, wxT("TODO\n(mini. comp image)"), wxDefaultPosition, wxSize( 100,100 ), 0 );
m_componentView->Wrap( -1 );
m_componentView->SetMinSize( wxSize( 100,100 ) );
bSizer3->Add( m_componentView, 0, wxALL, 5 );
wxBoxSizer* bSizer6;
bSizer6 = new wxBoxSizer( wxVERTICAL );
m_componentDetails = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,100 ), wxTE_MULTILINE );
bSizer6->Add( m_componentDetails, 1, wxALL|wxEXPAND, 5 );
m_unitChoice = new wxComboBox( this, wxID_ANY, wxT("Unit A"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
m_unitChoice->Enable( false );
m_unitChoice->Hide();
bSizer6->Add( m_unitChoice, 0, wxALL, 5 );
bSizer3->Add( bSizer6, 2, wxEXPAND, 5 );
bSizer1->Add( bSizer3, 1, wxEXPAND, 5 );
wxBoxSizer* bSizer5;
bSizer5 = new wxBoxSizer( wxHORIZONTAL );
bSizer5->Add( 0, 0, 1, wxEXPAND, 5 );
m_button = new wxStdDialogButtonSizer();
m_buttonOK = new wxButton( this, wxID_OK );
m_button->AddButton( m_buttonOK );
m_buttonCancel = new wxButton( this, wxID_CANCEL );
m_button->AddButton( m_buttonCancel );
m_button->Realize();
bSizer5->Add( m_button, 0, wxEXPAND, 5 );
bSizer1->Add( bSizer5, 0, wxEXPAND, 5 );
this->SetSizer( bSizer1 );
this->Layout();
this->Centre( wxBOTH );
// Connect Events
m_searchBox->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnInterceptSearchBoxKey ), NULL, this );
m_searchBox->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnSearchBoxChange ), NULL, this );
m_searchBox->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnSearchBoxEnter ), NULL, this );
m_libraryComponentTree->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnTreeMouseUp ), NULL, this );
m_libraryComponentTree->Connect( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnDoubleClickTreeSelect ), NULL, this );
m_libraryComponentTree->Connect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnTreeSelect ), NULL, this );
m_componentView->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnStartComponentBrowser ), NULL, this );
}
DIALOG_CHOOSE_COMPONENT_BASE::~DIALOG_CHOOSE_COMPONENT_BASE()
{
// Disconnect Events
m_searchBox->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnInterceptSearchBoxKey ), NULL, this );
m_searchBox->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnSearchBoxChange ), NULL, this );
m_searchBox->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnSearchBoxEnter ), NULL, this );
m_libraryComponentTree->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnTreeMouseUp ), NULL, this );
m_libraryComponentTree->Disconnect( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnDoubleClickTreeSelect ), NULL, this );
m_libraryComponentTree->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnTreeSelect ), NULL, this );
m_componentView->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( DIALOG_CHOOSE_COMPONENT_BASE::OnStartComponentBrowser ), NULL, this );
}
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="11" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
<property name="disconnect_events">1</property>
<property name="disconnect_mode">source_name</property>
<property name="disconnect_php_events">0</property>
<property name="disconnect_python_events">0</property>
<property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property>
<property name="event_generation">connect</property>
<property name="file">dialog_choose_component_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="internationalize">0</property>
<property name="name">dialog_choose_component_base</property>
<property name="namespace"></property>
<property name="path">.</property>
<property name="precompiled_header"></property>
<property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="center">wxBOTH</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size">450,-1</property>
<property name="name">DIALOG_CHOOSE_COMPONENT_BASE</property>
<property name="pos"></property>
<property name="size">450,500</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title"></property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnActivate"></event>
<event name="OnActivateApp"></event>
<event name="OnAuiFindManager"></event>
<event name="OnAuiPaneButton"></event>
<event name="OnAuiPaneClose"></event>
<event name="OnAuiPaneMaximize"></event>
<event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event>
<event name="OnChar"></event>
<event name="OnClose"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHibernate"></event>
<event name="OnIconize"></event>
<event name="OnIdle"></event>
<event name="OnInitDialog"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer1</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSearchSizer</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Search</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_searchLabel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">1</property>
<object class="wxTextCtrl" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size">-1,-1</property>
<property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_searchBox</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxTE_PROCESS_ENTER</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown">OnInterceptSearchBoxKey</event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText">OnSearchBoxChange</event>
<event name="OnTextEnter">OnSearchBoxEnter</event>
<event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">2</property>
<object class="wxTreeCtrl" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size">-1,50</property>
<property name="moveable">1</property>
<property name="name">m_libraryComponentTree</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp">OnTreeMouseUp</event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnTreeBeginDrag"></event>
<event name="OnTreeBeginLabelEdit"></event>
<event name="OnTreeBeginRDrag"></event>
<event name="OnTreeDeleteItem"></event>
<event name="OnTreeEndDrag"></event>
<event name="OnTreeEndLabelEdit"></event>
<event name="OnTreeGetInfo"></event>
<event name="OnTreeItemActivated">OnDoubleClickTreeSelect</event>
<event name="OnTreeItemCollapsed"></event>
<event name="OnTreeItemCollapsing"></event>
<event name="OnTreeItemExpanded"></event>
<event name="OnTreeItemExpanding"></event>
<event name="OnTreeItemGetTooltip"></event>
<event name="OnTreeItemMenu"></event>
<event name="OnTreeItemMiddleClick"></event>
<event name="OnTreeItemRightClick"></event>
<event name="OnTreeKeyDown"></event>
<event name="OnTreeSelChanged">OnTreeSelect</event>
<event name="OnTreeSelChanging"></event>
<event name="OnTreeSetInfo"></event>
<event name="OnTreeStateImageClick"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer3</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">TODO&#x0A;(mini. comp image)</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size">100,100</property>
<property name="moveable">1</property>
<property name="name">m_componentView</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size">100,100</property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp">OnStartComponentBrowser</event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">2</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer6</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxTextCtrl" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size">-1,100</property>
<property name="moveable">1</property>
<property name="name">m_componentDetails</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size">-1,-1</property>
<property name="style">wxTE_MULTILINE</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText"></event>
<event name="OnTextEnter"></event>
<event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxComboBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices"></property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">0</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">1</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_unitChoice</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">-1</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value">Unit A</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCombobox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText"></event>
<event name="OnTextEnter"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_RIGHT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer5</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxStdDialogButtonSizer" expanded="0">
<property name="Apply">0</property>
<property name="Cancel">1</property>
<property name="ContextHelp">0</property>
<property name="Help">0</property>
<property name="No">0</property>
<property name="OK">1</property>
<property name="Save">0</property>
<property name="Yes">0</property>
<property name="minimum_size"></property>
<property name="name">m_button</property>
<property name="permission">protected</property>
<event name="OnApplyButtonClick"></event>
<event name="OnCancelButtonClick"></event>
<event name="OnContextHelpButtonClick"></event>
<event name="OnHelpButtonClick"></event>
<event name="OnNoButtonClick"></event>
<event name="OnOKButtonClick"></event>
<event name="OnSaveButtonClick"></event>
<event name="OnYesButtonClick"></event>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_CHOOSE_COMPONENT_BASE_H__
#define __DIALOG_CHOOSE_COMPONENT_BASE_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
class DIALOG_SHIM;
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/treectrl.h>
#include <wx/combobox.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_CHOOSE_COMPONENT_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_CHOOSE_COMPONENT_BASE : public DIALOG_SHIM
{
private:
protected:
wxStaticText* m_searchLabel;
wxTextCtrl* m_searchBox;
wxTreeCtrl* m_libraryComponentTree;
wxStaticText* m_componentView;
wxTextCtrl* m_componentDetails;
wxComboBox* m_unitChoice;
wxStdDialogButtonSizer* m_button;
wxButton* m_buttonOK;
wxButton* m_buttonCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnInterceptSearchBoxKey( wxKeyEvent& event ) { event.Skip(); }
virtual void OnSearchBoxChange( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSearchBoxEnter( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTreeMouseUp( wxMouseEvent& event ) { event.Skip(); }
virtual void OnDoubleClickTreeSelect( wxTreeEvent& event ) { event.Skip(); }
virtual void OnTreeSelect( wxTreeEvent& event ) { event.Skip(); }
virtual void OnStartComponentBrowser( wxMouseEvent& event ) { event.Skip(); }
public:
DIALOG_CHOOSE_COMPONENT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 450,500 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_CHOOSE_COMPONENT_BASE();
};
#endif //__DIALOG_CHOOSE_COMPONENT_BASE_H__
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -45,11 +45,14 @@
#include <viewlib_frame.h>
#include <eeschema_id.h>
#include <dialog_choose_component.h>
#include <component_tree_search_container.h>
#include <dialog_get_component.h>
#include <boost/foreach.hpp>
// TODO(hzeller): would be good if we could give a pre-selected component.
wxString SCH_BASE_FRAME::SelectComponentFromLibBrowser( void )
{
wxSemaphore semaphore( 0, 1 );
......@@ -76,118 +79,66 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibBrowser( void )
return cmpname;
}
wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
wxArrayString& aHistoryList,
bool aUseLibBrowser,
int* aUnit,
int* aConvert )
{
int CmpCount = 0;
LIB_COMPONENT* libEntry = NULL;
CMP_LIBRARY* currLibrary = NULL;
wxString cmpName, keys, msg;
bool allowWildSeach = true;
int cmpCount = 0;
wxString dialogTitle;
COMPONENT_TREE_SEARCH_CONTAINER search_container; // Container doing search-as-you-type
if( !aLibname.IsEmpty() )
{
currLibrary = CMP_LIBRARY::FindLibrary( aLibname );
CMP_LIBRARY* currLibrary = CMP_LIBRARY::FindLibrary( aLibname );
if( currLibrary != NULL )
CmpCount = currLibrary->GetCount();
{
cmpCount = currLibrary->GetCount();
search_container.AddLibrary( *currLibrary );
}
}
else
{
BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::GetLibraryList() )
{
CmpCount += lib.GetCount();
}
cmpCount += lib.GetCount();
search_container.AddLibrary( lib );
}
// Ask for a component name or key words
msg.Printf( _( "Component selection (%d items loaded):" ), CmpCount );
DIALOG_GET_COMPONENT dlg( this, aHistoryList, msg, aUseLibBrowser );
if( aHistoryList.GetCount() )
dlg.SetComponentName( aHistoryList[0] );
if( dlg.ShowModal() == wxID_CANCEL )
return wxEmptyString;
if( dlg.m_GetExtraFunction )
{
cmpName = SelectComponentFromLibBrowser();
if( aUnit )
*aUnit = LIB_VIEW_FRAME::GetUnit();
if( aConvert )
*aConvert = LIB_VIEW_FRAME::GetConvert();
if( !cmpName.IsEmpty() )
AddHistoryComponentName( aHistoryList, cmpName );
return cmpName;
}
else
cmpName = dlg.GetComponentName();
if( cmpName.IsEmpty() )
return wxEmptyString;
// Here, cmpName contains the component name,
// or "*" if the Select All dialog button was pressed
#ifndef KICAD_KEEPCASE
cmpName.MakeUpper();
#endif
if( dlg.IsKeyword() )
if( !aHistoryList.empty() )
{
allowWildSeach = false;
keys = cmpName;
cmpName = DataBaseGetName( this, keys, cmpName );
if( cmpName.IsEmpty() )
return wxEmptyString;
// This is good for a transition for experineced users: giving them a History. Ideally,
// we actually make this part even faster to access with a popup on ALT-a or something.
search_container.AddComponentList( _("-- History --"), aHistoryList, NULL, true );
search_container.SetPreselectNode( aHistoryList[0] );
}
else if( cmpName == wxT( "*" ) )
{
allowWildSeach = false;
if( GetNameOfPartToLoad( this, currLibrary, cmpName ) == 0 )
return wxEmptyString;
}
else if( cmpName.Contains( wxT( "?" ) ) || cmpName.Contains( wxT( "*" ) ) )
{
allowWildSeach = false;
cmpName = DataBaseGetName( this, keys, cmpName );
dialogTitle.Printf( _( "Choose Component (%d items loaded)" ), cmpCount );
DIALOG_CHOOSE_COMPONENT dlg( this, dialogTitle, &search_container );
if( cmpName.IsEmpty() )
if( dlg.ShowModal() == wxID_CANCEL )
return wxEmptyString;
}
libEntry = CMP_LIBRARY::FindLibraryComponent( cmpName, aLibname );
wxString cmpName = dlg.GetSelectedComponentName();
if( !libEntry && allowWildSeach ) // Search with wildcard
if( dlg.IsExternalBrowserSelected() )
{
allowWildSeach = false;
wxString wildname = wxChar( '*' ) + cmpName + wxChar( '*' );
cmpName = wildname;
cmpName = DataBaseGetName( this, keys, cmpName );
if( !cmpName.IsEmpty() )
libEntry = CMP_LIBRARY::FindLibraryComponent( cmpName, aLibname );
cmpName = SelectComponentFromLibBrowser(); // Would be good if we could pre-select.
if( !libEntry )
return wxEmptyString;
}
if( aUnit )
*aUnit = LIB_VIEW_FRAME::GetUnit();
if( !libEntry )
{
msg.Printf( _( "Failed to find part <%s> in library" ), GetChars( cmpName ) );
DisplayError( this, msg );
return wxEmptyString;
if( aConvert )
*aConvert = LIB_VIEW_FRAME::GetConvert();
}
if ( !cmpName.empty() )
AddHistoryComponentName( aHistoryList, cmpName );
return cmpName;
}
......
......@@ -200,8 +200,16 @@ void EDGE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode,
StAngle = ArcTangente( dy - uy0, dx - ux0 );
EndAngle = StAngle + m_Angle;
if( !panel->GetPrintMirrored() )
{
if( StAngle > EndAngle )
EXCHG( StAngle, EndAngle );
}
else // Mirrored mode: arc orientation is reversed
{
if( StAngle < EndAngle )
EXCHG( StAngle, EndAngle );
}
if( typeaff == LINE )
{
......
......@@ -799,7 +799,7 @@ void MODULE::Flip( const wxPoint& aCentre )
// Mirror pads to other side of board about the x axis, i.e. vertically.
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
pad->Flip( m_Pos.y );
pad->Flip( m_Pos );
// Mirror reference.
text = m_Reference;
......
......@@ -214,13 +214,13 @@ void D_PAD::SetOrientation( double aAngle )
}
void D_PAD::Flip( int aTranslationY )
void D_PAD::Flip( const wxPoint& aCentre )
{
int y = GetPosition().y - aTranslationY;
int y = GetPosition().y - aCentre.y;
y = -y; // invert about x axis.
y += aTranslationY;
y += aCentre.y;
SetY( y );
......
......@@ -167,7 +167,7 @@ public:
void SetOffset( const wxPoint& aOffset ) { m_Offset = aOffset; }
const wxPoint& GetOffset() const { return m_Offset; }
void Flip( int aTranslationY );
void Flip( const wxPoint& aCentre ); // Virtual function
/**
* Function SetOrientation
......
......@@ -169,9 +169,13 @@ bool EDA_APP::OnInit()
bundledir.RemoveLastDir();
// Prepend in PYTHONPATH the content of the bundle libraries !
wxSetEnv("PYTHONPATH",((wxGetenv("PYTHONPATH") != NULL ) ? (wxString(wxGetenv("PYTHONPATH")) + ":") : wxString(""))
+ bundledir.GetPath() +
"/Frameworks/wxPython/lib/python2.6/site-packages/wx-3.0-osx_cocoa" );
wxSetEnv("PYTHONPATH",((wxGetenv("PYTHONPATH") != NULL ) ? (wxString(wxGetenv("PYTHONPATH")) + ":") : wxString("")) +
"/Library/Application Support/kicad/scripting" + ":" +
bundledir.GetPath() + "/PlugIns" + ":" +
wxString( wxGetenv("HOME") ) + "/Library/Application Support/kicad/scripting" +
bundledir.GetPath() +
"/Frameworks/wxPython/lib/python2.6/site-packages/wx-3.0-osx_cocoa"
);
#endif
#endif
// On linux and osx, 2 others paths are
......
......@@ -282,7 +282,7 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
if( printMirror )
{
// Calculate the mirrored center of the board.
center.y = m_Parent->GetPageSizeIU().y - boardBoundingBox.Centre().y;
center.x = m_Parent->GetPageSizeIU().x - boardBoundingBox.Centre().x;
}
offset += center;
......@@ -301,21 +301,29 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
screen->m_IsPrinting = true;
EDA_COLOR_T bg_color = g_DrawBgColor;
// Print frame reference, if reqquested, before
if( m_PrintParams.m_Print_Black_and_White )
GRForceBlackPen( true );
if( m_PrintParams.PrintBorderAndTitleBlock() )
m_Parent->DrawWorkSheet( dc, screen, m_PrintParams.m_PenDefaultSize,
IU_PER_MILS, titleblockFilename );
if( printMirror )
{
// To plot mirror, we reverse the y axis, and modify the plot y origin
dc->SetAxisOrientation( true, true );
// To plot mirror, we reverse the x axis, and modify the plot x origin
dc->SetAxisOrientation( false, false);
/* Plot offset y is moved by the y plot area size in order to have
/* Plot offset x is moved by the x plot area size in order to have
* the old draw area in the new draw area, because the draw origin has not moved
* (this is the upper left corner) but the Y axis is reversed, therefore the plotting area
* is the y coordinate values from - PlotAreaSize.y to 0 */
int y_dc_offset = PlotAreaSizeInPixels.y;
y_dc_offset = KiROUND( y_dc_offset * userscale );
dc->SetDeviceOrigin( 0, y_dc_offset );
* (this is the upper left corner) but the X axis is reversed, therefore the plotting area
* is the x coordinate values from - PlotAreaSize.x to 0 */
int x_dc_offset = PlotAreaSizeInPixels.x;
x_dc_offset = KiROUND( x_dc_offset * userscale );
dc->SetDeviceOrigin( x_dc_offset, 0 );
wxLogTrace( tracePrinting, wxT( "Device origin: x=%d, y=%d" ),
0, y_dc_offset );
x_dc_offset, 0 );
panel->SetClipBox( EDA_RECT( wxPoint( -MAX_VALUE/2, -MAX_VALUE/2 ),
panel->GetClipBox()->GetSize() ) );
......@@ -359,13 +367,9 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
printMirror, &m_PrintParams );
GRForceBlackPen( false );
}
if( m_PrintParams.m_Print_Black_and_White )
else
GRForceBlackPen( true );
if( m_PrintParams.PrintBorderAndTitleBlock() )
m_Parent->DrawWorkSheet( dc, screen, m_PrintParams.m_PenDefaultSize,
IU_PER_MILS, titleblockFilename );
#if defined (GERBVIEW)
// In B&W mode, do not force black pen for Gerbview
......
......@@ -48,7 +48,7 @@
str_filename = str(filename)
if str_filename.endswith(".brd"):
format = IO_MGR.LEGACY
if str_filename.endswith(".kicad_brd"):
if str_filename.endswith(".kicad_pcb"):
format = IO_MGR.KICAD
return SaveBoard(filename,self,format)
......
......@@ -50,10 +50,11 @@ e.SetShape(S_SEGMENT)
module.Add(e)
# save the PCB to disk
module.SetLibRef("FPC"+str(pads))
fpid = FPID("FPC"+str(pads)) #the name in library
module.SetFPID( fpid )
try:
FootprintLibCreate("fpc40.mod")
except:
pass # we try to create, but may be it exists already
FootprintSave("fpc40.mod",module)
......@@ -33,10 +33,10 @@ for y in range (0,10):
# save the PCB to disk
pcb.Save("/tmp/my2.kicad_brd")
pcb.Save("/tmp/my2.brd")
pcb.Save("my2.kicad_pcb")
pcb.Save("my2.brd")
pcb = LoadBoard("/tmp/my2.brd")
pcb = LoadBoard("my2.kicad_pcb")
print map( lambda x: x.GetReference() , list(pcb.GetModules()))
......
......@@ -109,18 +109,22 @@ class QFPWizard(pcbnew.FootprintWizardPlugin):
pad_size = pad_size_left_right
pad_pos_x = -(pad_horizontal_pitch / 2)
pad_pos_y = (cur_pad % (num_pads / 4)) * pad_pitch - (side_length / 2)
if side == 2:
pad_pos_x = -pad_pos_x
pad_pos_y = -pad_pos_y
pad_pos_y = (cur_pad % (num_pads / 4)) * pad_pitch - (side_length / 2)
else:
pad_size = pad_size_bottom_top
pad_pos_x = (cur_pad % (num_pads / 4)) * pad_pitch - (side_length / 2)
pad_pos_y = -(pad_vertical_pitch / 2)
if side == 1:
pad_pos_y = -pad_pos_y
else:
pad_pos_x = -pad_pos_x
pad_pos = pcbnew.wxPoint(pad_pos_x, pad_pos_y)
......
......@@ -307,7 +307,7 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
// Access to the scripting console
#ifdef KICAD_SCRIPTING_WXPYTHON
m_mainToolBar->AddTool( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, wxEmptyString,
KiBitmap( book_xpm ),
KiBitmap( py_script_xpm ),
_( "Show/Hide the Scripting console" ) );
m_mainToolBar->AddSeparator();
......
#!/bin/bash
# v 1.1 Supports migration of links (limited to the same directory) - I should add checks..
# usage osx_fixbundle.sh <bundle-name> <bzr_root>
if [[ ! -f version.h ]]; then
......@@ -11,7 +12,6 @@ fi
EXECUTABLES="`find . -name '*.app'`"
#
# Copies libraries under <bzr_root> in the bundle and relocates them in the binary
#
......@@ -29,7 +29,11 @@ function fixbundle() {
if [[ "$library" =~ "$bzroot" ]]; then
echo "${exec}: Migrating `basename $library` in the bundle"
if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then
if [ ! -L $library ]; then
cp -f $library ${execpath}${exec}.app/Contents/Frameworks
else
resolvelink "$library" "`dirname $library`" "${execpath}/${exec}.app/Contents/Frameworks"
fi
fi
install_name_tool -change $library @executable_path/../Frameworks/`basename $library` ${execpath}${exec}.app/Contents/MacOS/${exec}
fi
......@@ -46,7 +50,11 @@ function fixbundle() {
for library in $LIBRARIES; do
if [[ "$library" =~ "$bzroot" ]]; then
if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then
if [ ! -L $library ]; then
cp -f $library ${exec}.app/Contents/Frameworks
else
resolvelink "$library" "`dirname $library`" "${execpath}/${exec}.app/Contents/Frameworks"
fi
fi
install_name_tool -change $library @executable_path/../Frameworks/`basename $library` $module
fi
......@@ -70,7 +78,11 @@ function fixbundle() {
for library in $LIBRARIES; do
if [[ "$library" =~ "$bzroot" ]]; then
if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then
if [ ! -L $library ]; then
cp -f $library ${exec}.app/Contents/Frameworks
else
resolvelink "$library" "`dirname $library`" "${execpath}/${exec}.app/Contents/Frameworks"
fi
echo "copied `basename $library` into bundle"
(( dynlib_migrate += 1))
fi
......@@ -84,8 +96,27 @@ function fixbundle() {
cd - >/dev/null
}
#
# This supports only links on the same dir (TODO ?)
#
#fixbundle $1 $2 $3
function resolvelink() {
local srclib="`basename $1`"
local srcpath="$2"
local destpath="$3"
#if is a file i expect a pointed ""
local pointed="`readlink ${srcpath}/${srclib}`"
if [ ! -f ${pointed} ]; then
resolvelink "${pointed}" "${srcpath}" "${destpath}"
echo "Link ${srclib} -> ${pointed} "
(cd "${destpath}"; ln -s "${pointed}" "${srclib}" )
else
echo "Copy ${srcpath}/${srclib} -> ${destpath} "
cp "${srcpath}/${srclib}" ${destpath}
fi
}
for executable in $EXECUTABLES;
do
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment