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" ) ...@@ -190,9 +190,11 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
set( TO_LINKER -Wl ) set( TO_LINKER -Wl )
endif() 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)
set( CMAKE_SHARED_LINKER_FLAGS "${TO_LINKER},--no-undefined" ) if( NOT APPLE )
set( CMAKE_MODULE_LINKER_FLAGS "${TO_LINKER},--no-undefined" ) 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" ) set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" )
endif() endif()
...@@ -345,12 +347,12 @@ check_find_package_result( OPENGL_FOUND "OpenGL" ) ...@@ -345,12 +347,12 @@ check_find_package_result( OPENGL_FOUND "OpenGL" )
if( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC ) if( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
add_custom_target( lib-wxpython ) add_custom_target( lib-wxpython )
include( download_pcre ) include( download_pcre )
include( download_swig ) include( download_swig )
include( download_wxpython ) include( download_wxpython )
add_dependencies( lib-wxpython pcre ) add_dependencies( lib-wxpython pcre )
add_dependencies( lib-wxpython swig ) add_dependencies( lib-wxpython swig )
add_dependencies( lib-wxpython libwxpython ) add_dependencies( lib-wxpython libwxpython )
#set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so;.dylib;.dll") #set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so;.dylib;.dll")
...@@ -361,6 +363,9 @@ add_custom_target( lib-wxpython ) ...@@ -361,6 +363,9 @@ add_custom_target( lib-wxpython )
if( KICAD_BUILD_STATIC ) if( KICAD_BUILD_STATIC )
message(STATUS "KICAD_BUILD_STATIC set") 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() endif()
if( KICAD_BUILD_DYNAMIC ) if( KICAD_BUILD_DYNAMIC )
...@@ -374,6 +379,9 @@ add_custom_target( lib-wxpython ) ...@@ -374,6 +379,9 @@ add_custom_target( lib-wxpython )
include( download_libpng ) include( download_libpng )
if( KICAD_SCRIPTING OR KICAD_SCRIPTING_WXPYTHON OR KICAD_SCRIPTING_MODULES ) if( KICAD_SCRIPTING OR KICAD_SCRIPTING_WXPYTHON OR KICAD_SCRIPTING_MODULES )
message(STATUS "Scripting ENABLED")
set( SWIG_EXECUTABLE ${SWIG_ROOT}/bin/swig ) set( SWIG_EXECUTABLE ${SWIG_ROOT}/bin/swig )
set( SWIG_INCLUDE ${SWIG_ROOT}/include ) set( SWIG_INCLUDE ${SWIG_ROOT}/include )
set( PYTHON_DEST ${LIBWXPYTHON_ROOT}/wxPython/lib/python2.6/site-packages ) set( PYTHON_DEST ${LIBWXPYTHON_ROOT}/wxPython/lib/python2.6/site-packages )
...@@ -505,18 +513,24 @@ set( INC_AFTER ...@@ -505,18 +513,24 @@ set( INC_AFTER
# Find Python and other scripting resources # Find Python and other scripting resources
if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES ) if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
if( NOT APPLE ) if( APPLE )
set( PythonInterp_FIND_VERSION )
else()
set( PYTHON_LIBRARY /System/Library/Frameworks/Python.framework/Versions/2.6/Python ) 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( PYTHON_INCLUDE_DIR /System/Library/Frameworks/Python.framework/Versions//2.6/include/python2.6 )
set( PythonInterp_FIND_VERSION 2.6 ) set( PythonInterp_FIND_VERSION 2.6 )
set( PythonLibs_FIND_VERSION 2.6 ) set( PythonLibs_FIND_VERSION 2.6 )
endif() endif()
# force a python version < 3.0
set( PythonInterp_FIND_VERSION 2.6)
set( PythonLibs_FIND_VERSION 2.6 )
find_package( PythonInterp ) find_package( PythonInterp )
check_find_package_result( PYTHONINTERP_FOUND "Python Interpreter" ) 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 # Get the correct Python site package install path from the Python interpreter found by
# FindPythonInterp unless the user specifically defined a custom path. # FindPythonInterp unless the user specifically defined a custom path.
if( NOT PYTHON_SITE_PACKAGE_PATH ) if( NOT PYTHON_SITE_PACKAGE_PATH )
...@@ -534,7 +548,7 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES ) ...@@ -534,7 +548,7 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
mark_as_advanced( PYTHON_DEST ) mark_as_advanced( PYTHON_DEST )
message( STATUS "Python module install path: ${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}" ) #message( STATUS "PYTHON_INCLUDE_DIRS:${PYTHON_INCLUDE_DIRS}" )
......
...@@ -138,9 +138,17 @@ bzr branch lp:kicad/stable kicad_src ...@@ -138,9 +138,17 @@ bzr branch lp:kicad/stable kicad_src
Components and Footprints libraries Components and Footprints libraries
all (schematic libs, 3D shapes ...) but new footprints libraries (use Download zip tool) all (schematic libs, 3D shapes ...) but new footprints libraries (use Download zip tool)
https://github.com/KiCad/kicad-library/ https://github.com/KiCad/kicad-library/
New footprints libraries (use Download zip tool for each lib you want) New footprints libraries (use Download zip tool for each lib you want)
https://github.com/KiCad/ for footprint libs (*.pretty folders) 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 Note also Kicad is able to read on github.com/KiCad/ the *.pretty folders
without download, using github plugin. without download, using github plugin.
(however the time to read them can be long) (however the time to read them can be long)
......
...@@ -8,84 +8,96 @@ ...@@ -8,84 +8,96 @@
static const unsigned char png[] = { static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 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, 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, 0xce, 0x00, 0x00, 0x05, 0x7d, 0x49, 0x44, 0x41, 0x54, 0x48, 0x4b, 0xbd, 0x95, 0xd9, 0x4f, 0x54,
0x55, 0x14, 0x86, 0xbf, 0x7b, 0x67, 0xfc, 0x4a, 0x1c, 0xdb, 0x72, 0xd3, 0x34, 0x4a, 0xe3, 0x28, 0x67, 0x18, 0xc6, 0x69, 0xaf, 0x9a, 0x36, 0x05, 0xda, 0x9b, 0x36, 0xbd, 0xed, 0x45, 0xfb, 0x87,
0xa5, 0xb1, 0xe2, 0x3a, 0x21, 0x88, 0x22, 0x0a, 0x34, 0x52, 0xda, 0xaa, 0xa2, 0x5d, 0x20, 0xd2, 0x34, 0xe9, 0x0d, 0x91, 0x75, 0x2c, 0xbb, 0x06, 0x4c, 0x34, 0x46, 0x22, 0x2d, 0x09, 0x04, 0x90,
0xec, 0x40, 0xa2, 0x11, 0x0b, 0x58, 0x50, 0x56, 0xac, 0x91, 0x8a, 0x58, 0x21, 0x58, 0x74, 0xd3, 0xcd, 0x85, 0x04, 0x8b, 0x28, 0x16, 0x94, 0x4d, 0x36, 0x45, 0x10, 0x18, 0x86, 0x75, 0x70, 0x1a,
0x15, 0xad, 0x94, 0x45, 0x57, 0x45, 0x42, 0x42, 0x65, 0x55, 0xb1, 0xa0, 0x40, 0xc5, 0x06, 0xa5, 0xa2, 0xec, 0xc8, 0x80, 0xc8, 0x3e, 0x08, 0x38, 0x1b, 0x30, 0x2c, 0xb3, 0x00, 0x0e, 0xe8, 0x08,
0x4f, 0x35, 0xcd, 0x4b, 0x4e, 0x1f, 0x4e, 0x5b, 0x8b, 0x46, 0x69, 0x1c, 0xb7, 0x71, 0x33, 0x9e, 0xd2, 0xa7, 0xdf, 0xfb, 0xea, 0x39, 0x72, 0xac, 0x4d, 0xd3, 0x34, 0xe9, 0x24, 0xcf, 0xcc, 0x9c,
0xc7, 0x61, 0x41, 0xc6, 0xb2, 0x63, 0x07, 0xe8, 0x86, 0x2b, 0xfd, 0x9a, 0x3b, 0x9a, 0x3b, 0xf7, 0x93, 0x73, 0xbe, 0xdf, 0xf7, 0xbc, 0xdb, 0xe7, 0x05, 0xc0, 0xeb, 0xff, 0x10, 0x7f, 0x15, 0x17,
0x3f, 0xff, 0x39, 0x67, 0xfe, 0x3b, 0x4a, 0x44, 0xf8, 0x3f, 0x86, 0x09, 0x70, 0xf6, 0xec, 0xd9, 0x17, 0xd7, 0x96, 0x94, 0x94, 0xa0, 0xbc, 0xbc, 0x1c, 0x55, 0x55, 0x55, 0xa8, 0xac, 0xac, 0x44,
0xf3, 0x4a, 0xa9, 0xf7, 0x4d, 0xd3, 0xc4, 0x30, 0x0c, 0x44, 0x04, 0xc7, 0x71, 0x70, 0x5d, 0x17, 0x59, 0x59, 0x19, 0xc4, 0x7d, 0x14, 0x16, 0x16, 0x22, 0x3f, 0x3f, 0x1f, 0x57, 0xae, 0x5c, 0xc1,
0xc7, 0x71, 0xaa, 0x78, 0xd1, 0x7b, 0xad, 0xf5, 0xb7, 0x13, 0x13, 0x13, 0x27, 0x00, 0x38, 0x7d, 0xe5, 0xcb, 0x97, 0x91, 0x9d, 0x9d, 0x8d, 0xf3, 0xe7, 0xcf, 0x23, 0x3d, 0x3d, 0x1d, 0xa9, 0xa9,
0xfa, 0x74, 0xec, 0xcc, 0x99, 0x33, 0x15, 0xdb, 0xb6, 0xc5, 0x75, 0xdd, 0xa6, 0x70, 0x1c, 0xa7, 0xa9, 0x48, 0x4a, 0x4a, 0x42, 0x42, 0x42, 0x02, 0xce, 0x9e, 0x3d, 0x8b, 0x33, 0x67, 0xce, 0xe0,
0x0a, 0xdb, 0xb6, 0xeb, 0x50, 0xa9, 0x54, 0xaa, 0xb0, 0x2c, 0xab, 0x8a, 0x52, 0xa9, 0x24, 0xe3, 0xd4, 0xa9, 0x53, 0x38, 0x71, 0xe2, 0x04, 0x8e, 0x1f, 0x3f, 0x8e, 0x98, 0x98, 0x98, 0x9b, 0x32,
0xe3, 0xe3, 0x9e, 0x88, 0x20, 0x22, 0x98, 0xae, 0xeb, 0x6a, 0xad, 0xb5, 0xa7, 0x94, 0x22, 0x9f, 0xe8, 0xfa, 0xf5, 0xeb, 0xde, 0x62, 0xc1, 0xbd, 0xfd, 0xfd, 0x7d, 0x1c, 0x1c, 0x1c, 0x7c, 0x50,
0xcf, 0xa3, 0x94, 0x02, 0x40, 0x29, 0x55, 0x37, 0x6f, 0x76, 0xdd, 0x6a, 0x68, 0xad, 0x49, 0x24, 0xaf, 0x5f, 0xbf, 0x96, 0x45, 0xcf, 0x1d, 0xd6, 0xde, 0xde, 0x9e, 0xac, 0x57, 0xaf, 0x5e, 0xc9,
0x12, 0x88, 0x88, 0xaa, 0x4b, 0x9d, 0xe7, 0x79, 0x4d, 0x37, 0x6f, 0x36, 0xff, 0x2f, 0x44, 0xcd, 0x7a, 0xfe, 0xfc, 0x39, 0xa2, 0xa2, 0xa2, 0xfe, 0x90, 0x41, 0x57, 0xaf, 0x5e, 0xf5, 0x2d, 0x2d,
0x9e, 0x9b, 0x00, 0xae, 0xeb, 0x02, 0x50, 0x2a, 0x95, 0x58, 0x59, 0x59, 0xa1, 0xa7, 0xa7, 0x07, 0x2d, 0xf5, 0xd0, 0x22, 0x26, 0x93, 0x09, 0x66, 0xb3, 0x99, 0x65, 0xb1, 0x58, 0x60, 0xb5, 0x5a,
0xad, 0x35, 0x0b, 0x0b, 0x0b, 0x6c, 0x6e, 0x96, 0x7f, 0x22, 0x11, 0x11, 0xfa, 0xfb, 0xfb, 0xab, 0x59, 0x4b, 0x4b, 0x4b, 0x18, 0x1e, 0x1e, 0x46, 0x7b, 0x7b, 0x3b, 0x6e, 0xdf, 0xbe, 0xcd, 0xce,
0x6b, 0x6a, 0xdf, 0x6d, 0x50, 0xd4, 0xd7, 0xd7, 0x47, 0x28, 0x14, 0xa2, 0x5c, 0x2e, 0x93, 0x4e, 0x6b, 0x6b, 0x6b, 0xa1, 0xd3, 0xe9, 0x30, 0x3d, 0x3d, 0x8d, 0x95, 0x95, 0x15, 0x85, 0x56, 0x57,
0xa7, 0x5f, 0x28, 0x7d, 0x22, 0x82, 0xd6, 0x1a, 0xad, 0x75, 0x23, 0xd1, 0xea, 0xea, 0x2a, 0x89, 0x57, 0xf1, 0xf2, 0xe5, 0x4b, 0x44, 0x46, 0x46, 0x42, 0x01, 0x12, 0x8e, 0x18, 0x24, 0x01, 0x24,
0x44, 0x02, 0x80, 0x44, 0x22, 0x81, 0x52, 0x0a, 0xcb, 0xb2, 0x50, 0x4a, 0x91, 0xcb, 0xe5, 0xea, 0x08, 0x01, 0xe6, 0xe7, 0xe7, 0x51, 0x53, 0x53, 0x83, 0xb1, 0xb1, 0x31, 0x38, 0x1c, 0x0e, 0x6c,
0x16, 0x6f, 0xde, 0x5c, 0x44, 0x18, 0x18, 0x18, 0xd8, 0x32, 0x75, 0x0d, 0x8a, 0x5c, 0xd7, 0x45, 0x6f, 0x6f, 0xc3, 0xe1, 0xda, 0xc4, 0xd6, 0xd6, 0x16, 0xd6, 0xd6, 0xd6, 0xa0, 0x56, 0xab, 0x79,
0x44, 0x50, 0x4a, 0x55, 0x1f, 0x2a, 0xa5, 0x48, 0xa7, 0xd3, 0xd5, 0xe8, 0x9a, 0x35, 0x87, 0xaf, 0x03, 0xf4, 0xac, 0xcd, 0x66, 0x63, 0xd1, 0xfd, 0x0f, 0x82, 0x6e, 0xdc, 0xb8, 0xc1, 0xa0, 0xc9,
0x60, 0x33, 0xb9, 0xbf, 0xb6, 0x81, 0xc8, 0x71, 0x9c, 0xa6, 0x11, 0xfd, 0x9b, 0xa2, 0x66, 0x0a, 0xc9, 0x49, 0xf4, 0xf4, 0xf4, 0xb0, 0x33, 0x82, 0x69, 0xb5, 0x5a, 0xdc, 0xbd, 0x7b, 0x17, 0x9b,
0xb3, 0xd9, 0x6c, 0xf5, 0xde, 0x2f, 0x49, 0x43, 0x33, 0xf8, 0x91, 0xf8, 0x1b, 0xf8, 0x85, 0xad, 0x9b, 0x9b, 0x68, 0xed, 0x99, 0x46, 0x58, 0x66, 0x33, 0x82, 0x52, 0x9b, 0xa0, 0x4a, 0xd7, 0x20,
0x55, 0x92, 0xcb, 0xe5, 0xb0, 0x6d, 0x9b, 0xb6, 0xb6, 0x36, 0x4c, 0xd3, 0xa4, 0x58, 0x2c, 0xb2, 0xe4, 0x5c, 0x13, 0x7e, 0xc9, 0xd7, 0xc1, 0xb6, 0xe1, 0xe2, 0xcd, 0x88, 0x35, 0xd0, 0xd5, 0xd5,
0xbe, 0xbe, 0x4e, 0x36, 0x9b, 0x25, 0x14, 0x0a, 0xd5, 0x29, 0x6c, 0x20, 0xb2, 0x6d, 0xbb, 0x4e, 0xc5, 0x8e, 0xd6, 0xd7, 0xd7, 0x19, 0x14, 0x11, 0x11, 0xa1, 0x04, 0x15, 0x14, 0x14, 0x30, 0x68,
0xb2, 0xbf, 0xf1, 0xfc, 0xfc, 0x7c, 0x55, 0x91, 0x65, 0x59, 0x88, 0x08, 0x83, 0x43, 0xaf, 0xf0, 0x6a, 0x6a, 0x8a, 0x1f, 0xa4, 0x9d, 0x93, 0x3b, 0x2a, 0x0c, 0x72, 0x10, 0x2f, 0x16, 0x8c, 0xc9,
0xd3, 0xd5, 0x87, 0x4c, 0xdd, 0x5c, 0xc2, 0x71, 0x3c, 0xd2, 0xdd, 0x09, 0xde, 0x79, 0xa3, 0x8f, 0xe9, 0x84, 0x76, 0xc4, 0x8a, 0x09, 0xa3, 0x13, 0xa6, 0x75, 0x37, 0x9e, 0x2e, 0x6f, 0xa1, 0xee,
0xc5, 0xc5, 0xfb, 0x14, 0x0a, 0x05, 0x46, 0x46, 0x46, 0x30, 0x0c, 0xa3, 0x91, 0xa8, 0x58, 0x2c, 0xe1, 0x02, 0x02, 0x52, 0xd4, 0xe8, 0x7d, 0xbc, 0x88, 0xd9, 0xd9, 0x59, 0xb4, 0xb4, 0xb4, 0x30,
0x12, 0x8b, 0xc5, 0xea, 0xd2, 0xb1, 0x59, 0x91, 0xe7, 0x79, 0xcc, 0xcc, 0xcc, 0xd0, 0xb2, 0xbd, 0xc4, 0x6e, 0xb7, 0x33, 0x28, 0x3c, 0x3c, 0xfc, 0x1d, 0x28, 0x33, 0x33, 0xd3, 0xf7, 0xda, 0xb5,
0x97, 0x93, 0xe7, 0xae, 0x71, 0x6c, 0x64, 0x0f, 0x1f, 0x0e, 0xec, 0xc2, 0xb2, 0x3d, 0xee, 0x14, 0x6b, 0x0c, 0x92, 0xec, 0x13, 0x4c, 0xa3, 0xd1, 0xc0, 0x68, 0x34, 0xa2, 0xac, 0x59, 0x8f, 0x58,
0x56, 0xf9, 0xea, 0xbb, 0x9b, 0x1c, 0x7d, 0xb5, 0x93, 0x3d, 0xe9, 0x34, 0x4b, 0x4b, 0x4b, 0x74, 0x01, 0x69, 0x1b, 0x5a, 0xc4, 0xe3, 0xf9, 0x35, 0xcc, 0x5a, 0x1c, 0x30, 0xad, 0x8a, 0xb0, 0xb9,
0x76, 0x76, 0x36, 0x57, 0xe4, 0x38, 0x4e, 0xc3, 0x47, 0x09, 0x30, 0x37, 0x37, 0x87, 0x88, 0xf0, 0x76, 0x61, 0x73, 0xb8, 0xd1, 0x33, 0xb5, 0x0a, 0xff, 0x64, 0x35, 0xec, 0xae, 0x6d, 0x34, 0x34,
0xf8, 0xf1, 0x63, 0x5e, 0x7f, 0x73, 0x98, 0x2f, 0xce, 0x5d, 0xe5, 0xb3, 0xf7, 0xf6, 0xd1, 0xb5, 0x34, 0x70, 0x54, 0x68, 0xa3, 0x04, 0x0a, 0x0b, 0x0b, 0x53, 0x82, 0x44, 0xe9, 0x7a, 0xa8, 0x82,
0x2d, 0x8a, 0xe3, 0x7a, 0x94, 0x2d, 0x9b, 0x4c, 0x77, 0x8c, 0x64, 0x6c, 0x88, 0xef, 0x7f, 0xbe, 0x96, 0x97, 0x97, 0xe5, 0x84, 0x8a, 0xfb, 0x70, 0x8a, 0x5c, 0xd0, 0x22, 0x45, 0x5a, 0x03, 0x3a,
0x4d, 0x3a, 0xd5, 0xcf, 0xfd, 0x85, 0x5b, 0x74, 0x74, 0x74, 0x6c, 0x5d, 0xa3, 0x66, 0xa9, 0xcb, 0x47, 0x97, 0xd8, 0xcd, 0x9c, 0x70, 0x62, 0x5a, 0x73, 0x63, 0xc9, 0xbe, 0xc3, 0x32, 0x0b, 0x77,
0x64, 0x32, 0x68, 0xad, 0xb1, 0x2c, 0x8b, 0x1f, 0x7e, 0xbf, 0xcb, 0xdb, 0x6f, 0xf5, 0x13, 0x8f, 0x85, 0x2d, 0x93, 0xb8, 0x54, 0xd9, 0x83, 0xb9, 0xb9, 0x39, 0xb4, 0xb6, 0xb6, 0xc2, 0xe9, 0x74,
0x46, 0x70, 0x3c, 0x01, 0xa5, 0x09, 0x06, 0x02, 0x78, 0x68, 0x44, 0x2a, 0xbc, 0x36, 0xd8, 0xc3, 0xc2, 0xe3, 0xf1, 0x20, 0x34, 0x34, 0x54, 0x09, 0xca, 0xc9, 0xc9, 0x51, 0x80, 0x9e, 0x3d, 0x7b,
0xc4, 0xc5, 0x69, 0x4e, 0x1c, 0xdd, 0xc5, 0xf2, 0xf2, 0x32, 0x91, 0x48, 0xa4, 0xb9, 0xa2, 0x66, 0xc6, 0xa0, 0xc1, 0x27, 0x0b, 0x88, 0xbe, 0xd8, 0x86, 0x5f, 0xef, 0xe9, 0x51, 0xdc, 0x36, 0x8e,
0x63, 0x7e, 0x7e, 0x1e, 0xdb, 0xb6, 0x31, 0x4d, 0x93, 0x85, 0x47, 0x25, 0x76, 0xf7, 0xec, 0xe0, 0xc1, 0x99, 0x15, 0x8c, 0x0a, 0x57, 0x93, 0x46, 0x3b, 0x66, 0xcd, 0x76, 0x18, 0x2c, 0x76, 0xcc,
0xe9, 0xb3, 0x32, 0xeb, 0xa6, 0x42, 0x21, 0xb8, 0xae, 0xc7, 0xda, 0xba, 0xcd, 0x83, 0x47, 0x4b, 0x98, 0xd6, 0xd1, 0x31, 0x60, 0x40, 0x44, 0x96, 0x86, 0x0b, 0xe8, 0xd6, 0xad, 0x5b, 0x32, 0xe8,
0xd8, 0x15, 0xe1, 0xb9, 0xe5, 0x10, 0x0e, 0x87, 0x29, 0x14, 0x0a, 0x74, 0x77, 0x77, 0xd7, 0xfb, 0xe8, 0xd1, 0xa3, 0x4a, 0x90, 0x68, 0x42, 0x06, 0x11, 0x84, 0x42, 0xd7, 0xdb, 0xdb, 0x8b, 0xdc,
0x5f, 0xb1, 0x58, 0xac, 0x76, 0xdd, 0xe6, 0x3a, 0x65, 0x32, 0x19, 0x32, 0x99, 0x0c, 0x86, 0x61, 0xdc, 0x5c, 0xdc, 0xd1, 0x8e, 0x22, 0xee, 0xb7, 0x07, 0x28, 0xee, 0x9c, 0x63, 0xb5, 0xe9, 0xad,
0x60, 0x1a, 0x0a, 0xcc, 0x20, 0xda, 0x0c, 0x12, 0x0c, 0x86, 0x88, 0x44, 0x22, 0x44, 0x5a, 0x5a, 0x18, 0x59, 0xb0, 0x63, 0x5c, 0x38, 0x9b, 0xb5, 0x8a, 0x22, 0x58, 0xd9, 0xc2, 0xa2, 0xd0, 0xe3,
0xc0, 0x0c, 0x93, 0xda, 0xd9, 0x49, 0x57, 0xe7, 0x76, 0x42, 0xc1, 0x00, 0x96, 0x65, 0xe1, 0x79, 0xf9, 0x75, 0x84, 0x65, 0x68, 0x38, 0xf4, 0xa2, 0x2f, 0xe1, 0x72, 0xb9, 0x18, 0x14, 0x12, 0x12,
0x5e, 0x43, 0x19, 0xaa, 0x8a, 0x6a, 0x53, 0xe7, 0x8f, 0xd9, 0xd9, 0x59, 0x3c, 0xcf, 0x63, 0x6d, 0xa2, 0x04, 0x65, 0x65, 0x65, 0x79, 0xa8, 0xe1, 0x08, 0x42, 0x3d, 0x40, 0x89, 0x8d, 0x8b, 0x8b,
0x6d, 0x8d, 0xc1, 0xde, 0x76, 0xae, 0xdc, 0xbe, 0xc7, 0xb3, 0xd5, 0x36, 0xa2, 0x21, 0x8d, 0x16, 0xc3, 0x83, 0x47, 0xd3, 0x88, 0xbc, 0xd0, 0x82, 0xdc, 0xfa, 0x11, 0x59, 0xd5, 0xbf, 0xcf, 0xe0,
0x07, 0x25, 0x36, 0xcf, 0x6d, 0xc5, 0xba, 0xa3, 0x58, 0x29, 0x7b, 0x84, 0x03, 0x42, 0xb9, 0x5c, 0xe1, 0x13, 0x33, 0x06, 0xa6, 0x2c, 0x18, 0x9e, 0xb6, 0x60, 0x64, 0xc6, 0x8c, 0xd6, 0xee, 0x31,
0x26, 0x99, 0x4c, 0x36, 0x3a, 0xba, 0xdf, 0xde, 0x00, 0x4f, 0x9e, 0x3c, 0x61, 0x7a, 0x7a, 0x1a, 0x44, 0xbe, 0x75, 0x54, 0x54, 0x54, 0xc4, 0xa5, 0x4f, 0xa0, 0xa0, 0xa0, 0xa0, 0x77, 0xa0, 0xf8,
0xcb, 0xb2, 0xaa, 0x35, 0x1a, 0x1c, 0x1c, 0x44, 0x6b, 0xcd, 0xb1, 0xfd, 0xbb, 0x78, 0xf8, 0xe7, 0xf8, 0x78, 0x5f, 0x31, 0x4e, 0x64, 0x10, 0xf5, 0x00, 0x55, 0x0e, 0x55, 0x8c, 0x75, 0x69, 0x19,
0x53, 0x08, 0x44, 0x69, 0x8d, 0x6f, 0x63, 0xfb, 0x8e, 0x9d, 0x74, 0xa5, 0x76, 0xd3, 0xd3, 0xd3, 0x7e, 0x49, 0x0d, 0xec, 0xa6, 0xe4, 0xfe, 0x53, 0x59, 0x77, 0x1e, 0x2c, 0xa2, 0x5d, 0x6f, 0x41,
0x4b, 0x47, 0x67, 0x17, 0x33, 0xf9, 0xa7, 0x7c, 0x3a, 0x3a, 0xc4, 0xf5, 0xeb, 0xd7, 0x49, 0xa5, 0xef, 0xe4, 0x0a, 0x1e, 0x19, 0x6c, 0xa8, 0xd2, 0x4d, 0xe1, 0x62, 0xf9, 0x43, 0xce, 0x51, 0x63,
0x52, 0xcd, 0xdd, 0xdb, 0xaf, 0x91, 0x61, 0x18, 0xa4, 0xd3, 0x69, 0x5a, 0x5b, 0x5b, 0xa9, 0x54, 0x63, 0xa3, 0x0c, 0x0a, 0x08, 0x08, 0x50, 0x82, 0x52, 0x52, 0x52, 0x38, 0x74, 0xe4, 0x46, 0x02,
0x2a, 0xcc, 0xce, 0xce, 0x22, 0x22, 0x84, 0xc3, 0x61, 0x2e, 0x5f, 0xfe, 0x8d, 0x93, 0xe3, 0x07, 0xd1, 0x2c, 0x1b, 0x1a, 0x1a, 0x42, 0x91, 0xfa, 0x91, 0xa8, 0x3a, 0xad, 0xc2, 0x55, 0xbe, 0x5a,
0xf8, 0xe6, 0xfc, 0x24, 0xd1, 0x48, 0x80, 0x9d, 0xed, 0x61, 0xa2, 0xad, 0x11, 0xd6, 0x2a, 0x26, 0x8f, 0xa2, 0xe6, 0x61, 0x54, 0xb4, 0x0d, 0xa3, 0xe6, 0xfe, 0x08, 0x54, 0x69, 0x1a, 0xac, 0x6e,
0x53, 0xb9, 0x02, 0x9f, 0xbc, 0x3b, 0x40, 0x40, 0x39, 0x58, 0x96, 0xc5, 0xe4, 0xe4, 0x24, 0xc3, 0x38, 0x51, 0x5f, 0x5f, 0x8f, 0xf1, 0xf1, 0x71, 0x6e, 0x09, 0x02, 0x1d, 0x39, 0x72, 0x44, 0x09,
0xc3, 0xc3, 0xf5, 0x44, 0xc5, 0x62, 0x91, 0x78, 0x3c, 0x8e, 0x88, 0x10, 0x8f, 0xc7, 0xd1, 0x5a, 0x12, 0x83, 0x91, 0x1d, 0x49, 0x90, 0x8d, 0x8d, 0x0d, 0x18, 0x0c, 0x06, 0x1c, 0x3b, 0x76, 0x8c,
0x57, 0x15, 0xf6, 0xf7, 0xf7, 0x63, 0x18, 0x06, 0x4a, 0x29, 0x8a, 0xc5, 0x22, 0xd7, 0xfe, 0xb8, 0x9b, 0x35, 0x2e, 0x4f, 0x8b, 0xa8, 0x4b, 0x5a, 0xdc, 0xd4, 0xce, 0xa1, 0x54, 0x37, 0x8f, 0x8a,
0xcc, 0x97, 0xe3, 0xc3, 0xdc, 0x5b, 0x5a, 0xe7, 0xd6, 0x9d, 0x65, 0xca, 0x65, 0x9b, 0x97, 0x5f, 0xae, 0x05, 0xdc, 0xeb, 0x33, 0xa2, 0x40, 0x54, 0x1b, 0x35, 0x70, 0xff, 0xb8, 0x91, 0x1b, 0x5c,
0x4a, 0xf0, 0xc1, 0x81, 0x7d, 0x5c, 0xbd, 0x32, 0x89, 0x93, 0x48, 0x10, 0x0a, 0x85, 0xc8, 0xe7, 0xb4, 0x09, 0xfa, 0xfb, 0xfb, 0x79, 0xce, 0x51, 0x79, 0xfb, 0xf9, 0xf9, 0x29, 0x41, 0x62, 0xfa,
0xf3, 0x2c, 0x2e, 0x2e, 0x36, 0xa6, 0xae, 0xb6, 0xeb, 0x6a, 0xbd, 0xad, 0xd6, 0x50, 0x93, 0xc9, 0xfe, 0x05, 0x44, 0xbf, 0x34, 0xb9, 0xd3, 0xd2, 0xd2, 0xde, 0x4c, 0x86, 0xde, 0x19, 0xa8, 0xce,
0x24, 0x87, 0x0f, 0x1f, 0x26, 0x97, 0xcb, 0xf1, 0x60, 0xee, 0x0a, 0xa9, 0xd0, 0x12, 0x43, 0x1d, 0xa9, 0x45, 0xb9, 0x37, 0x20, 0x38, 0x55, 0xcd, 0xfa, 0x39, 0xff, 0x3e, 0xd6, 0x1c, 0x5b, 0xfc,
0xcf, 0x59, 0xbe, 0x7b, 0x8d, 0x5f, 0x7f, 0xb9, 0x44, 0xa9, 0x54, 0x22, 0x9f, 0xcf, 0xfb, 0x27, 0xbc, 0x5e, 0xaf, 0xe7, 0x86, 0xad, 0xae, 0xae, 0xe6, 0x89, 0xf2, 0xe2, 0xc5, 0x0b, 0x25, 0x48,
0x2b, 0x22, 0x42, 0x7b, 0x7b, 0x3b, 0xa3, 0xa3, 0xa3, 0x2d, 0x00, 0x66, 0x20, 0x10, 0x10, 0xcb, 0x8c, 0x73, 0x5f, 0x01, 0x53, 0x80, 0xa8, 0xb3, 0xe9, 0x65, 0x6a, 0xbc, 0xe6, 0xe6, 0x66, 0x9e,
0xb2, 0xb4, 0xaf, 0xa8, 0xd6, 0xa7, 0x6a, 0x7d, 0xcb, 0x0f, 0x60, 0xef, 0xde, 0xbd, 0x78, 0x9e, 0x59, 0xb4, 0x53, 0x8a, 0xbd, 0x7b, 0x67, 0x87, 0x9b, 0x73, 0x77, 0x77, 0x97, 0x9f, 0xa3, 0xbe,
0x87, 0xeb, 0xba, 0xd8, 0xb6, 0x5d, 0xb5, 0x1b, 0xa5, 0x14, 0x97, 0x2e, 0xfd, 0x4d, 0xd8, 0xd6, 0xa1, 0xbc, 0xd0, 0xa0, 0xcd, 0xc8, 0xc8, 0xe0, 0x69, 0x42, 0x21, 0x24, 0xf9, 0xfb, 0xfb, 0x2b,
0xd6, 0x46, 0xa5, 0x52, 0xe1, 0xe0, 0xc1, 0x83, 0x4c, 0x4d, 0x4d, 0xcd, 0x1f, 0x39, 0x72, 0x64, 0x41, 0xe2, 0x1c, 0xf1, 0xd0, 0x68, 0x97, 0xdc, 0x48, 0x20, 0x5a, 0x9c, 0x4a, 0xbd, 0xb3, 0xb3,
0x9f, 0x02, 0x92, 0x63, 0x63, 0x63, 0x3f, 0x2a, 0xa5, 0xf6, 0xfb, 0x2f, 0xd5, 0xda, 0xbd, 0x3f, 0x13, 0x89, 0x89, 0x89, 0x5c, 0x20, 0xd1, 0xd1, 0xd1, 0x7c, 0xf6, 0x9c, 0x3c, 0x79, 0x12, 0xc9,
0xf7, 0x3c, 0xaf, 0xee, 0xea, 0xc3, 0x3f, 0x0e, 0x6a, 0x8f, 0x86, 0x43, 0x87, 0x0e, 0xe9, 0xde, 0xc9, 0xc9, 0xa8, 0xab, 0xab, 0x63, 0xe7, 0x4d, 0x4d, 0x4d, 0x5c, 0x71, 0x14, 0x01, 0x3a, 0xc7,
0xde, 0x5e, 0x5a, 0x5a, 0x5a, 0x48, 0xa5, 0x52, 0x9c, 0x3a, 0x75, 0xea, 0xa2, 0x09, 0x78, 0x17, 0xe8, 0x9a, 0x7a, 0x51, 0x9c, 0x61, 0xdf, 0xc8, 0x20, 0xf1, 0x12, 0x83, 0x28, 0x2f, 0xdd, 0xdd,
0x2e, 0x5c, 0xf8, 0x38, 0x16, 0x8b, 0xf5, 0x2a, 0xa5, 0xa2, 0x7e, 0x83, 0x00, 0x0a, 0x10, 0x40, 0xdd, 0xdc, 0xb8, 0x92, 0x23, 0xea, 0x09, 0x0a, 0x1d, 0xb9, 0xa1, 0x24, 0x93, 0x6b, 0x2a, 0x7f,
0x89, 0x88, 0x29, 0x22, 0x06, 0x60, 0x88, 0x88, 0x21, 0x22, 0xda, 0x9f, 0x6f, 0xa4, 0x5f, 0x01, 0xba, 0xa6, 0xf0, 0x50, 0x2e, 0xe8, 0x3f, 0x0d, 0x5f, 0x1a, 0x41, 0x15, 0x15, 0x15, 0x5c, 0x48,
0x9e, 0x52, 0xca, 0x03, 0xec, 0x1b, 0x37, 0x6e, 0xc4, 0x8e, 0x1f, 0x3f, 0xfe, 0xf9, 0xd8, 0xd8, 0xd4, 0x4f, 0x14, 0x4a, 0x31, 0x75, 0x6c, 0x02, 0xf6, 0x3d, 0x83, 0x62, 0x63, 0x63, 0x19, 0x44,
0x58, 0x3c, 0x1a, 0x8d, 0x12, 0x0c, 0x06, 0x5d, 0xb5, 0x11, 0x8d, 0x06, 0xc2, 0x1b, 0x08, 0x6e, 0x53, 0x98, 0x9a, 0x96, 0x5e, 0x94, 0x1c, 0xf5, 0xf5, 0xf5, 0xc9, 0xa2, 0xeb, 0x81, 0x81, 0x01,
0xf5, 0x73, 0xb3, 0x11, 0x84, 0xb1, 0x01, 0x5d, 0x43, 0xc2, 0x46, 0x50, 0x02, 0xb8, 0xc0, 0x7a, 0xd6, 0xe0, 0xe0, 0x20, 0x9f, 0x45, 0x54, 0x5d, 0x14, 0x76, 0x02, 0xd2, 0x71, 0x41, 0x47, 0x0a,
0x2a, 0x95, 0xf2, 0xb2, 0xd9, 0xec, 0x47, 0xf1, 0x78, 0x3c, 0xb9, 0xbc, 0xbc, 0xfc, 0xf5, 0x5f, 0x41, 0xc9, 0x0d, 0x9d, 0xd4, 0xa3, 0xa3, 0xa3, 0xe4, 0x4a, 0xe7, 0x25, 0x6a, 0xdd, 0x57, 0x54,
0x8c, 0x86, 0xc8, 0x61, 0x09, 0x89, 0x45, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0x97, 0x87, 0x5e, 0x90, 0xf2, 0x23, 0x85, 0x8e, 0x7e, 0xdf, 0x77, 0x44, 0x15, 0xb5, 0x23, 0xf2,
0xae, 0x42, 0x60, 0x82, 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" }}; const BITMAP_OPAQUE find_xpm[1] = {{ png, sizeof( png ), "find_xpm" }};
......
...@@ -8,85 +8,52 @@ ...@@ -8,85 +8,52 @@
static const unsigned char png[] = { static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 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, 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, 0xce, 0x00, 0x00, 0x02, 0xbc, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0xb1, 0x6e, 0x1b,
0x75, 0x18, 0x87, 0x31, 0x6a, 0xe2, 0xc2, 0x98, 0xe8, 0x86, 0x8d, 0x89, 0x71, 0xa3, 0x18, 0x1a, 0x47, 0x10, 0x86, 0xbf, 0x99, 0x3b, 0x16, 0x76, 0xc3, 0xe8, 0x00, 0x35, 0x24, 0x61, 0x50, 0x4f,
0x59, 0x6a, 0x5c, 0xba, 0xe0, 0xdb, 0x98, 0x7e, 0x08, 0x16, 0x5d, 0xb0, 0x64, 0x86, 0x96, 0x05, 0xe2, 0x56, 0x2f, 0xa1, 0x57, 0x48, 0xa0, 0x52, 0x11, 0x54, 0x07, 0x10, 0x90, 0x56, 0xb0, 0xe1,
0x94, 0x36, 0x1d, 0x80, 0x96, 0x99, 0x36, 0x05, 0x0a, 0x65, 0x86, 0x32, 0xcf, 0x73, 0x69, 0x65, 0xca, 0xae, 0xf8, 0x00, 0x2e, 0xd9, 0xa4, 0x15, 0x60, 0x40, 0x10, 0xd2, 0xa4, 0x10, 0xa1, 0x44,
0x86, 0x0b, 0x1c, 0xc6, 0x0b, 0xbc, 0xfe, 0x9e, 0x57, 0xcf, 0xe5, 0x5c, 0x5b, 0x63, 0x62, 0xe2, 0xe1, 0x11, 0x48, 0x63, 0x8b, 0x80, 0x62, 0x92, 0xb7, 0xb7, 0xeb, 0xc2, 0xdc, 0xe3, 0xde, 0xf2,
0x49, 0xde, 0x1c, 0xee, 0xff, 0x9c, 0xfb, 0x7b, 0xde, 0xf9, 0x92, 0x92, 0x92, 0x92, 0xf2, 0x45, 0x8e, 0xb4, 0x81, 0x64, 0x81, 0xc5, 0xce, 0x2d, 0xee, 0xf6, 0x9f, 0x6f, 0x66, 0x67, 0x70, 0x02,
0x5a, 0x5a, 0xda, 0x77, 0x19, 0x19, 0x19, 0x37, 0xfe, 0x0f, 0x4b, 0x4f, 0x4f, 0xff, 0x41, 0x8c, 0x0c, 0x81, 0x01, 0x90, 0xf2, 0xff, 0x0c, 0x03, 0xfc, 0x9d, 0x02, 0x2f, 0x3e, 0x7e, 0xfc, 0xf4,
0x2f, 0x65, 0x29, 0xe9, 0xbf, 0xaf, 0xad, 0xc5, 0x36, 0xb7, 0xb6, 0x6c, 0x6b, 0x7b, 0xdb, 0xb6, 0x9b, 0x31, 0x06, 0x51, 0x41, 0x64, 0x3d, 0x01, 0xc2, 0x55, 0x04, 0xe0, 0xeb, 0xf3, 0x7a, 0xaf,
0x77, 0x76, 0x6c, 0x71, 0x69, 0xc9, 0x76, 0xf7, 0xf6, 0x6c, 0x2f, 0x16, 0xb3, 0x2d, 0x9d, 0x2f, 0x7a, 0x16, 0x69, 0x55, 0x49, 0x92, 0x84, 0xe7, 0xcf, 0x9e, 0xbd, 0x4c, 0x01, 0x2d, 0x8a, 0x15,
0x2e, 0x2e, 0x5a, 0x6c, 0x7f, 0x3f, 0x61, 0x73, 0xf3, 0xf3, 0x76, 0x70, 0x78, 0xe8, 0xb6, 0xba, 0x77, 0x77, 0x13, 0x86, 0x47, 0x47, 0xa8, 0x2a, 0xaa, 0xeb, 0x43, 0x62, 0x51, 0xd9, 0xec, 0xe3,
0xba, 0x6a, 0x87, 0x41, 0x60, 0x83, 0xaf, 0x5f, 0x5b, 0x4d, 0x6d, 0xad, 0xad, 0xbe, 0x7d, 0xeb, 0x1c, 0x02, 0xb8, 0xc0, 0xa6, 0x41, 0xd4, 0x59, 0x0b, 0xa0, 0x29, 0x80, 0x26, 0x09, 0xfd, 0x7e,
0x9f, 0x03, 0x99, 0xdf, 0x8f, 0x8e, 0xe2, 0x62, 0xfc, 0x04, 0xe8, 0xc7, 0xb5, 0xb5, 0xb5, 0x60, 0x8f, 0x24, 0xd1, 0xcd, 0xe1, 0x91, 0xc0, 0x16, 0x61, 0xb8, 0xc6, 0x84, 0xc1, 0xf0, 0xce, 0xa9,
0x71, 0x69, 0xd9, 0xd6, 0x37, 0x36, 0xdd, 0x9e, 0x3c, 0x7d, 0x6a, 0x23, 0xa3, 0xa3, 0x0e, 0xdd, 0xdf, 0xc8, 0xf3, 0xbc, 0x4e, 0x21, 0x82, 0xa8, 0xa2, 0xb1, 0xdd, 0xb4, 0xae, 0xed, 0xf0, 0xdd,
0xd8, 0xd4, 0xe7, 0x27, 0x4f, 0x6c, 0x6a, 0x7a, 0xda, 0xc1, 0x38, 0xc0, 0xf3, 0xf5, 0xf5, 0x75, 0x6a, 0xae, 0x85, 0x52, 0x1f, 0xc7, 0xfe, 0x60, 0x40, 0x92, 0x24, 0x88, 0xf7, 0xe2, 0x7b, 0xc8,
0xdb, 0x17, 0xf4, 0xa9, 0xfe, 0xde, 0x3f, 0x38, 0xb0, 0x87, 0x0f, 0x1f, 0x5a, 0x5e, 0x5e, 0x9e, 0x62, 0x3b, 0x18, 0xaa, 0x1a, 0x10, 0x39, 0x47, 0x3e, 0x9d, 0x7e, 0x7d, 0x7f, 0xed, 0x85, 0x36,
0x03, 0x43, 0x27, 0x30, 0x81, 0x2e, 0xc5, 0xf8, 0xc5, 0x41, 0xeb, 0x1b, 0x1b, 0xc1, 0xca, 0x9b, 0x90, 0x35, 0x12, 0x89, 0x54, 0x44, 0xb2, 0x8f, 0x48, 0x54, 0xe9, 0xf7, 0xfb, 0xa8, 0x6a, 0x8d,
0x37, 0xb6, 0xb4, 0xbc, 0x6c, 0x43, 0xc3, 0xc3, 0x46, 0x74, 0x2e, 0x3e, 0x35, 0xe5, 0xc2, 0x3b, 0xc2, 0xdb, 0x44, 0x7b, 0xec, 0x58, 0xd9, 0x9b, 0xa3, 0xd9, 0xac, 0x9e, 0xa3, 0x40, 0x54, 0x23,
0xbb, 0xbb, 0x56, 0x5f, 0x5f, 0xef, 0x91, 0x22, 0xfe, 0xa2, 0xa5, 0xc5, 0xe4, 0x9c, 0x0b, 0xd5, 0x42, 0xef, 0x50, 0xe8, 0xd8, 0x56, 0x7e, 0x83, 0x59, 0x11, 0xa9, 0x2a, 0xfd, 0x5e, 0xaf, 0x4e,
0xd4, 0xd4, 0xd8, 0xa1, 0xee, 0x8f, 0x1e, 0x3d, 0xb2, 0xfc, 0xfc, 0x7c, 0x1b, 0x1a, 0x1a, 0xf2, 0x14, 0x51, 0xc5, 0x07, 0xee, 0xa2, 0x68, 0x1a, 0x7b, 0x6f, 0x5d, 0x9b, 0x97, 0xfb, 0x28, 0x9a,
0x68, 0x42, 0x3b, 0x8a, 0x82, 0x36, 0x04, 0xea, 0xed, 0xeb, 0xb3, 0xb1, 0xf1, 0x71, 0x2b, 0x2c, 0x89, 0x44, 0xb6, 0x73, 0xd4, 0x42, 0x16, 0xc7, 0xbe, 0xed, 0xb9, 0x91, 0xc8, 0x39, 0xc7, 0x74,
0x2c, 0x74, 0x20, 0x69, 0xc4, 0xf3, 0xb9, 0xb9, 0x39, 0x4f, 0x17, 0x11, 0x8e, 0xca, 0x10, 0x6f, 0x3a, 0xad, 0x2a, 0x3c, 0x14, 0xd1, 0x16, 0x82, 0x98, 0x26, 0x14, 0x6c, 0x25, 0x12, 0x55, 0x06,
0x6d, 0x6d, 0x55, 0xe4, 0x1b, 0x2e, 0x54, 0x5b, 0x57, 0x87, 0x98, 0x3d, 0x7e, 0xfc, 0xd8, 0x0a, 0x83, 0xc1, 0x86, 0x68, 0x5d, 0xe1, 0x12, 0x79, 0xdb, 0x46, 0xf4, 0x2d, 0xb9, 0xaa, 0x72, 0x34,
0x0a, 0x0a, 0x6c, 0x58, 0x8e, 0x1e, 0x1d, 0x1f, 0x27, 0xec, 0xf8, 0xe4, 0xe4, 0x1a, 0xb4, 0xb9, 0xf5, 0x75, 0xb4, 0x23, 0x17, 0x6d, 0x44, 0x6d, 0x74, 0xe1, 0x77, 0xb5, 0x1c, 0x35, 0x25, 0x7f,
0xb9, 0x19, 0x90, 0xa6, 0x49, 0x45, 0x90, 0x93, 0x93, 0x63, 0xe5, 0x77, 0xef, 0x7a, 0x54, 0x6f, 0x5f, 0xcd, 0x78, 0xdb, 0x5a, 0x8b, 0x73, 0x0e, 0xe7, 0x1c, 0x3e, 0x1d, 0x5b, 0xa1, 0x73, 0xeb,
0xdf, 0xbd, 0x73, 0xef, 0x0f, 0x94, 0x9a, 0xd1, 0xb1, 0x31, 0x1b, 0x93, 0x21, 0xde, 0xda, 0xd6, 0x5b, 0xd7, 0xed, 0x76, 0x6b, 0x5d, 0xba, 0xc9, 0xb3, 0x78, 0xb5, 0xd6, 0x6e, 0x4d, 0x2f, 0x06,
0x66, 0x72, 0xce, 0x85, 0xea, 0x04, 0x3a, 0xd6, 0xbd, 0xb2, 0xb2, 0xd2, 0x9d, 0x1c, 0x19, 0x19, 0x90, 0xa6, 0x69, 0x9d, 0xa8, 0x17, 0xdc, 0xba, 0x7d, 0xb5, 0xe2, 0xf7, 0xca, 0xb2, 0xc4, 0x5a,
0xb1, 0x93, 0x93, 0x93, 0xa8, 0x45, 0x40, 0x5b, 0x5b, 0x01, 0x29, 0xa3, 0x0e, 0x39, 0xb9, 0xb9, 0x4b, 0x59, 0x96, 0x18, 0x63, 0xb6, 0xc4, 0x54, 0x95, 0xc5, 0x62, 0x61, 0x00, 0x57, 0x11, 0xcd,
0x96, 0x2b, 0x7b, 0xf9, 0xf2, 0xa5, 0xa9, 0x49, 0xac, 0x45, 0xde, 0x53, 0x54, 0x20, 0xe3, 0x8a, 0xf2, 0x9c, 0x1f, 0xba, 0xdd, 0xc6, 0xb0, 0x34, 0x89, 0xfa, 0x03, 0x8b, 0xa2, 0xc0, 0x18, 0xc3,
0x18, 0x71, 0x9e, 0xe1, 0x08, 0x42, 0xa4, 0xf4, 0xf4, 0xf4, 0xd4, 0xaa, 0xaa, 0xaa, 0xac, 0xa8, 0x6a, 0xb5, 0x62, 0xb1, 0x58, 0xb0, 0x5c, 0x2e, 0x29, 0x8a, 0x82, 0x4e, 0xa7, 0x83, 0xb5, 0xd6,
0xa8, 0xc8, 0xa3, 0x3e, 0x3d, 0x3b, 0xb3, 0x33, 0x19, 0x77, 0x3d, 0xbb, 0x06, 0xa9, 0xb3, 0x02, 0x5e, 0x5d, 0x5d, 0xbd, 0x03, 0xe6, 0x1b, 0xa2, 0xa8, 0x33, 0xec, 0x0a, 0x9d, 0x17, 0x31, 0xc6,
0xea, 0x30, 0x2d, 0x10, 0x90, 0x5c, 0x15, 0x15, 0x31, 0x0a, 0x4e, 0x9a, 0x54, 0x50, 0x1b, 0x9f, 0x60, 0x8c, 0xe1, 0xe9, 0xe9, 0x89, 0x9b, 0x9b, 0x1b, 0x44, 0x84, 0x2c, 0xcb, 0xc8, 0xb2, 0x8c,
0x98, 0xb0, 0x09, 0x19, 0xe2, 0xed, 0xed, 0xed, 0xb6, 0xad, 0xd4, 0x02, 0x68, 0x6c, 0x6c, 0x74, 0xf9, 0x7c, 0xee, 0x2e, 0x2f, 0x2f, 0x5f, 0x8d, 0x46, 0xa3, 0xb7, 0xc0, 0x1f, 0x55, 0x1d, 0xe5,
0xd1, 0xea, 0xea, 0x6a, 0x2b, 0x2e, 0x2e, 0x76, 0x67, 0xce, 0xcf, 0xcf, 0xa3, 0x16, 0x01, 0x6d, 0x79, 0x5e, 0x8b, 0xed, 0xae, 0xab, 0xeb, 0x9c, 0xa3, 0x2c, 0xcb, 0x2a, 0x64, 0x45, 0x51, 0x20,
0x6f, 0x07, 0x0b, 0x6a, 0xe1, 0xe9, 0x99, 0x19, 0x87, 0xe4, 0xa9, 0xa8, 0x80, 0x48, 0x4f, 0x9b, 0x22, 0x1c, 0x1f, 0x1f, 0x33, 0x1c, 0x0e, 0x79, 0x7c, 0x7c, 0x74, 0x17, 0x17, 0x17, 0xbf, 0x8e,
0xd2, 0x44, 0x6a, 0x26, 0x27, 0x27, 0xdd, 0x10, 0xef, 0xe8, 0xe8, 0xb0, 0x1d, 0xa5, 0x1a, 0x21, 0x46, 0xa3, 0xd7, 0xc0, 0x2d, 0xf0, 0x39, 0xf5, 0x87, 0xf5, 0x7a, 0xbd, 0xbd, 0xf5, 0x20, 0x22,
0x40, 0xdc, 0x01, 0x95, 0x94, 0x94, 0xb8, 0x33, 0xf1, 0x78, 0x3c, 0x61, 0x49, 0x20, 0xd5, 0x27, 0xd5, 0xcd, 0xf2, 0xb9, 0x29, 0xcb, 0x92, 0xe5, 0x6a, 0xc5, 0xc1, 0xc1, 0x01, 0xb3, 0xd9, 0x8c,
0x98, 0x90, 0x08, 0x20, 0x20, 0x74, 0x4f, 0xc7, 0xab, 0x57, 0x0e, 0x02, 0x48, 0x14, 0x74, 0x20, 0x87, 0x87, 0x07, 0x7b, 0x7e, 0x7e, 0xfe, 0xcb, 0x78, 0x3c, 0x7e, 0x07, 0xfc, 0xe9, 0x9c, 0x5b,
0x11, 0xe3, 0xfd, 0x2b, 0x3d, 0xdb, 0x55, 0x06, 0x10, 0x6a, 0x6a, 0x6a, 0xf2, 0x7b, 0x43, 0x43, 0xd6, 0x3a, 0x43, 0x4c, 0xb4, 0x4b, 0xd4, 0x8b, 0x79, 0xb2, 0xe5, 0x62, 0xc1, 0xe1, 0xe1, 0x21,
0x43, 0x12, 0xe8, 0xe2, 0xe2, 0xe2, 0x7d, 0x90, 0xbc, 0x0b, 0x68, 0xe3, 0x59, 0x75, 0x18, 0x90, 0x93, 0xc9, 0xc4, 0x9c, 0x9e, 0x9e, 0xfe, 0x3c, 0x1e, 0x8f, 0xdf, 0x00, 0x13, 0x2f, 0xb2, 0xe9,
0x7c, 0x75, 0x4f, 0x67, 0x57, 0x97, 0xd7, 0x81, 0x88, 0x88, 0x82, 0x68, 0x00, 0xe1, 0x3d, 0x11, 0x0c, 0xdf, 0x48, 0xe4, 0x45, 0x42, 0xb1, 0xb2, 0x2c, 0x49, 0x92, 0x84, 0xfb, 0xfb, 0xfb, 0xf9,
0xed, 0xe9, 0x7d, 0x84, 0x88, 0x08, 0x51, 0x3a, 0x2f, 0x04, 0xf1, 0x39, 0x34, 0xbd, 0x93, 0x0c, 0xd9, 0xd9, 0xd9, 0x8f, 0xd7, 0xd7, 0xd7, 0xef, 0x81, 0x4f, 0xce, 0xb9, 0x32, 0xfc, 0x2e, 0x05,
0x1a, 0x18, 0x18, 0xf0, 0x89, 0x07, 0x42, 0x9b, 0x76, 0x75, 0x77, 0x5b, 0xbf, 0xce, 0x00, 0x13, 0xac, 0x26, 0x09, 0x59, 0x96, 0xed, 0xec, 0x02, 0x71, 0x2f, 0x4b, 0xd3, 0x14, 0xe7, 0x1c, 0x69,
0x05, 0x83, 0x49, 0xe1, 0x11, 0xe7, 0x79, 0xd8, 0x81, 0xb7, 0x6e, 0xdd, 0xf2, 0xe8, 0x2e, 0x2f, 0xa7, 0x63, 0x6e, 0x6f, 0x6f, 0x3f, 0x9c, 0x9c, 0x9c, 0xfc, 0x54, 0x14, 0xc5, 0xef, 0xc0, 0xbf,
0x2f, 0xed, 0xf6, 0xed, 0xdb, 0xee, 0x10, 0x7f, 0x87, 0x26, 0xd8, 0x35, 0x48, 0x2f, 0x06, 0x0c, 0xae, 0x21, 0xd9, 0xf2, 0x1f, 0xfc, 0x40, 0x16, 0xc0, 0x5f, 0xc0, 0x3f, 0x61, 0xa8, 0xe2, 0xf1,
0xdd, 0xbc, 0x40, 0x88, 0x14, 0xa8, 0x4d, 0x7b, 0x7a, 0x7a, 0x6c, 0x60, 0x70, 0xd0, 0xca, 0xcb, 0x05, 0x95, 0x9b, 0x4e, 0x78, 0x5f, 0x66, 0xb8, 0x85, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
0xcb, 0x3d, 0x8a, 0xe6, 0xe6, 0x66, 0x7b, 0xfe, 0xfc, 0xb9, 0x83, 0x2a, 0x2a, 0x2a, 0xbc, 0xbb, 0x44, 0xae, 0x42, 0x60, 0x82,
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,
}; };
const BITMAP_OPAQUE new_pcb_xpm[1] = {{ png, sizeof( png ), "new_pcb_xpm" }}; const BITMAP_OPAQUE new_pcb_xpm[1] = {{ png, sizeof( png ), "new_pcb_xpm" }};
......
...@@ -8,214 +8,88 @@ ...@@ -8,214 +8,88 @@
static const unsigned char png[] = { static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 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, 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, 0x87, 0x00, 0x00, 0x05, 0x02, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xdd, 0x59, 0x5b, 0x6c, 0x14,
0xd7, 0x9d, 0x80, 0xbf, 0xfb, 0xf0, 0xcc, 0xd8, 0x1e, 0x3f, 0xc6, 0x9e, 0xf1, 0x1b, 0x1b, 0x1c, 0x55, 0x18, 0x5e, 0xdd, 0x52, 0x15, 0xcb, 0x92, 0x72, 0x79, 0xe0, 0x09, 0xd2, 0x68, 0x2f, 0x5a,
0x8c, 0xbd, 0xa6, 0x36, 0x09, 0x09, 0x10, 0x36, 0xae, 0x4b, 0x29, 0xc1, 0x09, 0x50, 0x85, 0x87, 0x7b, 0xd1, 0x07, 0x22, 0x18, 0x25, 0xb1, 0x69, 0x79, 0x81, 0x07, 0x4a, 0x94, 0x9a, 0x6a, 0xe8,
0x01, 0xb5, 0x8e, 0x20, 0x51, 0xac, 0x88, 0x26, 0x80, 0xaa, 0xb6, 0xa4, 0x34, 0x8d, 0xd2, 0xa8, 0x83, 0x49, 0x81, 0xc4, 0xc4, 0x07, 0x78, 0xb2, 0x17, 0x62, 0x4d, 0x78, 0xe0, 0x85, 0x47, 0x08,
0x5d, 0x56, 0x95, 0x1a, 0xd4, 0x55, 0x68, 0x57, 0x9b, 0x84, 0x50, 0x20, 0x9b, 0x22, 0x2d, 0x54, 0xf0, 0x80, 0xbd, 0x28, 0xb1, 0xb6, 0x15, 0xbc, 0xd4, 0x00, 0x2b, 0x6d, 0x43, 0xbb, 0x97, 0xd9,
0x21, 0x29, 0x24, 0x4d, 0xe4, 0x50, 0x20, 0x6e, 0x03, 0xd4, 0xa1, 0x6e, 0x30, 0x25, 0x25, 0x7e, 0xad, 0xc4, 0xc6, 0xb4, 0x6b, 0x43, 0x8a, 0x10, 0xaa, 0xc1, 0x42, 0xd5, 0xa5, 0xed, 0x76, 0xb6,
0xe1, 0x07, 0x7e, 0x8e, 0x3d, 0xf6, 0xd8, 0x33, 0x9e, 0xc7, 0xbd, 0x67, 0xff, 0xb0, 0xe7, 0xe2, 0xbf, 0xff, 0x7f, 0x3a, 0x67, 0x33, 0x3b, 0x3d, 0xbb, 0x7b, 0x66, 0x76, 0x26, 0x05, 0x37, 0xf9,
0xf1, 0x8c, 0x89, 0xcd, 0x2e, 0x2b, 0xed, 0x91, 0xae, 0xce, 0xb9, 0xe7, 0xde, 0x73, 0xce, 0xef, 0x32, 0xf3, 0xcd, 0xce, 0x9c, 0x39, 0xdf, 0x9c, 0xef, 0x3f, 0xff, 0x3f, 0x67, 0x5c, 0x00, 0xe0,
0xfd, 0x3a, 0x92, 0x10, 0x82, 0xff, 0xcf, 0x4d, 0x0d, 0x0d, 0xb6, 0x6d, 0xdb, 0xf6, 0xb4, 0xd9, 0x4a, 0x05, 0xfc, 0x3d, 0x8f, 0x28, 0x4b, 0x77, 0x8e, 0x15, 0xe0, 0xef, 0x29, 0xc4, 0x6b, 0xd4,
0x6c, 0xce, 0x51, 0x55, 0x15, 0x59, 0x96, 0x51, 0x55, 0x95, 0xc9, 0xe3, 0xc9, 0xbd, 0xa2, 0x28, 0x7e, 0xd6, 0x6d, 0x09, 0x1a, 0xcf, 0x41, 0x94, 0x22, 0xde, 0x47, 0x7c, 0x8a, 0x78, 0xcb, 0x6e,
0xa8, 0xea, 0xf8, 0xd2, 0xe9, 0xfe, 0x99, 0xfc, 0x08, 0x21, 0x3a, 0x9e, 0x7c, 0xf2, 0xc9, 0xd7, 0x01, 0xda, 0x7d, 0xde, 0xd6, 0xda, 0xa7, 0xfb, 0xbc, 0x8c, 0x70, 0x67, 0x25, 0x40, 0x6b, 0xe4,
0xee, 0x1a, 0x02, 0x4f, 0x3c, 0xf1, 0xc4, 0xee, 0x17, 0x5e, 0x78, 0xe1, 0xe5, 0xa4, 0xa4, 0xa4, 0x00, 0xa2, 0x19, 0xf1, 0x99, 0x0e, 0x2f, 0x21, 0x36, 0x3b, 0x80, 0x57, 0x0c, 0xf7, 0x69, 0x42,
0x18, 0x00, 0x49, 0x92, 0x98, 0xda, 0x0b, 0x21, 0x90, 0x24, 0x29, 0x6c, 0x3c, 0xb5, 0x45, 0x9b, 0xbc, 0x8b, 0x28, 0x36, 0xf9, 0x20, 0x5c, 0x79, 0x88, 0x06, 0x43, 0x63, 0xab, 0x8d, 0x7a, 0xc4,
0x13, 0x42, 0xa0, 0x69, 0x5a, 0xf0, 0xe8, 0xd1, 0xa3, 0xea, 0xb6, 0x6d, 0xdb, 0xfe, 0xfd, 0xae, 0x73, 0xd2, 0x23, 0xa0, 0x79, 0x92, 0x6c, 0xf3, 0x1e, 0xa2, 0x65, 0x95, 0x46, 0xe0, 0x13, 0xc4,
0x20, 0x60, 0x32, 0x99, 0x8a, 0x6d, 0x36, 0x5b, 0x8c, 0xae, 0xeb, 0xc6, 0xa1, 0x00, 0xa3, 0x17, 0x3b, 0x88, 0xa2, 0x6c, 0x63, 0x60, 0x0d, 0x05, 0x2e, 0xe2, 0xa0, 0xe6, 0xd1, 0x37, 0x1d, 0x8a,
0x2f, 0x62, 0xca, 0xcd, 0x45, 0xcd, 0xc8, 0x08, 0x9b, 0x8f, 0xd6, 0x87, 0x9e, 0xa9, 0xef, 0x42, 0x81, 0x2a, 0xc4, 0x71, 0xed, 0xa1, 0x95, 0x64, 0x1d, 0x03, 0x29, 0x6e, 0xe2, 0x41, 0xbc, 0xea,
0x08, 0x6c, 0x36, 0x9b, 0x6a, 0x32, 0x99, 0x0a, 0xef, 0x06, 0x07, 0xe4, 0xa9, 0x14, 0x94, 0x24, 0xd0, 0x2c, 0x54, 0x2e, 0x6b, 0x13, 0xcb, 0x02, 0x9e, 0x04, 0xfc, 0x2f, 0x04, 0xe4, 0x20, 0x0e,
0x09, 0x59, 0x96, 0xc1, 0xe3, 0xa1, 0xe3, 0xe9, 0xa7, 0x69, 0xdd, 0xb8, 0x11, 0xd7, 0xb1, 0x63, 0x20, 0xbc, 0x88, 0x87, 0xab, 0x8c, 0x07, 0x88, 0x1f, 0x11, 0xfb, 0x11, 0x6e, 0x81, 0xf5, 0x9e,
0x48, 0x93, 0x38, 0x30, 0xdb, 0x27, 0x24, 0x6a, 0x77, 0x15, 0x81, 0xc9, 0xc0, 0x4f, 0x16, 0x85, 0x15, 0x09, 0x68, 0x08, 0x06, 0x83, 0xf0, 0xb8, 0x21, 0x16, 0x8b, 0x7d, 0x20, 0x10, 0x50, 0x27,
0xcc, 0xea, 0x6a, 0x06, 0x5e, 0x7d, 0x95, 0xb6, 0xed, 0xdb, 0x09, 0x34, 0x35, 0x85, 0xfd, 0x33, 0x12, 0x10, 0xa6, 0x0b, 0xf4, 0x3f, 0x11, 0x1f, 0x9f, 0x1d, 0x87, 0xae, 0x5b, 0x5d, 0x70, 0x54,
0x1d, 0xb0, 0x93, 0xf7, 0x9b, 0x2a, 0x8e, 0x77, 0x95, 0x03, 0x53, 0x01, 0x03, 0xb0, 0x6f, 0xd8, 0x39, 0xca, 0xf8, 0x86, 0x2f, 0x37, 0x80, 0xeb, 0x73, 0x17, 0x03, 0x71, 0xbe, 0x2f, 0xc3, 0x47,
0xc0, 0xa2, 0x3f, 0xfe, 0x91, 0xb8, 0x79, 0xf3, 0x68, 0xdd, 0xba, 0x95, 0xfe, 0x5f, 0xfd, 0x0a, 0x02, 0x23, 0x70, 0x7a, 0xe2, 0x34, 0x3c, 0x52, 0x1f, 0xb1, 0xf6, 0x15, 0x45, 0x81, 0x78, 0x3c,
0x02, 0x81, 0x19, 0x51, 0x7d, 0x72, 0xd3, 0x34, 0xed, 0xff, 0x86, 0x03, 0xd1, 0x80, 0x88, 0x49, 0x9e, 0xb8, 0x1f, 0x71, 0x55, 0x55, 0x07, 0x0d, 0x9d, 0x7f, 0x41, 0x9b, 0x6e, 0x0b, 0x8d, 0x02,
0x4d, 0xa5, 0xe0, 0xc0, 0x01, 0x0a, 0x0f, 0x1d, 0x62, 0xe4, 0xfd, 0xf7, 0x69, 0xad, 0xac, 0xc4, 0x20, 0x9d, 0x80, 0xa9, 0x7f, 0xa7, 0x4c, 0x77, 0x30, 0x13, 0xbf, 0x11, 0xb8, 0xc1, 0xb6, 0x9b,
0x7b, 0xf9, 0x72, 0x18, 0x75, 0xbf, 0x0c, 0x99, 0x60, 0x30, 0x78, 0xf7, 0xcc, 0x68, 0x34, 0x36, 0x2e, 0x6e, 0x82, 0xa6, 0xd1, 0x26, 0xa1, 0x80, 0xa5, 0xa5, 0xa5, 0x87, 0x06, 0x01, 0xb5, 0x9a,
0x47, 0xa3, 0x62, 0xf2, 0x8a, 0x15, 0x2c, 0xaa, 0xa9, 0xa1, 0x7d, 0xff, 0x7e, 0xda, 0xab, 0xab, 0x80, 0xfd, 0xa6, 0x04, 0xf4, 0xdc, 0xee, 0x71, 0x4c, 0x00, 0xc7, 0x70, 0x60, 0x18, 0xae, 0xdd,
0x49, 0xda, 0xb0, 0x01, 0xc7, 0x77, 0xbf, 0x8b, 0x64, 0xb5, 0x46, 0xfd, 0xbf, 0xab, 0xab, 0x8b, 0xbb, 0x96, 0x52, 0x00, 0xe5, 0x08, 0x2d, 0xd1, 0xf1, 0x84, 0xe7, 0x5e, 0x21, 0xe0, 0x71, 0x03,
0x9a, 0x9a, 0x1a, 0x54, 0x55, 0xa5, 0xb7, 0xb7, 0x77, 0xe3, 0xc5, 0x8b, 0x17, 0x4b, 0x14, 0x45, 0x8e, 0x88, 0x5e, 0x40, 0xb1, 0x21, 0x6b, 0x17, 0xaf, 0x10, 0x40, 0x43, 0xc8, 0xa1, 0xe7, 0xb5,
0x31, 0xcc, 0xad, 0xa2, 0x28, 0x86, 0x49, 0x9e, 0x3c, 0x3f, 0xd5, 0x64, 0x87, 0xbe, 0x4d, 0x7e, 0x3f, 0xd5, 0x32, 0x9e, 0xdb, 0x9e, 0x9b, 0x40, 0xb6, 0x9c, 0x9e, 0xb8, 0x91, 0xe7, 0x75, 0xe4,
0x00, 0xdd, 0xef, 0xf7, 0xbf, 0xa8, 0x4e, 0x06, 0x38, 0xd0, 0xd1, 0x41, 0xf7, 0xcb, 0x2f, 0x23, 0x41, 0xc5, 0xe5, 0x0a, 0x88, 0xa9, 0x31, 0xd1, 0x08, 0xd4, 0x19, 0x04, 0xd4, 0x49, 0x5b, 0x68,
0x34, 0x0d, 0x31, 0x41, 0x31, 0x11, 0x0c, 0xd2, 0x7d, 0xf8, 0x30, 0x3d, 0x47, 0x8e, 0x18, 0x80, 0xeb, 0xd7, 0x5b, 0x1d, 0xb7, 0x10, 0x71, 0x12, 0x42, 0xfb, 0xe7, 0x7f, 0x3b, 0x9f, 0x24, 0x80,
0x2d, 0x38, 0x78, 0x10, 0xfb, 0xfa, 0xf5, 0x34, 0xed, 0xd9, 0x43, 0xcb, 0x86, 0x0d, 0xa4, 0xed, 0xb2, 0xb5, 0x56, 0x72, 0xe8, 0x05, 0x1c, 0xe7, 0x59, 0x3c, 0xad, 0x80, 0x99, 0x85, 0x19, 0xe9,
0xdd, 0x8b, 0xf5, 0x1b, 0xdf, 0x88, 0x40, 0xa0, 0xa6, 0xa6, 0x86, 0x67, 0x9e, 0x79, 0x26, 0xf4, 0x0e, 0x6e, 0xf9, 0x6a, 0x0b, 0x54, 0x7e, 0x5b, 0x09, 0x05, 0x3d, 0x05, 0x59, 0x09, 0xa8, 0xb9,
0x9a, 0x23, 0x49, 0x52, 0xce, 0x4c, 0xa8, 0x1a, 0x32, 0xd5, 0xd3, 0x35, 0x21, 0x04, 0xb2, 0x2c, 0x5a, 0x63, 0x14, 0x40, 0x25, 0x47, 0x8d, 0xae, 0xf8, 0xab, 0x40, 0x54, 0xd3, 0xf1, 0x27, 0x22,
0x53, 0x5b, 0x5b, 0x3b, 0x5f, 0x9d, 0x3c, 0xa9, 0x58, 0xad, 0xc4, 0x16, 0x15, 0x81, 0x10, 0xe8, 0x06, 0xa8, 0x6e, 0xd2, 0xb6, 0xf9, 0x9a, 0x80, 0xcd, 0x49, 0xc7, 0xd3, 0xc5, 0xc0, 0xa9, 0x5f,
0x3e, 0x1f, 0xee, 0x73, 0xe7, 0x40, 0x96, 0xb1, 0x6f, 0xdc, 0x88, 0x6d, 0xd5, 0x2a, 0x63, 0x03, 0x4f, 0x25, 0x3c, 0xdc, 0x3a, 0xda, 0x0a, 0x91, 0xd9, 0xc8, 0x8a, 0x18, 0x91, 0xe5, 0x9e, 0x2e,
0x53, 0x7a, 0x3a, 0x52, 0x4c, 0x0c, 0x25, 0xa7, 0x4e, 0xd1, 0xf5, 0xfa, 0xeb, 0x74, 0xfc, 0xf8, 0x4f, 0xc6, 0x18, 0x48, 0xc4, 0x8c, 0x12, 0x14, 0x4d, 0xa3, 0x49, 0x02, 0xa4, 0x62, 0xa0, 0xf7,
0xc7, 0xc4, 0x9f, 0x3e, 0x8d, 0x63, 0xef, 0x5e, 0x14, 0x87, 0xc3, 0xf8, 0x2f, 0x21, 0x21, 0x01, 0x76, 0x2f, 0x0c, 0xfd, 0x39, 0x04, 0x32, 0x89, 0x2e, 0x13, 0x6f, 0xf9, 0xb9, 0x45, 0xca, 0x42,
0x80, 0xb1, 0xb1, 0xb1, 0xdb, 0x02, 0x33, 0x75, 0x7c, 0x3b, 0x93, 0x1c, 0x9a, 0x8b, 0x8b, 0x8b, 0xcc, 0x72, 0x76, 0x09, 0xb0, 0x93, 0x0f, 0xfc, 0x31, 0xe0, 0xac, 0x00, 0x0a, 0x1c, 0x0e, 0x27,
0x23, 0x29, 0x29, 0x49, 0x09, 0xe3, 0x40, 0x8c, 0xdd, 0x4e, 0xc6, 0xce, 0x9d, 0xe3, 0x4a, 0x37, 0x38, 0x75, 0x8a, 0x3a, 0x4a, 0x20, 0xce, 0xf7, 0x53, 0x71, 0x7d, 0x1e, 0x90, 0x12, 0x60, 0xd6,
0x3c, 0x4c, 0xef, 0x6b, 0xaf, 0x21, 0xc9, 0x32, 0x6a, 0x62, 0x22, 0x6a, 0x62, 0x62, 0x24, 0xa5, 0xd3, 0x46, 0x1e, 0x8d, 0x45, 0x61, 0x62, 0x76, 0x02, 0x06, 0xa6, 0x07, 0x18, 0xf7, 0xde, 0xf3,
0x54, 0x95, 0xac, 0xef, 0x7c, 0x87, 0xd4, 0xb5, 0x6b, 0x69, 0xda, 0xbb, 0x97, 0xd6, 0x8d, 0x1b, 0x26, 0x40, 0xbc, 0xed, 0x66, 0x9b, 0x74, 0x0c, 0xa4, 0x28, 0x25, 0xb2, 0xb7, 0xd0, 0xfd, 0xf9,
0xb1, 0xef, 0xde, 0x4d, 0xe2, 0xa6, 0x4d, 0x11, 0xd6, 0x28, 0x5a, 0xab, 0xaf, 0xaf, 0xe7, 0xcc, 0xfb, 0xd0, 0x79, 0xab, 0x93, 0xf1, 0xc3, 0xbe, 0xc3, 0xb0, 0xc7, 0xbb, 0x87, 0x25, 0x1f, 0x3b,
0x99, 0x33, 0x51, 0xa9, 0x3d, 0xe1, 0x3f, 0xa8, 0xaa, 0xaa, 0x0a, 0x89, 0x4c, 0x04, 0xc2, 0x92, 0xf3, 0x40, 0x6e, 0x87, 0xcd, 0x02, 0xe6, 0xd4, 0x39, 0xc6, 0xab, 0xaf, 0x54, 0x43, 0x4e, 0x7b,
0x24, 0xa1, 0x4e, 0xe7, 0x49, 0x67, 0x63, 0xf6, 0xcc, 0xb9, 0xb9, 0x14, 0xff, 0xf6, 0xb7, 0x74, 0x8e, 0xe3, 0x89, 0xac, 0xa8, 0xaf, 0xc8, 0x9a, 0x00, 0x91, 0x87, 0x03, 0x4a, 0x80, 0x0d, 0xaf,
0xbd, 0xfe, 0x3a, 0x37, 0x7e, 0xf6, 0x33, 0xfa, 0x5f, 0x79, 0x05, 0xc9, 0x6c, 0x26, 0xb0, 0x6e, 0x8c, 0x67, 0xed, 0xe2, 0xbe, 0xa0, 0xcf, 0x9e, 0x18, 0xd8, 0x7d, 0x75, 0xb7, 0x6d, 0xb5, 0x8f,
0x9d, 0xb1, 0x57, 0xc7, 0x48, 0x07, 0xdb, 0xdf, 0xdf, 0x8e, 0x2e, 0x74, 0x1e, 0xce, 0x7b, 0x98, 0x6c, 0x2d, 0x44, 0xfb, 0x94, 0x6f, 0xb2, 0xb2, 0xd0, 0xf4, 0xdc, 0xb4, 0xed, 0xb5, 0x8f, 0x19,
0xe7, 0x97, 0x3d, 0xcf, 0xd1, 0xa3, 0x47, 0x71, 0x3a, 0x9d, 0xe4, 0xe6, 0xe6, 0xe2, 0x74, 0x3a, 0x0b, 0x75, 0x4f, 0x75, 0x5b, 0x17, 0x40, 0x7e, 0x2f, 0xf9, 0xa6, 0x64, 0x55, 0x05, 0x4c, 0xfe,
0x51, 0x55, 0x95, 0x60, 0x30, 0x88, 0xa2, 0x28, 0xc4, 0xc6, 0xc6, 0x72, 0xe6, 0xcc, 0x19, 0x96, 0x33, 0x69, 0x3d, 0x06, 0xfc, 0x41, 0xbf, 0x69, 0xcf, 0xf2, 0x18, 0x21, 0xef, 0xd2, 0xf5, 0x81,
0x2f, 0x5f, 0x0e, 0x0e, 0xd8, 0xf6, 0xc1, 0x36, 0x74, 0xa1, 0x53, 0x91, 0x5b, 0xc1, 0x8b, 0x4b, 0x60, 0x80, 0x71, 0xda, 0x72, 0xc8, 0xb6, 0x47, 0x6d, 0xf1, 0x18, 0x34, 0x1d, 0x03, 0x63, 0x0f,
0x5f, 0xbc, 0xe5, 0x5f, 0xa2, 0x21, 0x20, 0x49, 0x12, 0x42, 0x0e, 0xb3, 0xb0, 0x8c, 0xd4, 0xd7, 0xc6, 0x60, 0x6d, 0xc7, 0x5a, 0x69, 0x4f, 0xef, 0xf3, 0xee, 0x63, 0x6f, 0x51, 0x6a, 0x5c, 0x95,
0xd3, 0xfe, 0x8b, 0x5f, 0xf0, 0x4f, 0x6f, 0xbd, 0x15, 0x15, 0x89, 0xfe, 0xb7, 0xdf, 0xa6, 0xf3, 0xca, 0x13, 0x32, 0x31, 0xb0, 0xab, 0x7f, 0x17, 0x3b, 0xdf, 0xd2, 0x08, 0x1c, 0x0b, 0x1d, 0x33,
0xd7, 0xbf, 0x26, 0xb6, 0xa4, 0x84, 0xc4, 0x4d, 0x9b, 0x50, 0xec, 0x76, 0xd4, 0x96, 0x16, 0x83, 0x65, 0x09, 0xd9, 0x52, 0x22, 0xf2, 0x77, 0x44, 0xda, 0x42, 0x47, 0xfc, 0x47, 0xd2, 0xbd, 0x13,
0x03, 0xbd, 0x9e, 0x5e, 0xae, 0xf4, 0x5d, 0x01, 0x20, 0x3d, 0x2e, 0xdd, 0x38, 0x6b, 0xc9, 0x92, 0xa7, 0x17, 0x40, 0x75, 0xbc, 0x8c, 0x80, 0xd2, 0x4b, 0xa5, 0xa6, 0x04, 0x9c, 0xf8, 0xe5, 0x84,
0x25, 0xec, 0xda, 0xb5, 0x8b, 0x43, 0x87, 0x0e, 0xe1, 0xf3, 0xf9, 0x70, 0xb9, 0x5c, 0x94, 0x94, 0xb4, 0x80, 0x33, 0x91, 0x33, 0xd6, 0x05, 0x98, 0x9d, 0xa7, 0x65, 0x6b, 0x21, 0x5a, 0x42, 0x91,
0x94, 0xb0, 0x78, 0xf1, 0x62, 0x9e, 0x7a, 0xea, 0x29, 0x84, 0x10, 0x38, 0xbd, 0x4e, 0xda, 0xdd, 0x6d, 0x9f, 0xea, 0x25, 0xcb, 0x31, 0x20, 0x3b, 0x8f, 0x9f, 0x8b, 0x9c, 0x93, 0xae, 0x95, 0xfa,
0xed, 0x00, 0x34, 0x0d, 0x35, 0x19, 0x6b, 0x85, 0x10, 0x84, 0x89, 0x90, 0xf0, 0x7a, 0x71, 0x7d, 0xa6, 0xfa, 0xa4, 0xf3, 0xc0, 0xfa, 0xce, 0xf5, 0xac, 0x9e, 0xb2, 0x1c, 0x03, 0xb2, 0xd3, 0x60,
0xf8, 0xe1, 0xb8, 0x12, 0x87, 0xe4, 0x56, 0x08, 0x9c, 0xef, 0xbe, 0x4b, 0xf7, 0x9b, 0x6f, 0xe2, 0xf3, 0x68, 0xb3, 0x94, 0x85, 0xee, 0x44, 0xef, 0xc0, 0xc6, 0x8b, 0x1b, 0xa5, 0xa7, 0xd1, 0xb2,
0xbd, 0x7e, 0x9d, 0x7f, 0x54, 0x57, 0x33, 0xf7, 0x27, 0x3f, 0xc1, 0x3c, 0x67, 0x0e, 0x00, 0xbe, 0x4b, 0x65, 0x99, 0xd6, 0x85, 0xec, 0x11, 0x50, 0x7e, 0xb9, 0x5c, 0x4a, 0xc0, 0xce, 0x1f, 0x76,
0x8e, 0x0e, 0x9a, 0x7f, 0xf4, 0x23, 0xdc, 0x75, 0x75, 0x38, 0x76, 0xef, 0x26, 0x79, 0xcb, 0x16, 0x9a, 0xca, 0x03, 0xf5, 0x83, 0xf5, 0xd9, 0x09, 0x30, 0x5b, 0xbb, 0xa4, 0xf2, 0xbc, 0x99, 0x79,
0x84, 0x24, 0xa1, 0xeb, 0x3a, 0x72, 0x77, 0xb7, 0xe1, 0x5f, 0x2c, 0xaa, 0xe5, 0x16, 0xc7, 0x54, 0x5f, 0xcf, 0x29, 0x87, 0xe8, 0xdb, 0x73, 0x2c, 0x06, 0x38, 0xdf, 0xd6, 0xbd, 0x0d, 0x1a, 0x87,
0xb3, 0x21, 0x16, 0x21, 0x04, 0xcb, 0xca, 0xca, 0xf8, 0xe0, 0x83, 0x0f, 0xb0, 0x5a, 0xad, 0x2c, 0x1b, 0xe1, 0xe4, 0xd8, 0x49, 0xc6, 0x69, 0xfd, 0xa8, 0xb0, 0xb7, 0xd0, 0x72, 0x2d, 0xd4, 0xff,
0x5e, 0xbc, 0x38, 0x8c, 0x98, 0xf1, 0x31, 0xf1, 0xc6, 0xda, 0xc9, 0x63, 0x5d, 0xd7, 0xc3, 0x39, 0x7b, 0x7f, 0x22, 0x86, 0x0c, 0xab, 0x12, 0xf4, 0xf1, 0xf1, 0x0d, 0x44, 0x01, 0x5f, 0x1b, 0x45,
0xe0, 0xbf, 0x79, 0x93, 0x9e, 0x43, 0x87, 0x40, 0x08, 0xc4, 0x84, 0xe3, 0xd1, 0xfd, 0x7e, 0xe2, 0xbc, 0x8e, 0xa8, 0x4c, 0x12, 0xe0, 0xf9, 0xc2, 0xe3, 0x58, 0xe9, 0x20, 0x63, 0xa1, 0xbb, 0xd1,
0x4b, 0x4b, 0x49, 0xa9, 0xa8, 0xa0, 0x6f, 0x68, 0x88, 0xf4, 0xc7, 0x1f, 0x47, 0xb5, 0xd9, 0x10, 0xbb, 0x42, 0x0b, 0xd1, 0x92, 0xba, 0x60, 0x5d, 0xa8, 0x8d, 0xbe, 0x1e, 0x25, 0x09, 0xd8, 0xeb,
0x9a, 0x46, 0xf7, 0x1b, 0x6f, 0xd0, 0xbe, 0x7f, 0x3f, 0xf1, 0x4b, 0x97, 0x92, 0x7f, 0xf2, 0x24, 0xdd, 0x6b, 0x6b, 0x87, 0x29, 0x56, 0xaa, 0xae, 0x54, 0x49, 0xaf, 0x8d, 0xa6, 0x5b, 0xdc, 0x15,
0x6a, 0x7a, 0xfa, 0xb8, 0x8c, 0x4e, 0x0a, 0xf6, 0x42, 0x00, 0x96, 0xa6, 0x95, 0x72, 0xe5, 0xc9, 0xac, 0xcc, 0x35, 0x08, 0x6b, 0x21, 0x6a, 0xc8, 0xae, 0xfa, 0x9e, 0xe7, 0x00, 0xab, 0x31, 0x95,
0x2b, 0x68, 0x42, 0x23, 0xc5, 0x92, 0x12, 0x21, 0xae, 0x45, 0x45, 0x45, 0x14, 0x16, 0x16, 0x1a, 0x61, 0x6d, 0xb4, 0x62, 0x85, 0x00, 0x55, 0x55, 0xe1, 0xec, 0xf8, 0x59, 0x58, 0xd7, 0xb9, 0x8e,
0xca, 0xda, 0xd3, 0xd3, 0x63, 0x7c, 0xbf, 0x37, 0xed, 0x5e, 0x3e, 0xdf, 0xfe, 0x39, 0xba, 0xd0, 0x71, 0xda, 0x72, 0x98, 0xe1, 0x3b, 0xbe, 0xdb, 0xb1, 0xfc, 0x8e, 0xbc, 0x10, 0x85, 0xfc, 0xae,
0xb1, 0x28, 0x16, 0x63, 0xcf, 0x08, 0x04, 0x62, 0x0b, 0x0a, 0x58, 0x78, 0xea, 0x14, 0x92, 0x24, 0x7c, 0xe1, 0xf9, 0xf4, 0xa0, 0xf4, 0x9c, 0x02, 0x38, 0x16, 0x8b, 0xb1, 0x3e, 0x10, 0x04, 0x23,
0xa1, 0x0d, 0x0f, 0xf3, 0x69, 0x69, 0x29, 0xb2, 0xd9, 0x8c, 0x65, 0xee, 0x5c, 0x52, 0x1e, 0x7d, 0xf0, 0xb4, 0x6e, 0x75, 0xba, 0x15, 0x91, 0x9b, 0xf2, 0x7d, 0xe0, 0x90, 0xef, 0x90, 0x25, 0xcb,
0x14, 0x49, 0x55, 0x49, 0x5e, 0xb1, 0x82, 0xd1, 0xab, 0x57, 0x69, 0xde, 0xb3, 0x07, 0x5f, 0x77, 0xd0, 0xeb, 0x26, 0xad, 0xf5, 0x2f, 0xc4, 0x17, 0x18, 0x0f, 0xcf, 0x84, 0xa5, 0x63, 0x80, 0x66,
0x37, 0xd9, 0xfb, 0xf6, 0x91, 0x58, 0x51, 0x81, 0xae, 0xeb, 0xd3, 0x9a, 0x3e, 0x49, 0x92, 0xd0, 0x2e, 0x13, 0xdf, 0x07, 0xea, 0x8d, 0xb3, 0xd0, 0x98, 0x68, 0x1e, 0xdf, 0xfe, 0xfd, 0x76, 0x29,
0x84, 0xc6, 0x75, 0xd7, 0x75, 0x84, 0x10, 0xe4, 0x27, 0xe7, 0x93, 0x60, 0x4e, 0xf8, 0x52, 0x25, 0x01, 0xee, 0x76, 0xf7, 0xb2, 0x05, 0xfe, 0x52, 0x92, 0xae, 0xbf, 0x30, 0x79, 0x41, 0x5a, 0x00,
0x0f, 0xb5, 0xb1, 0xe0, 0x18, 0x67, 0x3b, 0xce, 0xa2, 0xe9, 0x1a, 0x85, 0xb6, 0x42, 0x16, 0x24, 0x95, 0x10, 0x82, 0x2f, 0x34, 0x3e, 0x83, 0x80, 0x17, 0x35, 0x01, 0xe5, 0x46, 0x01, 0x8d, 0xec,
0x2f, 0x88, 0x2e, 0x42, 0xb7, 0x0b, 0x07, 0xcc, 0xd9, 0xd9, 0xa4, 0x6d, 0xdd, 0xca, 0x8d, 0x7d, 0x89, 0x85, 0xc3, 0x09, 0x70, 0xee, 0x57, 0xfc, 0x30, 0x1c, 0x5c, 0xae, 0xf7, 0x07, 0x03, 0x83,
0xfb, 0xe8, 0x3e, 0x78, 0x10, 0xdb, 0xfa, 0xf5, 0xe4, 0xbd, 0xf1, 0x06, 0x72, 0x42, 0x82, 0x11, 0x70, 0xdd, 0x7f, 0x9d, 0x81, 0x9e, 0xd8, 0x50, 0x60, 0x08, 0x46, 0x94, 0x11, 0x08, 0x85, 0x42,
0x5e, 0x47, 0x43, 0x20, 0xb4, 0xd7, 0xc5, 0xce, 0x8b, 0x6c, 0x7a, 0x7b, 0xdc, 0x3a, 0xad, 0x9a, 0x20, 0xba, 0x3e, 0x14, 0x0e, 0xb1, 0xff, 0xf8, 0xff, 0x7c, 0x3f, 0x15, 0x37, 0x5e, 0x8f, 0x96,
0xbb, 0x8a, 0x13, 0xeb, 0x4f, 0x44, 0x0d, 0xd7, 0xa3, 0xe9, 0xe3, 0x85, 0xee, 0x0b, 0xec, 0xf8, 0xfa, 0x50, 0xf0, 0x8d, 0xec, 0x20, 0x5f, 0x13, 0xd5, 0x0b, 0x78, 0x66, 0x7e, 0x7e, 0xfe, 0xe3,
0x68, 0x07, 0x00, 0x15, 0x79, 0x15, 0x1c, 0x5c, 0x75, 0xd0, 0x08, 0x4f, 0x66, 0x1c, 0x22, 0x0e, 0xc5, 0xc5, 0xc5, 0x9b, 0xdc, 0x83, 0xab, 0x09, 0xec, 0x87, 0x82, 0xfd, 0xf9, 0x08, 0xfb, 0xb5,
0x7d, 0xfc, 0x31, 0xcd, 0x7b, 0xf7, 0x82, 0x2c, 0x93, 0xff, 0x9b, 0xdf, 0x10, 0xbf, 0x74, 0x69, 0x46, 0x20, 0x20, 0xcf, 0x78, 0xec, 0x3f, 0x1b, 0x75, 0xce, 0x5d, 0xf3, 0xcf, 0xc0, 0x5f, 0x00,
0x98, 0x6d, 0xbe, 0x9d, 0x53, 0x92, 0x24, 0x09, 0xa4, 0x70, 0x13, 0x19, 0x0d, 0x58, 0x31, 0x45, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
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,
}; };
const BITMAP_OPAQUE icon_bitmap2component_xpm[1] = {{ png, sizeof( png ), "icon_bitmap2component_xpm" }}; const BITMAP_OPAQUE icon_bitmap2component_xpm[1] = {{ png, sizeof( png ), "icon_bitmap2component_xpm" }};
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
inkscape:export-ydpi="90.000000" inkscape:export-ydpi="90.000000"
inkscape:export-xdpi="90.000000" inkscape:export-xdpi="90.000000"
inkscape:export-filename="/home/steven/edit-find-48.png" inkscape:export-filename="/home/steven/edit-find-48.png"
sodipodi:docname="find.svg.BASE" sodipodi:docname="find.svg"
inkscape:version="0.48.2 r9819" inkscape:version="0.48.3.1 r9886"
sodipodi:version="0.32" sodipodi:version="0.32"
id="svg249" id="svg249"
height="26" height="26"
...@@ -59,18 +59,6 @@ ...@@ -59,18 +59,6 @@
offset="1.0000000" offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:0.24761905;" /> style="stop-color:#ffffff;stop-opacity:0.24761905;" />
</linearGradient> </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 <linearGradient
id="linearGradient2366"> id="linearGradient2366">
<stop <stop
...@@ -97,66 +85,6 @@ ...@@ -97,66 +85,6 @@
offset="1.0000000" offset="1.0000000"
id="stop2850" /> id="stop2850" />
</linearGradient> </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 <radialGradient
id="aigrd2-8" id="aigrd2-8"
cx="20.892099" cx="20.892099"
...@@ -338,18 +266,279 @@ ...@@ -338,18 +266,279 @@
fx="8.824419" fx="8.824419"
fy="3.7561285" fy="3.7561285"
r="37.751713" /> 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> </defs>
<sodipodi:namedview <sodipodi:namedview
inkscape:window-y="26" inkscape:window-y="29"
inkscape:window-x="0" inkscape:window-x="0"
inkscape:window-height="969" inkscape:window-height="849"
inkscape:window-width="1280" inkscape:window-width="1600"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:grid-bbox="true" inkscape:grid-bbox="true"
showgrid="true" showgrid="true"
inkscape:current-layer="layer5" inkscape:current-layer="layer5"
inkscape:cy="13.694933" inkscape:cy="12.288442"
inkscape:cx="19.492108" inkscape:cx="8.4435897"
inkscape:zoom="22.627416" inkscape:zoom="22.627416"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
...@@ -364,7 +553,7 @@ ...@@ -364,7 +553,7 @@
<inkscape:grid <inkscape:grid
type="xygrid" type="xygrid"
id="grid2919" id="grid2919"
empspacing="5" empspacing="1"
visible="true" visible="true"
enabled="true" enabled="true"
snapvisiblegridlinesonly="true" /> snapvisiblegridlinesonly="true" />
...@@ -611,66 +800,74 @@ ...@@ -611,66 +800,74 @@
id="rect15686-03" 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" /> 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 <g
id="g1772" id="g3976"
transform="matrix(0.39105747,0,0,0.37162201,7.9100602,31.393184)"> transform="translate(25.279068,-0.44194166)">
<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)" />
<path <path
inkscape:connector-curvature="0"
sodipodi:nodetypes="csscccscccscczzzz" sodipodi:nodetypes="csscccscccscczzzz"
id="path2844" id="path2844-9-9"
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" 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(#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" /> 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 <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" 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" 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" /> id="path4430-3-6"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path <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" inkscape:connector-curvature="0"
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" 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"
id="path4438" 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"
sodipodi:nodetypes="ccccc" /> id="path4438-0-4"
sodipodi:nodetypes="ccccc"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path <path
sodipodi:type="arc" 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" 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" id="path4450-2-3"
sodipodi:cx="17.500893" sodipodi:cx="17.500893"
sodipodi:cy="18.920233" sodipodi:cy="18.920233"
sodipodi:rx="11.048544" sodipodi:rx="11.048544"
sodipodi:ry="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" 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 <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" 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" id="rect4495-7-3"
width="19.048439" width="8.6471872"
height="4.4404783" height="2.0123112"
x="40.373337" x="19.239033"
y="0.14086054" y="32.352734"
rx="3.2112026" rx="1.5078329"
ry="2.837393" ry="1.3300102"
transform="matrix(0.752986,0.658037,-0.648902,0.760872,0,0)" /> transform="matrix(0.75682702,0.65361522,-0.65333777,0.75706655,0,0)"
inkscape:r_cx="true"
inkscape:r_cy="true" />
<path <path
sodipodi:type="arc" 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" 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" id="path4452-9-3"
sodipodi:cx="17.589281" sodipodi:cx="17.589281"
sodipodi:cy="18.478292" sodipodi:cy="18.478292"
sodipodi:rx="8.3085051" sodipodi:rx="8.3085051"
sodipodi:ry="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" 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 <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" inkscape:connector-curvature="0"
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" 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"
id="path4462" /> 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>
</g> </g>
</svg> </svg>
...@@ -5,14 +5,13 @@ ...@@ -5,14 +5,13 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="32" height="48"
width="32" width="48"
version="1.1" version="1.1"
id="svg2" id="svg2"
inkscape:version="0.48.4 r9939" inkscape:version="0.48.3.1 r9886"
sodipodi:docname="icon_bitmap2component.svg" sodipodi:docname="icon_bitmap2component.svg"
inkscape:export-filename="E:\kicad-launchpad\kicad-bzr\bitmaps_png\icon_bitmap2component.png" inkscape:export-filename="E:\kicad-launchpad\kicad-bzr\bitmaps_png\icon_bitmap2component.png"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
...@@ -25,7 +24,7 @@ ...@@ -25,7 +24,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title /> <dc:title></dc:title>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
...@@ -38,1901 +37,225 @@ ...@@ -38,1901 +37,225 @@
guidetolerance="10" guidetolerance="10"
inkscape:pageopacity="0" inkscape:pageopacity="0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:window-width="1280" inkscape:window-width="1600"
inkscape:window-height="977" inkscape:window-height="849"
id="namedview345" id="namedview345"
showgrid="false" showgrid="true"
inkscape:zoom="4.9166667" inkscape:zoom="18.178537"
inkscape:cx="24" inkscape:cx="11.963811"
inkscape:cy="23.59322" inkscape:cy="27.182846"
inkscape:window-x="-4" inkscape:window-x="0"
inkscape:window-y="-4" inkscape:window-y="29"
inkscape:window-maximized="1" 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 <defs
id="defs4"> id="defs4">
<linearGradient <marker
id="aw"> inkscape:stockid="Arrow2Mend"
<stop orient="auto"
offset="0" refY="0.0"
id="stop7" /> refX="0.0"
<stop id="Arrow2Mend"
stop-opacity="0" style="overflow:visible;">
offset="1" <path
id="stop9" /> id="path4630"
</linearGradient> style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
<linearGradient 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 "
id="au"> transform="scale(0.6) rotate(180) translate(0,0)" />
<stop </marker>
stop-color="#555753" <marker
stop-opacity="0" inkscape:stockid="Arrow2Mstart"
offset="0" orient="auto"
id="stop12" /> refY="0.0"
<stop refX="0.0"
stop-color="#eeeeec" id="Arrow2Mstart"
offset="1" style="overflow:visible">
id="stop14" /> <path
</linearGradient> id="path4627"
<linearGradient style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
id="ay"> 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 "
<stop transform="scale(0.6) translate(0,0)" />
stop-color="#2e3436" </marker>
offset="0" <marker
id="stop17" /> inkscape:stockid="Arrow2Mstart"
<stop orient="auto"
stop-color="#555753" refY="0"
stop-opacity="0" refX="0"
offset="1" id="Arrow2Mstart-1"
id="stop19" /> style="overflow:visible">
</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" />
</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 <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="opacity:0.3;fill:url(#radialGradient4571)" id="path4627-3"
id="path221" style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
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" /> 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"
<rect transform="scale(0.6,0.6)" />
style="opacity:0.3;fill:url(#linearGradient4573)" </marker>
id="rect223" <marker
x="12.491277" inkscape:stockid="Arrow2Mend"
y="32.616299" orient="auto"
width="27.733829" refY="0"
height="5" /> refX="0"
id="Arrow2Mend-2"
style="overflow:visible">
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="opacity:0.3;fill:url(#radialGradient4575)" id="path4630-7"
id="path225" style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
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" /> 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"
<rect transform="scale(-0.6,-0.6)" />
id="rect229" </marker>
height="38.167999" </defs>
x="1.5753396" <rect
y="-45.173618" style="fill:#ffffff;fill-opacity:1;stroke:none"
width="30.235001" id="rect3302"
ry="1.0718" width="38.947025"
transform="matrix(0,1,-1,0,0,0)" height="38.947029"
display="block" x="-2.5209514e-08"
style="color:#000000;fill:url(#radialGradient4577);stroke:url(#radialGradient4579);stroke-width:0.89924002;stroke-linecap:round;stroke-linejoin:round;display:block" /> y="9.0529709"
<rect ry="2.8881564"
id="rect231" rx="2.9705353" />
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>
<g <g
id="g4496" transform="scale(0.97123869,1.029613)"
transform="translate(33.817613,-0.94914509)"> 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 <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" 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"
id="path4045-6" 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"
style="opacity:0.3;fill:url(#radialGradient3972)" id="path3302" />
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)" />
<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>
</g> </g>
<g <g
id="g3239" id="g4585"
transform="matrix(0.10793971,0,0,0.1099907,-0.73540191,25.027104)"> transform="matrix(1.011705,0,0,1,-0.00570879,0)"
<path style="stroke:#cccccc">
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" />
<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" />
<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" />
<path <path
style="opacity:0.7;fill:#ffffff"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path82" id="path3333-6"
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" /> 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 <path
style="fill:#616161"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path84" id="path3333-33"
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" /> d="m 0.98772317,34.538333 36.59759283,0 0,0"
<circle style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
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" />
<path <path
style="fill:url(#XMLID_17_)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path113" id="path3333-7"
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" /> 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 <path
style="fill:#f7f7f7"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path115" id="path3333-79"
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" /> 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 <path
style="fill:#666666"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path117" id="path3333-31-7"
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" /> 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 <path
style="fill:#666666"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path119" id="path3333-8-1"
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" /> 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 <path
style="fill:url(#XMLID_18_)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path132" id="path3333-33-0"
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" /> 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 <path
style="fill:#ffffff"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path134" id="path3333-32-1"
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" /> 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 <path
style="fill:#999999"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path136" id="path3333-4-6"
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" /> 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 <path
style="fill:url(#XMLID_19_)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path155" id="path3333-79-6"
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" /> d="m 0.98772317,46.553519 36.59759283,0 0,0"
<path style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
style="fill:#ffffff" </g>
inkscape:connector-curvature="0" <g
id="path157" id="g4563"
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" /> transform="matrix(1,0,0,0.99268819,-0.08251488,0.07386002)"
<path style="stroke:#cccccc">
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" />
<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" />
<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" />
<path <path
style="fill:#999999"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path165" id="path3333-79-6-7"
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" /> 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 <path
style="fill:#ffffff"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path167" id="path3333-79-6-7-4"
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" /> 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 <path
style="fill:#4d4d4d"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path169" id="path3333-79-6-7-7"
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" /> 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 <path
style="fill:#9db3d0"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path171" id="path3333-79-6-7-6"
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" /> d="m 17.589451,10.601471 0,36.617177 0,0"
<rect style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
style="fill:url(#XMLID_20_)"
id="rect184"
x="185.10001"
y="-76.116669"
width="36.259998"
height="11.18" />
<path <path
style="fill:url(#XMLID_21_)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path197" id="path3333-79-6-7-46"
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" /> d="m 21.592522,10.601471 0,36.617177 0,0"
<circle style="fill:none;stroke:#cccccc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
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" />
<path <path
style="fill:#ffffff"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path201" id="path3333-79-6-7-9"
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" /> 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 <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path203" id="path3333-79-6-7-5"
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" /> 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 <path
style="fill:url(#XMLID_22_)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path216" id="path3333-79-6-7-8"
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" /> 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 <path
style="fill:url(#XMLID_23_)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path241-7" id="path3333-79-6-7-66"
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" /> 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 <path
style="fill:url(#linearGradient3558)"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path254" id="path3333-79-6-7-56"
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" /> 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> </g>
<path
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: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: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> </svg>
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48" height="26"
width="48" width="26"
version="1.0" version="1.0"
id="svg2" id="svg2"
inkscape:version="0.48.3.1 r9886" inkscape:version="0.48.3.1 r9886"
sodipodi:docname="new_pcb.svg"> sodipodi:docname="new_sch.svg">
<metadata <metadata
id="metadata358"> id="metadata358">
<rdf:RDF> <rdf:RDF>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title /> <dc:title></dc:title>
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
...@@ -39,22 +39,24 @@ ...@@ -39,22 +39,24 @@
inkscape:window-height="849" inkscape:window-height="849"
id="namedview356" id="namedview356"
showgrid="true" showgrid="true"
inkscape:zoom="8.146395" inkscape:zoom="22.961538"
inkscape:cx="33.460702" inkscape:cx="13.043551"
inkscape:cy="37.915782" inkscape:cy="13"
inkscape:window-x="0" inkscape:window-x="0"
inkscape:window-y="29" inkscape:window-y="29"
inkscape:window-maximized="1" inkscape:window-maximized="1"
inkscape:current-layer="svg2" inkscape:current-layer="svg2"
inkscape:snap-grids="false" inkscape:snap-grids="true"
inkscape:snap-to-guides="false"> inkscape:snap-to-guides="false">
<inkscape:grid <inkscape:grid
type="xygrid" type="xygrid"
id="grid2871" id="grid2871"
empspacing="5" empspacing="2"
visible="true" visible="true"
enabled="true" enabled="true"
snapvisiblegridlinesonly="true" /> snapvisiblegridlinesonly="true"
spacingx="0.5px"
spacingy="0.5px" />
</sodipodi:namedview> </sodipodi:namedview>
<defs <defs
id="defs4"> id="defs4">
...@@ -121,415 +123,502 @@ ...@@ -121,415 +123,502 @@
id="feGaussianBlur13" /> id="feGaussianBlur13" />
</filter> </filter>
<linearGradient <linearGradient
id="bn" id="bd"
y2="172.44" y2="99.254997"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="91.228996"
gradientTransform="translate(-143,-64)" gradientTransform="matrix(0.21025443,0,0,0.20691162,-0.54460205,-0.4483919)"
y1="175.56" y1="106.41"
x1="153"> x1="98.616997">
<stop <stop
stop-color="#fff" stop-color="#a2a2a2"
offset="0" offset="0"
id="stop16-8" /> id="stop193" />
<stop <stop
stop-color="#ddd" stop-color="#fff"
offset="1" offset="1"
id="stop18-7" /> id="stop195" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="bo" inkscape:collect="always"
y2="172.89999" 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" gradientUnits="userSpaceOnUse"
x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="175.10001" x1="153"
x1="154.10001"> y1="79.556999"
<stop x2="153"
stop-color="#bbb" y2="76.444" />
offset="0"
id="stop21-2" />
<stop
stop-color="#616161"
offset="1"
id="stop23-8" />
</linearGradient>
<linearGradient <linearGradient
id="bp" id="aw-1"
y2="164.44" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="167.56" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop26-2" /> id="stop136-7" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop28-9" /> id="stop138-4" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="bq" id="ax-8"
y2="164.89999" y2="76.900002"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="167.10001" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop31" /> id="stop141-0" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop33-9" /> id="stop143-8" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="br" inkscape:collect="always"
y2="156.44" xlink:href="#ax-8"
id="linearGradient5814"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="159.56" x1="154.10001"
x1="153"> y1="79.100998"
<stop x2="151.89999"
stop-color="#fff" y2="76.900002" />
offset="0" <linearGradient
id="stop36" /> inkscape:collect="always"
<stop xlink:href="#ax-8-9"
stop-color="#ddd" id="linearGradient5814-8"
offset="1" gradientUnits="userSpaceOnUse"
id="stop38-6" /> gradientTransform="translate(-143,-64)"
</linearGradient> x1="154.10001"
y1="79.100998"
x2="151.89999"
y2="76.900002" />
<linearGradient <linearGradient
id="bs" id="ax-8-9"
y2="156.89999" y2="76.900002"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="159.10001" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop41" /> id="stop141-0-5" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop43-0" /> id="stop143-8-7" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="bt" id="aw-1-8"
y2="148.44" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="151.56" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop46" /> id="stop136-7-2" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop48" /> id="stop138-4-7" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="bu" y2="76.444"
y2="148.89999" x2="153"
gradientUnits="userSpaceOnUse" y1="79.556999"
x2="151.89999" x1="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="151.10001" gradientUnits="userSpaceOnUse"
x1="154.10001"> id="linearGradient5836"
<stop xlink:href="#aw-1-8"
stop-color="#bbb" inkscape:collect="always" />
offset="0"
id="stop51-2" />
<stop
stop-color="#616161"
offset="1"
id="stop53" />
</linearGradient>
<linearGradient <linearGradient
id="bv" inkscape:collect="always"
y2="140.44" xlink:href="#ax-8-7"
id="linearGradient5814-1"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="143.56" x1="154.10001"
x1="153"> y1="79.100998"
<stop x2="151.89999"
stop-color="#fff" y2="76.900002" />
offset="0"
id="stop56" />
<stop
stop-color="#ddd"
offset="1"
id="stop58" />
</linearGradient>
<linearGradient <linearGradient
id="bw" id="ax-8-7"
y2="140.89999" y2="76.900002"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="143.10001" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop61" /> id="stop141-0-57" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop63" /> id="stop143-8-5" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="bx" id="aw-1-9"
y2="132.44" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="135.56" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop66" /> id="stop136-7-4" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop68" /> id="stop138-4-70" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="by" y2="76.444"
y2="132.89999" x2="153"
gradientUnits="userSpaceOnUse" y1="79.556999"
x2="151.89999" x1="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="135.10001" gradientUnits="userSpaceOnUse"
x1="154.10001"> id="linearGradient5836-4"
<stop xlink:href="#aw-1-9"
stop-color="#bbb" inkscape:collect="always" />
offset="0"
id="stop71" />
<stop
stop-color="#616161"
offset="1"
id="stop73" />
</linearGradient>
<linearGradient <linearGradient
id="bz" inkscape:collect="always"
y2="124.44" xlink:href="#ax-8-4"
id="linearGradient5814-86"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="127.56" x1="154.10001"
x1="153"> y1="79.100998"
<stop x2="151.89999"
stop-color="#fff" y2="76.900002" />
offset="0"
id="stop76" />
<stop
stop-color="#ddd"
offset="1"
id="stop78" />
</linearGradient>
<linearGradient <linearGradient
id="ca" id="ax-8-4"
y2="124.9" y2="76.900002"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="127.1" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop81" /> id="stop141-0-8" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop83" /> id="stop143-8-77" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="cb" id="aw-1-95"
y2="116.44" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="119.56" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop86" /> id="stop136-7-0" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop88" /> id="stop138-4-4" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="cc" y2="76.444"
y2="116.9" 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" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="119.1" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop91" /> id="stop141-0-3" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop93" /> id="stop143-8-4" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="cd" id="aw-1-0"
y2="108.44" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="111.56" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop96" /> id="stop136-7-08" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop98" /> id="stop138-4-9" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="ce" y2="76.444"
y2="108.9" 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" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="111.1" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop101" /> id="stop141-0-1" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop103" /> id="stop143-8-3" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="cf" id="aw-1-92"
y2="100.44" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="103.56" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop106" /> id="stop136-7-6" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop108" /> id="stop138-4-1" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="cg" y2="76.444"
y2="100.9" 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" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="103.1" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop111" /> id="stop141-0-9" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop113" /> id="stop143-8-2" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="ch" id="aw-1-1"
y2="92.444" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="95.556999" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop116" /> id="stop136-7-5" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop118" /> id="stop138-4-6" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="at" y2="76.444"
y2="92.900002" 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" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="95.100998" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop121" /> id="stop141-0-54" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop123" /> id="stop143-8-6" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="au" id="aw-1-7"
y2="84.444" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="87.556999" y1="79.556999"
x1="153"> x1="153">
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop126" /> id="stop136-7-7" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop128" /> id="stop138-4-8" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="av" y2="76.444"
y2="84.900002" 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" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
y1="87.100998" y1="79.100998"
x1="154.10001"> x1="154.10001">
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop131" /> id="stop141-0-50" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop133" /> id="stop143-8-1" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="aw" id="aw-1-72"
y2="76.444" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="153" x2="153"
...@@ -539,14 +628,34 @@ ...@@ -539,14 +628,34 @@
<stop <stop
stop-color="#fff" stop-color="#fff"
offset="0" offset="0"
id="stop136" /> id="stop136-7-53" />
<stop <stop
stop-color="#ddd" stop-color="#ddd"
offset="1" offset="1"
id="stop138" /> id="stop138-4-41" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="ax" 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" y2="76.900002"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="151.89999" x2="151.89999"
...@@ -556,793 +665,389 @@ ...@@ -556,793 +665,389 @@
<stop <stop
stop-color="#bbb" stop-color="#bbb"
offset="0" offset="0"
id="stop141" /> id="stop141-0-548" />
<stop <stop
stop-color="#616161" stop-color="#616161"
offset="1" offset="1"
id="stop143" /> id="stop143-8-54" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
id="bd" id="aw-1-6"
y2="99.254997" y2="76.444"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
x2="91.228996" x2="153"
gradientTransform="matrix(0.21025443,0,0,0.20691162,-0.54460205,-0.4483919)" gradientTransform="translate(-143,-64)"
y1="106.41" y1="79.556999"
x1="98.616997"> x1="153">
<stop <stop
stop-color="#a2a2a2" stop-color="#fff"
offset="0" offset="0"
id="stop193" /> id="stop136-7-02" />
<stop <stop
stop-color="#fff" stop-color="#ddd"
offset="1" offset="1"
id="stop195" /> id="stop138-4-5" />
</linearGradient> </linearGradient>
<linearGradient <linearGradient
inkscape:collect="always" y2="76.444"
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" x2="153"
y2="140.44" /> y1="79.556999"
<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" 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)" 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" gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)" id="linearGradient5836-0"
x1="153" xlink:href="#aw-1-6"
y1="127.56" inkscape:collect="always" />
x2="153"
y2="124.44" />
<linearGradient <linearGradient
inkscape:collect="always" inkscape:collect="always"
xlink:href="#ca" xlink:href="#ax-8-027"
id="linearGradient3467" id="linearGradient5814-72"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
x1="154.10001" x1="154.10001"
y1="127.1" y1="79.100998"
x2="151.89999" x2="151.89999"
y2="124.9" /> y2="76.900002" />
<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 <linearGradient
inkscape:collect="always" id="ax-8-027"
xlink:href="#cc" y2="76.900002"
id="linearGradient3471"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="154.10001"
y1="119.1"
x2="151.89999" x2="151.89999"
y2="116.9" />
<linearGradient
inkscape:collect="always"
xlink:href="#cd"
id="linearGradient3473"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
x1="153" y1="79.100998"
y1="111.56" x1="154.10001">
x2="153" <stop
y2="108.44" /> stop-color="#bbb"
<linearGradient offset="0"
inkscape:collect="always" id="stop141-0-36" />
xlink:href="#ce" <stop
id="linearGradient3475" stop-color="#616161"
gradientUnits="userSpaceOnUse" offset="1"
gradientTransform="translate(-143,-64)" id="stop143-8-11" />
x1="154.10001" </linearGradient>
y1="111.1"
x2="151.89999"
y2="108.9" />
<linearGradient <linearGradient
inkscape:collect="always" id="aw-1-2"
xlink:href="#cf" y2="76.444"
id="linearGradient3477"
gradientUnits="userSpaceOnUse" gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="103.56"
x2="153" x2="153"
y2="100.44" />
<linearGradient
inkscape:collect="always"
xlink:href="#cg"
id="linearGradient3479"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)" gradientTransform="translate(-143,-64)"
x1="154.10001" y1="79.556999"
y1="103.1" x1="153">
x2="151.89999" <stop
y2="100.9" /> stop-color="#fff"
offset="0"
id="stop136-7-1" />
<stop
stop-color="#ddd"
offset="1"
id="stop138-4-61" />
</linearGradient>
<linearGradient <linearGradient
inkscape:collect="always" y2="76.444"
xlink:href="#ch"
id="linearGradient3481"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)"
x1="153"
y1="95.556999"
x2="153" x2="153"
y2="92.444" /> y1="79.556999"
<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" 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)" 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" gradientUnits="userSpaceOnUse"
gradientTransform="translate(-143,-64)" id="linearGradient5836-2"
x1="153" xlink:href="#aw-1-2"
y1="79.556999" inkscape:collect="always" />
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" />
</defs> </defs>
<path <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" 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.47602464,0,0,0.40529685,-6.3581392,-1.8460354)" transform="matrix(0.25784827,0,0,0.21953714,-3.5022893,-1.050377)"
id="path217" id="path217"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="opacity:0.5;filter:url(#bb)" /> style="opacity:0.5;filter:url(#bb)"
sodipodi:nodetypes="cccccccc" />
<path <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" id="path219"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="fill:#ffffff" /> style="fill:#ffffff"
sodipodi:nodetypes="cccccc" />
<path <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" id="path221"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="fill:url(#radialGradient3436)" /> style="fill:url(#radialGradient3371)"
sodipodi:nodetypes="cssssccssscc" />
<circle
transform="matrix(0.35,0,0,0.35,-1,-1.8999998)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3296-3)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814)"
transform="matrix(0.32133677,0,0,0.32133677,-0.71336771,-1.4987146)" />
<path <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" 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)" clip-path="url(#ba)"
transform="matrix(0.45698973,0,0,0.39472284,13.139705,-1.3667406)" transform="matrix(0.24753763,0,0,0.21380952,7.059108,-0.790758)"
id="path223" id="path223"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="opacity:0.4;filter:url(#bc)" /> style="opacity:0.4;filter:url(#bc)"
<g sodipodi:nodetypes="ccccc" />
transform="matrix(0.45698973,0,0,0.39472284,-52.666726,12.843402)"
id="g225">
<g
transform="translate(116,-32)"
id="g227">
<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"
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"
sodipodi:cx="10"
sodipodi:cy="94"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3449)" />
<circle
cy="94"
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"
sodipodi:cx="10"
sodipodi:cy="94"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3451)" />
</g>
<g
transform="translate(116,-32)"
id="g245">
<circle
cy="86"
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"
sodipodi:cx="10"
sodipodi:cy="86"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3453)" />
<circle
cy="86"
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"
sodipodi:cx="10"
sodipodi:cy="86"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3455)" />
</g>
<g
transform="translate(116,-32)"
id="g251">
<circle
cy="78"
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"
sodipodi:cx="10"
sodipodi:cy="78"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3457)" />
<circle
cy="78"
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"
sodipodi:cx="10"
sodipodi:cy="78"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3459)" />
</g>
<g
transform="translate(116,-32)"
id="g257">
<circle
cy="70"
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"
sodipodi:cx="10"
sodipodi:cy="70"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3461)" />
<circle
cy="70"
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"
sodipodi:cx="10"
sodipodi:cy="70"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3463)" />
</g>
<g
transform="translate(116,-32)"
id="g263">
<circle
cy="62"
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"
sodipodi:cx="10"
sodipodi:cy="62"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3465)" />
<circle
cy="62"
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"
sodipodi:cx="10"
sodipodi:cy="62"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3467)" />
</g>
<g
transform="translate(116,-32)"
id="g269">
<circle
cy="54"
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"
sodipodi:cx="10"
sodipodi:cy="54"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3469)" />
<circle
cy="54"
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"
sodipodi:cx="10"
sodipodi:cy="54"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3471)" />
</g>
<g
transform="translate(116,-32)"
id="g275">
<circle
cy="46"
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"
sodipodi:cx="10"
sodipodi:cy="46"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3473)" />
<circle
cy="46"
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"
sodipodi:cx="10"
sodipodi:cy="46"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3475)" />
</g>
<g
transform="translate(116,-32)"
id="g281">
<circle
cy="38"
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"
sodipodi:cx="10"
sodipodi:cy="38"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3477)" />
<circle
cy="38"
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"
sodipodi:cx="10"
sodipodi:cy="38"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3479)" />
</g>
<g
transform="translate(116,-32)"
id="g287">
<circle
cy="30"
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"
sodipodi:cx="10"
sodipodi:cy="30"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3481)" />
<circle
cy="30"
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"
sodipodi:cx="10"
sodipodi:cy="30"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3483)" />
</g>
<g
transform="translate(116,-32)"
id="g293">
<circle
cy="22"
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"
sodipodi:cx="10"
sodipodi:cy="22"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3485)" />
<circle
cy="22"
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"
sodipodi:cx="10"
sodipodi:cy="22"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient3487)" />
</g>
<g
transform="translate(116,-32)"
id="g299">
<circle
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient3489)" />
<circle
cy="14"
cx="10"
r="1.556"
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="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 <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" 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" id="path345"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
style="fill:url(#linearGradient3373)" /> style="fill:url(#linearGradient3327)"
sodipodi:nodetypes="ccccc" />
<circle
transform="matrix(0.35,0,0,0.35,-1,0.10000022)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-8)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,0.50128542)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,2.1000002)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-4)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-1)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,2.5012854)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,4.1000002)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-43)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-86)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,4.5012854)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,6.1000002)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-47)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-0)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,6.5012854)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,8.1000002)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-8)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-861)"
transform="matrix(0.32133677,0,0,0.32133677,-0.71336771,8.5012854)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,10.1)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-9)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-7)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,10.501285)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,12.1)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-89)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-78)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,12.501285)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,14.1)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-6)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
style="fill:url(#linearGradient5814-08)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,14.501285)" />
<circle
transform="matrix(0.35,0,0,0.35,-1,16.1)"
cy="14"
cx="10"
r="2"
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="14"
sodipodi:rx="2"
sodipodi:ry="2"
style="fill:url(#linearGradient5836-0)" />
<circle
cy="14"
cx="10"
r="1.556"
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="14"
sodipodi:rx="1.556"
sodipodi:ry="1.556"
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-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(#linearGradient5836-2)" />
<circle
cy="14"
cx="10"
r="1.556"
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(#linearGradient5814-72)"
transform="matrix(0.32133677,0,0,0.32133677,-0.7133677,18.501285)" />
</svg> </svg>
...@@ -623,18 +623,10 @@ void GRLineArray( EDA_RECT* aClipBox, wxDC* aDC, std::vector<wxPoint>& aLines, ...@@ -623,18 +623,10 @@ void GRLineArray( EDA_RECT* aClipBox, wxDC* aDC, std::vector<wxPoint>& aLines,
aClipBox->Inflate(-aWidth/2); 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, void GRCSegm( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
int width, int aPenSize, EDA_COLOR_T Color ) 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; GRLastMoveToX = x2;
GRLastMoveToY = y2; GRLastMoveToY = y2;
...@@ -658,114 +650,63 @@ void GRCSegm( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2, ...@@ -658,114 +650,63 @@ void GRCSegm( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
GRSetColorPen( DC, Color, aPenSize ); GRSetColorPen( DC, Color, aPenSize );
GRSetBrush( DC, Color, false ); GRSetBrush( DC, Color, false );
radius = (width + 1) >> 1; int radius = (width + 1) >> 1;
int dx = x2 - x1;
dx = x2 - x1; int dy = y2 - y1;
dy = y2 - y1; double angle = -ArcTangente( dy, dx );
wxPoint start;
if( dx == 0 ) /* segment vertical */ wxPoint end;
{ wxPoint org( x1, y1);
dwx = radius; int len = (int) hypot( dx, dy );
if( dy >= 0 )
dwx = -dwx; // We know if the DC is mirrored, to draw arcs
int slx = DC->DeviceToLogicalX( 1 ) - DC->DeviceToLogicalX( 0 );
sx1 = x1 - dwx; int sly = DC->DeviceToLogicalY( 1 ) - DC->DeviceToLogicalY( 0 );
sy1 = y1; bool mirrored = (slx > 0 && sly < 0) || (slx < 0 && sly > 0);
ex1 = x2 - dwx; // first edge
ey1 = y2; start.x = 0;
start.y = radius;
DC->DrawLine( sx1, sy1, ex1, ey1 ); end.x = len;
end.y = radius;
sx2 = x1 + dwx; RotatePoint( &start, angle);
sy2 = y1; RotatePoint( &end, angle);
ex2 = x2 + dwx; start += org;
ey2 = y2; end += org;
DC->DrawLine( sx2, sy2, ex2, ey2 ); DC->DrawLine( start, end );
}
else if( dy == 0 ) /* segment horizontal */ // first rounded end
{ end.x = 0;
dwy = radius; end.y = -radius;
if( dx < 0 ) RotatePoint( &end, angle);
dwy = -dwy; end += org;
sx1 = x1; if( !mirrored )
sy1 = y1 - dwy; DC->DrawArc( end, start, org );
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 );
}
else else
{ DC->DrawArc( start, end, org );
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->DrawLine( sx1, sy1, ex1, ey1 ); // second edge
start.x = len;
start.y = -radius;
RotatePoint( &start, angle);
start += org;
sx2 = x1 + dwx2; DC->DrawLine( start, end );
sy2 = y1 + dwy2;
ex2 = x2 + dwx2; // second rounded end
ey2 = y2 + dwy2; end.x = len;
end.y = radius;
DC->DrawLine( sx2, sy2, ex2, ey2 ); RotatePoint( &end, angle);
} end += org;
if( swap_ends ) if( !mirrored )
{ DC->DrawArc( end.x, end.y, start.x, start.y, x2, y2 );
DC->DrawArc( sx2, sy2, sx1, sy1, x1, y1 );
DC->DrawArc( ex1, ey1, ex2, ey2, x2, y2 );
}
else else
{ DC->DrawArc( start.x, start.y, end.x, end.y, x2, y2 );
DC->DrawArc( sx1, sy1, sx2, sy2, x1, y1 );
DC->DrawArc( ex2, ey2, ex1, ey1, x2, y2 );
}
} }
......
...@@ -19,6 +19,8 @@ set( EESCHEMA_DLGS ...@@ -19,6 +19,8 @@ set( EESCHEMA_DLGS
dialogs/dialog_bom.cpp dialogs/dialog_bom.cpp
dialogs/dialog_bom_base.cpp dialogs/dialog_bom_base.cpp
dialogs/dialog_bom_cfg_keywords.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.cpp
dialogs/dialog_lib_edit_text_base.cpp dialogs/dialog_lib_edit_text_base.cpp
dialogs/dialog_edit_component_in_lib.cpp dialogs/dialog_edit_component_in_lib.cpp
...@@ -88,6 +90,7 @@ set( EESCHEMA_SRCS ...@@ -88,6 +90,7 @@ set( EESCHEMA_SRCS
files-io.cpp files-io.cpp
find.cpp find.cpp
getpart.cpp getpart.cpp
component_tree_search_container.cpp
hierarch.cpp hierarch.cpp
hotkeys.cpp hotkeys.cpp
libarch.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 @@ ...@@ -45,11 +45,14 @@
#include <viewlib_frame.h> #include <viewlib_frame.h>
#include <eeschema_id.h> #include <eeschema_id.h>
#include <dialog_choose_component.h>
#include <component_tree_search_container.h>
#include <dialog_get_component.h> #include <dialog_get_component.h>
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
// TODO(hzeller): would be good if we could give a pre-selected component.
wxString SCH_BASE_FRAME::SelectComponentFromLibBrowser( void ) wxString SCH_BASE_FRAME::SelectComponentFromLibBrowser( void )
{ {
wxSemaphore semaphore( 0, 1 ); wxSemaphore semaphore( 0, 1 );
...@@ -76,118 +79,66 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibBrowser( void ) ...@@ -76,118 +79,66 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibBrowser( void )
return cmpname; return cmpname;
} }
wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname, wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
wxArrayString& aHistoryList, wxArrayString& aHistoryList,
bool aUseLibBrowser, bool aUseLibBrowser,
int* aUnit, int* aUnit,
int* aConvert ) int* aConvert )
{ {
int CmpCount = 0; int cmpCount = 0;
LIB_COMPONENT* libEntry = NULL; wxString dialogTitle;
CMP_LIBRARY* currLibrary = NULL;
wxString cmpName, keys, msg; COMPONENT_TREE_SEARCH_CONTAINER search_container; // Container doing search-as-you-type
bool allowWildSeach = true;
if( !aLibname.IsEmpty() ) if( !aLibname.IsEmpty() )
{ {
currLibrary = CMP_LIBRARY::FindLibrary( aLibname ); CMP_LIBRARY* currLibrary = CMP_LIBRARY::FindLibrary( aLibname );
if( currLibrary != NULL ) if( currLibrary != NULL )
CmpCount = currLibrary->GetCount(); {
cmpCount = currLibrary->GetCount();
search_container.AddLibrary( *currLibrary );
}
} }
else else
{ {
BOOST_FOREACH( CMP_LIBRARY& lib, CMP_LIBRARY::GetLibraryList() ) 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 if( !aHistoryList.empty() )
msg.Printf( _( "Component selection (%d items loaded):" ), CmpCount ); {
// This is good for a transition for experineced users: giving them a History. Ideally,
DIALOG_GET_COMPONENT dlg( this, aHistoryList, msg, aUseLibBrowser ); // 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] );
}
if( aHistoryList.GetCount() ) dialogTitle.Printf( _( "Choose Component (%d items loaded)" ), cmpCount );
dlg.SetComponentName( aHistoryList[0] ); DIALOG_CHOOSE_COMPONENT dlg( this, dialogTitle, &search_container );
if( dlg.ShowModal() == wxID_CANCEL ) if( dlg.ShowModal() == wxID_CANCEL )
return wxEmptyString; return wxEmptyString;
if( dlg.m_GetExtraFunction ) wxString cmpName = dlg.GetSelectedComponentName();
if( dlg.IsExternalBrowserSelected() )
{ {
cmpName = SelectComponentFromLibBrowser(); cmpName = SelectComponentFromLibBrowser(); // Would be good if we could pre-select.
if( aUnit ) if( aUnit )
*aUnit = LIB_VIEW_FRAME::GetUnit(); *aUnit = LIB_VIEW_FRAME::GetUnit();
if( aConvert ) if( aConvert )
*aConvert = LIB_VIEW_FRAME::GetConvert(); *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() )
{
allowWildSeach = false;
keys = cmpName;
cmpName = DataBaseGetName( this, keys, cmpName );
if( cmpName.IsEmpty() )
return wxEmptyString;
}
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 );
if( cmpName.IsEmpty() )
return wxEmptyString;
}
libEntry = CMP_LIBRARY::FindLibraryComponent( cmpName, aLibname );
if( !libEntry && allowWildSeach ) // Search with wildcard if ( !cmpName.empty() )
{ AddHistoryComponentName( aHistoryList, cmpName );
allowWildSeach = false;
wxString wildname = wxChar( '*' ) + cmpName + wxChar( '*' );
cmpName = wildname;
cmpName = DataBaseGetName( this, keys, cmpName );
if( !cmpName.IsEmpty() )
libEntry = CMP_LIBRARY::FindLibraryComponent( cmpName, aLibname );
if( !libEntry )
return wxEmptyString;
}
if( !libEntry )
{
msg.Printf( _( "Failed to find part <%s> in library" ), GetChars( cmpName ) );
DisplayError( this, msg );
return wxEmptyString;
}
AddHistoryComponentName( aHistoryList, cmpName );
return cmpName; return cmpName;
} }
......
...@@ -200,8 +200,16 @@ void EDGE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode, ...@@ -200,8 +200,16 @@ void EDGE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode,
StAngle = ArcTangente( dy - uy0, dx - ux0 ); StAngle = ArcTangente( dy - uy0, dx - ux0 );
EndAngle = StAngle + m_Angle; EndAngle = StAngle + m_Angle;
if( StAngle > EndAngle ) if( !panel->GetPrintMirrored() )
EXCHG( StAngle, EndAngle ); {
if( StAngle > EndAngle )
EXCHG( StAngle, EndAngle );
}
else // Mirrored mode: arc orientation is reversed
{
if( StAngle < EndAngle )
EXCHG( StAngle, EndAngle );
}
if( typeaff == LINE ) if( typeaff == LINE )
{ {
......
...@@ -799,7 +799,7 @@ void MODULE::Flip( const wxPoint& aCentre ) ...@@ -799,7 +799,7 @@ void MODULE::Flip( const wxPoint& aCentre )
// Mirror pads to other side of board about the x axis, i.e. vertically. // Mirror pads to other side of board about the x axis, i.e. vertically.
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() ) for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
pad->Flip( m_Pos.y ); pad->Flip( m_Pos );
// Mirror reference. // Mirror reference.
text = m_Reference; text = m_Reference;
......
...@@ -214,13 +214,13 @@ void D_PAD::SetOrientation( double aAngle ) ...@@ -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 = -y; // invert about x axis.
y += aTranslationY; y += aCentre.y;
SetY( y ); SetY( y );
......
...@@ -167,7 +167,7 @@ public: ...@@ -167,7 +167,7 @@ public:
void SetOffset( const wxPoint& aOffset ) { m_Offset = aOffset; } void SetOffset( const wxPoint& aOffset ) { m_Offset = aOffset; }
const wxPoint& GetOffset() const { return m_Offset; } const wxPoint& GetOffset() const { return m_Offset; }
void Flip( int aTranslationY ); void Flip( const wxPoint& aCentre ); // Virtual function
/** /**
* Function SetOrientation * Function SetOrientation
......
...@@ -169,9 +169,13 @@ bool EDA_APP::OnInit() ...@@ -169,9 +169,13 @@ bool EDA_APP::OnInit()
bundledir.RemoveLastDir(); bundledir.RemoveLastDir();
// Prepend in PYTHONPATH the content of the bundle libraries ! // Prepend in PYTHONPATH the content of the bundle libraries !
wxSetEnv("PYTHONPATH",((wxGetenv("PYTHONPATH") != NULL ) ? (wxString(wxGetenv("PYTHONPATH")) + ":") : wxString("")) wxSetEnv("PYTHONPATH",((wxGetenv("PYTHONPATH") != NULL ) ? (wxString(wxGetenv("PYTHONPATH")) + ":") : wxString("")) +
+ bundledir.GetPath() + "/Library/Application Support/kicad/scripting" + ":" +
"/Frameworks/wxPython/lib/python2.6/site-packages/wx-3.0-osx_cocoa" ); 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
#endif #endif
// On linux and osx, 2 others paths are // On linux and osx, 2 others paths are
......
...@@ -282,7 +282,7 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage() ...@@ -282,7 +282,7 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
if( printMirror ) if( printMirror )
{ {
// Calculate the mirrored center of the board. // 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; offset += center;
...@@ -301,21 +301,29 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage() ...@@ -301,21 +301,29 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
screen->m_IsPrinting = true; screen->m_IsPrinting = true;
EDA_COLOR_T bg_color = g_DrawBgColor; 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 ) if( printMirror )
{ {
// To plot mirror, we reverse the y axis, and modify the plot y origin // To plot mirror, we reverse the x axis, and modify the plot x origin
dc->SetAxisOrientation( true, true ); 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 * 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 * (this is the upper left corner) but the X axis is reversed, therefore the plotting area
* is the y coordinate values from - PlotAreaSize.y to 0 */ * is the x coordinate values from - PlotAreaSize.x to 0 */
int y_dc_offset = PlotAreaSizeInPixels.y; int x_dc_offset = PlotAreaSizeInPixels.x;
y_dc_offset = KiROUND( y_dc_offset * userscale ); x_dc_offset = KiROUND( x_dc_offset * userscale );
dc->SetDeviceOrigin( 0, y_dc_offset ); dc->SetDeviceOrigin( x_dc_offset, 0 );
wxLogTrace( tracePrinting, wxT( "Device origin: x=%d, y=%d" ), 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->SetClipBox( EDA_RECT( wxPoint( -MAX_VALUE/2, -MAX_VALUE/2 ),
panel->GetClipBox()->GetSize() ) ); panel->GetClipBox()->GetSize() ) );
...@@ -359,13 +367,9 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage() ...@@ -359,13 +367,9 @@ void BOARD_PRINTOUT_CONTROLLER::DrawPage()
printMirror, &m_PrintParams ); printMirror, &m_PrintParams );
GRForceBlackPen( false ); GRForceBlackPen( false );
} }
else
if( m_PrintParams.m_Print_Black_and_White )
GRForceBlackPen( true ); GRForceBlackPen( true );
if( m_PrintParams.PrintBorderAndTitleBlock() )
m_Parent->DrawWorkSheet( dc, screen, m_PrintParams.m_PenDefaultSize,
IU_PER_MILS, titleblockFilename );
#if defined (GERBVIEW) #if defined (GERBVIEW)
// In B&W mode, do not force black pen for Gerbview // In B&W mode, do not force black pen for Gerbview
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
%extend BOARD %extend BOARD
{ {
%pythoncode %pythoncode
{ {
def GetModules(self): return self.m_Modules def GetModules(self): return self.m_Modules
...@@ -42,35 +42,35 @@ ...@@ -42,35 +42,35 @@
def GetCurrentNetClassName(self): return self.m_CurrentNetClassName def GetCurrentNetClassName(self): return self.m_CurrentNetClassName
def GetViasDimensionsList(self): return self.m_ViasDimensionsList def GetViasDimensionsList(self): return self.m_ViasDimensionsList
def GetTrackWidthList(self): return self.m_TrackWidthList def GetTrackWidthList(self): return self.m_TrackWidthList
def Save(self,filename,format = None): def Save(self,filename,format = None):
if format is None: if format is None:
str_filename = str(filename) str_filename = str(filename)
if str_filename.endswith(".brd"): if str_filename.endswith(".brd"):
format = IO_MGR.LEGACY format = IO_MGR.LEGACY
if str_filename.endswith(".kicad_brd"): if str_filename.endswith(".kicad_pcb"):
format = IO_MGR.KICAD format = IO_MGR.KICAD
return SaveBoard(filename,self,format) return SaveBoard(filename,self,format)
# #
# add function, clears the thisown to avoid python from deleting # add function, clears the thisown to avoid python from deleting
# the object in the garbage collector # the object in the garbage collector
# #
def Add(self,item): def Add(self,item):
item.thisown=0 item.thisown=0
self.AddNative(item) self.AddNative(item)
} }
} }
// this is to help python with the * accessor of DLIST templates // this is to help python with the * accessor of DLIST templates
%rename(Get) operator BOARD_ITEM*; %rename(Get) operator BOARD_ITEM*;
%rename(Get) operator TRACK*; %rename(Get) operator TRACK*;
%rename(Get) operator D_PAD*; %rename(Get) operator D_PAD*;
%rename(Get) operator MODULE*; %rename(Get) operator MODULE*;
%rename(Get) operator SEGZONE*; %rename(Get) operator SEGZONE*;
// we must translate C++ templates to scripting languages // we must translate C++ templates to scripting languages
...@@ -81,14 +81,14 @@ ...@@ -81,14 +81,14 @@
%template(TRACK_List) DLIST<TRACK>; %template(TRACK_List) DLIST<TRACK>;
%template(PAD_List) DLIST<D_PAD>; %template(PAD_List) DLIST<D_PAD>;
// std::vector templates // std::vector templates
%template(VIA_DIMENSION_Vector) std::vector<VIA_DIMENSION>; %template(VIA_DIMENSION_Vector) std::vector<VIA_DIMENSION>;
%template (RASTNET_Vector) std::vector<RATSNEST_ITEM>; %template (RASTNET_Vector) std::vector<RATSNEST_ITEM>;
%extend DRAWSEGMENT %extend DRAWSEGMENT
{ {
%pythoncode %pythoncode
{ {
def GetShapeStr(self): def GetShapeStr(self):
return self.ShowShape(self.GetShape()) return self.ShowShape(self.GetShape())
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
def SetPos(self,p): def SetPos(self,p):
self.SetPosition(p) self.SetPosition(p)
self.SetPos0(p) self.SetPos0(p)
def SetStartEnd(self,start,end): def SetStartEnd(self,start,end):
self.SetStart(start) self.SetStart(start)
self.SetStart0(start) self.SetStart0(start)
......
...@@ -34,10 +34,10 @@ def smdRectPad(module,size,pos,name): ...@@ -34,10 +34,10 @@ def smdRectPad(module,size,pos,name):
for n in range (0,pads): for n in range (0,pads):
pad = smdRectPad(module,size_025_160mm,wxPointMM(0.5*n,0),str(n+1)) pad = smdRectPad(module,size_025_160mm,wxPointMM(0.5*n,0),str(n+1))
module.Add(pad) module.Add(pad)
pad_s0 = smdRectPad(module,size_150_200mm,wxPointMM(-1.6,1.3),"0") pad_s0 = smdRectPad(module,size_150_200mm,wxPointMM(-1.6,1.3),"0")
pad_s1 = smdRectPad(module,size_150_200mm,wxPointMM((pads-1)*0.5+1.6,1.3),"0") pad_s1 = smdRectPad(module,size_150_200mm,wxPointMM((pads-1)*0.5+1.6,1.3),"0")
module.Add(pad_s0) module.Add(pad_s0)
module.Add(pad_s1) module.Add(pad_s1)
...@@ -50,10 +50,11 @@ e.SetShape(S_SEGMENT) ...@@ -50,10 +50,11 @@ e.SetShape(S_SEGMENT)
module.Add(e) module.Add(e)
# save the PCB to disk # save the PCB to disk
module.SetLibRef("FPC"+str(pads)) fpid = FPID("FPC"+str(pads)) #the name in library
module.SetFPID( fpid )
try: try:
FootprintLibCreate("fpc40.mod") FootprintLibCreate("fpc40.mod")
except: except:
pass # we try to create, but may be it exists already pass # we try to create, but may be it exists already
FootprintSave("fpc40.mod",module) FootprintSave("fpc40.mod",module)
...@@ -30,13 +30,13 @@ for y in range (0,10): ...@@ -30,13 +30,13 @@ for y in range (0,10):
pad.SetPadName(str(n)) pad.SetPadName(str(n))
module.Add(pad) module.Add(pad)
n+=1 n+=1
# save the PCB to disk # save the PCB to disk
pcb.Save("/tmp/my2.kicad_brd") pcb.Save("my2.kicad_pcb")
pcb.Save("/tmp/my2.brd") pcb.Save("my2.brd")
pcb = LoadBoard("/tmp/my2.brd") pcb = LoadBoard("my2.kicad_pcb")
print map( lambda x: x.GetReference() , list(pcb.GetModules())) print map( lambda x: x.GetReference() , list(pcb.GetModules()))
......
...@@ -109,18 +109,22 @@ class QFPWizard(pcbnew.FootprintWizardPlugin): ...@@ -109,18 +109,22 @@ class QFPWizard(pcbnew.FootprintWizardPlugin):
pad_size = pad_size_left_right pad_size = pad_size_left_right
pad_pos_x = -(pad_horizontal_pitch / 2) pad_pos_x = -(pad_horizontal_pitch / 2)
pad_pos_y = (cur_pad % (num_pads / 4)) * pad_pitch - (side_length / 2)
if side == 2: if side == 2:
pad_pos_x = -pad_pos_x 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: else:
pad_size = pad_size_bottom_top pad_size = pad_size_bottom_top
pad_pos_x = (cur_pad % (num_pads / 4)) * pad_pitch - (side_length / 2) pad_pos_x = (cur_pad % (num_pads / 4)) * pad_pitch - (side_length / 2)
pad_pos_y = -(pad_vertical_pitch / 2) pad_pos_y = -(pad_vertical_pitch / 2)
if side == 1: if side == 1:
pad_pos_y = -pad_pos_y pad_pos_y = -pad_pos_y
else:
pad_pos_x = -pad_pos_x
pad_pos = pcbnew.wxPoint(pad_pos_x, pad_pos_y) pad_pos = pcbnew.wxPoint(pad_pos_x, pad_pos_y)
......
...@@ -307,7 +307,7 @@ void PCB_EDIT_FRAME::ReCreateHToolbar() ...@@ -307,7 +307,7 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
// Access to the scripting console // Access to the scripting console
#ifdef KICAD_SCRIPTING_WXPYTHON #ifdef KICAD_SCRIPTING_WXPYTHON
m_mainToolBar->AddTool( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, wxEmptyString, m_mainToolBar->AddTool( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, wxEmptyString,
KiBitmap( book_xpm ), KiBitmap( py_script_xpm ),
_( "Show/Hide the Scripting console" ) ); _( "Show/Hide the Scripting console" ) );
m_mainToolBar->AddSeparator(); m_mainToolBar->AddSeparator();
......
#!/bin/bash #!/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> # usage osx_fixbundle.sh <bundle-name> <bzr_root>
if [[ ! -f version.h ]]; then if [[ ! -f version.h ]]; then
...@@ -11,7 +12,6 @@ fi ...@@ -11,7 +12,6 @@ fi
EXECUTABLES="`find . -name '*.app'`" EXECUTABLES="`find . -name '*.app'`"
# #
# Copies libraries under <bzr_root> in the bundle and relocates them in the binary # Copies libraries under <bzr_root> in the bundle and relocates them in the binary
# #
...@@ -29,7 +29,11 @@ function fixbundle() { ...@@ -29,7 +29,11 @@ function fixbundle() {
if [[ "$library" =~ "$bzroot" ]]; then if [[ "$library" =~ "$bzroot" ]]; then
echo "${exec}: Migrating `basename $library` in the bundle" echo "${exec}: Migrating `basename $library` in the bundle"
if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then
cp -f $library ${execpath}${exec}.app/Contents/Frameworks if [ ! -L $library ]; then
cp -f $library ${execpath}${exec}.app/Contents/Frameworks
else
resolvelink "$library" "`dirname $library`" "${execpath}/${exec}.app/Contents/Frameworks"
fi
fi fi
install_name_tool -change $library @executable_path/../Frameworks/`basename $library` ${execpath}${exec}.app/Contents/MacOS/${exec} install_name_tool -change $library @executable_path/../Frameworks/`basename $library` ${execpath}${exec}.app/Contents/MacOS/${exec}
fi fi
...@@ -46,7 +50,11 @@ function fixbundle() { ...@@ -46,7 +50,11 @@ function fixbundle() {
for library in $LIBRARIES; do for library in $LIBRARIES; do
if [[ "$library" =~ "$bzroot" ]]; then if [[ "$library" =~ "$bzroot" ]]; then
if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then
cp -f $library ${exec}.app/Contents/Frameworks if [ ! -L $library ]; then
cp -f $library ${exec}.app/Contents/Frameworks
else
resolvelink "$library" "`dirname $library`" "${execpath}/${exec}.app/Contents/Frameworks"
fi
fi fi
install_name_tool -change $library @executable_path/../Frameworks/`basename $library` $module install_name_tool -change $library @executable_path/../Frameworks/`basename $library` $module
fi fi
...@@ -70,7 +78,11 @@ function fixbundle() { ...@@ -70,7 +78,11 @@ function fixbundle() {
for library in $LIBRARIES; do for library in $LIBRARIES; do
if [[ "$library" =~ "$bzroot" ]]; then if [[ "$library" =~ "$bzroot" ]]; then
if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then if [ ! -f ${exec}.app/Contents/Frameworks/`basename $library` ]; then
cp -f $library ${exec}.app/Contents/Frameworks 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" echo "copied `basename $library` into bundle"
(( dynlib_migrate += 1)) (( dynlib_migrate += 1))
fi fi
...@@ -84,8 +96,27 @@ function fixbundle() { ...@@ -84,8 +96,27 @@ function fixbundle() {
cd - >/dev/null cd - >/dev/null
} }
#
# This supports only links on the same dir (TODO ?)
#
function resolvelink() {
local srclib="`basename $1`"
local srcpath="$2"
local destpath="$3"
#fixbundle $1 $2 $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; for executable in $EXECUTABLES;
do 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